9d23a187e174ad38c138a49a9f03253b749ac406
[fw/sdcc] / ChangeLog
1 2007-01-28 Raphael Neider <rneider AT web.de>
2
3         * src/pic16/devices.inc,
4         * device/include/pic16/pic18f[24][23]21.h,
5         * device/include/pic16/pic18fregs.h,
6         * device/lib/pic16/libdev/pic18f[24][23]21.c,
7         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
8         * device/lib/pic16/libio/adc.ignore,
9         * device/lib/pic16/libio/i2c.ignore,
10         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
11           family, as gputils do not yet support the devices
12         * device/lib/pic16/Makefile.subdir: ignore errors on install
13         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
14           headers and libraries from gputils .inc files
15
16 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
17
18         * doc/sdccman.lyx: add printf_fast_f precision limitation note
19
20 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
21
22         * doc/sdccman.lyx: add printf benchmarks
23
24 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
25
26         * device/lib/printf_fast.c: fix %c, char promoted to int
27         * device/lib/printf_tiny.c: fix %c, char promoted to int
28
29 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
30
31         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
32
33 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
34
35         * support/regression/tests/swap.c: 64 bit hosts failed
36         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
37
38 2007-01-25 Raphael Neider <rneider AT web.de>
39
40         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
41           based on absolute register address, patch by Alex Blond
42
43 2007-01-22 Raphael Neider <rneider AT web.de>
44
45         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
46           emitted, do not emit them again...
47
48 2007-01-22 Raphael Neider <rneider AT web.de>
49
50         * src/regression/bank1.c, src/regression/compare6.c,
51           src/regression/add.c: cosmetic changes
52         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
53         * src/pic/gen.c: fixed global zero and one,
54           (aopForSym): removed unued code,
55           (aopGet): assert aop is defined, check and use `index' of
56             pCodeImmd operands (fixes #1630908),
57         * src/pic/pcode.c (get_op): added output of generic pointer tag,
58           (register_reassign): prevent accidental register unification,
59           (ReuseReg): cosmetic changes (also above)
60         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
61           pic14emitStaticSeg): do not emit initialized data,
62           (printIval*): replaced with working versions,
63           (pic14createInterruptVect,picglue): use idata for initialized data,
64             now init data should work in all modules (not only main()),
65         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
66
67 2007-01-21 Borut Razem <borut.razem AT siol.net>
68
69         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
70           use -fPIC or -fpic if they are supported and not ignored
71         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
72         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
73
74 2007-01-20 Borut Razem <borut.razem AT siol.net>
75
76         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
77           implemented RFE #1470316: allow "$" in variable names
78
79 2007-01-20 Raphael Neider <rneider AT web.de>
80
81         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
82
83 2007-01-20 Raphael Neider <rneider AT web.de>
84
85         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
86         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
87         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
88         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
89           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
90         * device/lib/pic/libdev/pic*.c,
91         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
92         * device/lib/pic/libdev/Makefile.in: show progress
93
94 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
95
96         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
97         * support/scripts/sdcc_cygwin_mingw32,
98         * support/scripts/sdcc_mingw32,
99         * support/scripts/build.mak: replaced --datadir by --datarootdir for
100         conformance with autoconf 2.6
101
102 2007-01-19 Raphael Neider <rneider AT web.de>
103
104         * src/pic/device.c (register_map): fixed list construction
105         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
106           (genMod): removed case for genModbits,
107           (genModbits): removed as now unused/unimplemented
108         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
109
110 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
111
112         * support/regression/tests/swap.c: added in response to #1638622
113         * doc/sdccman.lyx: synced version, minor changes
114
115 2007-01-18 Borut Razem <borut.razem AT siol.net>
116
117         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
118           thanks to Gunther Jehle
119         * src/asm.c: don't die if the file drfined in #line couldn't be opened
120         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
121           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
122           use filename in lineno instead.
123         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
124           print the file name in ast_print()
125
126 2007-01-18 Borut Razem <borut.razem AT siol.net>
127
128         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
129           defined in MSVC
130         * src/SDCC.lex: stringLiteral() returns const char pointer,
131           EOF detection in stringLiteral(), fixed asmbuf memory leak,
132           fixed column counting
133         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
134           accept const char pointer as parameter
135         * src/SDCCdwarf2.c: corrected buffer size
136
137 2007-01-17 Borut Razem <borut.razem AT siol.net>
138
139         * support/Util/dbuf_string.c: fixed for amd64
140
141 2007-01-15 Borut Razem <borut.razem AT siol.net>
142
143         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
144           removed terminal symbol ELIPSIS, since it was never generated by the
145           lexer and it was wrongly used in parameter_identifier_list rule
146
147 2007-01-15 Raphael Neider <rneider AT web.de>
148
149         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
150             code page and data banking description
151         * src/pic/genarith.c,
152         * src/pic/gen.h: removed bit arithmetic functions,
153             updated exit(1) to exit(EXIT_FAILURE)
154         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
155         * device/include/pic16/pic18f2455.h,
156         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
157             TRISD and TRISE, fixed/added some bit names
158         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
159         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
160             updated pic18f2455.{c,h} instead of duplicating them
161
162 2007-01-14 Borut Razem <borut.razem AT siol.net>
163
164         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
165           Cannot debug files that contain spaces in the path name
166           by converting spaces in asm file name to underscores
167
168 2007-01-13 Borut Razem <borut.razem AT siol.net>
169
170         * doc/sdccman.lyx: fixed format errors
171
172 2007-01-10 Borut Razem <borut.razem AT siol.net>
173
174         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
175           codeseg/constseg #pragma fail
176         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
177         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
178           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
179           suppoprt/cpp2/sdcpp.[ch]: house cleaning
180
181 2007-01-09 Borut Razem <borut.razem AT siol.net>
182
183         * get rid of diagnistic.[ch], pretty-print.[ch],
184           c-pretty-print.[ch], ... used just for error, warning, ...
185           message formatting
186         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
187           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
188           suppoprt/cpp2/pretty-print.[ch]:
189           removed
190         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
191           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
192           suppoprt/cpp2/sdcpp.dsp:
193           changed
194
195 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
196
197         * device/lib/printf_large.c (output_float): removed recursion,
198           use smaller buffer on stack for mcs51,
199           fixed bug printing 1.96
200         * support/regression/tests/snprintf.c: added test
201
202 2007-01-07 Borut Razem <borut.razem AT siol.net>
203
204         * use dynamic memory buffers instead temporary files
205         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
206           added
207         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
208           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
209           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
210           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
211           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
212           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
213           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
214           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
215           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
216           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
217           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
218           support/Util/dbuf.c, support/Util/dbuf.h:
219           modified
220         * .version, sdcc.spec: bumped version to 2.6.4
221
222 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
223
224         * src/port.h: added TARGET_Z80_LIKE macro
225         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
226           output PSEG location if --xram-loc or --xstack-loc was used
227         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
228
229 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
230
231         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
232         * as/as_z80.dsp,   as/z80/as_z80.dsp,
233         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
234         * sdcc.dsw: moved project files into subdir
235         * as/hc08/as_hc08.dsp,
236         * as/hc08/Makefile.bcc,
237         * as/hc08/Makefile.in,
238         * as/mcs51/Makefile.bcc,
239         * as/mcs51/Makefile.in,
240         * as/z80/Makefile.bcc,
241         * as/z80/Makefile.in,
242         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
243         * as/hc08/asm.h,
244         * as/mcs51/asm.h,
245         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
246         * as/hc08/asmain.c,
247         * as/hc08/assym.c,
248         * as/mcs51/asmain.c,
249         * as/mcs51/assym.c,
250         * as/z80/assym.c: removed include "strcmpi.h"
251         * as/hc08/strcmpi.c,
252         * as/hc08/strcmpi.h,
253         * as/mcs51/strcmpi.c,
254         * as/mcs51/strcmpi.h,
255         * support/Util/strcmpi.c,
256         * support/Util/strcmpi.h: removed files
257         * as/strcmpi.c: added as_strncmpi()
258
259 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
260
261         * sdcc.dsw: Added some dependencies on project config.dsp
262
263 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
264
265         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
266           with [di]ram_start to fix a regresion
267
268 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
269
270         * configure.in: added missing mcs51 in status output
271         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
272         directory
273         * debugger/mcs51/clean.mk (distclean): remove config.h
274         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
275         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
276         options.h, s-options-h and options.c
277         * support/cpp2/clean.mk: unused, removed
278         * Makefile.common.in,
279         * main_in.mk,
280         * as/Makefile.in,
281         * as/hc08/Makefile.in,
282         * as/hc08/clean.mk,
283         * as/mcs51/Makefile.in,
284         * as/mcs51/clean.mk,
285         * as/z80/clean.mk,
286         * as/z80/conf.mk,
287         * as/z80/Makefile.in,
288         * as/z80/clean.mk,
289         * as/link/Makefile.in,
290         * as/link/hc08/Makefile.in,
291         * as/link/hc08/clean.mk,
292         * as/link/mcs51/Makefile.in,
293         * as/link/mcs51/clean.mk,
294         * as/link/z80/Makefile.in,
295         * as/link/z80/clean.mk,
296         * as/link/z80/conf.mk,
297         * debugger/mcs51/Makefile.in,
298         * debugger/mcs51/clean.mk,
299         * device/include/Makefile.in,
300         * device/lib/Makefile.in,
301         * device/lib/mcs51/Makefile.in,
302         * device/lib/pic/Makefile.in,
303         * device/lib/pic/Makefile.common.in,
304         * device/lib/pic/Makefile.subdir,
305         * device/lib/pic/Makefile.rules,
306         * device/lib/pic16/libio/Makefile.in,
307         * device/lib/pic16/Makefile.subdir,
308         * device/lib/pic16/libdev/Makefile.in,
309         * device/lib/pic16/Makefile.rules,
310         * device/lib/pic16/Makefile.common.in,
311         * sim/ucsim/avr.src/Makefile.in,
312         * sim/ucsim/main_in.mk,
313         * sim/ucsim/cmd.src/Makefile.in,
314         * sim/ucsim/doc/Makefile.in,
315         * sim/ucsim/gui.src/Makefile.in,
316         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
317         * sim/ucsim/gui.src/serio.src/Makefile.in,
318         * sim/ucsim/hc08.src/Makefile.in,
319         * sim/ucsim/libltdl/Makefile.in,
320         * sim/ucsim/s51.src/Makefile.in,
321         * sim/ucsim/sim.src/Makefile.in,
322         * sim/ucsim/sim.src/conf.mk,
323         * sim/ucsim/xa.src/Makefile.in,
324         * sim/ucsim/z80.src/Makefile.in,
325         * src/Makefile.in,
326         * src/clean.mk,
327         * src/port.mk,
328         * support/cpp2/Makefile.in,
329         * support/librarian/Makefile.in,
330         * support/librarian/clean.mk,
331         * support/makebin/Makefile.in,
332         * support/makebin/clean.mk,
333         * support/packihx/Makefile.in,
334         * support/regression/Makefile.in,
335         * support/regression/ports/ds390/spec.mk,
336         * support/regression/ports/gbz80/spec.mk,
337         * support/regression/ports/hc08/spec.mk,
338         * support/regression/ports/mcs51/spec.mk,
339         * support/regression/ports/mcs51-large/spec.mk,
340         * support/regression/ports/mcs51-medium/spec.mk,
341         * support/regression/ports/mcs51-xstack-auto/spec.mk,
342         * support/regression/ports/pic14/spec.mk,
343         * support/regression/ports/pic16/spec.mk,
344         * support/regression/ports/mcs51-stack-auto/spec.mk,
345         * support/regression/ports/ucz80/spec.mk,
346         * support/regression/ports/xa51/spec.mk,
347         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
348         adding a slash after $(top_builddir) and/or adding @datarootdir@
349         * configure.in,
350         * debugger/mcs51/configure.in,
351         * device/lib/pic/configure.in,
352         * device/lib/pic16/configure.in,
353         * sim/ucsim/configure.in,
354         * support/cpp2/configure.in,
355         * support/packihx/configure.in: changed AC_PREREQ to 2.60
356         * configure,
357         * debugger/mcs51/configure,
358         * device/lib/pic/configure,
359         * device/lib/pic16/configure,
360         * sim/ucsim/configure,
361         * support/cpp2/configure,
362         * support/packihx/configure: generated with autoconf 2.60
363
364 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
365
366         * as/link/hc08/lkihx.c (newArea),
367         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
368
369 2007-01-02 Borut Razem <borut.razem AT siol.net>
370
371         * doc/sdccman.lyx: documented #pragma sdcc_hash
372         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
373           initialized to 0
374         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
375
376 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
377
378         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
379         empty 'while'-loop to work correctly, see regression test 'while.c'
380         * support/regression/tests/while.c: added
381
382 2007-01-01 Borut Razem <borut.razem AT siol.net>
383
384         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
385           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
386           support/cpp2/libcpp/sdcpp.c:
387           sdcpp specific pragma/directive/option handling moved to sdcpp.c
388         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
389         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
390
391 2006-12-31 Borut Razem <borut.razem AT siol.net>
392
393         * SDCPP synchronized with GCC CPP release version 4.1.1,
394           currently the latest release:
395         * support/cpp2/libcpp, support/cpp2/libcpp/include,
396           support/cpp2/libcpp/include/cpp-id-data.h
397           support/cpp2/libiberty/fopen_unlocked.c
398           support/cpp2/libiberty/md5.c
399           support/cpp2/md5.h
400           support/cpp2/opt-functions.awk
401           support/cpp2/opt-gather.awk
402           support/cpp2/optc-gen.awk
403           support/cpp2/opth-gen.awk:
404           added
405         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
406           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
407           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
408           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
409           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
410           support/cpp2/diagnostic.h, support/cpp2/except.h,
411           support/cpp2/hwint.h, support/cpp2/input.h,
412           support/cpp2/intl.h, support/cpp2/move-if-change,
413           support/cpp2/opts.c, support/cpp2/opts.h,
414           support/cpp2/output.h, support/cpp2/prefix.c,
415           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
416           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
417           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
418           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
419           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
420           support/cpp2/version.c:
421           modified
422         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
423           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
424           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
425           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
426           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
427           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
428           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
429           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
430           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
431           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
432           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
433           moved
434         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
435           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
436           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
437           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
438           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
439           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
440           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
441           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
442           support/cpp2/hashtable.h, support/cpp2/line-map.c,
443           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
444           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
445           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
446           support/cpp2/system.h:
447           deleted / moved
448
449 2006-12-31 Borut Razem <borut.razem AT siol.net>
450
451         * configure.in, configure: fixed bug #1538756: configure dies if bison
452           and flex are not installed, 2nd try
453
454 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
455
456         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
457         400.x for better code in RFE 899102
458
459 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
460
461         * src/SDCCpeeph.c (deadMove),
462         * src/port.h,
463         * src/mcs51/peep.h: renamed 'op' by 'reg'
464         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
465         (scan4op): small change for removeDeadMove(), added support for
466         'callee saves' and/or PACLL function calls,
467         (removeDeadMove): added, removes superflous 'mov r%1,%2',
468         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
469         left in new dispatcher mcs51DeadMove()
470         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
471         removeDeadMove()
472         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
473
474 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
475
476         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
477           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
478
479 2006-12-30 Borut Razem <borut.razem AT siol.net>
480
481         * support/cpp2/spacs.h: deleted from svn
482         * configure.in, configure: fixed bug #1538756: configure dies if bison
483           and flex are not installed
484
485 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
486
487         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
488           with this z80 passes printf float test when enabled
489         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
490
491 2006-12-28 Borut Razem <borut.razem AT siol.net>
492
493         * support/cpp2/config.in, support/cpp2/configure.in,
494           support/cpp2/configure, support/cpp2/Makefile.in:
495           fix for the solaris build
496
497 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
498
499         * src/SDCC.y (type_specifier2, pointer),
500         * src/SDCCsymt.h,
501         * src/SDCCsymt.c (mergeSpec, checkSClass),
502         * support/Util/SDCCerr.c,
503         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
504         * support/valdiag/valdiag.py: Allow test cases to specify
505           required language standard
506         * support/valdiag/tests/restrict.c: New file to test restrict keyword
507         * support/valdiag/tests/tentdecl.c: Supress empty source file error
508
509 2006-12-27 Borut Razem <borut.razem AT siol.net>
510
511         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
512         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
513           mbchar removed
514         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
515           fixed for borland C
516         * support/cpp2/libiberty/Makefile.bcc: updated
517         * src/pic16/main.c: fixed #pragma udata handling
518         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
519
520 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
521
522         * src/SDCCpeeph.c: made labelHashEntry global,
523         made pcDistance, FBYNAME static,
524         (pcDistance): made static, use isComment and isLabel,
525         (deadMove): added,
526         (getLabelRef): added, extracted from labelRefCount(),
527         (labelRefCount): use new getLabelRef(),
528         (callFuncByName): made static, added deadMove,
529         use isComment and isLabel,
530         (newPeepRule): made static, set isLabel,
531         (isLabelDefinition): added parameter isPeepRule to allow '%' in
532         labels from peephole rules,
533         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
534         when isComment or isLabel is set
535         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
536         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
537         to make them global
538         * src/mcs51/peep.h: added
539         * src/mcs51/peep.c: added, implements mcs51DeadMove()
540         * src/port.h: added peep->deadMove to port structure
541         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
542         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
543         deadMove, finally removed no. 1 and 2
544         * src/mcs51/gen.c,
545         * src/pic/gen.c,
546         * src/z80/gen.c,
547         * src/z80/ralloc.c,
548         * src/pic16/gen.c,
549         * src/ds390/gen.c,
550         * src/hc08/gen.c: mark lines with isComment or isLabel
551         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
552         * .version,
553         * sdcc.spec: bumped version to 2.6.3
554
555 2006-12-26 Borut Razem <borut.razem AT siol.net>
556
557         * support/cpp2/Makefile.in: added dependency on options.h
558         * configure: regenerated
559         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
560         * support/cpp2/Makefile.in: added vasprintf.c
561
562 2006-12-25 Borut Razem <borut.razem AT siol.net>
563
564         * SDCPP synchronized with GCC CPP release version 3.4.6,
565           the latest release before 4.x:
566         * support/cpp2/Makefile.in, support/cpp2/config.h,
567           support/cpp2/configure, support/cpp2/configure.in,
568           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
569           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
570           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
571           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
572           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
573           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
574           support/cpp2/cpptrad.c, support/cpp2/except.h,
575           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
576           support/cpp2/hwint.h, support/cpp2/intl.h,
577           support/cpp2/line-map.c, support/cpp2/line-map.h,
578           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
579           support/cpp2/output.h, support/cpp2/prefix.c,
580           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
581           support/cpp2/system.h, support/cpp2/version.c:
582           modified
583         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
584           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
585           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
586           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
587           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
588           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
589           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
590           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
591           support/cpp2/move-if-change, support/cpp2/opts.c,
592           support/cpp2/opts.h, support/cpp2/opts.sh,
593           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
594           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
595           support/cpp2/win32, support/cpp2/win32/dirent.c,
596           support/cpp2/win32/dirent.h:
597           added
598         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
599         * support/cpp2/sdcpp.h: renamed from sdcc.h
600         * sdcppinit.c: deleted
601
602 2006-12-23 Borut Razem <borut.razem AT siol.net>
603
604         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
605           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
606           preproc.c: an other try to fix bug #982435: introduced
607           -pedantic-parse-number command line option and pedantic_parse_number
608           pragma
609
610 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
611
612         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
613            BSEG handling,
614           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
615            corrected overlayed areax addresses, warn about memory overlaps
616         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
617         * src/avr/main.c,
618         * src/ds390/main.c,
619         * src/hc08/main.c,
620         * src/mcs51/main.c,
621         * src/pic16/main.c,
622         * src/pic/main.c,
623         * src/xa51/main.c,
624         * src/z80/main.c,
625         * src/port.h: added xabs_name and iabs_name
626         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
627           (glue, emitMaps): create and emit maps d_abs and i_abs
628         * src/SDCCglue.h: cosmetic changes
629         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
630         * src/SDCCmem.h,
631         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
632           (allocDefault): put absolute, initialized globals in them
633         * support/regression/tests/absolute.c: added absolute bdata test
634         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
635
636 2006-12-20 Borut Razem <borut.razem AT siol.net>
637
638         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
639         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
640           added regression test for bug #982435
641
642 2006-12-18 Borut Razem <borut.razem AT siol.net>
643
644         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
645         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
646           small cosmetic changes
647         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
648         * support/regression/tests/bug-1351710.c: added regression test
649
650 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
651
652         * doc/sdccman.lyx: added the long missed iCode table
653           "<where is figure II?>", added links to wiki
654
655 2006-12-17 Borut Razem <borut.razem AT siol.net>
656
657         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
658           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
659           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
660           unified table driven pragma handling, pragma argument type checking
661         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
662           current one - version 1.1.3
663         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
664
665 2006-12-13 Raphael Neider <rneider AT web.de>
666
667         * src/pic/device.h: removed AssignedMemory structure and macros
668         * src/pic/device.c: removed global finalMapping (linker assigns
669             memory locations),
670           (register_map): add SFRs to remembered memRanges
671           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
672           assignFixedRegisters,assignRelocatableRegisters): removed,
673           (setMaxRAM,validAddress): adapted accordingly,
674           (pic14_hasSharebank,pic14_getSharedStack): only report and use
675             reasonably sized sharebanks,
676         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
677           (allDefsOutOfRange): removed unused code,
678         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
679             handling
680         * src/pic/pcode.c (register_reassign): removed recursion warning,
681             fired far too often,
682         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
683             to use existing pic14_stringInSet() to avoid duplicate symbols,
684             tidied up the code a bit,
685           (pic14printLocals): added in symmetry to printExterns, replaces
686             writeUsedRegs more or less,
687           (picglue): call new pic14_printLocals(),
688         * device/include/pic/pic*.h: removed #pragma memmap directives,
689             information gathered from include/pic/pic14devices.txt
690         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
691
692 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
693
694         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
695
696 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
697
698         * device/include/mcs51/cc2430.h: fixed missing ';'
699
700 2006-12-10 Raphael Neider <rneider AT web.de>
701
702         * device/lib/pic16/libc/stdio/vfprintf.c,
703         * device/lib/pic16/libc/stdio/printf_small.c,
704         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
705           char arguments, as char varargs are cast to int by the caller,
706           hopefully fixes #1604915 (other device libraries are still affected)
707
708 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
709
710         * src/mcs51/ralloc.c (packRegsForAssign),
711         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
712
713 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
714
715         * device/include/malloc.h: removed init_dynamic_memory
716         * device/lib/malloc.c: made init_dynamic_memory static and automatically
717           call it once from malloc. Also use _sdcc_heap[] from _heap.c
718         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
719         * device/lib/libsdcc.lib,
720         * device/lib/Makefile.in,
721         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
722         * doc/sdccman.lyx: documented use of new _heap.c
723         * support/regression/tests/malloc.c: removed init_dynamic_memory
724         * src/cdbFile.c(spacesToUnderscores): new function,
725           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
726           1068030
727         * device/include/tinibios.h: removed defines for putchar and getchar
728         * device/lib/ds390/Makefile.in: added putchar.c
729         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
730
731 2006-12-09 Borut Razem <borut.razem AT siol.net>
732
733         * support/cpp2/sdcc.h: prevent multiple inclusion
734         * support/cpp2/options.h: deleted
735
736 2006-12-08 Borut Razem <borut.razem AT siol.net>
737
738         * support/cpp2/sdcc.h: removed x*alloc() macros
739         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
740         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
741           support/cpp2/sdcpp.sdc: x*alloc files added to the project
742         * support/cpp2/system.h: moved #include "sdcc.h"
743         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
744           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
745           added
746         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
747           -funsigned-char options
748         * support/cpp2/sdcppmain.c: fixed bug 1611411
749
750 2006-12-07 Borut Razem <borut.razem AT siol.net>
751
752         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
753           directive
754
755 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
756
757         * src/SDCCsymt.c (addDecl): fixed bug 1609244
758         * src/SDCCmain.c (linkEdit): fixed bug 1609279
759         * doc/sdccman.lyx,
760         * .version: bumped to 2.6.2 because a) it's been a while
761           b) the linker sources have moved c) the preprocessor is upgraded
762
763 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
764
765         * support/regression/tests/snprintf.c: some checks
766         * lib/src/printf_large.c: %bc: read char instead of int from stack
767
768 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
769
770         * device/include/mcs51/cc2430.h: inserted _XPAGE
771
772 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
773
774         * device/include/mcs51/cc2430.h: added
775
776 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
777
778         * device/include/asm/default/features.h,
779         * device/include/asm/ds390/features.h,
780         * device/include/mcs51/at89s53.h,
781         * device/include/ser.h,
782         * device/include/ser_ir.h,
783         * device/include/serial.h: changed keywords to double underscore variants,
784           fixes bug 1590261 some more, thanks Steven Borley
785
786 2006-12-01 Raphael Neider <rneider AT web.de>
787
788         * src/pic/pcode.c (register_reassign): do not crash on recursive code
789           but emit warning (recursion is not supported for pic14)
790
791 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
792
793         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
794         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
795
796 2006-11-30 Raphael Neider <rneider AT web.de>
797
798         * src/pic/device.c (dump_sfr): always emit symbols
799         * src/pic/glue.c (pic14printPublics): fixed typo
800
801 2006-11-30 Raphael Neider <rneider AT web.de>
802
803         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
804           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
805           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
806            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
807            a sharebank, use a non-shared bank for the stack if none available
808         * src/pic/device.h (struct memRange): added linked list next field,
809           added prototypes for above functions
810         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
811           (typeRegWithIdx): accept fixed and unfixed stack registers
812         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
813           the stack, handle shared and banked stack (except for WSAVE),
814           (insertBankSel): removed useless optimization (will never fire),
815           (FixRegisterBanking): added optimization for devices with only one
816           possibly aliased bank of memory, like 16f84
817         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
818           devices have no SHAREBANK in the linker script
819         * device/include/pic/pic14devices.txt: documented memmap
820         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
821
822 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
823
824         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
825           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
826           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
827           genhc08Code): switched most of the D (debug) macros to DD (detailed
828           debug) macros to better control clutter in the generated .asm file.
829         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
830           genRightShift): fixed bug with non-constant bit shift stored to
831           a volatile result (SF Open Discussion forum thread #1616749).
832           Single byte case is not yet optimized.
833
834 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
835
836         * device/include/asm/mcs51/features.h,
837         * device/include/malloc.h,
838         * device/include/stdio.h: changed keywords to double underscore variants,
839           fixes bug 1590261
840
841 2006-11-27 Borut Razem <borut.razem AT siol.net>
842
843         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
844           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
845           support/cpp2/output.h, support/cpp2/cppinit.c,
846           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
847           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
848           support/cpp2/cppdefault.c, support/cpp2/system.h,
849           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
850           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
851           support/cpp2/prefix.c, support/cpp2/except.h,
852           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
853           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
854           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
855           support/cpp2/version.c, support/cpp2/cppmain.c,
856           support/cpp2/version.h, support/cpp2/hashtable.c,
857           support/cpp2/cpperror.c:
858           synchronized with GCC CPP release version 3.3.6,
859           the latest where cppmain.c still exists.
860         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
861           support/cpp2/sdcppinit.c: added
862
863 2006-11-27 Borut Razem <borut.razem AT siol.net>
864
865         * support/cpp2/cpplex.c:
866           fixed _asm ... _endasm handling bug, introduce with GCC CPP
867           synchronization
868         * support/cpp2/cpplib.c: removed definitions of unused variables
869
870 2006-11-26 Borut Razem <borut.razem AT siol.net>
871
872         * support/cpp2/libiberty.h: commented out x*alloc() declarations
873           since they are redefined by macros in support/cpp2/sdcc.h
874         * support/cpp2/sdcc.h: x*alloc macro redefinition
875
876 2006-11-25 Borut Razem <borut.razem AT siol.net>
877
878         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
879           support/cpp2/configure, support/cpp2/Makefile.in,
880           support/cpp2/cppfiles.c, support/cpp2/output.h,
881           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
882           support/cpp2/config.h, support/cpp2/cpplib.h,
883           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
884           support/cpp2/cppdefault.c, support/cpp2/config.in,
885           support/cpp2/system.h, support/cpp2/cpplex.c,
886           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
887           support/cpp2/cppdefault.h, support/cpp2/prefix.c
888           support/cpp2/hwint.h, support/cpp2/mbchar.h,
889           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
890           support/cpp2/configure.in, support/cpp2/intl.h,
891           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
892           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
893           support/cpp2/version.c, support/cpp2/cppmain.c,
894           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
895           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
896           support/cpp2/cpperror.c,
897           support/cpp2/libiberty/safe-ctype.c,
898           support/cpp2/libiberty/safe-ctype.h,
899           support/cpp2/libiberty/splay-tree.c,
900           support/cpp2/libiberty/obstack.c,
901           support/cpp2/libiberty/lbasename.c,
902           support/cpp2/libiberty/splay-tree.h,
903           support/cpp2/libiberty/obstack.h:
904           synchronized with GCC CPP release version 3.2.3,
905           the latest before integration of cpp into gcc
906         * support/cpp2/except.h, support/cpp2/line-map.c,
907           support/cpp2/line-map.h,
908           support/cpp2/libiberty/hex.c,
909           support/cpp2/libiberty/concat.c,
910           support/cpp2/libiberty/filenames.h: added
911         * support/cpp2/intl.c: deleted
912
913 2006-11-24 Borut Razem <borut.razem AT siol.net>
914
915         * src/SDCC.y: enabled compilation of empty source file
916         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
917           "ISO C forbids an empty source file"
918         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
919           if all the code is ifdefed out.
920
921 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
922
923         * src/hc08/gen.c (genPcall): fix for bug #1601032
924
925 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
926
927         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
928         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
929         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
930         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
931         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
932         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
933         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
934         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
935         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
936         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
937         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
938         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
939         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
940         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
941         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
942           Renamed to all upper case as per the standard set by SiLabs
943
944 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
945
946         * device/include/mcs51/C8051F520.h: new, added
947         * device/include/mcs51/compiler.h: added link about predefined macros
948
949 2006-11-23 Raphael Neider <rneider AT web.de>
950
951         * src/regression/Makefile: add -L path to fresh library
952         * src/regression/simulate: emphasize FAILED output
953         * src/regression/create_stc: output _failures from gpsim
954         * src/regression/compare4.c,
955         * src/regression/rotate6.c: fixed char literals,
956           all compile, all run =8-D
957
958         * src/pic/pcode.h: added isPCASMDIR macro
959         * src/pic/gen.c (genAnd): fixed bit offset
960         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
961           packBits): unified register numbering schemes,
962           (newReg): do not insert stack registers into hash table,
963           (initStack): unpinned pseudo stack, simplified,
964           (typeRegWithIdx): fixed retrieval of stack registers,
965         * src/pic/pcode.c (addpCodeComment,sameBank): added,
966           (pCodeReplace): removed invalid assertion,
967           (insertPCodeInstruction): fixed newly added labels,
968           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
969           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
970           DumpFlow): removed unsed (broken?) code,
971           (insertBankSel): prevent STATUS from being BANKSELed,
972           (FixRegisterBanking): rewritten from scratch, implemented generic
973             optimizations (suppress BANKSELs to same register and to registers
974             present in all banks),
975           (AnalyzeBanking): update flow after BANKSELection
976
977         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
978             sharebank, let linker place it, mark STKxx symbols as emitted
979
980 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
981
982         * src/regression/arrays.c,
983         * src/regression/bank1.c,
984         * src/regression/bool2.c,
985         * src/regression/compare7.c,
986         * src/regression/compare8.c,
987         * src/regression/compare9.c,
988         * src/regression/compare10.c,
989         * src/regression/configword.c,
990         * src/regression/for.c,
991         * src/regression/mult1.c,
992         * src/regression/pointer1.c,
993         * src/regression/rotate6.c,
994         * src/regression/string1.c,
995         * src/regression/struct1.c,
996         * src/regression/Makefile: make PIC14 regression tests run again
997           (3 fail, 6 won't compile)
998
999 2006-11-21 Raphael Neider <rneider AT web.de>
1000
1001         * device/include/pic16/pic18f4550.h,
1002         * device/include/pic16/pic18f4455.h,
1003         * device/lib/pic16/libdev/pic18f4550.c,
1004         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
1005         * configure.in: removed superfluous closing bracket
1006
1007 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1008
1009         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
1010           always positive.
1011
1012 2006-11-21 Raphael Neider <rneider AT web.de>
1013
1014         * src/pic/device.{c,h}: added pic14_getPIC()
1015         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
1016           (genAnd): added PIC code for one case, fixes #1597044
1017         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
1018           SFRs that are present in all banks (e.g., STATUS)
1019
1020 2006-11-20 Raphael Neider <rneider AT web.de>
1021
1022         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
1023           INCFSZ/INCFSZW and declared them as changing Z bit,
1024           (insertPCodeInstruction): correctly invert the above instructions,
1025           fixes #1599333,
1026           (DoBankSelect): don't panic on po_immediates
1027
1028 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1029
1030         * as/link/aslink.h,
1031         * as/link/mcs51/lkihx.c (newArea),
1032         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
1033         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
1034
1035 2006-11-11 Raphael Neider <rneider AT web.de>
1036
1037         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
1038           bitfield symbols, fixes #1579535 (once more...).
1039
1040 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1041
1042         * support/regression/generate-cases.py,
1043         * support/regression/fwk/include/testfwk.h,
1044         * support/regression/fwk/lib/testfwk.c: used code pointers,
1045           (about 50kByte less code generated for mcs51)
1046
1047 2006-11-06 Borut Razem <borut.razem AT siol.net>
1048
1049         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1050           debugger/mcs51/configure: fixed failed check because the function
1051           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
1052           who submitted the patch for gpsim.
1053         * debugger/mcs51/configure.in: removed the result message
1054         * debugger/mcs51/Makefile.in: fixed the config.status warning
1055           "... seems to ignore the --datarootdir setting"
1056
1057 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1058
1059         * device/include/mcs51/c8051f020.h,
1060         * device/include/mcs51/c8051f040.h,
1061         * device/include/mcs51/c8051f060.h,
1062         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
1063         * src/z80/gen.c (gencjneshort),
1064         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
1065
1066 2006-10-31 Borut Razem <borut.razem AT siol.net>
1067
1068         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1069           debugger/mcs51/configure: get readline version
1070
1071 2006-10-30 Borut Razem <borut.razem AT siol.net>
1072
1073         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
1074         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1075           debugger/mcs51/configure: locate readline even when cross compiling
1076         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
1077
1078 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1079
1080         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
1081           serial port.
1082
1083 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1084
1085         * device/include/malloc.h,
1086         * device/lib/calloc.c,
1087         * device/lib/free.c,
1088         * device/lib/malloc.c,
1089         * device/lib/realloc.c: moved definition of struct into sources
1090         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
1091
1092 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1093
1094         * as/asx8051.dsp: corrected output directories
1095         * as/link/hc08: new directory for hc08 linker
1096         * as/hc08/aslink.h,             as/link/aslink.h,
1097         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
1098         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
1099         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
1100         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
1101         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
1102         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
1103         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
1104         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
1105         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
1106         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
1107         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
1108         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
1109         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
1110         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
1111         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
1112         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
1113         * as/link/hc08/conf.mk,
1114         * configure,
1115         * configure.in,
1116         * Makefile.in,
1117         * sdcc.dsw: moved hc08 linker to as/link/hc08
1118         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
1119         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
1120         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
1121         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
1122         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
1123         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
1124         * as/link/mcs51/aslink.dsp,
1125         * as/link/mcs51/Makefile.in: factored out the common files
1126         * as/hc08/lkstore.c: deleted, use the one already in as/link/
1127         * as/clean.mk: extra cleaning common files
1128         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
1129         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
1130         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
1131
1132 2006-10-29 Raphael Neider <rneider AT web.de>
1133
1134         * src/pic/ralloc.c (newReg): create aliases for registers with
1135           multiple names to fix #1579535 and #1584001,
1136           (regWithIdx,dirregWithName): resolve aliases on lookup
1137         * src/pic/pcode.c (DoBankSelect): die with error message on failing
1138           bankselect
1139         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
1140           to prevent build errors on small devices
1141
1142 2006-10-28 Raphael Neider <rneider AT web.de>
1143
1144         * src/pic/gen.c (genFunction,genCall): drop "same code page"
1145           assumption within interrupt handlers, fixes #1584940
1146         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
1147           "emitted" to avoid emitting them again in udata
1148
1149 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1150
1151         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1152         Removed.
1153
1154 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1155
1156         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1157         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
1158         on/off CR to CRLF conversion.
1159
1160 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1161
1162         * doc/sdccman.lyx: updated IRQ section
1163
1164 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1165
1166         * device/lib/serial_io.c: removed
1167         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
1168         replacements for serial_io.c
1169
1170 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
1171
1172         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
1173
1174 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1175
1176         * device/lib/serial_io.c: Default putchar() and getchar() for
1177           mcs51 uses serial port.
1178
1179 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
1180
1181         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
1182
1183 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1184
1185         * support/regression/ports/mcs51/support.c: smaller
1186         _sdcc_external_startup()
1187         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
1188
1189 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
1190
1191         * device/lib/gbz80/crt0.s,
1192         * device/lib/gbz80/crt0_rle.s,
1193         * device/lib/gbz80/div.s,
1194         * device/lib/gbz80/fstubs.s,
1195         * device/lib/gbz80/heap.s,
1196         * device/lib/gbz80/mul.s,
1197         * device/lib/gbz80/putchar.s,
1198         * device/lib/gbz80/stubs.s,
1199         * device/lib/z80/crt0.s,
1200         * device/lib/z80/crt0_rle.s,
1201         * device/lib/z80/div.s,
1202         * device/lib/z80/fstubs.s,
1203         * device/lib/z80/heap.s,
1204         * device/lib/z80/mul.s,
1205         * device/lib/z80/putchar.s,
1206         * device/lib/z80/stubs.s: reverted, I was mistaken
1207
1208 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1209
1210         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
1211         * support/regression/ports/mcs51/support.c: removed race
1212         condition on TI in _putchar allowing to use serial port mode 0
1213
1214 2006-10-20 Borut Razem <borut.razem AT siol.net>
1215
1216         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
1217
1218 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
1219
1220         * device/lib/gbz80/crt0.s,
1221         * device/lib/gbz80/crt0_rle.s,
1222         * device/lib/gbz80/div.s,
1223         * device/lib/gbz80/fstubs.s,
1224         * device/lib/gbz80/heap.s,
1225         * device/lib/gbz80/mul.s,
1226         * device/lib/gbz80/putchar.s,
1227         * device/lib/gbz80/stubs.s,
1228         * device/lib/z80/crt0.s,
1229         * device/lib/z80/crt0_rle.s,
1230         * device/lib/z80/div.s,
1231         * device/lib/z80/fstubs.s,
1232         * device/lib/z80/heap.s,
1233         * device/lib/z80/mul.s,
1234         * device/lib/z80/putchar.s,
1235         * device/lib/z80/stubs.s: removed all leading underscores from area names
1236
1237 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
1238
1239         * support/regression/ports/mcs51/support.c: use highest baudrate so the
1240           regression tests are not waiting in the simulator for simulated
1241           transmission of debug output
1242
1243 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1244
1245         * device/lib/printf_large.c: slightly smaller
1246         * doc/sdccman.lyx: do not use spaces within html links
1247
1248 2006-10-16 Borut Razem <borut.razem AT siol.net>
1249
1250         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
1251           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
1252           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
1253           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
1254           debugger/mcs51/configure:
1255           [ 1185668 ] add gnu readline support to sdcdb - enabled
1256
1257 2006-10-16 Raphael Neider <rneider AT web.de>
1258
1259         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
1260           fixes #1577882, removes close to all banking optimizations
1261
1262 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
1263
1264         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
1265           variables in code memory
1266         * support/regression/tests/absolute.c: added test for this
1267
1268 2006-10-15 Raphael Neider <rneider AT web.de>
1269
1270         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
1271           devices,
1272           (BankSelect): emit BANKSEL before touching linker-placed regs,
1273           fixes #1570934
1274
1275 2006-10-10 Raphael Neider <rneider AT web.de>
1276
1277         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
1278         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
1279         * src/pic/main.c (_pic14_parseOptions),
1280         * src/pic/main.h: mostly reverted to previous state, now use results
1281             from SDCCmain.c's argument parsing
1282
1283 2006-10-10 Borut Razem <borut.razem AT siol.net>
1284
1285         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
1286           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
1287           [ 1185668 ] add gnu readline support to sdcdb -
1288           prepared for READLINE, not enabled yet,
1289           thanks to <tal.bav AT gmail.com>
1290
1291 2006-10-10 Raphael Neider <rneider AT web.de>
1292
1293         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
1294         * src/pic16/devices.inc,
1295         * device/include/pic16 (pic18f[24]620.h),
1296         * device/include/pic18fregs.h,
1297         * device/lib/pic16/pics.all,
1298         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
1299             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
1300             Gary Plumbridge and Anton Strobl
1301
1302 2006-10-10 Raphael Neider <rneider AT web.de>
1303
1304         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
1305           --stack-siz=NUM options to configure the argument passing stack
1306         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
1307         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
1308           (pic14_getSharebankSize): obey --stack-siz=NUM,
1309           (pic14_getSharebankAddress): obey --stack-loc=NUM
1310
1311 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1312
1313         * doc/sdccman.lyx: added to the manual
1314         * doc/figures/ddd_example.png: added (neither pdflatex nor
1315         most browsers seem to like the .eps file)
1316
1317 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
1318
1319         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
1320         to /tmp and /var/tmp acc. LSB
1321         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
1322         RESULT_TYPE_IFX
1323         * support/regression/tests/onebyte.c: added test
1324
1325 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1326
1327         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
1328
1329 2006-10-05 Borut Razem <borut.razem AT siol.net>
1330
1331         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
1332           thanks to dfulab:
1333           - sdcc.dsw: changed property eol-style to CRLF
1334           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
1335
1336 2006-10-04 Raphael Neider <rneider AT web.de>
1337
1338         * device/include/pic/{pic16f84.h,pic16f84a.h},
1339         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
1340           from patch #1522504, thanks to Robas Teodor
1341
1342 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
1343
1344         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
1345           fixes bug 1566015
1346
1347 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
1348
1349         * src/pic16/glue.c (pic16emitMaps),
1350         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
1351         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
1352         * device/lib/pic16/libc/string/memcpypgm2ram.c,
1353         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
1354           Philipp Krause
1355         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
1356         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
1357
1358 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1359
1360         * support/librarian/sdcclib.c: Added option -l.
1361         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
1362           usage totals.
1363         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
1364           using Windows command prompt.
1365
1366 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1367
1368         * device/lib/libsdcc.lib: added module rand
1369         * src/ds390/ralloc.c (rematStr),
1370         * src/hc08/ralloc.c (rematStr),
1371         * src/mcs51/ralloc.c (rematStr),
1372         * src/z80/ralloc.c (rematStr): made output more consistent
1373         * src/mcs51/gen.c: cosmetic changes
1374
1375 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1376
1377         * src/port.h: added mem.cabs_name to PORT
1378         * src/ds390/main.c,
1379         * src/hc08/main.c,
1380         * src/mcs51/main.c,
1381         * src/pic16/main.c,
1382         * src/pic/main.c,
1383         * src/xa51/main.c,
1384         * src/z80/main.c: added cabs_name initializers
1385         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
1386           constants
1387           (emitMaps): emit absolutes in code memory into cabs_name
1388         * src/SDCCmem.c,
1389         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
1390         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
1391         * support/regression/fwk/include/testfwk.h: added define for at
1392         * support/regression/tests/absolute.c: added, new
1393
1394 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
1395
1396         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
1397           optimizations, see also patch 887161 by Stas Sergeev
1398         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
1399           to be necessary anymore,
1400           (102, 103, 104, 127): renamed all occurances of bp to _bp
1401
1402 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
1403
1404         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
1405           thanks Weston T. Schmidt for patch 1555221
1406         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
1407         * src/SDCCicode.c(geniCodeMultiply): small optimization
1408
1409 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1410
1411         * device/include/stdlib.h: added rand prototypes
1412         * device/lib/rand.c: new, added
1413         * device/lib/Makefile.in: added rand.c
1414         * src/z80/peeph.def,
1415         * src/z80/peeph-gbz80.def,
1416         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
1417
1418 2006-09-20 Raphael Neider <rneider AT web.de>
1419
1420         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
1421
1422 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
1423
1424         * as/link/aslink.h: cosmetic changes
1425         * as/link/mcs51/Makefile.in,
1426         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
1427
1428 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
1429
1430         * as/link/aslink.h,
1431         * as/link/mcs51/aslink.h,
1432         * as/link/z80/aslink.h: merged and moved to as/link/
1433         * as/link/lkstore.c,
1434         * as/link/mcs51/lkstore.c: moved to as/link/
1435         * as/link/clean.mk: remove *.o
1436         * as/link/mcs51/alloc.h: deleted
1437         * as/link/mcs51/lkarea.c: added lnksect prototype
1438         * as/link/mcs51/lkdata.c,
1439         * as/link/mcs51/lklex.c,
1440         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
1441         * as/link/mcs51/lkmem.c,
1442         * as/link/mcs51/lknoice.c: removed include strcmpi.h
1443         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
1444         * as/link/mcs51/aslink.dsp,
1445         * as/link/mcs51/Makefile.aslink,
1446         * as/link/mcs51/Makefile.bcc,
1447         * as/link/mcs51/Makefile.in: updated for moved files
1448         * as/link/z80/lkarea.c,
1449         * as/link/z80/lkhead.c,
1450         * as/link/z80/lklex.c,
1451         * as/link/z80/lklibr.c,
1452         * as/link/z80/lklist.c,
1453         * as/link/z80/lkmain.c,
1454         * as/link/z80/lkrloc.c,
1455         * as/link/z80/lksym.c: synced with mcs51
1456         * as/link/z80/lkdata.c,
1457         * as/link/z80/lkeval.c,
1458         * as/link/z80/lkihx.c,
1459         * as/link/z80/lks19.c: cosmetic changes
1460         * as/link/z80/Makefile.in,
1461         * as/link/z80/linkgbz80.dsp,
1462         * as/link/z80/linkz80.dsp: updated for moved files
1463
1464 2006-09-16 Borut Razem <borut.razem AT siol.net>
1465
1466         * debugger/mcs51/sdcdb.c: partially fixed
1467           [ 1203664 ] sdcdb fails to open files w. two "." periods
1468         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
1469           debugger/mcs51/symtab.h: fixed indenting
1470         * configure.in, configure: up to date with latest Maarten's changes
1471
1472 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
1473
1474         as/link/mcs51
1475         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
1476         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
1477         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
1478         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
1479         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
1480         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
1481         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
1482         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
1483         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
1484         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
1485         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
1486         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
1487         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
1488         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
1489         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
1490         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
1491         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
1492         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
1493         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
1494         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
1495         as/link/mcs51/alloc.h,
1496         as/link/mcs51/clean.mk,
1497         as/link/mcs51/conf.mk,
1498         as/link/mcs51/Makefile.bcc,
1499         as/link/mcs51/Makefile.in,
1500         as/link/mcs51/readme.390,
1501         as/link/mcs51/strcmpi.c,
1502         as/link/mcs51/strcmpi.h,
1503         as/mcs51/clean.mk,
1504         as/mcs51/Makefile.bcc,
1505         as/mcs51/Makefile.in,
1506         configure,
1507         Makefile.in,
1508         sdcc.dsw: moved mcs51 linker to as/link/mcs51
1509
1510 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
1511
1512         * as/link,
1513         * as/link/Makefile.in,
1514         * as/link/z80/linkgbz80.dsp,
1515         * as/link/z80/linkz80.dsp,
1516         * configure,
1517         * link,
1518         * link/clean.mk,
1519         * link/Makefile.in,
1520         * link/README,
1521         * link/z80,
1522         * link/z80/aslink.h,
1523         * link/z80/clean.mk,
1524         * link/z80/conf.mk,
1525         * link/z80/linkgbz80.dsp,
1526         * link/z80/linkz80.dsp,
1527         * link/z80/lkarea.c,
1528         * link/z80/lkdata.c,
1529         * link/z80/lkeval.c,
1530         * link/z80/lkgb.c,
1531         * link/z80/lkgg.c,
1532         * link/z80/lkhead.c,
1533         * link/z80/lkihx.c,
1534         * link/z80/lklex.c,
1535         * link/z80/lklibr.c,
1536         * link/z80/lklist.c,
1537         * link/z80/lkmain.c,
1538         * link/z80/lkrloc.c,
1539         * link/z80/lks19.c,
1540         * link/z80/lksym.c,
1541         * link/z80/Makefile.in,
1542         * Makefile.in,
1543         * sdcc.dsw: moved link/ to as/link/
1544
1545 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
1546
1547         * as/mcs51/i51mch.c (machine): fixed warning
1548
1549 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1550
1551         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
1552
1553 2006-09-09 Borut Razem <borut.razem AT siol.net>
1554
1555         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
1556           sdcdb WIN32 native port
1557         * src/clean.mk: fixed
1558
1559 2006-09-08 Borut Razem <borut.razem AT siol.net>
1560
1561         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
1562
1563 2006-09-08 Raphael Neider <rneider AT web.de>
1564
1565         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
1566         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
1567             to gplink to disable processor mismatch warning and to allow
1568             the use of devices with only aliased (shared) memory banks,
1569           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
1570
1571 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1572
1573         * doc/sdccman.lyx: Some re-formating plus example on using
1574           #pragma preproc_asm +/-
1575
1576 2006-09-07 Borut Razem <borut.razem AT siol.net>
1577
1578         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
1579           section
1580
1581 2006-09-06 Borut Razem <borut.razem AT siol.net>
1582
1583         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
1584           line at sdcc.nsi:153
1585         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
1586
1587 2006-09-05 Borut Razem <borut.razem AT siol.net>
1588
1589         * configure.in, configure: support for winsock2
1590         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
1591           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
1592           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
1593           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
1594           debugger/mcs51/symtab.h: sdcdb WIN32 native port
1595
1596 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
1597
1598         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
1599           and OP_DEFS
1600         * support/regression/tests/bug1551947.c: new, added
1601         * src/SDCCsymt.h: strings are char* not byte*
1602
1603 2006-09-05 Raphael Neider <rneider AT web.de>
1604
1605         * device/lib/pic16/libdev/pic18f4550.c,
1606           device/include/pic16/pic18f4550.h: added PORTD/TRISD
1607             declarations/definitions from patch #1520949
1608
1609 2006-09-05 Raphael Neider <rneider AT web.de>
1610
1611         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
1612           byte-aligned bitfields, fixes #1539278
1613
1614 2006-09-05 Raphael Neider <rneider AT web.de>
1615
1616         * src/pic/gen.c (genReceive): skip unreferenced arguments,
1617           fixes #1544120
1618
1619 2006-09-04 Borut Razem <borut.razem AT siol.net>
1620
1621         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
1622         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
1623           -mno-cygwin is a part of the compiler name
1624         * support/scripts/sdcc_mingw32: don't disable ucsim
1625
1626 2006-09-03 Borut Razem <borut.razem AT siol.net>
1627
1628         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
1629         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
1630
1631 2006-09-03 Raphael Neider <rneider AT web.de>
1632
1633         * src/pic/ralloc.c,
1634         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
1635           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
1636           fixes #1550049
1637
1638 2006-09-01 Borut Razem <borut.razem AT siol.net>
1639
1640         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
1641           to make ppc-osx happy
1642
1643 2006-08-31 Borut Razem <borut.razem AT siol.net>
1644
1645         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
1646         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1647         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1648         * support/regression/ports/ds390/spec.mk,
1649           support/regression/ports/mcs51/spec.mk,
1650           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
1651           To run regression tests in mingw environment:
1652           make DEV_NULL=NUL CC=gcc
1653
1654 2006-08-30 Borut Razem <borut.razem AT siol.net>
1655
1656         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
1657           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
1658           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
1659           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
1660           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
1661           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
1662           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
1663           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
1664           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
1665           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
1666           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
1667           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
1668           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
1669           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
1670           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
1671           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
1672           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
1673           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
1674           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
1675           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
1676           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
1677           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
1678           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
1679           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
1680           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
1681           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
1682           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
1683           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
1684           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
1685           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
1686           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
1687           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
1688           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
1689           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
1690           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
1691           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
1692           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1693           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
1694           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
1695           ucsim WIN32 native port
1696
1697 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1698
1699         * doc/sdccman.lyx: added note on dynamic memory heap initialization
1700
1701 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
1702
1703         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
1704         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
1705
1706 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
1707
1708         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
1709         * support/regression/tests/bug1546986.c: new, added
1710         * as/mcs51/.cvsignore,
1711         * debugger/mcs51/.cvsignore,
1712         * src/.cvsignore: deleted
1713
1714 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1715
1716         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
1717           definitions)
1718
1719 2006-08-20 Borut Razem <borut.razem AT siol.net>
1720
1721         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
1722           removed cl_listen_console::match(), cl_console::match(),
1723           restructured cl_commander::proc_input()
1724
1725 2006-08-16 Borut Razem <borut.razem AT siol.net>
1726
1727         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
1728           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
1729           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
1730
1731 2006-08-14 Borut Razem <borut.razem AT siol.net>
1732
1733         * support/regression/Makefile.in,
1734           support/regression/ports/pic14/gpsim.cmd,
1735           support/regression/ports/pic14/spec.mk,
1736           support/regression/ports/pic14/support.c:
1737           added pic14 regression test
1738
1739 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
1740
1741         * as/doc/asxhtm.html: documented changed ABS behaviour
1742         * as/doc/README: fixed some typos
1743
1744 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
1745
1746         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
1747           not defined on host
1748
1749 2006-08-12 Borut Razem <borut.razem AT siol.net>
1750
1751         * support/regression/fwk/include/testfwk.h,
1752           support/regression/fwk/lib/testfwk.c,
1753           support/regression/generate-cases.py,
1754           support/regression/Makefile.in:
1755           regression test framework does not depend on function pointers and
1756           variable arguments
1757
1758 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1759
1760         * device/include/stddef.h: c temporary hack to fix bug 1518273
1761
1762 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1763
1764         * device/include/mcs51/cc2510fx.h: added
1765         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
1766           to projects.
1767
1768 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1769
1770         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
1771         * as/z80/Makefile.in: added strcmpi.c
1772         * as/z80/z80adr.c: added upper case registers and lower case conditionals
1773         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
1774
1775 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
1776
1777         * device/lib/gbz80/asm_strings.s,
1778         * device/lib/gbz80/crt0_rle.s,
1779         * device/lib/gbz80/div.s,
1780         * device/lib/gbz80/mul.s,
1781         * device/lib/gbz80/shift.s,
1782         * device/lib/z80/asm_strings.s,
1783         * device/lib/z80/crt0_rle.s,
1784         * device/lib/z80/div.s,
1785         * device/lib/z80/mul.s,
1786         * device/lib/z80/shift.s: changed to all lower case menmonics except the
1787           flags which are all upper case
1788
1789 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1790
1791         * as/z80/asm.h: made CASE_SENSITIVE 1
1792         * link/z80/aslink.h: made CASE_SENSITIVE 1
1793         * src/z80/gen.c (throughout): made all conditionals upper case
1794         * support/regression/tests/bug1503067.c: new
1795
1796 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1797
1798         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
1799           (shiftIntoPair): added case 2 for PAIR_IY,
1800           (setupToPreserveCarry): replaced parameters with iCode and check if
1801            PAIR_DE is in use to fix bug 1399290,
1802           (genPlus, genMinus): updated call to setupToPreserveCarry
1803         * support/regression/tests/bug1399290.c: new
1804
1805 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
1806
1807         * device/lib/Makefile.in (Z80SOURCES): enabled float support
1808         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
1809         * src/ds390/gen.c (shiftRLong),
1810         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
1811         * src/mcs51/gen.c (sameReg): changed to sameByte,
1812           (xch_a_aopGet): new,
1813           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
1814            shiftRLong): fixed bug 1533966
1815         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
1816           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
1817         * support/regression/Makefile.in: disabled z80, enabled ucz80
1818         * support/regression/tests/float_trans.c: enabled test for z80 and host
1819         * support/regression/tests/shifts2.c: new, for testing bug 1533966
1820
1821 2006-08-01 Borut Razem <borut.razem AT siol.net>
1822
1823         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
1824           comparison is always false due to limited range of data type
1825           on PPC64 machine (openpower-linux1) where "char = unsigned char"
1826
1827 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
1828
1829         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
1830         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
1831         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
1832         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
1833
1834 2006-07-31 Borut Razem <borut.razem AT siol.net>
1835
1836         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
1837           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
1838           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
1839           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
1840           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
1841           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
1842           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
1843           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
1844           enable ucsim mingw compilation. Serial port is disabled,
1845           since it uses termios.h API, which is not available on native
1846           WIN32
1847
1848 2006-07-31 Borut Razem <borut.razem AT siol.net>
1849
1850         * Small Device C Compiler 2.6.0 released
1851         * support/scripts/sdcc.nsi: added FULL_DOC option
1852         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
1853
1854 2006-07-28 Borut Razem <borut.razem AT siol.net>
1855
1856         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
1857         * doc/INSTALL.txt: updated
1858
1859 2006-07-27 Borut Razem <borut.razem AT siol.net>
1860
1861         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
1862           device/lib/pic/libdev/Makefile.in: fixed bug
1863           [ 1438354 ] pic libsdcc: distclean doesn't work
1864         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
1865           device/lib/pic16/libio/Makefile.in: fixed bug
1866           [ 1438344 ] pic16 lib: clean doesn't work properly
1867         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
1868
1869 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
1870
1871         * device/lib/pic/libsdcc/fsdiv.c,
1872         * device/lib/pic/libsdcc/fsmul.c,
1873         * device/lib/pic16/libsdcc/float/fsdiv.c,
1874         * device/lib/pic16/libsdcc/float/fsmul.c,
1875         * device/lib/_fsdiv.c,
1876         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
1877         * support/regression/tests/bug1520966.c: added
1878         * doc/knownbugs.html: removed [ 1520966 ] from the list
1879
1880 2006-07-25 Borut Razem <borut.razem AT siol.net>
1881
1882         * configure.in, configure, sdccconf_in.h: fixed bug
1883           [ 1519095 ] regression test onebyte.c fails on ppc64 host
1884         * doc/knownbugs.html: removed [ 1519095 ] from the list
1885
1886 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
1887
1888         * doc/knownbugs.html: added, contains list of known bugs at release
1889         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
1890
1891 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1892
1893         * device/include/mcs51/compiler.h: added SFRX for xdata based special
1894           function registers and corrected defaults with additional warning
1895         * device/lib/malloc.c: cosmetic changes
1896         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
1897         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
1898           (fillGaps): and used it
1899
1900 2006-07-20 Raphael Neider <rneider AT web.de>
1901
1902         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
1903           output unless SDCCPICDEBUG is set
1904         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
1905           output if SILENT is set
1906
1907 2006-07-11 Borut Razem <borut.razem AT siol.net>
1908
1909         * doc/README.txt: updated
1910
1911 2006-07-10 Borut Razem <borut.razem AT siol.net>
1912
1913         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
1914           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
1915           in WIN32 installation
1916         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
1917           release candidate 1
1918
1919 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
1920
1921         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
1922         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
1923
1924 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
1925
1926         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
1927
1928 2006-07-06 Borut Razem <borut.razem AT siol.net>
1929
1930         * support/regression/tests/bitfields.c:
1931           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
1932         * support/regression/tests/constantRange.c:
1933           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
1934
1935 2006-07-04 Borut Razem <borut.razem AT siol.net>
1936
1937         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
1938           src/port.mk,
1939           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1940           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1941           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1942           reverted changes from 2006-07-03
1943         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
1944         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
1945           added CPPFLAGS, used by the host port
1946
1947 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
1948
1949         * support/regression/valdiag/tests/switch.c,
1950         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
1951         * support/regression/tests/libmullong.c: fixed for host
1952         * support/regression/ports/host/spec.mk: disable all warnings for host,
1953         SDCC runs with --less-pedantic too
1954
1955 2006-07-03 Borut Razem <borut.razem AT siol.net>
1956
1957         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
1958           defined CPPFLAGS
1959         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
1960         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1961           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1962           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1963           include ../port.mk
1964         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
1965           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1966           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1967           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
1968
1969 2006-07-02 Raphael Neider <rneider AT web.de>
1970
1971         * src/pic16/devices.inc,
1972         * device/include/pic16/pic18fregs.h,
1973         * device/include/pic16/pic18f4550.h,
1974         * device/lib/pic16/pics.all,
1975         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
1976
1977 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
1978
1979         * as/hc08/lkaomf51.c (OutputName),
1980         * as/mcs51/lkaomf51.c (OutputName),
1981         * as/z80/asmain.c (asmbl),
1982         * src/ds390/main.c (asmLineNodeFromLineNode),
1983         * src/hc08/ralloc.c (hc08_assignRegisters),
1984         * src/mcs51/main.c (asmLineNodeFromLineNode),
1985         * src/xa51/ralloc.c (checkRegMask),
1986         * src/xa51/gen.c (emitcode),
1987         * src/z80/gen.c (_emit2),
1988         * src/SDCCast.c (searchLitOp),
1989         * src/SDCCglobl.h,
1990         * support/packihx/packihx.c,
1991         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
1992         * src/ds390/gen.c (aopPutUsesAcc),
1993         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
1994         * support/regression/tests/libmullong.c (mullong_wrapper),
1995         * src/SDCCsymt.c (powof2),
1996         * src/SDCCast.c,
1997         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
1998         * src/SDCCsymt.h: added TYPE_TARGET_*
1999         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
2000         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
2001         SDCCast because 1) header problems 2) this is the right place
2002         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
2003         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
2004         prototype
2005
2006 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
2007
2008         * src/SDCCicode.h: removed buggy semicolon in unused macro
2009         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
2010         search for previous definiton of auto symbols too,
2011         (findPrevUse): fixed logic of emitWarnings
2012
2013 2006-06-26 Raphael Neider <rneider AT web.de>
2014
2015         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
2016           PCLATH and PCLATU on interrupts, potentially fixes #1505141
2017
2018 2006-06-25 Raphael Neider <rneider AT web.de>
2019
2020         * device/lib/pic/libm: NEW, added math library functions
2021         * device/lib/pic/libsdcc: NEW; added float support functions
2022         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
2023         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
2024           NEW, added math related headers
2025         * device/include/asm/pic/features.h: NEW
2026         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
2027           (popGet): allow larger offsets for AOP_PCODE,
2028           (genDataPointerSet): handle literals explicitly, more debug output,
2029           (genAssign): fixed for float using aopLiteral ;-)
2030         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
2031           GOTO initialisation routine
2032         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
2033           flag on registers, fixes #1469043 (local variables do not work)
2034         * src/pic/main.c (_pic14_do_link),
2035         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
2036           available
2037
2038 2006-06-25 Borut Razem <borut.razem AT siol.net>
2039
2040         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
2041           characters printed (not including the trailing '\0' used to end
2042           output to strings). Problem detected in regression test bug-927659.c.
2043           NOTE: printf() family functions should return int instead
2044           unsigned int!
2045         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
2046           specifier are printed as themselves
2047         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
2048           support flags, width and precision specifiers
2049
2050 2006-06-24 Borut Razem <borut.razem AT siol.net>
2051
2052         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
2053           to the list of sdcc tagrets not supporting bit type
2054         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
2055           testfor pic16 due to bug:
2056           [ 1511794 ] pic16: regression test bug-895992.c fails
2057
2058 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
2059
2060         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
2061         * src/SDCCglue.c (initPointer), fixed bug 1496419
2062         * support/regression/tests/bug1496419.c: new, added
2063
2064 2006-06-22 Borut Razem <borut.razem AT siol.net>
2065
2066         * support/regression/ports/pic16/support.c: use gpsim usart module from
2067           libgpsim_modules library
2068
2069 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2070
2071         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
2072         IP0H to IPH0.
2073
2074 2006-06-19 Raphael Neider <rneider AT web.de>
2075
2076         * src/pic/glue.h,src/pic16/glue.h: added prototypes
2077         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
2078           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
2079           (pic14printExterns,pic14printPublics,pic16printPublics,
2080           pic16_printExterns): use new functions to emit symbols
2081           (picglue,pic16glue): emit publics before emitting externs
2082         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
2083           locally defined functions to avoid bug #1443651
2084         * support/regression/tests/bug-716242.c: removed pic16 workaround
2085         * support/regression/ports/pic16/spec.mk: ignore errors during build
2086
2087 2006-06-19 Raphael Neider <rneider AT web.de>
2088
2089         * src/pic/glue.h: added pic14aopLiteral prototype
2090         * src/pic/glue.c (pic14aopLiteral): return unsigned int
2091         * src/pic/gen.c: removed stdint.h dependency
2092           (aopGet): use Safe_strdup()
2093           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
2094           (genDataPointerSet): use pic14aopLiteral()
2095         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
2096           for pic16; thanks to Bernhard and Maarten
2097
2098 2006-06-18 Borut Razem <borut.razem AT siol.net>
2099
2100         * support/regression/tests/structflexarray.c: flexible array members
2101           not supported by gcc < 3
2102         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
2103           GUI tool by default
2104         * src/pic/gen.c: don't include [p]strdin.h on solaris
2105         * support/Util/pstdint.h: addad svn attributes
2106         * support/regression/tests/constantRange.c,
2107           support/regression/tests/rotate.c: include inttypes.h instead
2108           stdint.h on solaris, addad svn attributes
2109
2110 2006-06-18 Raphael Neider <rneider AT web.de>
2111
2112         * src/SDCCsymt.c (initCSupport): change return type of divschar to
2113           int for PIC16
2114         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
2115           (pic16_genMinusBits): simplified sign-extension
2116           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
2117             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
2118             adjusted to correctly handle mixed-signed operands, disabled
2119             now unused multiplciation routines
2120         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
2121           (assignResultValue): added argument denoting the size of the result
2122             as returned by the function (fixes upcasts in assigning from
2123             function calls: char foo(); int i = foo();)
2124           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
2125             function result to assignResultValue
2126           (genMult): disabled inlined multiplication code
2127           (genDiv): augmented to also handle the modulus operator, fixed to
2128             handle mixed-signed operands correctly
2129           (genMod): simply call genDiv, disabled unused code
2130           (genAssign): fixed missing (sign-)extension on result
2131         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
2132             valid char operands, allow signed operands for native code, added
2133             division and modulo operator handling
2134         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
2135
2136         As a consequence, onebyte.c (if split into two files) and muldiv.c
2137         pass regression tests.
2138
2139 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2140
2141         * doc/Makefile.in: two runs of makeindex seem needed to get
2142         correct page references in the index of sdccman.pdf
2143         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
2144
2145 2006-06-17 Borut Razem <borut.razem AT siol.net>
2146
2147         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
2148
2149 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2150
2151         * doc/sdccman.lyx: updated, added (porting source code, debugging),
2152         mentioned ec2drv and paulmon
2153
2154 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2155
2156         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
2157           consecutive abs areas
2158           (find_empty_space, allocate_space): added map to handle codemap or
2159            xdatamap,
2160           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
2161            absolute idata and xdata
2162         * as/mcs51/lkmem.c (summary2): updated legend
2163
2164 2006-06-16 Raphael Neider <rneider AT web.de>
2165
2166         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
2167
2168 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
2169
2170         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
2171           1208515
2172         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
2173
2174 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
2175
2176         * src/port.h (struct PORT): added field gp_tags, to hold the tag
2177         value of generic pointers,
2178         * src/avr/main.c,
2179           src/ds390/main.c,
2180           src/hc08/main.c,
2181           src/izt/i186.c,
2182           src/izt/tlcs900h.c,
2183           src/mcs51/main.c,
2184           src/pic/main.c,
2185           src/pic16/main.c,
2186           src/xa51/main.c,
2187           src/z80/main.c: PORT structure, added elements for gp_tags field,
2188         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
2189         fields in the PORT structure of each port,
2190         * src/SDCCast.c (decorateType): allow processing of generic pointers
2191         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
2192         S_FIXED symbols
2193
2194 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
2195
2196         * link/z80/lkgb.c,
2197         * link/z80/lkgg.c,
2198         * src/pic16/gen.c,
2199         * src/pic16/main.c,
2200         * src/pic16/pcode.c,
2201         * src/pic/main.c,
2202         * src/pic/pcoderegs.c,
2203         * src/SDCCicode.c,
2204         * src/SDCCmain.c,
2205         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
2206           bug 1504689 on minGW
2207
2208 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2209
2210         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
2211
2212 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
2213
2214         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
2215
2216 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
2217
2218         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
2219           for optimization
2220
2221 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
2222
2223         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
2224         to a char variable. Fixed bug #1504211
2225         * device/include/pic16/adc.h,
2226         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
2227         and fixed bug #1364390
2228
2229 2006-06-10 Borut Razem <borut.razem AT siol.net>
2230
2231         * CVSROOT: removed the CVS left-over
2232
2233 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2234
2235         * as/hc08/asmain.c (asexit),
2236         * as/hc08/lkmain.c (lkexit),
2237         * as/mcs51/asmain.c (asexit),
2238         * as/mcs51/lkmain.c (lkexit),
2239         * src/SDCCglue.c (DEFSETFUNC),
2240         * src/SDCCmain.c (linkEdit, assemble),
2241         * support/librarian/sdcclib.c (AddRel),
2242           replaced unlink() by standard C remove()
2243         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
2244         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
2245           gatherImplicitVariables): new, added to fix bug 608752,
2246           (createFunction): added gatherImplicitVariables()
2247         * src/SDCCast.h: added createRMW prototype
2248         * src/SDCCsymt.h (struct symbol): added infertype
2249         * support/regression/tests/bug608752.c: new, added
2250
2251 2006-06-10 Raphael Neider <rneider AT web.de>
2252
2253         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
2254           multibyte dummy reads (fixes #1503234)
2255
2256 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2257
2258         * device/include/mcs51/compiler.h: new, added header file to enable
2259           creating common sfr definition header files for different compilers
2260
2261 2006-06-05 Raphael Neider <rneider AT web.de>
2262
2263         * src/pic16/{pcode.h,genarith.c}:
2264           introduced pCodeOp combining any two pCodeOps (previously only
2265           two register operands could be combined), removed pcop2 from
2266           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
2267         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
2268         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
2269           rewritten to use new PO_TWO_OPS
2270         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
2271         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
2272           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
2273           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
2274           (pic16_get_op): embraced return arg to allow #define return(x),
2275             added new case for combined opcodes
2276           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
2277           (pic16_pCode2str,pic16_getRegFrompCodeOp,
2278            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
2279
2280 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
2281
2282         * src/SDCCval.c (checkConstantRange): added
2283         * src/SDCCval.h: added checkConstantRange
2284         * support/Util/SDCCerr.c,
2285         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
2286         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
2287         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
2288         * src/SDCCast.c (decorateType): added checkConstantRange,
2289         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
2290         can be emitted with the correct always true/false warning,
2291         added optimization for double '!';
2292         result of decorateType() must be assigned back to the tree, because
2293         decorateType() can change the tree
2294         * src/SDCCicode.c (geniCodeLogic),
2295         (geniCodeAssign): replaced new checkConstantRange, added warnings,
2296         (checkConstantRange): removed, it was only a fragment which never
2297         emitted a warning
2298         * src/SDCCsymt.c (computeType): fixed promotion for
2299         "-1 < (unsigned bit) b"
2300         * src/pic/ralloc.c (packRegsForAssign),
2301         * src/pic16/ralloc.c (packRegsForAssign),
2302         * src/hc08/ralloc.c (packRegsForAssign),
2303         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
2304         from mcs51
2305         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
2306         * support/regression/tests/constantRange.c: added
2307         * support/valdiag/tests/constantRange.c: added
2308         * support/valdiag/valdiag.py: added -DPORT_HOST=1
2309
2310 2006-06-02 Borut Razem <borut.razem AT siol.net>
2311
2312         * support/regression/ports/pic16/support.c: increase stack size
2313           to 255 bytes
2314         * support/regression/Makefile.in: sort tests by name so that the
2315           resutlts can be compared on different machines / platforms
2316
2317 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2318
2319         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
2320         * src/ds390/gen.c (emitLabel): new, added,
2321           (genDjnz): fixed stack overflow bug,
2322           (throughout): cosmetic changes to sync with mcs51/gen.c,
2323           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
2324         * src/mcs51/gen.c (genEndFunction): small optimization,
2325           (throughout): cosmetic changes to sync with ds390/gen.c
2326
2327 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2328
2329         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
2330           (_print_format): fixed printing pointers
2331         * src/mcs51/gen.c (emitLabel, movb): new, added,
2332           (genAssign): small optimization,
2333           (genDjnz): fixed stack overflow bug,
2334           (throughout): replaced sprintf with SNPRINTF,
2335           replaced mcs51_regWithIdx with REG_WITH_INDEX,
2336           replaced emitcode("mov", "b,...") with MOVB(...),
2337           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
2338           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2339         * src/mcs51/peeph.def: added rules 140 and 264
2340         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
2341           so they may get optimized into registers
2342
2343 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
2344
2345         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
2346           immediately when encountered,
2347           (printUsage): always use stderr even on windows
2348
2349 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
2350
2351         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
2352         (processParms): fixed bug #1247551
2353         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
2354         parseCmdLine, main): print '--version' to stdout,
2355         print 'help' to stdout if --help is given,
2356         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
2357         arguments are given; fixed --help
2358
2359 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
2360
2361         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
2362         * support/regression/tests/bug-1493710.c: added
2363
2364 2006-05-27 Borut Razem <borut.razem AT siol.net>
2365
2366         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
2367           static instead auto
2368         * support/regression/ports/pic16/support.c: increase stack size
2369           from default 64 bytes to 128 bytes
2370         * support/regression/tests/staticinit.c,
2371           support/regression/tests/float.c: regression tests fully enabled
2372           for pic16 port by putting the initialized data arrays into the code
2373           section
2374         * support/regression/ports/pic16/spec.mk: don't link default libraries.
2375           This was changed by mistake in the previous version.
2376
2377 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
2378
2379         * src/pic16/gen.c (genFunction, genEndFunction): some
2380         beautifications, fixed bug with falsely restoring FSR2 in large
2381         stack model, thanks to Beau E. Cox for reporting the bug
2382
2383 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2384
2385         * debugger/mcs51/break.c,
2386         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
2387           use %p to print pointers, made address variables unsigned
2388         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
2389         * debugger/mcs51/symtab.c (parseSymbol): must return something
2390         * src/mcs51/gen.c (aopForSym): small optimization,
2391            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
2392           (freeAsmop): added missing break,
2393           (aopPut): removed parameter bvolatile, determine it inside the function,
2394           (saveRegisters, unsaveRegisters): small optimization,
2395           (genIpush): removed pointless check,
2396           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
2397           replaced sprintf with SNPRINTF,
2398           replaced strcpy with strncpyz,
2399           updated aopPut calls,
2400           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2401         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
2402
2403 2006-05-24 Borut Razem <borut.razem AT siol.net>
2404
2405         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
2406           modification of test for the pic16 port, put the array to the code
2407           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
2408
2409 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2410
2411         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
2412         * support/Util/pstdint.h: added
2413
2414 2006-05-22 Borut Razem <borut.razem AT siol.net>
2415
2416         * src/regression/Makefile: removed bool2.c test, added -q linker option
2417         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
2418           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
2419           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
2420           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
2421           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
2422           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
2423           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
2424           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
2425           define SUPPORT_BIT_TYPES 0, removed unused bit variables
2426
2427 2006-05-22 Raphael Neider <rneider AT web.de>
2428
2429         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
2430           bug #1492360 (problematic due to generic pointers, see code)
2431
2432 2006-05-22 Borut Razem <borut.razem AT siol.net>
2433
2434         * support/regression/ports/pic16/specs.mk: removed stack size linker
2435           directive
2436         * support/regression/tests/array.c,
2437           support/regression/tests/bitopcse.c,
2438           support/regression/tests/bug-908454.c,
2439           support/regression/tests/malloc.c: modified for pic16 regression test
2440         * support/regression/tests/bitfields.c:
2441           pic16 - excluded bitfileds of size > 8
2442         * support/regression/tests/bp.c: pic16 - reduced data size
2443         * support/regression/tests/bug-221100.c: pic16 - reduced data size
2444         * support/regression/tests/bug-460010.c:
2445           pic16 - used the absolute address the fits in memory
2446         * support/regression/tests/bug-716242.c:
2447           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
2448         * support/regression/tests/float.c:
2449           pic16 - excluded - data size too big
2450         * support/regression/tests/onebyte.c:
2451           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
2452         * support/regression/tests/shifts.c:
2453           pic16 - function names probably have to differ in first X characters
2454           (gpasm limitation?)
2455         * support/regression/tests/staticinit.c:
2456           pic16 - excluded some tests due error: no target memory available for
2457           section ".idata"
2458
2459 2006-05-22 Borut Razem <borut.razem AT siol.net>
2460
2461         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2462           second try. Thanks Stas Sergeev once more.
2463
2464 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2465
2466         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
2467           (genLeftShift, genRightShift): fixed bug 1491627
2468         * src/hc08/peeph.def (rules 7, 8.x): added
2469         * support/regression/tests/shifts.c (ShiftLeftByParam,
2470           ShiftRightByParam, testShiftByParam): added to test variable shifting
2471
2472 2006-05-20 Raphael Neider <rneider AT web.de>
2473
2474         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
2475         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
2476           (allocReg): add only new registers to dynAllocRegs,
2477           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
2478             #1489055, #1445850, and probably #1483693
2479
2480 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
2481
2482         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
2483         bug in for-loop that didn't emit the last of CONFIG and ID registers
2484
2485 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
2486
2487         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
2488           with offset
2489         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
2490           1489016, 1434401 and 1490124
2491         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
2492           1489016, 1434401 and 1490124
2493
2494 2006-05-17 Borut Razem <borut.razem AT siol.net>
2495
2496         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2497           thanks Stas Sergeev
2498
2499 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2500
2501         * device/include/mcs51/P89c51RD2.h,
2502         * device/include/mcs51/P89LPC901.h,
2503         * device/include/mcs51/P89LPC922.h,
2504         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
2505
2506 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2507
2508         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
2509         to fix missing stack pragma in compiled binary object file,
2510
2511 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
2512
2513         * support/packihx/configure.in,
2514         * support/packihx/configure: removed warning, autoconf >= 2.5x can
2515         determine sizeof basic types even while cross compiling
2516
2517 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
2518
2519         * src/avr/gen.c (aopop),
2520         * src/ds390/gen.c (aopOp),
2521         * src/hc08/gen.c (aopOp),
2522         * src/mcs51/gen.c (aopop),
2523         * src/pic16/gen.c (pic16_aopOp),
2524         * src/pic/gen.c (aopOp),
2525         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
2526         if size of operand is smaller than spill location
2527
2528 2006-05-12 Borut Razem <borut.razem AT siol.net>
2529
2530         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
2531           have to have CR/LF line endings even if they are checked out on *nix
2532           or on WIN32 in cygwin binmode
2533
2534 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
2535
2536         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
2537         * device/include/ds80c390.h: added sfr16 definitions
2538         * src/ds390/gen.c,
2539         * src/ds390/gen.h,
2540         * src/ds390/main.c,
2541         * src/ds390/ralloc.c,
2542         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
2543           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
2544           bit returning functions
2545         * support/regression/tests/sfr16.c: enabled test on ds390
2546
2547 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2548
2549         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
2550         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
2551
2552 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
2553
2554         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
2555         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
2556           (cl_address_space constructor): removed expensive initialization,
2557           (cl_address_space::get_cell): extended for late initialization,
2558           (cl_address_space::*): use late initialization,
2559           (cl_address_decoder::activate): removed expensive initialization,
2560           This reduced regression test running time by 25%
2561
2562 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
2563
2564         * packihx/,
2565         * configure.in,
2566         * configure,
2567         * sdcc.dsw,
2568         * Makefile.bcc,
2569         * Makefile.in,
2570         * support/packihx/Makefile.in,
2571         * support/packihx/clean.mk,
2572         * support/packihx/Makefile.bcc,
2573         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
2574
2575 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2576
2577         * src/SDCCval.c (valNot): fix for regression test failure
2578           of not.c on big endian hosts
2579
2580 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
2581
2582         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
2583
2584 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2585
2586         * device/lib/mcs51/Makefile.in: changed string comparison operator
2587           to = for POSIX compliance; == is bash extension
2588
2589 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
2590
2591         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
2592           kosmonaut_pirx
2593
2594 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
2595
2596         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
2597         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
2598         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
2599         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
2600         bug report #1478657,
2601
2602 2006-05-05 Borut Razem <borut.razem AT siol.net>
2603
2604         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
2605           making the html
2606
2607 2006-05-02 Borut Razem <borut.razem AT siol.net>
2608
2609         * doc/Makefile.in: removed *.ind dependency since there is no rule to
2610           create *.ind, which made make to fail if invoked with -j 2
2611
2612 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
2613
2614         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
2615           Hubert Sack for patch 1479782
2616
2617 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
2618
2619         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
2620
2621 2006-05-01 Raphael Neider <rneider AT web.de>
2622
2623         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
2624           (create_pic): store only prefix-free device name,
2625           (init_pic): check for device names with "16" prefix,
2626           (list_valid_pics),
2627         * src/pic/device.h (struct PIC_device),
2628         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
2629             stored device name,
2630         * device/include/pic/pic12f{635,675,629,683}.h,
2631         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
2632         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
2633         * device/include/pic/pic16f505.h,
2634         * device/lib/pic/libdev/pic16f505.c: removed
2635         * device/include/pic/pic14devices.txt: added support for pic12f
2636             devices, removed unsupported non 16-bit devices
2637             [above changes provided by patch from Zik Saleeba]
2638         * src/pic/*, src/pic16/*, device/include/pic16/*,
2639           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
2640
2641 2006-05-01 Borut Razem <borut.razem AT siol.net>
2642
2643         * configure.in, configure, doc/Makefile.in:
2644           sync with nightly build makefile - latex, dvipdf and dvips
2645           not needed any more
2646
2647 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
2648
2649         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
2650         in the library source
2651
2652 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
2653
2654         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
2655
2656 2006-04-28 Raphael Neider <rneider AT web.de>
2657
2658         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
2659         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
2660           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
2661         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
2662
2663 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
2664
2665         * device/lib/pic/libdev/Makefile.in,
2666         * device/lib/hc08/Makefile.in,
2667         * device/lib/gbz80/Makefile.in,
2668         * device/lib/z80/Makefile.in,
2669         * device/lib/ds390/Makefile.in,
2670         * device/lib/ds400/Makefile.in: added srcdir to include search path,
2671         thanks to Borut for the bug report
2672         * configure.in,
2673         * configure: always create doc/Makefile independent from --enable-doc
2674         * Makefile.in: always install from directory doc independent from
2675         --enable-doc
2676         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
2677         removed
2678         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
2679         * doc/Makefile.in: install *.txt if present
2680         * device/include/Makefile.in (install): added installation of pic/*.inc
2681         and pic/*.txt files again, they were erroneously removed
2682
2683 2006-04-28 Raphael Neider <rneider AT web.de>
2684
2685         * src/pic/{gen.c,main.h,pcode.c},
2686         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
2687             concerning signedness with casts
2688
2689 2006-04-28 Raphael Neider <rneider AT web.de>
2690
2691         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
2692             definition of an interrupt handler,
2693         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
2694             interrupt handler stuff from picglue() to separate routine,
2695           (picglue): enabled definition of intr handlers in files w/o main()
2696
2697 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2698
2699         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
2700           compilation with MSVC 2005 Express Edition (VC8)
2701
2702 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
2703
2704         * device/lib/Makefile: fixed build of gbz80 lib
2705
2706 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2707
2708         * support/regression/tests/bug-460010.c,
2709         * support/regression/tests/bug-524691.c,
2710         * support/regression/tests/bug-716242.c: removed conditional defines
2711           that are already in testfwk.h
2712
2713 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2714
2715         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
2716           (AccAXRsh1): added, shift right by 1,
2717           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
2718            AccAXLrl1
2719         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
2720
2721 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
2722
2723         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
2724         remove cast to same type
2725         * src/SDCCast.c (decorateType): fix for RFE 1475742,
2726         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
2727         * as/z80/Makefile,
2728         * link/z80/Makefile: removed, they have moved to
2729         Makefile.in files
2730         * configure,
2731         * configure.in: replaced duplicate message about ucsim by missing sdcpp
2732         * install-sh: fix bug #1204398 by setting umask 0022
2733         * device/lib/Makefile: separate build of z80 and gbz80 lib
2734
2735 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
2736
2737         Enabled VPATH feature: changed nearly all Makefiles (149 files).
2738         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
2739
2740         One basic decision: e.g. src/clean.mk includes further files. In order
2741         to make this work there are two solutions:
2742         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
2743           run configure on them. This way they can use
2744           'include $(srcdir)/port-clean.mk'
2745         - always include clean.mk by the Makefile at the same level. To avoid
2746           that `make clean` tries to include and build Makefile.dep the
2747           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
2748           implemented, because now even `make uninstall` doesn't create
2749           Makefile.in. clean.mk could be eliminated by pasting it in
2750           Makefile.in.
2751
2752         * debugger/mcs51/Makefile.in: build own objects from library sources
2753         (SLIB, SDCC) in current directory
2754
2755         * configure, configure.in: renamed --disable-device-lib-build in
2756         --disable-device-lib; added --enable-doc, the required tools are
2757         searched by configure; added result message; the toolchain for the
2758         belonging ports are now only built, if the port is enabled.
2759
2760         * support/regression/*: all output is written in directory gen, because
2761         the fwk and ports directories don't livet in the build tree using vpath
2762
2763         * doc/sdccman.lyx: renamed --disable-device-lib-build to
2764         --disable-device-lib, added --enable-doc, added section VPATH
2765
2766         * sim/ucsim/configure.in,
2767         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
2768         z80 are enabled by default
2769
2770 2006-04-24 Raphael Neider <rneider AT web.de>
2771
2772         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
2773             to config word, "pic14_"-prefixed some extern functions
2774           (pic14_emitConfigWord): emit __config directive(s) if assignment to
2775             config word has been found
2776         * src/pic/device.h: added prototypes
2777         * src/pic/pcode.c: added "pic14_"-prefix where needed
2778         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
2779             fixup
2780         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
2781             words,
2782           (pic14emitRegularMap): ignore config words,
2783           (pic14createInterruptVect): moved generating __config directives away
2784           (picglue): have __config directives emitted
2785
2786 2006-04-24 Borut Razem <borut.razem AT siol.net>
2787
2788         * doc/Makefile: sync with nightly build makefile
2789
2790 2006-04-24 Raphael Neider <rneider AT web.de>
2791
2792         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
2793             registers that have not been assigned proper liveranges,
2794             fixes #1469504 and #1474602,
2795           (pCodeRegOptimizeRegUsage): fixed typo in comment
2796
2797 2006-04-24 Borut Razem <borut.razem AT siol.net>
2798
2799         * device/examples/main8051.c: deleted - it was removed from CVS
2800           24.mar.2000 and after that modified 18.feb.2001, so it reappered
2801           after the transition to Subversion
2802         * src/SDCCalloc.h: deleted - it was removed  from CVS
2803           3.feb.2001 and after that modified 18.feb.2001, so it reappered
2804           after the transition to Subversion
2805         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
2806           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
2807           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
2808           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
2809
2810 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
2811
2812         * as/asx8051.dsp: added mcs51/strcmpi.h
2813         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
2814         * as/hc08/aslink.h: updated lnksect prototype
2815         * as/hc08/asm.h,
2816         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
2817         * as/hc08/asmain.c,
2818         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
2819           (newdot): handle A_ABS
2820         * as/hc08/asout.c,
2821         * as/mcs51/asout.c (outarea): output address
2822         * as/hc08/lkaomf51.c,
2823         * as/mcs51/lkaomf51.c: disabled unused array UsageType
2824         * as/hc08/m08pst.c,
2825         * as/mcs51/i51pst.c,
2826         * as/z80/z80pst.c: "ABS" is not A_OVR
2827         * as/hc08/lkarea.c (newarea): read a_addr,
2828           (lnkarea): added codemap array, sort absolute areas to the front,
2829            combine all GSINITx/GSFINAL,
2830           (find_empty_space, allocate_space): new functions,
2831           (lnksect): return next address, handle absolute sections
2832         * as/mcs51/lkarea.c (newarea): read a_addr,
2833           lnksect2 prototype changed,
2834           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
2835           (find_empty_space, allocate_space): new, factored out of lnksect2,
2836           (lnksect2): return next address, handle absolute sections
2837         * as/hc08/lkhead.c,
2838         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
2839         * as/hc08/lklibr.c (addfile, fndsym),
2840         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
2841           index out of range and detect both '\' and '/'
2842         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
2843         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
2844           regression tests (ds390 cannot return bool yet)
2845         * doc/sdccman.lyx: changed version number, document changed --no-peep,
2846           document critical interrupts on z80, document changed SDCC define
2847         * src/asm.c (_asxxxx_mapping): fixed .org directive,
2848           (_a390_mapping): added .org directive
2849         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
2850           (genMultOneByte): fixed warnings
2851         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
2852           ones
2853         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
2854         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
2855           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
2856         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
2857         * src/pic16/main.c: removed newReg prototype
2858         * src/pic16/pcode.c,
2859         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
2860           warnings
2861         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
2862           ones
2863         * src/pic16/ralloc.c
2864         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
2865           to fix warnings
2866         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
2867           from short to PIC_OPTYPE
2868         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
2869         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
2870           optype from short to PIC_OPTYPE
2871         * src/port.h: made int_size unsigned to fix warnings
2872         * src/SDCC.y: fixed warning on MSVC
2873         * src/SDCCicode.c (getArraySizePtr): return unsigned int
2874         * src/SDCCopt.c (convertToFcall): fixed warnings
2875         * src/SDCCsymt.h: removed double prototype for genSymName
2876         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
2877           offset int to fix warnings
2878
2879 2006-04-22 Borut Razem <borut.razem AT siol.net>
2880
2881         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2882           references to CVS replaced with Subversion
2883
2884 2006-04-21 Borut Razem <borut.razem AT siol.net>
2885
2886         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2887           references to CVS replaced with Subversion
2888
2889 2006-04-19 Borut Razem <borut.razem AT siol.net>
2890
2891         * src/version.awk: adapted for svn
2892         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
2893           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
2894           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
2895           /binutils-avr/etc/*.vi, *.jin: removed all properties
2896           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
2897
2898 2006-04-19 Borut Razem <borut.razem AT siol.net>
2899
2900         * CVS to Subversion migration completed
2901
2902 2006-04-18 Borut Razem <borut.razem AT siol.net>
2903
2904         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
2905           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
2906
2907 2006-04-17 Borut Razem <borut.razem AT siol.net>
2908
2909         * device/include/Makefile.in: added pic/*.inc to the installation
2910
2911 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
2912
2913         * support/regression/collate-results.py: fixed output in case of
2914         a valdiag error
2915         * support/regression/generate-cases.py: fixed splitting of pathnames
2916         with dots
2917         * as/hc08/lklibr.c (addfile),
2918         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
2919
2920 2006-04-11 Raphael Neider <rneider AT web.de>
2921
2922         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
2923         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
2924         * src/pic16/pcode.c (assignValnums): fixed #1460578
2925
2926 2006-04-11 Raphael Neider <rneider AT web.de>
2927
2928         * device/lib/pic/libdev/*.c,
2929         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
2930           fixes #1468739, enables compilation in --std-c99 mode
2931         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
2932
2933 2006-04-11 Raphael Neider <rneider AT web.de>
2934
2935         * src/pic/device.c (find_device): removed debug output
2936           (list_valid_pics): enabled verbose listing of supported devices
2937         * device/include/stdbool.h: define bool as char for pic14/16 as well
2938
2939 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2940
2941         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
2942
2943 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2944
2945         * .version: bumped version to 2.5.6
2946         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
2947
2948 2006-04-06 Raphael Neider <rneider AT web.de>
2949
2950         * .version: bumped version to 2.5.6 (pic14 ABI changed)
2951         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
2952         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
2953           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
2954             pic14_constructAbsMap
2955           (pic14printPublics): declare absolute global symbols as global
2956           (pic14createInterruptVect),
2957         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
2958           (newReg): assume new registers unused, use correct name in
2959             hashtable (reg->name instead of name), more debugLog output
2960         * src/pic/device.h (PIC_device): added fields for verbose output
2961         * src/pic/device.c: moved device definition to pic14devices.txt,
2962             added routines for runtime parsing of pic14devices.txt,
2963             added support for second config word
2964         * src/pic/main.c (_process_pragma): removed #pragma maxram,
2965           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
2966           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
2967           (_pic14_parseOptions): moved pCodeInitRegisters here
2968           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
2969         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
2970           (pCodeInitRegisters): rewrapped comments, perpared new approach to
2971             handling the pseudo stack
2972         * device/lib/Makefile.in: ignore failures in objects-pic16,
2973         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
2974         * device/lib/pic/NEWS: document new dependency on picXXX.lib
2975         * device/lib/pic/Makefile.subdir,
2976         * device/lib/pic16/Makefile.subdir: improved clean rules
2977         * device/lib/pic/libdev/: NEW, pic14 device libraries
2978         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
2979         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
2980         * device/include/Makefile.in: create subdir and install pic14 headers
2981         * device/include/pic/p16f_common.inc: removed unused declarations
2982         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
2983             PICs from inc2h.pl v1.6,
2984             replaced BIT_AT macros with struct declarations
2985         * device/include/pic/pic14devices.txt: definition of supported devices,
2986             all above improvements contributed by Zik Saleeba, thanks
2987         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
2988         * support/scripts/sdcc.nsi: also install pic14 device libraries and
2989             headers
2990
2991 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2992
2993         * device/include/mcs51/c8051f410.h: added interrupt numbers,
2994         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
2995           thanks to Charles Olds
2996
2997 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2998
2999         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
3000
3001 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3002
3003         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
3004         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
3005         * support/regression/bug1464657.c: added, new test
3006
3007 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3008
3009         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
3010           version number
3011
3012 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3013
3014         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
3015           --no-peep and --peep-file <file> are used don't use default rules but
3016           do use the <file>
3017
3018 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3019
3020         * src/mcs51/gen.c (genCall): fixed bug 1457608
3021
3022 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3023
3024         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
3025         changes seem to cause (trigger?) problems with the build system.
3026
3027 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
3028
3029         * src/SDCCpeeph.c (operandsLiteral): new, added,
3030           (callFuncByName): inserted operandsLiteral
3031         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
3032
3033 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3034
3035         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
3036         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
3037
3038 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3039
3040         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
3041           implemented patch 1120823 Thanks to Willy De la Court (normal
3042           interrupts need an interrupt number now if they are made critical),
3043           and enabled nesting of critical functions though not for gbz80
3044           (genCritical, genEndCritical): added functions
3045           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
3046         * src/z80/mappings.i: added "ei" to all mappings
3047
3048 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3049
3050         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
3051         submitted by the Debian SDCC maintainer Aurelien Jarno:
3052         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
3053         archive with gcc 4.1 on mips and wrote the patch"
3054
3055 2006-03-16 Raphael Neider <rneider AT web.de>
3056
3057         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
3058           the left operand is shorter than the result (c* = lit-c* + int),
3059           fixes bug #1450796
3060         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
3061           OP_SYMBOL
3062
3063 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3064
3065         * src/.version: increased version number to 2.5.5
3066         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
3067         linking is done manually in pic16 port's _linkEdit,
3068         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
3069         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
3070         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
3071         allocate asmop as AOP_ACC,
3072         (aopForRemat): added parameter 'bool result' in function declaration,
3073         (pic16_aopGet): return AOP_ACC when accessing WREG,
3074         (pic16_popGetTempReg): minor modification,
3075         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
3076         'pic16_allocWithIdx',
3077         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
3078         calling function in absolute addresses,
3079         (genAssign): take into account AOP_ACC asmop,
3080         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
3081         * src/pic16/pcoderegs.c: some debug functions and lines added,
3082         * src/pic16/ralloc.c (decodeRegType): added but commented out,
3083         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
3084         register too,
3085         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
3086         call to allocReg, not by manually allocating a new one,
3087         (pic16_assignRegisters): now before going through the register
3088         allocating functions mark all registers as free. This eliminates some
3089         side effects resulting from peephole parser done earlier in the backbone
3090
3091 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
3092
3093         * src/SDCCicode.c (geniCodeLogic),
3094         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
3095
3096 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
3097
3098         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
3099           (genSend): bugfix, do not allocate and free twice,
3100           (shiftRLong): handle partially overlapping aops
3101         * support/regression/tests/bitopcse.c: fixed warning redefined idata
3102
3103 2006-03-08 Borut Razem <borut.razem AT siol.net>
3104
3105         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
3106           for pic16
3107
3108 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
3109
3110         * support/regression/tests/bug1409955.c: new, added
3111         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
3112         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
3113           (aopForSym, aopOp): increment asmop.allocated if reused,
3114           (freeAsmop): decrement asmop.allocated and check for zero instead of
3115           using asmop.freed,
3116           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
3117           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
3118            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
3119            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
3120            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
3121            genSignedRightShift, genRightShift, genDataPointerGet,
3122            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
3123            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
3124             in reverse order from allocation,
3125           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
3126             added swappedLR to keep track
3127         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
3128           pdata & code for GCC, z80, gbz80 & hc08
3129         * support/regression/tests/zeropad.c: moved defines to testfwk.h
3130
3131 2006-03-08 Raphael Neider <rneider AT web.de>
3132
3133         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
3134
3135 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
3136
3137         * device/include/mcs51/c8051f410.h: new SiLabs mcu
3138         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
3139         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
3140
3141 2006-03-06 Borut Razem <borut.razem AT siol.net>
3142
3143         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
3144           made the linker quiet
3145
3146 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3147
3148         * src/pic16/gen.c (genPcall): fixed bug #1443644
3149         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
3150         which dumps before the function entry point a data byte which represents
3151         the number of the local variables used by the specified function, added
3152         'xinst' for initial support for Extended Instruction Support,
3153         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
3154         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
3155         port->fun_prefix anymore (may change later),
3156         (genFunction, genEndFunction): do not store/restore local registers for
3157         _main (this should take care the --main-return command line option in
3158         the future),
3159         (genOr): removed some legacy pic-port instructions,
3160         * src/pic16/genarith.c (genAddLit): re-enabled old code because
3161         performing operations with SFR's causes data to be written more than
3162         once to each SFR. Perhaps SFRs should be handled in special cases...
3163         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
3164         pcode.h
3165         * src/pic16/main.c (_process_pragma): stack bound checking did not take
3166         into account for stack starting position,
3167         (struct OPTIONS pic16_optionsTable): added command line argument
3168         --extended or -y for Extended Instruction Support,
3169         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
3170         (deassignLRs): *** perhaps the most important change, old 'for' code
3171         (commented out for reference), didn't account for some registers which
3172         were left marked 'not free' after a pointer operation. The change
3173         reduces register usage a lot in some cases
3174
3175 2006-03-04 Borut Razem <borut.razem AT siol.net>
3176
3177         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
3178           _clean
3179         * support/regression/tests/bug-524697.c: decreased array size for
3180           mcs51 to fit into the internal RAM
3181         * support/regression/Makefile.in: a little bit more verbose
3182
3183 2006-03-03 Borut Razem <borut.razem AT siol.net>
3184
3185         * support/regression/fwk/lib/testfwk.c,
3186           support/regression/fwk/include/testfwk.h: introduced function
3187           _prints(), nonrecursive _printn(), call _initEmu() from main()
3188         * support/regression/ports/gbz80/support.asm,
3189           support/regression/ports/ucz80/support.asm,
3190           support/regression/ports/z80/support.asm,
3191           support/regression/ports/ds390/support.c,
3192           support/regression/ports/hc08/support.c,
3193           support/regression/ports/host/support.c,
3194           support/regression/ports/mcs51/support.c,
3195           support/regression/ports/xa51/support.c: added empty _initEmu()
3196           function
3197         * support/regression/ports/pic16/gpsim.cmd,
3198           support/regression/ports/pic16/spec.mk,
3199           support/regression/ports/pic16/support.c,
3200           support/regression/Makefile.in: added pic16 regression test
3201
3202 2006-03-01 Raphael Neider <rneider AT web.de>
3203
3204         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
3205           genConstPointerGet): use safe way of generating MOVFF to cover
3206             literals as well as registers, fixes bug #1440527
3207         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
3208             dereference
3209           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
3210             more correctly, fixes bug #1232186
3211           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
3212         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
3213             gplink guess the correct processor in more cases, applied patch
3214             from Till Riedel attached to and fixing bug #1436552
3215
3216 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3217
3218         * support/regression/tests/array.c: added, contains check for #1434401
3219         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
3220
3221 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
3222
3223         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
3224         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
3225         * device/include/mcs51/c8051f326.h,
3226         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
3227         * device/include/mcs51/c8051f000.h,
3228         * device/include/mcs51/c8051f018.h,
3229         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
3230           PCON_IDLE,PCON_STOP and added sfr16 definitions
3231
3232 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3233
3234         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
3235           genGetWord): fixed bug 1409955
3236
3237 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3238
3239         * device/include/hc08/mc68hc908gp32.h,
3240         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
3241
3242 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
3243
3244         * src/SDCCast.c (constExprValue): return NULL if not a value
3245         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
3246         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
3247         * support/regression/tests/bitfields.c: enabled signed bitfield for all
3248
3249 2006-02-13 Borut Razem <borut.razem AT siol.net>
3250
3251         * src/regression/ptrarg.c: added, fails due to bug #1430967
3252         * src/regression/Makefile: ptrarg.c added, ...
3253
3254 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
3255
3256         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
3257         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
3258
3259 2006-02-11 Borut Razem <borut.razem AT siol.net>
3260
3261         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
3262           print "Processor: xxx" message to stdout only if --verbose
3263
3264 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3265
3266         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
3267         * support/regression/tests/bug1426356.c: added
3268         * support/regression/tests/bitfields.c: removed 2 tests
3269
3270 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3271
3272         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
3273         * device/include/mcs51/c8051f330.h,
3274         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
3275           PCON_IDLE,PCON_STOP and added sfr16 definitions
3276         * device/lib/_divsint.c,
3277         * device/lib/_divuint.c,
3278         * device/lib/_divulong.c,
3279         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
3280           register bank bug for small stackauto
3281
3282 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3283
3284         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
3285
3286 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
3287
3288         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
3289         * all.dsp: corrected several bin paths
3290         * device/include/mcs51/c8051f120.h,
3291         * device/include/mcs51/c8051f300.h,
3292         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
3293           to PCON_IDLE,PCON_STOP
3294         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
3295         * device/lib/printf_large.c (output_float): fixed bug 1388703
3296         * support/regression/tests/bug1057979.c: added test for bug 1388703
3297
3298 2006-02-08 Raphael Neider <rneider AT web.de>
3299
3300         * src/pic/pcode.c (pciTRIS): fixed typo,
3301           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
3302           (LinkFlow): fixed handling of flows that end in a call,
3303           (ReuseReg): perform safety check earlier
3304         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
3305             to work with flows at the beginning of a pBlock,
3306             fixes #1426557 (Symbol not previously defined),
3307           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
3308             usage information
3309           (RemoveUnusedRegisters): update register usage info
3310         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
3311             created, reuse existing ones instead
3312         * src/pic/gen.c (genPcall): fixed #1424719
3313
3314 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
3315
3316         * link/z80/lkmain.c,
3317         * link/z80/lklex.c,
3318         * link/z80/lkdata.c,
3319         * link/z80/aslink.h: fixed build on current cygwin:
3320         replaced getline() by lk_getline()
3321
3322 2006-02-01 Borut Razem <borut.razem AT siol.net>
3323
3324         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
3325           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
3326           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
3327           src/regression/bool1.c, src/regression/bool2.c,
3328           src/regression/bool3.c, src/regression/call1.c,
3329           src/regression/compare.c, src/regression/compare10.c,
3330           src/regression/compare2.c, src/regression/compare3.c,
3331           src/regression/compare4.c, src/regression/compare5.c,
3332           src/regression/compare6.c, src/regression/compare7.c,
3333           src/regression/compare8.c, src/regression/compare9.c,
3334           src/regression/configword.c, src/regression/for.c,
3335           src/regression/inline.c, src/regression/mult1.c,
3336           src/regression/nestfor.c, src/regression/or1.c,
3337           src/regression/pointer1.c, src/regression/ptrfunc.c,
3338           src/regression/rotate1.c, src/regression/rotate2.c,
3339           src/regression/rotate3.c, src/regression/rotate4.c,
3340           src/regression/rotate5.c, src/regression/rotate6.c,
3341           src/regression/rotate7.c, src/regression/string1.c,
3342           src/regression/struct1.c, src/regression/sub.c,
3343           src/regression/sub2.c, src/regression/switch1.c,
3344           src/regression/while.c, src/regression/xor.c,
3345           src/regression/create_stc, src/regression/simulate,
3346           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
3347           regression tests
3348         * src/regression/gpsim_assert.h: added
3349
3350 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
3351
3352         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
3353         ((void (code *) (void)) 0) ();
3354         * as/hc08/aslex.c,
3355         * as/hc08/aslink.h,
3356         * as/hc08/asm.h,
3357         * as/hc08/asmain.c,
3358         * as/hc08/lkdata.c,
3359         * as/hc08/lklex.c,
3360         * as/hc08/lkmain.c,
3361         * as/mcs51/aslex.c,
3362         * as/mcs51/aslink.h,
3363         * as/mcs51/asm.h,
3364         * as/mcs51/asmain.c,
3365         * as/mcs51/lkdata.c,
3366         * as/mcs51/lklex.c,
3367         * as/mcs51/lkmain.c,
3368         * as/z80/aslex.c,
3369         * as/z80/asm.h,
3370         * as/z80/asmain.c: fixed build on current cygwin:
3371         replaced getline() by as_getline()
3372
3373 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
3374
3375         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
3376         declarator in the symbol chain
3377         * src/SDCCsymt.h,
3378         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
3379         parameter list for function pointers
3380         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
3381         * support/regression/tests/bug-716242.c: added
3382
3383 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
3384
3385         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
3386         offset if possible
3387         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
3388
3389 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
3390
3391         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
3392         inifinitely recurseable, added static
3393         * support/regression/tests/bug-1408066.c: added
3394
3395 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
3396
3397         * src/SDCCicode.h,
3398         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
3399         renamed, added possibility to create "postLoopLbl"-labels
3400         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
3401         newiTempLoopHeaderLabel
3402         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
3403         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
3404         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
3405         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
3406         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
3407         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
3408         (basicInduction): fixed bug #136564, made static,
3409         (loopInduction): changed parameter of basicInduction, made static,
3410         (addPostLoopBlock): added
3411         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
3412         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
3413         findLoopEndSeq
3414         * support/regression/tests/bug-136564.c: added
3415         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
3416         --std-sdcc99 to LIBSDCCFLAGS
3417
3418 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
3419
3420         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
3421         while loop
3422         * support/regression/tests/bug-1406131.c: added
3423
3424 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
3425
3426         * src/SDCCast.c (decorateType): fix promotion of unary minus
3427         * src/SDCCsymt.c (computeType): beautified
3428         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
3429         (valUnaryPM, valComplement): fix sign and promotion,
3430         (valNot): ANSI: result type is int (SDCC: unsigned char)
3431         * support/regression/tests/uminus.c: speedup by removing superflous
3432         test case 'int'
3433         * support/regression/tests/onebyte.c: added promotion and signedness
3434         tests for unary minus
3435         * support/regressions/tests/bug-477927.c: disable warning about
3436         uninitialized variables
3437         * support/regression/tests/not.c: added
3438
3439 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
3440
3441         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
3442         * src/mcs51/gen.c (gen51Code): show final register usage after
3443         fillGaps in asm with --i-code-in-asm
3444         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
3445         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
3446         incUsed, rliveClear, adjustIChain): made static,
3447         (setFromRange): excluded because it's unused,
3448         (findPrevUseSym, markWholeLoop): added,
3449         (findPrevUse): rewritten; fixes bug 895992; now a complete search
3450         through all branches of predecessors enables sdcc to emit the warning
3451         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
3452         (rlivePoint): made static, added parameter emitWarnings which is only
3453         true during the first run out of two,
3454         (findRecursiveSucc, findRecursivePred): removed,
3455         (computeLiveRanges): made static, added parameter emitWarnings,
3456         (dumpIcRlive): added for debugging only
3457         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
3458         removed prototype of setFromRange()
3459         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
3460         in call of computeLiveRanges()
3461         * support/regression/tests/bug-895992.c: added
3462         * support/regression/tests/bug-971834.c: added
3463         * support/valdiag/tests/bug-895992.c: added
3464         * support/valdiag/tests/bug-971834.c: added
3465
3466 2005-12-18 Raphael Neider <rneider AT web.de>
3467
3468         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
3469           (genUnpackBits): improved code for direct operands,
3470           (genPackBits): improved code for literal assignment to bitfields
3471             and for direct destination operands (no FSR indirection),
3472             prevented redundant AND, fixes #1362800,
3473           (AccLsh): added parameter to disable masking of the result
3474         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
3475           skip instructions with side-effects (like incfsz),
3476           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
3477         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
3478         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
3479           fixes #1375263
3480
3481 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
3482
3483         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
3484         volatile variables as spill location
3485
3486 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
3487
3488         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
3489         replacing literals
3490         * support/regression/tests/bug-1376320.c: added
3491
3492 2005-12-08 Raphael Neider <rneider AT web.de>
3493
3494         * src/pic/device.c: renamed is_shared to pic14_is_shared
3495         * src/pic/gen.c (genIfx): re-enabled handling of sbits
3496         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
3497           (is_valid_identifier): added for above workaround
3498
3499 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
3500
3501         * device/lib/Makefile.in: fixed to enable port-specific-objects
3502         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
3503           char, thanks Hubert Sack
3504         * doc/sdccman.lyx: documented --xstack-loc,
3505           elaborated a bit more on interrupts and pitfalls,
3506           removed "setjmp/longjmp unsupported",
3507           documented some unsupported C99 features
3508         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
3509         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
3510           if, thanks Hubert Sack
3511         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
3512         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
3513           make make_library
3514         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
3515           regression tests can report resource usage (rfe 700441)
3516         * support/regression/collate-results.py: report resource usage
3517         * support/regression/ports/ds390/spec.mk,
3518         * support/regression/ports/hc08/spec.mk,
3519         * support/regression/ports/mcs51/spec.mk,
3520         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
3521         * support/regression/ports/ds390/uCsim.cmd,
3522         * support/regression/ports/hc08/uCsim.cmd,
3523         * support/regression/ports/mcs51/uCsim.cmd,
3524         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
3525         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
3526           library, use the default one
3527         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
3528           building the library
3529
3530 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
3531
3532         * config.dsp: added dependency on .version and configure_vc.awk
3533         * device/include/setjmp.h: updated for --stack-auto and --xstack
3534         * device/include/mcs51/at89c51snd1c.h: corrected line endings
3535         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
3536         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
3537         * device/lib/libsdcc.lib: added _setjmp
3538         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
3539           (decorateType): fixed bug 1372851,
3540           (optimizeGetHbit): fixed warning
3541         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
3542           array initialisation
3543         * support/regression/tests/bug1057979.c: added test for bug 1358192
3544         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
3545
3546 2005-12-03 Borut Razem <borut.razem AT siol.net>
3547
3548         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
3549           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
3550
3551 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
3552
3553         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
3554         createIval): implement symbol independant "flexible array member",
3555         (createIvalCharPtr): implemented flexible array initialisation with a
3556         string
3557         * src/SDCCsymt.c (copyStruct): removed,
3558         (getSize): fixed misleading comment,
3559         (getAllocSize): removed, the additional allocation size is now in
3560         sym->flexArrayLength,
3561         (checkStructFlexArray): new, syntax checks for flexible array members,
3562         (compStructSize): added syntax checks for "flexible array members"
3563         (copyStruct): removed,
3564         (copyLinkChain): removed inefficient fix for bug 770487
3565         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
3566         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
3567         symbol->flexArrayLength
3568         * src/SDCCerr.c,
3569         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
3570         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
3571         * support/regression/tests/structflexarray.c: added
3572         * support/valdiag/tests/structflexiblearray.c: added
3573
3574 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
3575
3576         * src/SDCCast.c (decorateType): fixed bug 1368489
3577         * support/Util/SDCCerr.c,
3578         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
3579
3580 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3581
3582         * device/include/mcs51/at89c51snd1c.h: added file submitted by
3583           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
3584
3585 2005-11-27 Borut Razem <borut.razem AT siol.net>
3586
3587         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
3588           support/cpp2/mkdeps.h: added command line option
3589           -obj-ext=<extension> to SDCPP to define object file externion, used
3590           for generation of make dependencies (-M)
3591         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
3592
3593 2005-11-26 Borut Razem <borut.razem AT siol.net>
3594
3595         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
3596           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
3597           added pic and pic16 libraries
3598
3599 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3600
3601         * device/include/float.h: Corrected typo in prototype of __fsgt
3602
3603 2005-11-25 Borut Razem <borut.razem AT siol.net>
3604
3605         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
3606           added creation of model-mcs51-stack-auto libraries
3607
3608 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
3609
3610         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
3611         and fields-list too
3612         * src/SDCCast.c (createIvalArray): removed obsolete comment
3613
3614 2005-11-24 Borut Razem <borut.razem AT siol.net>
3615
3616         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
3617           added missing device/lib/mcs51/crt*.asm sources
3618
3619 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
3620
3621         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
3622
3623 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
3624
3625         * device/lib/_fs2schar.c,
3626         * device/lib/_fs2sint.c,
3627         * device/lib/_fs2slong.c: optimized inline asm
3628
3629 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3630
3631         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3632           Better handling of floats between -1.0 and 0.0.
3633
3634 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3635
3636         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
3637           (the missing "if"s prohibited removal of redundant labels)
3638
3639 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3640
3641         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3642           Properly convert floats between -1.0 and 0.0 to long, int, and char
3643           types (max integer value of negative floats tends to zero).
3644         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3645           Removed changes made so to work properly with floats between
3646           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
3647           and _fs2char.c
3648
3649 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3650
3651         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
3652         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
3653         (genCast) cosmetic change
3654         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
3655         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
3656         from mcs51
3657         * support/regression/tests/bitfields (testSignedBitfields): added
3658
3659 2005-11-18 Borut Razem <borut.razem AT siol.net>
3660
3661         * sdcc/device/lib/Makefile.in: remove all unnecessary files
3662         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
3663           introduced SILENT option to make building of pic16 libraries less
3664
3665 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3666
3667         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3668           Now they work properly with floats between -1.0 and 0.0
3669         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
3670
3671 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
3672
3673         * src/SDCCicode.c (printOperand): added missing else
3674
3675 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3676
3677         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
3678         reformatted for better readability
3679         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
3680         signed bitfields
3681
3682 2005-11-17 Borut Razem <borut.razem AT siol.net>
3683
3684         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
3685           introduced SILENT option to make building of pic16 libraries less
3686           verbose - used for nightly snapshot build
3687         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
3688           available on Win32 platforms.
3689         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
3690           medium, large, pic and pic16
3691
3692 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3693
3694         * device/lib/printf_large.c: Temporary patch for bug 1358192:
3695           printf("%f"...) sets fraction to zero.
3696
3697 2005-11-16 Raphael Neider <rneider AT web.de>
3698
3699         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
3700           fixes #1357221
3701         * src/pic/gen.c (genIfx): implemented for CARRY bit
3702         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
3703           to generic pointers, fixes #1357332,
3704           (pic16_movLit2f): NEW,
3705           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
3706
3707 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3708
3709         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
3710
3711 2005-11-11 Raphael Neider <rneider AT web.de>
3712
3713         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
3714         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
3715           compute pointer's type from operand,
3716           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
3717           improved single bit reads, fixes bug #1353379
3718
3719 2005-11-09 Borut Razem <borut.razem AT siol.net>
3720
3721         * support/scripts/sdcc.nsi: added lib/pic to the package
3722
3723 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
3724
3725         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
3726
3727 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
3728
3729         * support/regression/tests/bug1348008.c: added
3730         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
3731         * support/regression/tests/bug1337835.c: updated comment
3732
3733 2005-11-06 Borut Razem <borut.razem AT siol.net>
3734
3735         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3736           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3737           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3738           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3739           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
3740           dynamic construction of cl_error_class and derivates - 2.nd try
3741
3742 2005-11-05 Borut Razem <borut.razem AT siol.net>
3743
3744         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
3745           bug, which caused Bus Errors on sparc solaris
3746
3747 2005-11-04 Borut Razem <borut.razem AT siol.net>
3748
3749         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3750           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3751           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3752           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3753           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
3754           and derivates to resolve the initialization problem on OSX
3755
3756 2005-11-02 Borut Razem <borut.razem AT siol.net>
3757
3758         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3759           corrected typo - #include <winsock2.h>
3760
3761 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
3762
3763         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
3764           (_asxxxx_mapping): added org directive for future enhancements
3765
3766 2005-11-01 Borut Razem <borut.razem AT siol.net>
3767
3768         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3769           enabled sockets on WIN32
3770         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
3771
3772 2005-10-31 Borut Razem <borut.razem AT siol.net>
3773
3774         * support/regression/generate-cases.py: escape backslashes in {testcase}:
3775           WIN32 backslash path delimiters should be escaped when used in C strings
3776         * support/regression/tests/bitfields.c: exclude failing assertions for
3777           __CYGWIN32__ and __MINGW32__ hosts
3778
3779 2005-10-30 Borut Razem <borut.razem AT siol.net>
3780
3781         * src/SDCCutil.c: corrected double comparison typo
3782
3783 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
3784
3785         * device/lib/medium/Makefile: added for new memory model medium
3786         * device/include/asm/mcs51/features.h: updated for medium/pdata
3787         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
3788           added Multiply & Accumulate sbit's and MAC0_PAGE define
3789         * device/include/mcs51/c8051f300.h: added sfr16 definitions
3790         * device/include/mcs51/c8051f310.h: added sfr16 definitions
3791         * device/lib/_mullong.c: update for medium model
3792         * device/lib/incl.mk: added medium model
3793         * doc/sdccman.lyx: documented medium model
3794         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
3795         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
3796         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
3797         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
3798           (allocParms): set SCLS and OCLS to pdata for medium model
3799         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
3800           for pdata,
3801           (powof2): return <0 if not power of 2
3802         * src/avr/gen.c (genBitWise): use updated powof2
3803         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
3804           (shiftR2Left2Result): small optimization in setup, save acc when storing,
3805           (shiftLLeftOrResult): use B if necessary
3806         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
3807         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
3808         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
3809         * support/regression/Makefile.in: added test-mcs51-medium
3810         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
3811
3812 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
3813
3814         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
3815         specifier unsigned
3816         * device/lib/time.c (mktime): fixed bug 1334315
3817
3818 2005-10-28 Raphael Neider <rneider AT web.de>
3819
3820         * device/include/pic/p16f_common.inc: added common declarations
3821         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
3822
3823 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3824
3825         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
3826           (aopPutUsesAcc): added to predict accumulator use,
3827           (assignResultValue): save acc if necessary,
3828           (genMinusDec): store result if indirectly addressed,
3829           (genDivOneByte):  save acc if necessary,
3830           (movLeft2Result): bugfix if left already in acc,
3831           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
3832             attention to accumulator use (esp. pdata),
3833           (genReceive): receive pdata correctly
3834         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
3835         * src/SDCCicode.h: added isOperandInPagedSpace prototype
3836
3837 2005-10-27 Raphael Neider <rneider AT web.de>
3838
3839         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
3840
3841 2005-10-27 Raphael Neider <rneider AT web.de>
3842
3843         * .version: changed version to 2.5.4
3844         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
3845         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
3846           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
3847             arithmetics support routines
3848         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
3849         * device/lib/Makefile.in: also create installdir for pic
3850
3851         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
3852           pic14 port as well
3853         * src/pic/device.c (dump_sfr): rewritten to delegate register
3854           placement to the linker (use `extern sym' rather than sym EQU addr),
3855           (validAddress): fixed to check last specified address
3856         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
3857           (popGetLit): truncate literal value to 8 bit,
3858           (popGet): moved assert to more appropriate place
3859           (popGetExternal): create pCode operand from and mark the according
3860             symbol as being `extern'
3861           (popGetAddr): added sanity check on immediate's offset, provide
3862             GPOINTER tag on demand
3863           (aopPut): fixed for immediates,
3864           (mov2w_op): move operand's address or contents to WREG (depending on
3865             operand type), safer variant of mov2w,
3866           (movwf,call_libraryfunc): NEW, handy abbreviations,
3867           (get_argument_pcop,get_return_val_pcop,pass_argument,
3868           get_returnvalue): interface for accessing function parameters and
3869             return values,
3870           (assignResultValuei,genRet): use new parameter/return value interface
3871           (pic14_getDataSize): back to old version handling generic pointers,
3872           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
3873             provided implementation and/or fixed old one,
3874           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
3875             calls, removed legacy 8051 reference code
3876           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
3877           (loadSignToC): NEW, move the operands sign bit to CARRY,
3878           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
3879             genRightShiftSigned, accepts negative shift counts,
3880           (setup_fsr): load FSR and adjust IRP (indirect memory access),
3881           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
3882             generic pointers, __data pointers and __code pointers,
3883           (genUnpackBits,genPackBits): rewritten to work with generic pointers
3884             and signed bitfields, limit bitfields to 8 bit,
3885           (genDataPointerGet): fixed number of bytes read,
3886           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
3887           (genPointerGet,genPointerSet): fixed handling of __code pointers,
3888             pointers to constant data are no longer assumed to point to __code
3889             space, removed invalid pointer types,
3890           (bitpatternFromVal): retrieve the PICs representation of an integer
3891             or float literal,
3892           (genDataPointerSet): fixed assigning to po_immediate operands,
3893           (genGenPointerSet): implemented as library call,
3894           (genIfx): fixed incorrect condition,
3895           (genAddrOf): limit generic pointers' addresses to 2 bytes,
3896             provide GPOINTER tag according to destination's storage class,
3897           (genCast): added code to handle casting to generic pointers, added
3898             sign-/zero extension of the result
3899           (aop_isLitLike,op_isLitLike): fixed handling of immediates
3900         * src/pic/gen.h: added macros to access IRP bit in STATUS register
3901         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
3902           extend the result
3903         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
3904           address/register resides in the shared banks
3905           (emitSymbolToFile): improved to handle global and `pinned' symbols,
3906             put all variables into separate sections (have the linker arrange
3907             them)
3908           (picglue): put init code and interrupt handlers in separate sections
3909         * src/pic/main.c: added port specific options table, modified to PORT
3910           structure to make GPOINTERs 3 byte, added pic14_options
3911           (_pic14_do_link): private linking routine (update paths to libraries,
3912             add libsdcc.lib by default)
3913         * src/pic/main.h: declare pic14_options
3914         * src/pic/pcode.c: fixed instructions i/o relations,
3915           (RegCond): reverted to correct version,
3916           (newpCodeOpLit): truncate literals to 8 bit,
3917           (genericPrint): added debug output,
3918           (getRegFromInstruction): fixed for various operand types, simplified
3919           (BuildFlow): fixed broken handling of isntructions with labels
3920           (LinkFlow): start at last instruction in flow (skip trailing comments),
3921             pass the flow on to the next instruction after CALL
3922           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
3923           (insertPCodeInstruction): fixed inserting after a skip instruction,
3924           (DoBankSelect): fixed for labeled instructions
3925           (OptimizepBlock): honor --nopeep switch
3926           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
3927         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
3928         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
3929           (pCodeOptime2pCodes): allow disabling this optimization via
3930             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
3931             but is still buggy), started implementation of a dataflow based
3932             pCode optimization (CSE + dead code elimination)
3933           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
3934         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
3935           names are independant of the stack location and therefore portable across
3936           devices
3937
3938 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3939
3940         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
3941           (selectSpil): fixed bug 1337835 by not spilling bit variables
3942         * support/regression/tests/bug1337835.c: added test for this bug
3943         * src/mcs51/peeph.def: restart after rule 3.c,
3944           addded rules 263.x to optimize loading constants
3945
3946 2005-10-26 Raphael Neider <rneider AT web.de>
3947
3948         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
3949         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
3950           (genAssign): emit warning when casting literals to generic pointer
3951             type, also applies when taking the address of a fixed variable,
3952           (genCast): improved casting to generic pointers
3953         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
3954           extern variables, added verbose error message
3955         * device/include/pic16/{string.h,errno.h}: added #pragma library c
3956
3957 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
3958
3959         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
3960         carry must be complemented too
3961         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
3962         could be emitted by genMinus
3963         * src/SDCCval.c (constVal): fixed bug 1305065
3964
3965 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
3966
3967         * src/SDCCast.c (addCast): added promotion for bit variables
3968         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
3969         promotion casts + optimisation
3970         (optimizeGetWord): fix warning 'i' might be used uninitialized
3971         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
3972         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
3973
3974 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
3975
3976         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
3977         all chars are promoted to int; promotion should be handled in SDCCast.c
3978
3979 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3980
3981         * device/lib/_strcmp.c: Fixed bug 1326457
3982
3983 2005-10-11 Raphael Neider <rneider AT web.de>
3984
3985         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
3986         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
3987
3988 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3989
3990         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
3991         * support/regression/tests/sfr16.c: added test for the sfr32 bug
3992
3993 2005-10-04 Raphael Neider <rneider AT web.de>
3994
3995         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
3996           device/lib/pic16/pics.all: added pic18f1320
3997         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
3998
3999 2005-09-30 Raphael Neider <rneider AT web.de>
4000
4001         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
4002         * src/pic16/devices.inc: NEW, provides device descriptions
4003         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
4004
4005 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4006
4007         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
4008           GETHBIT
4009
4010 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
4011
4012         * doc/sdccman.lyx: updated Highest Order Bit documentation,
4013           documented Any Order Bit, Higher Order Byte and Higher Order Word
4014         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
4015         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
4016           (optimizeGetAbit): new, to get any bit, not only the high bit,
4017           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
4018           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
4019           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
4020           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
4021             RIGHT_OP: also try GETBYTE, GETWORD optimization,
4022             GETABIT, GETBYTE, GETWORD: decorate them,
4023           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
4024           (ast_print): added GETABIT, GETBYTE, GETWORD
4025         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
4026         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
4027           (geniCodeBinary): new generic binary icode,
4028           (ast2iCode): added GETABIT, GETBYTE, GETWORD
4029         * src/port.h: updated comment for PORT.hasExtBitOp
4030         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
4031           (genGetByte): new, to get a single byte,
4032           (genGetWord): new, to get a word from a long,
4033           (gen51Code): added GETABIT, GETBYTE, GETWORD
4034         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
4035
4036 2005-09-23 Raphael Neider <rneider AT web.de>
4037
4038         * configure.in, configure: have device/lib/pic configured
4039         * device/lib/Makefile.in: added model-pic14
4040         * device/lib/clean.mk: added pic/ to clean rule
4041         * device/lib/pic: added rudimentary pic14 library providing support
4042           functions for multiplication/division/generic pointer access
4043         * src/SDCCopt.c (convilong): mark support functions as extern
4044           for pic14 port as well
4045         * src/pic/gen.c (genMult): added assertions,
4046           (genpic14Code): emit warning on unhandled iCodes
4047         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
4048         * src/pic/pcode.c (pCodeOpCopy),
4049         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
4050           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
4051           SFR_REGISTER}), made safe for future extensions
4052         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
4053           instructions even if preceeded by SKIP instructions (also remove
4054           them); removed unused code
4055         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
4056           prevents leaving parts of the structure uninitialized after copying
4057
4058 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
4059
4060         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
4061           ago by me
4062         * support/regression/tests/addsub.c: added test for the bug
4063
4064 2005-09-21 Raphael Neider <rneider AT web.de>
4065
4066         * device/include/pic16/pic18f1220.h,
4067           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
4068         * device/lib/pic16/Makefile.rules: added missing opening paren
4069         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
4070           are provided in genutils.c,
4071           (genUminusFloat,genUminus,genCmpEq): added asserts on different
4072           operand/result sizes,
4073           (genCmp): assert on NULL pointers first, then check deref'ed values
4074         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
4075           result size
4076
4077 2005-09-18 Raphael Neider <rneider AT web.de>
4078
4079         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
4080           as these are now unused,
4081           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
4082         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
4083           local, avoids uninitialized pointer dereference on r->name
4084         * src/pic16/ralloc.c (newReg): fixed indentation
4085
4086 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
4087
4088         * src/SDCCval.c (constVal): fixed bug 730366
4089         * support/Util/SDCCerr.c,
4090         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
4091
4092 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4093
4094         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
4095
4096 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
4097
4098         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
4099
4100 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4101
4102         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
4103           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4104         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
4105           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4106         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
4107         * packihx/packihx.c (hexDigit): made c unsigned char
4108         * as/mcs51/lklibr.c (fndsym),
4109         * link/z80/lkgb.c (gb),
4110         * link/z80/lklibr.c (fndsym),
4111         * link/z80/lkrloc.c (relr),
4112         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
4113         * src/SDCC.lex (checkCurrFile, process_pragma),
4114         * src/SDCCglue.c (spacesToUnderscores),
4115         * src/SDCCmain.c (setParseWithComma, processFile),
4116         * src/asm.c (tvsprintf, printCLine),
4117         * src/avr/gen.c (emitcode, aopPut),
4118         * src/ds390/gen.c (emitcode),
4119         * src/hc08/gen.c (emitcode, emitinline),
4120         * src/mcs51/gen.c (emitcode, genInline),
4121         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4122           tokenizeLineNode),
4123         * src/pic/ralloc.c (debugLog),
4124         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4125           tokenizeLineNode),
4126         * src/pic16/ralloc.c (debugLog),
4127         * src/z80/main.c (_process_pragma):
4128            made all ctype.h function calls safe
4129         * src/SDCCopt.c: include math.h for fabs
4130         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
4131           and used them throughout the code to make ctype.h function calls safe
4132         * src/ds390/main.c (asmLineNodeFromLineNode),
4133         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
4134         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
4135            unsigned char*
4136         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
4137           (newpCodeAsmDir): made ctype.h function calls safe
4138         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
4139           pic16_emitcode):  made lbp unsigned char*
4140         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
4141           (pic16_newpCodeAsmDir): made ctype.h function calls safe
4142         * src/xa51/gen.c (emitcode),
4143         * src/z80/gen.c (_emit2): made lbp unsigned char*
4144         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
4145            char*
4146
4147 2005-09-05 Raphael Neider <rneider AT web.de>
4148
4149         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
4150           access bank splitpoint
4151
4152 2005-09-05 Raphael Neider <rneider AT web.de>
4153
4154         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
4155
4156 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
4157
4158         * .version: changed to version 2.5.3
4159         * doc/sdccman.lyx: changed version to 2.5.3,
4160           documented --codeseg and --constseg and pragma codeseg and constseg,
4161           documented bit parameters (reentrant) and bit returning
4162         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
4163            currFunc->recvSize, but is this ok for all ports?
4164           (ast2iCode): result of ~ on unsigned char must be cast to int for
4165            bool to work
4166         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
4167           function pointers in bit space
4168         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
4169           (processFuncArgs): call port.reg_parm() with reentrancy info
4170         * src/port.h,
4171         * src/avr/main.c,
4172         * src/ds390/main.c,
4173         * src/hc08/main.c,
4174         * src/pic/main.c,
4175         * src/pic16/main.c,
4176         * src/xa51/main.c,
4177         * src/z80/main.c: port.reg_parm prototype extended with
4178           "bool reentrant" parameter
4179         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
4180           options.stackAuto for allocating bit register parameters
4181         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
4182           (genSend): set BitBankUsed if it is,
4183           (selectRegBank): factored out of genCall for use in genPcall,
4184           (genCall): removed redundant dtype assignmen, use selectRegBank,
4185           (genPcall): handle returning in Carry properly, save in F0 if needed,
4186           (genReceive): handle bit register parameters
4187         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
4188           (mcs51_assignRegisters): enable bit registers for all reentrant
4189            functions and don't set BitBankUsed unconditionally
4190         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
4191         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
4192         * support/regression/tests/funptrs.c: added tests for BOOL and for return
4193
4194 2005-08-27 Borut Razem <borut.razem AT siol.net>
4195
4196         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
4197         ppc-osx (Darwin) does not support -u option. It seems that it is
4198         supported only on Linux - GNU cp
4199
4200 2005-08-25 Borut Razem <borut.razem AT siol.net>
4201
4202         * sim/ucsim/gui.src/serio.src/Makefile.in,
4203           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
4204           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4205           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
4206           install and strip, since the strip at /usr/ccs/bin should be used
4207           on solaris
4208
4209 2005-08-24 Borut Razem <borut.razem AT siol.net>
4210
4211         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
4212
4213 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
4214
4215         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
4216         ffffffffu
4217
4218 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
4219
4220         * as/mcs51/aslink.h: completed lkrloc.c prototypes
4221         * as/mcs51/lkmain.c (link_main): fixed warning
4222         * device/include/stdbool.h: ds390 has no advanced bit support yet
4223         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
4224         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
4225         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
4226           and updated their macros
4227         * src/SDCCval.c (constVal): updated comment for renamed b_long
4228
4229 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
4230
4231         * as/mcs51/asdata.c: changed ctype['['] to BINOP
4232         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
4233           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
4234           (oprio): set priority for '['
4235         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
4236            and adb_24_bit
4237         * as/mcs51/asm.h: added defines R_BIT and S_BIT
4238         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
4239         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
4240         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
4241           added overlayable BIT_BANK area
4242         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
4243           (summary2): explain 'T' in legenda
4244         * as/mcs51/lkrloc.c: replaced old K&R style,
4245           (relr): added R_BIT processing,
4246           (errmsg): added "Bit-addressable relocation error",
4247           (adb_bit): added for converting from byte- to bit-addressable space,
4248           (adb_24_bit): added for converting from byte- to bit-addressable space
4249         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
4250            used in reentrant functions now even as return value
4251         * device/lib/_gptrput.c (_gptrput): removed obsolete code
4252         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
4253           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
4254         * src/SDCCglobl.h: added indicator BitBankUsed
4255         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
4256            the bit registers b0-b7
4257         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
4258           (geniCodeCast): fixed bug 1263853,
4259           (geniCodeLogicAndOr): put result in bool or char,
4260           (geniCodeReceive): added parameter func for accessing the return type,
4261           (geniCodeFunctionBody): pass func to geniCodeReceive
4262         * src/SDCCmain.c: added indicator BitBankUsed
4263         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
4264         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
4265           (checkSClass): don't put automatic bool/bit on stack,
4266           (checkFunction): removed check on function cannot return bit
4267         * src/SDCCsymt.h: added newBoolLink prototype
4268         * src/mcs51/gen.c (rb1regs): added bit registers,
4269           (movc): created for assigning to carry,
4270           (pushReg, popReg): created for pushing registers,
4271           (sameRegs): check both AOP_REG and AOP_CRY types,
4272           (aopOp): handle bit registers,
4273           (aopPut): optimization no self-assign,
4274           (saveRegisters): push reg->base (bits) only once for bit registers,
4275            and use pushReg,
4276           (unsaveRegisters): pop reg->base only once and use popReg,
4277           (assignResultValue): added parameter func and return in carry for bits,
4278           (genIpush): optimization no reload in A if not changed,
4279           (genSend): bit parameters in reentrant functions are passed in bit
4280            registers by first assigning to bits in B, then save registers and
4281            copy B to bits,
4282           (genCall): handle returning in Carry properly, save it in F0 if needed,
4283           (genPcall): updated assignResultValue call, this is not safe yet for bit
4284            returning function !!!
4285           (genFunction): don't generate equ's for bit registers and use pushReg,
4286           (genEndFunction): take care of bit returning functions and use popReg,
4287           (genRet): return bit in Carry,
4288           (genIfx): optimize bit registers and other directly addressable bits,
4289           (genReceive): updated assignResultValue call
4290         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
4291           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
4292            registers when using stack-auto
4293         * src/mcs51/ralloc.c (_G): added allBitregs,
4294           (regs8051): added the bit registers,
4295           (createStackSpil): use macro IS_BIT,
4296           (getRegBit): added to allocate a bit register, else spill,
4297           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
4298           (updateRegUsage): factored out to ease stepping while debugging,
4299           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
4300            also allocate bit registers,
4301           (fillGaps): handle bit registers,
4302           (findAllBitregs): added to create bit vector with all bit registers,
4303           (mcs51_allBitregs): returns this bit vector,
4304           (mcs51_assignRegisters): when using stack-auto use bit registers for
4305            passing parameters and creating local variables
4306         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
4307
4308 2005-08-22 Borut Razem <borut.razem AT siol.net>
4309
4310         * device/lib/Makefile.in: replaced find option -or with -o
4311           to make it run on solaris
4312
4313 2005-08-22 Raphael Neider <rneider AT web.de>
4314
4315         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
4316           fixes #1265442 (crash on Solaris)
4317
4318 2005-08-20 Borut Razem <borut.razem AT siol.net>
4319
4320         * configure, configure.in: added tests for libsocket and libnsl libraries,
4321           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
4322           from support/regression/Makefile.in
4323         * support/regression/Makefile.in: added
4324         * device/lib/pic16/Makefile.common.in: force make to use bash shell
4325         * sim/ucsim/libtool: regenerated on sparc-solaris
4326         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4327           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
4328           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
4329           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
4330           sparc-solaris, which doesn't use GNU ld linker
4331         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
4332         * as/Makefile: find on sparc-solaris does not support -maxdepth option
4333
4334 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
4335
4336         * src/mcs51/peeph.def: updated comments
4337
4338 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4339
4340         * device/lib/_gptrget.c,
4341         * device/lib/_gptrput.c: slightly shorter
4342         * doc/sdccman.lyx: incremented version
4343         * src/mcs51/peeph.def: moved peephole comments to the line of first
4344           change to better keep line correlation, reanimated 186.e
4345         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
4346
4347 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4348
4349         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
4350           David Saxton with quotes around file name.
4351
4352 2005-08-15 Borut Razem <borut.razem AT siol.net>
4353
4354         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
4355           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
4356           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
4357           make tests run on x86_64 platform
4358
4359 2005-08-13 Raphael Neider <rneider AT web.de>
4360
4361         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
4362           as it might be executed DURING a build (parallel make is wonderful)
4363
4364 2005-08-13 Raphael Neider <rneider AT web.de>
4365
4366         * device/lib/Makefile.in (port-specific-objects-pic16):
4367           revert to cp $(PORT)/bin/*.* $(PORTDIR)
4368         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
4369           dependency
4370         * device/lib/pic16/Makefile.rules: build subdirs before creating
4371           the library, removed builddir rule, create $(builddir) early in
4372           recurse rule, use empty recurse rule for leaf directories
4373         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
4374           mkdir errors (race condition), removed duplicate suffix "hex"
4375           from clean rules
4376         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
4377         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
4378           prevents mkdir -p from aborting on Alpha
4379
4380 2005-08-12 Raphael Neider <rneider AT web.de>
4381
4382         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
4383           db-statements in order to allow for arrays of pointers in code
4384           sections to be placed without interspersed 0-padding, fixes
4385           bug #1256215
4386         * (emitStatistics): fixed division by zero for pic18f1220
4387         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
4388           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
4389         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
4390         * (pic16_pCodeConstString): keep track of already emitted string
4391           literals to prevent "duplicate definitions of symbol _str_NR"
4392         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
4393           debug message
4394         * device/lib/Makefile.in: ignore failing PIC16 library builds
4395         * device/lib/pic16/Makefile: do not build if gputils are missing
4396         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
4397
4398 2005-08-10 Raphael Neider <rneider AT web.de>
4399
4400         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
4401           my last commit)
4402
4403 2005-08-10 Raphael Neider <rneider AT web.de>
4404
4405         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
4406           Rokas' patch to add the new fixed point type "__fixed16x16"
4407         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
4408           functions for __fixed16x16 arithmetics
4409         * device/lib/pic16: reimplemented the build system to support
4410           a separate build directory, better handling of libio (create
4411           the library in a separate subdir for each architecture) and
4412           easier configuration (centralized in Makefile.common)
4413
4414 2005-08-07 Raphael Neider <rneider AT web.de>
4415
4416         * src/pic16/gen.c (genrshTwo): fixed sign extension
4417         * src/pic16/device.c: added pic18f2320, 4220 and 4320
4418         * device/include/pic16/pic18f2220.h: changed some bit definitions,
4419           added T0CONbits
4420         * device/include/pic16/pic18f4220.h: NEW, header for
4421           pic18f4220 and pic18f4320
4422         * device/include/pic16/pic18fregs.h: added new devices,
4423           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
4424         * device/include/pic16/signal.h: resolved name clashes
4425           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
4426           to also allow testing for interrupt enable bits, added
4427           comments on how to use the macros
4428         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
4429         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
4430           register definitions for the devices
4431         * device/lib/pic16/pics.all: added new devices
4432         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
4433           allocated memory
4434         * device/lib/pic16/libc/stdlib/memfree: do not count
4435           the block header as free memory
4436         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
4437           simplified and added missing end-of-blocklist-marker
4438           (reported by Peter Onion, fixes #1252814)
4439         * (_mergeHeapBlock): fixed loop condition
4440         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
4441           len==0, restructured code
4442         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
4443           up a bit, reduced bitfield accesses, prevent endless loops
4444           in case of heap corruption
4445         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
4446           "unreferenced arguments/must return a value" warnings
4447         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
4448           replaced BAUDREG with SPBRG
4449         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
4450           device/lib/pic16/debug/gstack/gstack.c: replaced
4451           _naked, _asm, _endasm with __naked, __asm, __endasm
4452
4453 2005-08-05 Raphael Neider <rneider AT web.de>
4454
4455         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
4456           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
4457
4458 2005-08-05 Borut Razem <borut.razem AT siol.net>
4459
4460         * device/lib/Makefile.in: added missing ';'
4461         * configure: removed ^M characters
4462
4463 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4464
4465         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
4466           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
4467           License
4468
4469 2005-08-04 Borut Razem <borut.razem AT siol.net>
4470
4471         * configure.in: pic16 libraries build 2nd try - enable running
4472           configure in device/lib/pic16
4473         * configure: regenerated from configure.in
4474         * device/lib/Makefile.in: create $(PORT)/bin directory
4475
4476 2005-08-03 Raphael Neider <rneider AT web.de>
4477
4478         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
4479           to get/set values via pointers
4480         * (genUnpackBits,genPackBits): changed detection of
4481           ptr->bitfield vs. sym.bitfield, fixed access via generic
4482           pointers, removed dead (wrong) code for multibyte bitfields
4483         * (genNearPointerGet, genGenPointerGet): removed useless code,
4484           fixed bitfield detection, fixes #1250594
4485         * (genNearPointerSet): removed useless code
4486         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
4487           and introduced macro pic16_emitpcode that conditionally emits
4488           the origin of the following pCode (useful for debugging SDCC)
4489         * src/pic16/pcode.c: changed (and disabled) some debug outputs
4490         * (createDefmap): fixed handling of LFSR for --optimize-df
4491
4492 2005-08-02 Borut Razem <borut.razem AT siol.net>
4493
4494         * device/lib/Makefile.in: pic16 libraries build enabled since
4495           gputils-0.13.2 are now localy installed at sourceforge's compile farm
4496
4497 2005-08-02 Raphael Neider <rneider AT web.de>
4498
4499         * src/pic16/gen.c (genPackBits): removed deprecated warning
4500         * (genGenPointerSet): fixed bitfield detection
4501
4502 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4503
4504         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
4505
4506 2005-07-31 Raphael Neider <rneider AT web.de>
4507
4508         * device/lib/pic16/libdev/pic18f458.c,
4509           device/include/pic16/pic18f458.h: added missing T0CONbits
4510
4511 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
4512
4513         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
4514
4515 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
4516
4517         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
4518
4519 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4520
4521         * device/include/mcs51/at89c51ed2.h: added.
4522
4523 2005-07-23 Raphael Neider <rneider AT web.de>
4524
4525         * src/pic/gen.h: added emitpcode macro for debugging
4526         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
4527           and replace by macro adding debug information on demand
4528         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
4529         * (gencjne): tried to fix; replaced with correct (slower) code
4530         * (gen{Unp,P}ackBits): fixed single bit access
4531         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
4532         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
4533           previous instruction
4534         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
4535           register has to be handled with care (forbidding movement
4536           of assignments/uses, removing assignments completely, ...)
4537         * (pCodeOptime2pCodes): make use of regIsSpecial
4538         * added lots of debugging output (commented out)
4539         * src/pic/rallloc.c (deassignLRs): prevent operand registers
4540           from being reused as result UNLESS it is known to work
4541
4542 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
4543
4544         * support/Util/dbuf.h: include <stddef.h> for size_t
4545         * .version: changed to version 2.5.2
4546
4547 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4548
4549         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
4550
4551 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4552
4553         * src/hc08/gen.c (genMinus): fixed bug #1241835,
4554           (genModOneByte): removed needless psha/pula
4555
4556 2005-07-22 Raphael Neider <rneider AT web.de>
4557
4558         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
4559           have PIC14 handled like PIC16, fixes broken pic14 linker calls
4560         * src/pic/gen.c (resolveIfx): do not "invent" labels
4561         * (genSkipc): changed to positive logic
4562         * (genSkipCond): removed as no longer needed
4563         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
4564           backport from PIC16
4565         * (genLeftShift): check operands are in different registers
4566         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
4567           INCF does not update CARRY...
4568         * src/pic/main.c: fixed _linkCmd
4569         * src/pic/pcode.c (unlinkpCode): added inactive code
4570         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
4571           alive (do not assign result and operand overlapping registers)
4572
4573 2005-07-22 Raphael Neider <rneider AT web.de>
4574
4575         * src/pic/device.c (dump_sfr): replaced register declaration with
4576           call to emitSymbolToFile() to avoid duplicate symbols
4577         * (assignRelocatableRegisters): do not declare external symbols
4578         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
4579           right (take size of type, not etype)
4580         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
4581         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
4582         * (packRegsForAccUse): disabled assignment of WREG as
4583           the result reg to prevent occurence of just fixed #1235003,
4584           fixes #1242954
4585         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
4586           symbols (avoids duplicate symbols in .asm file)
4587         * (pic14emitRegularMap): use emitSymbolToFile()
4588         * src/pic/gen.c (aopOp): fixed spillLocation handling
4589         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
4590         * (genDataPointerSet): removed unneccessary variables/output
4591
4592 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
4593
4594         * as/mcs51/lkarea.c: enlarged codemap for banked memory
4595         * device/lib/mcs51/crtbank.asm: added # to 0x0F
4596
4597 2005-07-21 Raphael Neider <rneider AT web.de>
4598
4599         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
4600           architecture cannot handle them efficiently, fixes bug #1235003
4601         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
4602           check for empty sets before using them (fixes bug #1232190)
4603
4604 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
4605
4606         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
4607           (lnksect2): generate warnings for memory overlap
4608         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
4609           constseg to set the name of these segments so you can instruct the linker
4610           to place them in banks
4611         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
4612         * src/SDCCglobl.h: added MODEL_HUGE to enum,
4613           added code_seg and const_seg to options
4614         * src/SDCCglue.c (emitMaps): use options.const_seg,
4615           (createInterruptVect): put interrupt vectors in segment HOME,
4616           (glue): put HOME before static segment and put the main glue in HOME,
4617           (glue): use options.code_seg
4618         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
4619         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
4620           these segments so you can instruct the linker to place them in banks
4621           (linkEdit): use code_loc for HOME segment which should be the first
4622           segment in code memory now
4623         * src/SDCCmem.c: fixed more stuff like bug 1238386
4624         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
4625           (changePointer): don't change function pointers to code pointers for
4626           banked functions,
4627           (compareType): added exceptional check for banked function pointers
4628         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
4629         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
4630           after static in code memory
4631         * src/mcs51/gen.c: added aopLiteralLong prototype,
4632           (aopForSym): use getSize for functions,
4633           (genCall): generate banked calls over one trampoline __sdcc_banked_call
4634           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
4635           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
4636           the segment,
4637           (genPcall): use call for literal function pointers and generate banked
4638           calls over the one trampoline so there's only one place for the user to
4639           modify according to his/hers hardware,
4640           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
4641           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
4642         * src/mcs51/main.c: added keyword banked,
4643           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
4644         * support/Util/SDCCerr.c,
4645         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
4646           needed for passing the bank and address to the trampoline
4647         * device/lib/mcs51/crtbank.asm: added for bankswitching
4648         * device/lib/mcs51/Makefile: added crtbank
4649
4650 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4651
4652         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
4653           for fields at offset 0 of a struct or union as reported
4654           on 2005-07-07 in the developer mailing list.
4655
4656 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
4657
4658         * src/SDCCmem.c: fixed bug 1238386
4659
4660 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4661
4662         * src/mcs51/peeph.def: added labelrefcounting for peepholes
4663           (patch #1144962), added peephole 300, enabled 259.x
4664         * doc/sdccman.lyx: removed screenshot and provided link instead
4665
4666 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4667
4668         * doc/sdccman.lyx: added section about debugging with ddd
4669         * doc/figures/ddd_example.eps: screenshot of debugging session
4670
4671 2005-07-04 Raphael Neider <rneider AT web.de>
4672
4673         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
4674           like CODE pointers, fixes #1115683
4675         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
4676           call, fixes bugs #1232211, #1228110,
4677           fixed wrong casts to pCodeFlow from pCodeInstructions
4678
4679 2005-07-04 Raphael Neider <rneider AT web.de>
4680
4681         * src/pic/gen.c (popGet): changed assert to allow for
4682           bit operands
4683         * (popGetAddr): changed signature to provide
4684           an additional index, patched all call sites
4685         * (genCmpEq): handle literal-like operands correctly
4686         * (genAddrOf): added sanity checks on __code/__data pointers
4687         * (genAssign): added handling of symbols from __code section
4688         * (gencjne): do not generate code for comparisons whose result
4689           is neither stored nor used, fixes bug #1171114
4690         * (AccLsh, AccRsh): operate on operand instead of WREG
4691         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
4692           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
4693           by known count
4694         * rewrote complete shift-by-literal logic, commented unused
4695           functions out
4696         * (genConstPointerGet): get multiple bytes (if result size > 1),
4697           fixed handling of non-immediate addresses
4698         * (genPointerGet): handle CODE pointers like CONST pointers
4699         * (genpic14Code): insert C-SRC lines as Cource-pCodes
4700         * ({aop,op}_isLitLike): NEW, single place to decide whether an
4701           operand is to be treated as a literal or not
4702         * (mov2w,genPcall,genCmpEq),
4703           src/pic/genarith.c: use aop_isLitLike() to decide between
4704           literal/register contents
4705         * (addSign): added missing offset
4706         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
4707           only emit comment in debug-mode,
4708           use {aop,op}_isLitLike throughout the file
4709         * src/pic/glue.c: fix initializers for pointers (work in progress)
4710         * src/pic/pcode.c (get_op): honor index on _const symbols
4711         * ({reset,dump}pCodeStatistics): NEW, estimate code size
4712         * (dumppBlock): added pCode size estimation
4713         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
4714           check for IS_SYMOP before OP_SYMBOL'ing
4715         * fixed indentation, compacted switch-statements
4716         * (allocReg): find free register and allocate it instead of
4717           allocating new registers all the time
4718         * (deassignLRs): prevent POINTER_GET's from being assigned the same
4719           registers as its operands (necessary only for multibyte GETs)
4720
4721 2005-07-01 Raphael Neider <rneider AT web.de>
4722
4723         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
4724           debugging .asm-output macros FENTRY + FEXIT
4725         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
4726           way... I wonder...
4727         * (emitpComment): NEW, printf to pCode
4728         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
4729           offset handling
4730         * (popGetAddr): NEW, variant of popGet to access an immediates
4731           high(er) bytes instead of the n'th byte of memory they reference,
4732           replaced popGet with popGetAddr where neccessary
4733         * (genDataPointerGet): reactivated and fixed implementation
4734         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
4735           accesses
4736         * (genDataPointerSet): fixed multibyte assignments
4737         * (genpic14Code): fixed --i-code-in-asm handling
4738         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
4739         * (genPlus): fixed index-out-of-bounds error
4740         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
4741         * src/pic/ralloc.c: added debugging output macro FENTRY2
4742         * (spillThis): fixed indentation, enbraced for-body for clarity
4743         * (rematStr): commented out as now unused
4744         * (regTypeNum): commented out special spill case (overwrites
4745           arbitrary values)
4746         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
4747
4748 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
4749
4750         * doc/sdccman.lyx: documented sfr16/sfr32,
4751           added example for using storage class with function pointers
4752         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
4753
4754 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
4755
4756         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
4757         * device/lib/_itoa.c,
4758         * device/lib/_ltoa.c: optimized codesize
4759         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
4760           but don't know how to suppress the double warning.
4761         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
4762         * support/Util/SDCCerr.c,
4763         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
4764
4765 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
4766
4767         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
4768           fixed old K&R prototypes
4769         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
4770         * device/lib/_gptrget.c,
4771         * device/lib/_gptrgetc.c,
4772         * device/lib/_gptrput.c: changed versions for new memory indicator values,
4773           also new versions for small generic pointers and banked generic pointers
4774         * src/port.h: added const_name
4775         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
4776         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
4777         * src/SDCCcse.c (findPrevIc): check all associative operators
4778         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
4779         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
4780         * src/SDCCmem.c: updated comments,
4781           set far-space to 0 for pdata, results in optimized code
4782         * src/SDCCmem.h: added macro CONST_NAME
4783         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
4784           moving the info into the highest bits, see also gptrget/gptrput
4785         * src/src.dsp: added sdcc.ico to project files
4786         * src/avr/gen.c (genCast): fixed bug 0x%d
4787         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
4788         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
4789           relation between ptr_type and DCL_TYPE,
4790           (genCast): fixed bug 0x%d
4791         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
4792           (CODE)" for const_name
4793         * src/hc08/gen.c (genCast): fixed bug 0x%d
4794         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
4795           (hc08_port): added "CONST (CODE)" for const_name
4796         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
4797           (aopForRemat, adjustArithmeticResult): disconnected direct relation
4798           between ptr_type and DCL_TYPE,
4799           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
4800           operand* and took AOP() inside function so sfr-ness can be checked,
4801           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
4802           new prototype,
4803           (genFunction, genEndFunction): optimized stack setup,
4804           (genMinus): optimized for literals with ending zeroes (in bytes),
4805           (genCast): fixed bug 0x%d
4806         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
4807           (mcs51_port): added "CONST (CODE)" for const_name
4808         * src/mcs51/peeph.def: made rule 226 more generic
4809         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
4810         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
4811         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
4812         * src/z80/main.c (z80_port): added NULL for const_name,
4813           (gbz80_port): added NULL for const_name
4814         * support/regression/tests/bug663539.c,
4815         * support/regression/tests/sfr16.c: new tests
4816
4817 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4818
4819         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
4820
4821 2005-06-24 Raphael Neider <rneider AT web.de>
4822
4823         * device/lib/pic16/libdev/pic18f[68][567]20.c:
4824           corrected typos...
4825         * device/include/pic16/signal.h: added USBIF
4826           and SIG_USB
4827
4828 2005-06-24 Raphael Neider <rneider AT web.de>
4829
4830         * device/lib/pic16/libdev/pic18f2455.c,
4831           device/include/pic16/pic18f2455.h: NEW
4832         * device/include/pic16/pic18fregs.h,
4833           device/lib/pic16/pics.all,
4834           src/pic16/device.c: added 18f2455
4835         * device/lib/pic16/libdev/pic18f[68][567]20.c,
4836           device/include/pic16/{pic18f[68][567].h,usart.h}:
4837           replaced MULTIPLE_USARTS define with more relaible
4838           compatibility sfrs (for USART access)
4839
4840 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
4841
4842         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
4843           and the output asm file line is printed on two lines.
4844
4845 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4846
4847         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
4848           BGT, BLE, BHI, and BLS instructions
4849         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
4850           genCmpEq): removed
4851         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
4852           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
4853           fixes bug #1216342
4854         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
4855
4856 2005-06-15 Raphael Neider <rneider AT web.de>
4857
4858         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
4859         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
4860         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
4861           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
4862           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
4863
4864 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4865
4866         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
4867           Marcel Telka in bug #1215704
4868
4869 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
4870
4871         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
4872           located in shared memory bank.
4873
4874 2005-05-31 Raphael Neider <rneider AT web.de>
4875
4876         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
4877           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
4878           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
4879
4880 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
4881
4882         * device/lib/_strncpy.c: fixed the fix
4883
4884 2005-05-26 Raphael Neider <rneider AT web.de>
4885
4886         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
4887           initializers with \0, bug #1208187
4888         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
4889           intializers with \0, bug #1208187
4890
4891 2005-05-26 Raphael Neider <rneider AT web.de>
4892
4893         * src/pic16/glue.c (pic16_printIvalChar): fixed string
4894           initializers with \0, bug #1208187
4895         * src/pic16/main.c (_process_pragma): added sanity checks
4896           for stack position and size, emit warnings when appropriate
4897
4898 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4899
4900         * device/lib/_strncpy.c: fixed not filling with \0
4901
4902 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4903
4904         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
4905           createFunction),
4906         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
4907           compound_statement),
4908         * src/SDCCsymt.h,
4909         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
4910
4911 2005-05-24 Raphael Neider <rneider AT web.de>
4912
4913         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
4914
4915 2005-05-24 Raphael Neider <rneider AT web.de>
4916
4917         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
4918           TRISE definitions, closes bug #1162453
4919
4920 2005-05-22 Raphael Neider <rneider AT web.de>
4921
4922         * src/pic16/main.c (_process_pragma): check for missing
4923           arguments to pragmas code and udata
4924         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
4925           consistency fixes to match other headers (thanks to Jim Paris)
4926         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
4927
4928 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4929
4930         * src/SDCCicode.c (isOperandEqual): fixed missing ;
4931
4932 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
4933
4934         * support/regression/tests/bug1198642.c: new test
4935         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
4936         * src/SDCCcse.c (findPrevIc): added comment, please have a look
4937         * support/scripts/resource.h,
4938         * support/scripts/resource.rc,
4939         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
4940         * support/scripts/sdcc.ico: added 32x32 icon
4941
4942 2005-05-18 Raphael Neider <rneider AT web.de>
4943
4944         * device/lib/pic16/libdev/pic18f*.c,
4945         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
4946           keywords to "__sfr" and "__at (X)"
4947         * device/include/pic16/pic18fregs.h: added pic18f4520
4948         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
4949           #1203088 (MPLAB compatibility)
4950
4951 2005-05-17 Raphael Neider <rneider AT web.de>
4952
4953         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
4954         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
4955         * device/lib/pic16/pics.all: added new devices
4956         * src/pic16/device.c: added support for pic18f4520
4957
4958 2005-05-16 Raphael Neider <rneider AT web.de>
4959         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
4960         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
4961         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
4962           convenience function for bit access
4963
4964 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4965
4966         * device/lib/printf_large.c: fixed bug 1193299
4967         * support/regression/tests/bug1057979.c: added test %3.3s
4968
4969 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4970
4971         * device/include/mcs51/8051.h,
4972         * device/include/mcs51/8052.h: made parseable with lint
4973         * device/include/mcs51/lint.h: added include file for (sp)lint
4974         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
4975         * doc/cdbfileformat.lyx,
4976         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
4977
4978 2005-05-14 Raphael Neider <rneider AT web.de>
4979
4980         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
4981         * device/lib/pic16/libc/stdlib/itoa.c (new)
4982         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
4983         * device/lib/pic16/libio/Makefile: exclude subdir according to
4984           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
4985         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
4986         * src/pic16/gen.c (genFunction): prevent annoying warning
4987         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
4988           nameclashes on BeOS
4989         * support/cpp2/cppmain.c (cpp_output_string): new
4990         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
4991           fixes bug 1116802
4992
4993 2005-05-13 Borut Razem <borut.razem AT siol.net>
4994
4995         * src/SDCCmain.c (linkEdit): fixed bug 1195202
4996
4997 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4998
4999         * .version: changed to version 2.5.1; back to bleeding edge development
5000
5001 2005-05-11 Borut Razem <borut.razem AT siol.net>
5002
5003         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
5004           generate PDF version 1.3 documents
5005
5006 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5007
5008         * .version: changed to version 2.5.0
5009
5010 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5011
5012         * doc/sdccman.lyx: updated weblinks, index and smaller updates
5013
5014 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5015
5016         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
5017         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
5018         well as many smaller updates.
5019         * .version: changed to version 2.5.0-pre1
5020
5021 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5022
5023         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
5024
5025 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5026
5027         * support/regression/tests/bug1185672.c: added
5028         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
5029           bug 1185672
5030         * src/mcs51/gen.c (genCall): added comments, made it look safer
5031         * src/mcs51/gen.c (genEndFunction): simplified
5032
5033 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5034
5035         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
5036
5037 2005-04-14 Borut Razem <borut.razem AT siol.net>
5038
5039         * fixed bug 1045046 - SIGSEGV with really simple code?:
5040           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
5041           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
5042
5043 2005-04-14 Borut Razem <borut.razem AT siol.net>
5044
5045         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
5046           src/pic16/device.h: temporarily disabled experimental #inline pragma
5047           for 2.5.0 release
5048
5049 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
5050
5051         * device/include/z80/stdio.h,
5052         * device/include/z80/string.h: removed these highly incomplete files so
5053           SDCC can use the default ones in device/include/
5054
5055 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5056
5057         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
5058         gcc warning.
5059         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
5060         fix sdcpp warnings.
5061
5062 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5063
5064         * device/include/malloc.h: removed redundant __reentrant prototypes
5065         * device/lib/_mullong.c: added working xstack variant in asm (C version
5066           doesn't pass regression tests)
5067         * device/lib/bpx.c: used __data and made bpx char for mcs51
5068         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
5069           (createFunction): fixed bug with xstackPtr
5070         * src/SDCCcse.c: corrected comments
5071         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
5072           (killDeadCode, eBBlockFromiCode): removed unused code
5073         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
5074           corrected comments
5075         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
5076           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
5077           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
5078           (genModOneByte): fixed warning in MSVC
5079         * src/mcs51/main.c (): added comments
5080         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
5081
5082 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5083
5084         * src/SDCCmain.c (linkEdit): oops, changed one line too many
5085
5086 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
5087
5088         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
5089
5090 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
5091
5092         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
5093         characters arrays of larger size than the declared one.
5094
5095 2005-04-10 Borut Razem <borut.razem AT siol.net>
5096
5097         * src/pic/gen.c (genInline),
5098           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
5099           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
5100           (findNextInstruction), (findPrevInstruction),
5101           (findInstructionUsingLabel),
5102           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
5103         * src/pic/pcode.c (findLabel): added missing '\n'
5104         * src/src.dsp: added SDCCdwarf2.c to the project
5105
5106 2005-04-09 Borut Razem <borut.razem AT siol.net>
5107
5108         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
5109
5110 2005-04-08 Raphael Neider <rneider AT web.de>
5111
5112         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
5113           into the chain after a given one) and mergeDefmapSymbols (combine
5114           defmap entries for each symbol per pcode)
5115         * (createDefmap): have defmap entries merged in the end
5116         * (defmapReplaceSymRef): split defmap entries covering two accesses to
5117           a symbol before replacing one access type's symbol, merge symbols in
5118           the end (replacement symbol might already have an entry)
5119         * (assignValnums): keep reference to written WREG intact
5120
5121 2005-04-08 Raphael Neider <rneider AT web.de>
5122
5123         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
5124           Alpha)
5125
5126 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
5127
5128         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
5129         bytes
5130
5131 2005-04-07 Raphael Neider <rneider AT web.de>
5132
5133         * device/include/pic16/usart.h: added compatibility defines for
5134           devices with more than one USART
5135         * device/include/pic16/pic18f[68][567]20.h: activated above defines
5136
5137 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5138
5139         * device/lib/Makefile.in: updated for port specific include
5140
5141 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5142
5143         * support/regression/ports/mcs51/spec.mk: added mcs51 include
5144
5145 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5146
5147         * device/include/8051.h,
5148         * device/include/8052.h,
5149         * device/include/at89S8252.h,
5150         * device/include/at89c55.h,
5151         * device/include/at89x051.h,
5152         * device/include/at89x51.h,
5153         * device/include/at89x52.h,
5154         * device/include/mcs51reg.h,
5155         * device/include/reg51.h,
5156         * device/include/reg764.h,
5157         * device/include/regc515c.h,
5158         * device/include/sab80515.h: (re)moved these 12 files
5159         * device/include/mcs51/8051.h,
5160         * device/include/mcs51/8052.h,
5161         * device/include/mcs51/at89S8252.h,
5162         * device/include/mcs51/at89c55.h,
5163         * device/include/mcs51/at89x051.h,
5164         * device/include/mcs51/at89x51.h,
5165         * device/include/mcs51/at89x52.h,
5166         * device/include/mcs51/mcs51reg.h,
5167         * device/include/mcs51/reg51.h,
5168         * device/include/mcs51/reg764.h,
5169         * device/include/mcs51/regc515c.h,
5170         * device/include/mcs51/sab80515.h: and added them here
5171
5172 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5173
5174         * device/include/stdarg.h: changed SDCC specific keywords to double
5175           underlined form.
5176         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
5177           mcs51 and ds390.
5178         * device/include/hc08/mc68hc908gp32.h,
5179         * device/include/hc08/mc68hc908jb8.h,
5180         * device/include/hc08/mc68hc908jkjl.h,
5181         * device/include/hc08/mc68hc908qy.h: fixed comments
5182         * device/include/mcs51/README: updated
5183         * device/include/mcs51/c8051f120.h: added PINRSF
5184         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
5185         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
5186           amidst code. Also inline is not supported.
5187
5188 2005-04-06 Raphael Neider <rneider AT web.de>
5189
5190         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
5191         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
5192           callers stack/frame pointers
5193
5194 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5195
5196         * device/include/pic16/usart.h: added, missing in previous commit,
5197         * device/include/pic16/adc.h: fixed typo,
5198         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
5199         commit,
5200         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
5201         <p18fxxx.inc>
5202         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
5203         uninitialized because a bug appears with gplink
5204         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
5205         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
5206         complains for unrecognised option
5207
5208 2005-04-05 Raphael Neider <rneider AT web.de>
5209
5210         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
5211           structs as well (using memcpy)
5212         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
5213           on ISRs (GOTO has no label)
5214         * src/pic16/device.h: added OF_OPTIMIZE_DF
5215         * src/pic16/main.c: added compiler switch --optimize-df to enable the
5216           new data flow analysis/optimization
5217         * src/pic16/pcode.c: added (prototypes for and implementation of)
5218           dataflow analysis functions, fixed pCodeInstructions' inCond and
5219           outCond values, made RCALL a branch instruction
5220         * (pic16_unlinkpCode): keep C line if possible
5221         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
5222           C line moved if possible
5223         * (pic16_getRegFrompCodeOp): NEW, improved version of...
5224         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
5225           to use new pic16_getRegFrompCodeOp (works for more SFRs)
5226         * (pic16_BuildFlow): fixed skip instructions with label (did not start
5227           new flow)
5228         * (pic16_getJumptabpCode): NEW, needed in...
5229         * (LinkFlow): fixed handling of jumptables, calls and conditional
5230           branches
5231         * (pic16_InsertCommentAfter): NEW
5232         * (pic16_pCodeReplace): made verbose and flow preserving
5233         * (AnalyzeFlow): added call to data flow analysis
5234         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
5235         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
5236         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
5237
5238 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5239
5240         * src/SDCCast.c (decorateType): fixed bug #1105626
5241
5242 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
5243
5244         * device/include/asm/pic16/features.h,
5245         * pic18f*.h headers,
5246         * device/include/pic16/adc.h,
5247         * device/include/pic16/delay.h,
5248         * device/include/pic16/i2c.h,
5249         * device/include/pic16/malloc.h,
5250         * device/include/pic16/stdio.h,
5251         * device/include/pic16/stdlib.h,
5252         * device/include/pic16/string.h,
5253         * device/lib/pic16/libc/stdio/printf_tiny.c,
5254         * device/lib/pic16/libc/stdio/printf_small.c,
5255         * device/lib/pic16/libc/stdio/strmgpsim.c,
5256         * device/lib/pic16/libc/stdio/strmmssp.c,
5257         * device/lib/pic16/libc/stdio/strmusart.c,
5258         * device/lib/pic16/libc/stdio/vfprintf.c,
5259         * device/lib/pic16/libc/stdlib/ltoa.c,
5260         * device/lib/pic16/libc/stdlib/putchar.c,
5261         * device/lib/pic16/libc/stdlib/x_ftoa.c,
5262         * device/lib/pic16/libc/stdlib/memchrpgm.c,
5263         * device/lib/pic16/libc/stdlib/memchrram.c,
5264         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
5265         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
5266         * device/lib/pic16/libio/adc/adcbusy.c,
5267         * device/lib/pic16/libio/adc/adcread.c,
5268         * device/lib/pic16/libio/adc/adcsetch.c,
5269         * device/lib/pic16/libio/usart/ubaud.c,
5270         * device/lib/pic16/libio/usart/ubusy.c,
5271         * device/lib/pic16/libio/usart/udrdy.c,
5272         * device/lib/pic16/libio/usart/uopen.c,
5273         * device/lib/pic16/libio/usart/uputc.c,
5274         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
5275         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
5276         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
5277         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
5278         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
5279         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
5280         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
5281         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
5282         specific keywords to double underlined form,
5283         * device/lib/pic16/libc/Makefile.rules,
5284         * device/lib/pic16/libsdcc/Makefile.rules,
5285         * device/lib/pic16/libm/Makefile,
5286         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
5287         to compile with C standard set in Makefile.common
5288         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
5289         rand.c and crc.c in compilation process,
5290         * device/lib/pic16/libsdcc/int/divuint.c,
5291         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
5292         `c' from signed to unsigned,
5293         * device/lib/pic16/startup/crt0.c,
5294         * device/lib/pic16/startup/crt0i.c,
5295         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
5296         keywords to double underlined form, bug fixes in _do_cinit function
5297         which prevented the correct initialization of the .idata segment,
5298         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
5299         core to enter a infinite loop
5300         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
5301
5302 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5303
5304         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
5305
5306 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5307
5308         * device/include/Makefile.in: add support for hc08 subdirectory
5309         * device/include/hc08/: new subdirectory
5310         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
5311         Lucas Loizaga, thanks!
5312         * device/include/hc08/mc68hc908qy.h,
5313         * device/include/hc08/mc68hc908gp32.h,
5314         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
5315         their own directory. Changed internal macro names to use the compiler
5316         reserved namespace. Changed SDCC specific keywords to double
5317         underlined form.
5318         * device/include/math.h,
5319         * device/include/malloc.h,
5320         * device/include/stdarg.h,
5321         * device/include/stdbool.h
5322         * device/include/string.h,
5323         * device/include/tinibios.h,
5324         * device/include/ds400rom.h,
5325         * device/include/8051.h,
5326         * device/include/8052.h,
5327         * device/include/80c51xa.h,
5328         * device/include/at89c55.h,
5329         * device/include/at89S8252.h,
5330         * device/include/at89x51.h,
5331         * device/include/at89x52.h,
5332         * device/include/ds80c390.h,
5333         * device/include/reg764.h,
5334         * device/include/regc515c.h,
5335         * device/include/sab80515.h,
5336         * device/include/mcs51/c8051f000.h,
5337         * device/include/mcs51/c8051f018.h,
5338         * device/include/mcs51/c8051f020.h,
5339         * device/include/mcs51/c8051f040.h,
5340         * device/include/mcs51/c8051f060.h,
5341         * device/include/mcs51/c8051f120.h,
5342         * device/include/mcs51/c8051f300.h,
5343         * device/include/mcs51/c8051f310.h,
5344         * device/include/mcs51/c8051f320.h,
5345         * device/include/mcs51/c8051f330.h,
5346         * device/include/mcs51/c8051f350.h,
5347         * device/include/z180.h: Changed SDCC specific keywords to double
5348         underlined form.
5349
5350 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
5351
5352         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
5353         18F4455,
5354         * (pic16_assignConfigWordValue): disable testing of configuration
5355         register value with config mask,
5356         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
5357         function with port->fun_prefix,
5358         * (genFunction): when generating a naked interrupt function never
5359         create an absolute segment placed in interrupt vector address, place
5360         the actual interrupt function at IVA instead, when an interrupt
5361         function is generated with unspecified interrupt then do not create
5362         the absolute section,
5363         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
5364         code for generating a call to generic pointer get/put function with
5365         a call to function pic16_callGenericPointer(),
5366         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
5367         the call to the generic pointer get/put functions with prefixing the
5368         function name with port->fun_prefix,
5369         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
5370         * src/pic16/main.c (_process_pragma): prefix function with
5371         port->fun_prefix,
5372         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
5373         calling assembler, old 18Fxxxx macro is deprecated,
5374         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
5375         PC_ASMDIR in while condition,
5376         * (findInstruction): add PC_ASMDIR in while condition,
5377         * (buildCallTree): prefix main with port->fun_prefix,
5378         * (pic16_pCode2str): fixed bug that didn't emit the memory access
5379         identifier for variable with banked access in instructions BTFSS,
5380         BTFSC, BCF, BSF, BTG
5381         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
5382         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
5383         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
5384         perform optimization when enviroment variable NO_REG_OPT is set,
5385         * (insideLRBlock): NEW, return 1 if register is inside an
5386         INF_LOCALREGS block,
5387         * (RemoveRegFromLRBlock): remove a register that is completely
5388         eliminated by register optimization, but it is still left in local
5389         register store/restore in/from stack block,
5390         * (Remove2pcodes): after removing register, check to see if it
5391         should be removed from local register store/restore in/from stack
5392         block,
5393         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
5394         DUMMY_READ_VOLATILE,
5395
5396         * device/include/pic16/adc.h: minor prototype modifications and
5397         update,
5398         * device/include/pic16/malloc.h: added GPL notice various
5399         modifications,
5400         * device/include/pic16/stdint.h: NEW, standard header for ints
5401         * device/include/pic16/delay.h: NEW, header for delay functions,
5402         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
5403         delay1mtcy,
5404         * device/include/pic16/signal.h: NEW, header providing helper macros
5405         for implementing signal handlers,
5406         * device/include/pic16/stdio.h: added prototypes for functions,
5407         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
5408         prototypes for stdin and stdout, added macro PUTCHAR to
5409         automatically implement putchar function prototype,
5410         * device/include/pic16/usart.h: modified and updated USART library,
5411         * device/lib/pic16/libio/adc/,
5412         * device/lib/pic16/libio/i2c: some modifications to improve library
5413         performance,
5414         * device/lib/pic16/libc/stdio/: modifications for the new printf*
5415         family of functions,
5416         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
5417         family of functions and other sources,
5418         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
5419         of the PIC18Fxx[28] devices,
5420         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
5421         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
5422         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
5423         _do_cinit function, because the previous failed when local variables
5424         where not placed in the same memory bank,
5425         * device/lib/pic16/libsdcc/char/: various modifications to improve
5426         library performance,
5427         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
5428         information on the new functions of the c library and more...
5429
5430 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5431
5432         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
5433
5434 2005-03-26 Raphael Neider <rneider AT web.de>
5435
5436         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
5437           if condition == CARRY)
5438         * (genCmp): adapted to new genSkipc semantics
5439         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
5440           on rIfx (genCmp was broken)
5441
5442 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5443
5444         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
5445         * src/z80/main.c (_keywords[]),
5446         * src/SDCCglobal.h (struct options),
5447         * src/SDCC.y,
5448         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
5449         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
5450         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
5451         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
5452         always available in leading double underscore form. The C99 support is
5453         mostly missing, but it's a start.
5454         * support/regression/tests/bug-227710.c: fixed nonconforming use of
5455         reserved identifier "__data".
5456
5457 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5458
5459         * src/mcs51/peeph.def: fixed bug 1170013
5460
5461 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
5462
5463         * device/include/mcs51reg.h: fixed bug 842007
5464
5465 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5466
5467         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
5468         last time.
5469
5470 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5471
5472         * src/port.h (struct PORT),
5473         * src/avr/ralloc.c (avr_assignRegisters),
5474         * src/avr/main.c,
5475         * src/ds390/ralloc.c (ds390_assignRegisters),
5476         * src/ds390/main.c,
5477         * src/hc08/ralloc.c (hc08_assignRegisters),
5478         * src/hc08/main.c,
5479         * src/mcs51/ralloc.c (mcs51_assignRegisters),
5480         * src/mcs51/main.c,
5481         * src/pic/ralloc.c (pic14_assignRegisters),
5482         * src/pic/main.c,
5483         * src/pic16/ralloc.c (pic16_assignRegisters),
5484         * src/pic16/main.c,
5485         * src/xa51/ralloc.c (xa51_assignRegisters),
5486         * src/xa51/main.c,
5487         * src/z80/ralloc.c (z80_assignRegisters),
5488         * src/z80/ralloc.h,
5489         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
5490         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
5491         * src/SDCCcse.h,
5492         * src/SDCCdflow.c (computeDataFlow),
5493         * src/SDCCdflow.h,
5494         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
5495         * src/SDCCloop.h,
5496         * src/SDCCcflow.c (*),
5497         * src/SDCCcflow.h,
5498         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
5499         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
5500         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
5501         immedDom() returning wrong block; probably fixes bug #1160833)
5502
5503 2005-03-20 Borut Razem <borut.razem AT siol.net>
5504
5505         * support/scripts/inc2h.pl: WIN32 port
5506
5507 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
5508
5509         * device/lib/makefile.in: added abs.c and labs.c
5510
5511 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
5512
5513         * device/include/stdint.h: added
5514         * device/lib/abs.c: added
5515         * device/lib/labs.c: added
5516         * device/include/stdlib.h: added abs() and labs() prototypes
5517         * device/lib/libsdcc.lib: added abs and labs
5518         * device/include/float.h,
5519         * device/lib/_fsmul.c,
5520         * device/lib/printf_fast.c,
5521         * device/lib/printf_tiny.c: updated comments
5522
5523 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5524
5525         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
5526         bug #1164313
5527
5528 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5529
5530         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
5531         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
5532
5533 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
5534
5535         * device/lib/printf_large.c: removed inline assembly for portability and
5536           readability. Use printf_fast if speed or size are more important.
5537         * src/pic16/gen.c: removed conditions around use of DEBUGpc
5538         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
5539
5540 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
5541
5542         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
5543         prevent compiler warning
5544
5545 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5546
5547         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
5548         moved to level 0 and declared as static. Also they are explicit
5549         placed in access bank. This was necessery because some times they
5550         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
5551         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
5552         optimizations. Currently only compare to unsigned char is implemented,
5553         * src/pic16/gen.c: added fReturnIdx array,
5554         * (struct resolvedIfx) is moved to gen.h and made public,
5555         * (struct _G): added sregsAlloc and sregsAllocSet fields,
5556         * (aopForSym): added an optimization to directly store in stack of
5557         the operand of a SEND iCode,
5558         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
5559         but as registers instead (AOP_REG) using the fReturnIdx array,
5560         * (pic16_freeAsmop): remove the freed register from the
5561         _G.sregsAlloc field,
5562         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
5563         a compare of 'WREG',
5564         * (pic16_popGetTempRegCond): changed function prototype, now
5565         function takes also a bitVector argument v which holds the current
5566         set of registers that are allocated for stack access by aopForSym,
5567         registers allocated in aopForSym for accessing stack symbols are not
5568         any more part of the functions usedRegs field,
5569         * (genCall): some times aopOp is called for a stack variable to be
5570         send, aopForSym might perform the push, if this is true make sure
5571         that genCall doesn't push the variable twice by testing _G.resDirect,
5572         * (genFunction): changed testing for unspecified interrupt number
5573         from 256 to INTNO_UNSPEC,
5574         * modified selection scheme of frame pointer generation. Previously
5575         if function did use local registers a frame pointer was generated,
5576         now a frame pointer is generated only if function has arguments
5577         (that need PLUSW2 register access), or has stack arguments, or the
5578         compiler is not instructed to omit the frame pointer,
5579         * (genEndFunction): before restoring local registers that were saved
5580         in the function preamble, also restore the registers that *might*
5581         have been allocated for stack access,
5582         * (genRet): removed some old comments,
5583         * (genCmp, the active (RN's) version): added a call to the
5584         pic16_genCmp_special function to perform the compare with a more
5585         robust and optimized way,
5586         * (genInline): a feature has been added in inline code generation,
5587         which allows a wildcard variable substitution when writing inline
5588         assembly. Code is incomplete and experimental therefore undocumented,
5589         * (genCast): changed order of aopOp for result and right to allow
5590         aopForSym to directly load the result if possible,
5591         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
5592         perform an optimized compare on some selected special occasions,
5593         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
5594         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
5595         generate an IVT any more,
5596         * src/pic16/main.c (pic16_optionsTable): added command line option
5597         --optimize-cmp,
5598         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
5599         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
5600         macros,
5601         * src/pic16/NOTES: Raphael Neider added in list of active developers
5602         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
5603         jumptable_end to prevent bug #,
5604         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
5605         inCond and outCond fields,
5606         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
5607         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
5608         turn off register spilling,
5609         * (packRegsForOneUse): synced with other ports' versions although it
5610         is not used currently,
5611         * (pic16_packRegisters): added an optimization while reading
5612         structure bitfields, some registers may be saved (malloc code is
5613         decreased by 80 bytes)
5614
5615 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
5616
5617         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
5618         left is a bitfield, if yes, then don't optimize assignment. Perhaps
5619         this can be optimized more?
5620
5621 2005-03-10 Raphael Neider <rneider AT web.de>
5622
5623         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
5624           genNearPointerGet): (hopefully) fixed access to bitfields via
5625           pointers (p->bitN = x; and x = p->bitN; failed)
5626
5627 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
5628
5629         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
5630
5631 2005-03-09 Raphael Neider <rneider AT web.de>
5632
5633         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
5634
5635 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
5636
5637         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
5638         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
5639           (regTypeNum): set REG_BIT type if necessary
5640         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
5641         * support/regression/tests/critical.c: check bug 1144613
5642
5643 2005-03-02 Raphael Neider <rneider AT web.de>
5644
5645         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
5646
5647 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5648
5649         * src/avr/ralloc.c (serialRegAssign),
5650         * src/ds390/ralloc.c (serialRegAssign),
5651         * src/hc08/ralloc.c (serialRegAssign),
5652         * src/mcs51/ralloc.c (serialRegAssign),
5653         * src/pic/ralloc.c (serialRegAssign),
5654         * src/pic16/ralloc.c (serialRegAssign),
5655         * src/xa51/ralloc.c (serialRegAssign),
5656         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
5657
5658 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
5659
5660         * src/SDCCast.c (decorateType): fixed bug 1124787
5661
5662 2005-02-20 Hubert Sack <sack AT digiplan.de>
5663         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5664
5665         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
5666         patch #1121755
5667
5668 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5669
5670         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
5671         to keep the correct label reference count when adding/removing references
5672         to labels. A peephole file using this is appended to patch #1144962.
5673
5674 2005-02-14 Raphael Neider <rneider AT web.de>
5675
5676         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
5677         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
5678         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
5679           retrievals of result operand's value on assignment
5680
5681 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
5682
5683         * device/include/pic16/string.h: modified prototype for memccpy()
5684         to memccpy(void *, void *, char, size_t)
5685         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
5686         check whether to omit frame pointer or not,
5687         * (genInline): convert all occurences of "\n" to LF in inline
5688         assembler blocks, this helps formatting the inline text,
5689         * (pic16_loadFSR0): modified prototype,
5690         * (genNearPointerGet, genNearPointerSet): reorganization of code,
5691         removed some 8051 legacy code,
5692         * (genPackBits): enabled handling bitfields exceeding one byte in size,
5693         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
5694         before allocating temporary registers in functions,
5695
5696 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
5697
5698         * support/regression/tests/bitvars.c: corrected the "fix"
5699
5700 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
5701
5702         * support/regression/tests/bitvars.c,
5703         * support/regression/tests/bitwise.c,
5704         * support/regression/tests/rotate.c: "fixed" problems on Alpha
5705
5706 2005-02-10 Raphael Neider <rneider AT web.de>
5707
5708         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
5709           different size for Alpha
5710         * src/pic16/gen.c (genCmpEq) : improved compare with 0
5711
5712 2005-02-09 Raphael Neider <rneider AT web.de>
5713
5714         * src/SDCC.lex(doPragma) : save and restore warning options as well
5715           (also added new stack plus clone- and copyAndFreeSDCCERRG())
5716         * have #pragma less_pedantic set the errorlevel to WARNING
5717           (fixes #1117001)
5718         * (cloneOptimize) : fixed wrong malloc's size
5719         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
5720           facilitate correct handling of #pragma (save|restore)
5721
5722 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
5723
5724         * src/mcs51/gen.c: removed non-standard C nameless struct/union
5725
5726 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
5727
5728         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
5729
5730 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
5731
5732         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
5733
5734 2005-02-02 Raphael Neider <rneider AT web.de>
5735
5736         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
5737         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
5738         * (pic16_storeForReturn): fixed to allow returning function pointers
5739         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
5740         * device/include/pic16/{stddef.h,stdbool.h}: added
5741
5742 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
5743
5744         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
5745
5746 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
5747
5748         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
5749         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
5750          appeared to be required
5751
5752 2005-01-31 Borut Razem <borut.razem AT siol.net>
5753
5754         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
5755           include/mcs51 and include/z80 directories to the package
5756
5757 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5758
5759         * src/hc08/gen.c (genFunction): fixed bug #1112752
5760
5761 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5762
5763         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
5764
5765 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5766
5767         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
5768
5769 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
5770
5771         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
5772
5773 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
5774
5775         * device/include/c8051fxxx.h: removed these 6 files
5776         * device/include/mcs51/c8051fxxx.h: added these 11 new files
5777
5778 2005-01-26 Raphael Neider <rneider AT web.de>
5779
5780         * src/pic16/gen.c (genAssign): fixed assignment from longs
5781           in codespace (were cut to three bytes)
5782         * (genDummyRead): implemented (except for CODESPACE...),
5783           fixed bug #1108575
5784         * src/pic16/glue.c (emitStatistics): beautified
5785         * device/lib/pic16/libm/Makefile: added include path
5786
5787 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5788
5789         * src/z80/gen.c (aopPut): fixed bug #1103902
5790
5791 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5792
5793         * device/lib/expf.c: fixed bug #1095792
5794
5795 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
5796
5797         * device/lib/pic16/libm: added Math library sources
5798
5799 2005-01-24 Raphael Neider <rneider AT web.de>
5800
5801         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
5802           to enable upcast to pCodeOpReg2 (there is no type tag to
5803           differenciate the two and pic16_popGet2p cast into PCOR2)
5804         * src/pic16/main.c (_process_pragma): fixed another malloc bug
5805           (sizeof(sectNames) changed to sizeof(sectName))
5806           Both patches fix segfaults under MinGW.
5807
5808 2005-01-23 Raphael Neider <rneider AT web.de>
5809
5810         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
5811           Safe_[mc]?alloc()'ed variables
5812         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
5813           of (byte sized) temporaries (assign them to WREG for now)
5814         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
5815           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
5816           this might fix SIGSEGVs on MinGW...
5817         * src/SDCCopt.c (killDeadCode): restored original behaviour
5818           (volatile operands might get thrown away though)
5819
5820 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
5821
5822         * src/pic16/gen.c: fixed bug #1106975,
5823         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
5824         pointer update, INTCON is saved, global interrupts are disabled and
5825         restored after updateing TOS.
5826         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
5827         * added function attribute 'shadowregs' to take advantage of shadow
5828         registers,
5829         * added function attribute 'wparam' as an alternative to the wparam
5830         pragma,
5831         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
5832         user declares a non-ISR function as 'shadowregs',
5833         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
5834
5835 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
5836
5837         * .version: bumped version number to 2.4.8
5838         * device/lib/pic16/pics.all: list of PIC18F devices supported by
5839         pic16 port,
5840         * device/lib/pic16/libio/i2c/: I2C module support library,
5841         * device/include/pic16/i2c.h: I2C support library header,
5842         * device/lib/pic16/libc/stdio/: standard IO support sources,
5843         * (printf_small.c): printf_small() source, supports float print,
5844         * (printf_tiny.c): printf_tiny() source, does not support floats,
5845         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
5846         enable global optimizations for entire library source, other
5847         Makefiles in the source tree are also modified to reflect this,
5848         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
5849         function,
5850         * doc/sdccman.lyx: updated to reflect new changes,
5851         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
5852         sym->onStack if-case,
5853         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
5854         sbit, idata, _idata, xdata, _xdata,
5855         * added pragma library, to link an external library, (see doc),
5856         * removed command line options, --pomit-config-words, --pomit-ivt,
5857         --pleave-reset-vector,
5858         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
5859         when calling assembler to reflect memory model used, also define
5860         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
5861         reflect stack model used,
5862         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
5863         on stack return NULL,
5864
5865 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5866
5867         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
5868           of the operands is volatile. Fixes #1020220
5869
5870 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5871
5872         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
5873         * (OptimizeRegUsage): make sure that there is really no other flow where
5874           the first pCode is used
5875
5876 2005-01-22 Raphael Neider <rneider AT web.de>
5877
5878         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
5879           to fix #1106967 (pCode->seq are not set up correctly)
5880
5881 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5882
5883         * src/SDCCglue.c (glue): make sure code area is declared before the
5884         static initialization area.
5885
5886 2005-01-21 Raphael Neider <rneider AT web.de>
5887
5888         * device/lib/Makefile.in: fixed test for pic16 install dir
5889         * device/lib/pic16/*/Makefile*: modified compile flags to enable
5890           optimizations
5891         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
5892           added --optimize-goto compiler switch and pragma wparam documentation
5893         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
5894         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
5895           and PRODH closing bug #1071770 (peephole optimizer)
5896
5897 2005-01-19 Raphael Neider <rneider AT web.de>
5898
5899         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
5900           cmdLine buffers (used when calling sdcpp...) are large enough
5901           (MAX_PATH=256 truncates arguments leading to system halts when
5902           used in MinGW...)
5903         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
5904         * (genUminus): rewritten to for efficiency
5905         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
5906           used uninitialized in some cases)
5907         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
5908           copy the third byte from the int -- now assumes 0x80 (data memory)
5909         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
5910           operands (genAddLit expects the iCode's operands to swapped as
5911           well), fixed leftover bytes (crashed for short left operands)
5912         * (pic16_genMinusDec): performance improvements, removed false
5913           PIC14 emitSKPNCs
5914         * (pic16_genMinus): fixed to cope with differently sized operands
5915         * src/pic16/glue.c (pic16_glue): added new banksel optimization
5916           for --obanksel > 1
5917         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
5918         * src/pic16/graph.[ch]: implementation of directed graphs, used by
5919           new banksel optimization
5920         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
5921           analysis for temporary registers (segfaults...)
5922         * src/pic16/peeph.def: added rule
5923
5924 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
5925
5926         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
5927         which converts a float number to its ASCII representation
5928         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
5929         functions to convert the fractional and integer part of a float to ASCII,
5930         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
5931         realloc.c): added _MALLOC_SPEC to explicit place variables in data
5932         ram
5933         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
5934         _STATMEM macros,
5935         * device/include/pic16/adc.h: added GPL info,
5936         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
5937         a pCodeOp as tested operand,
5938         * (genNearPointerGet): optimized bit testing, does not use
5939         intermediate register for bit value, test directly instead with
5940         BTFSS, BTFSC, works only for single bits,
5941         * (genpic16Code): dump the name of the iCode in the asm,
5942         * src/pic16/ralloc.c (decodeOp): removed static declaration and
5943         renamed to pic16_decodeOp,
5944         * (serialRegAssign): do not allocate a temporary register for iCode
5945         sequences that test a single bit for 1/0
5946
5947 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
5948
5949         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
5950         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
5951         access stack and frame pointers. They are initially assigned to
5952         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
5953         accessing SFRs. Updated all occurences of modification of stack or
5954         frame pointer in gen.c and pcode.c,
5955         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
5956         assigning of a literal value to pointers,
5957         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
5958         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
5959         selected
5960
5961 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5962
5963         * doc/sdccman.lyx: update documentation about stack pragma, added
5964         some info for stack memory models
5965
5966 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5967
5968         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
5969
5970 2005-01-08 Raphael Neider <rneider AT web.de>
5971
5972         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
5973           udata sections to fix bug #1097823
5974
5975 2005-01-05 Raphael Neider <rneider AT web.de>
5976
5977         * src/pic16/gen.c (genGenericShift): added handling of differently
5978           sized left operand and result
5979
5980 2005-01-04 Raphael Neider <rneider AT web.de>
5981
5982         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
5983         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
5984           to hold the condition bit)
5985         * added new version of genCmp (old code available via #define)
5986         * added new version of genShiftLeft/genShiftRight in a generic
5987           way, now supports shifting by negative values
5988         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
5989           shiftCount (expected by genGenericShift)
5990         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
5991         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
5992           dump
5993         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
5994           is an invalid literal too...)
5995
5996 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
5997
5998         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
5999         from Raphael Neider,
6000         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
6001         for 8-bit literals. This fixes some literal operands which are sign
6002         extended to 16-bits ints when instruction needs only 8-bits.
6003
6004 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
6005
6006         * device/lib/logf.c: added mcs51 assembly version
6007         * device/lib/expf.c: added mcs51 assembly version
6008         * device/lib/_logexpf.c: new shared asm code for expf and logf
6009         * device/include/math.h: add defines for assembly math library
6010         * device/lib/Makefile.in: build new _logexpf.c
6011         * device/lib/libfloat.lib: use new _logexpf.c
6012
6013 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6014
6015         * src/pic/device.c
6016         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
6017           device types which have less than 0x7f registers.
6018
6019 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6020
6021         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
6022
6023 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6024
6025         * device/lib/printf_fast.c: only build on supported arch.
6026         * device/lib/printf_tiny.c: only build on supported arch.
6027         * device/lib/printf_fast_f.c: only build if asm float lib
6028         * device/lib/_fsget1arg.c: only build if asm float lib
6029         * device/lib/_fsget2args.c: only build if asm float lib
6030         * device/lib/_fsnormalize.c: only build if asm float lib
6031         * device/lib/_fsreturnval.c: only build if asm float lib
6032         * device/lib/_fsrshift.c: only build if asm float lib
6033         * device/lib/_fsswapargs.c: only build if asm float lib
6034         * device/include/stdio.h: don't provide print_fast,
6035           print_fast_f, print_tiny prototypes if --xstack used
6036
6037 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
6038
6039         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
6040         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
6041           to the SOURCES
6042
6043 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6044
6045         * device/lib/printf_fast_f.c: same as printf_fast, but
6046           with floating point enabled
6047         * device/lib/printf_fast.c: minor tweaks
6048         * device/include/stdio.h: add printf_fast_f
6049
6050 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6051
6052         * src/SDCCmain.c: make --float-reent default for mcs51
6053         * device/lib/_fsadd.c: added mcs51 assembly version
6054         * device/lib/_fssub.c: added mcs51 assembly version
6055         * device/lib/_fsmul.c: added mcs51 assembly version
6056         * device/lib/_fsdiv.c: added mcs51 assembly version
6057         * device/lib/_fseq.c: added mcs51 assembly version
6058         * device/lib/_fsneq.c: added mcs51 assembly version
6059         * device/lib/_fsgt.c: added mcs51 assembly version
6060         * device/lib/_fslt.c: added mcs51 assembly version
6061         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
6062         * device/lib/Makefile.in: add _fscmp to build
6063         * device/lib/libfloat.lib: add _fscmp to build
6064
6065 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6066
6067         * device/lib/_fs2slong.c: added mcs51 assembly version
6068         * device/lib/_fs2sint.c: added mcs51 assembly version
6069         * device/lib/_fs2schar.c: added mcs51 assembly version
6070         * device/lib/_fs2ulong.c: added mcs51 assembly version
6071         * device/lib/_fs2uint.c: added mcs51 assembly version
6072         * device/lib/_fs2uchar.c: added mcs51 assembly version
6073         * device/lib/_slong2fs.c: added mcs51 assembly version
6074         * device/lib/_sint2fs.c: added mcs51 assembly version
6075         * device/lib/_schar2fs.c: added mcs51 assembly version
6076         * device/lib/_ulong2fs.c: added mcs51 assembly version
6077         * device/lib/_uint2fs.c: added mcs51 assembly version
6078         * device/lib/_uchar2fs.c: added mcs51 assembly version
6079         * device/include/float.h: added #define to select asm vs c
6080
6081 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
6082
6083         * device/lib/printf_fast.c: improvements to float output
6084         * device/include/float.h: add defines for assembly float library
6085         * device/lib/_fsget1arg.c: receive 1 float arg
6086         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
6087         * device/lib/_fsnormalize.c: normalize a float
6088         * device/lib/_fsreturnval.c: return float, various helper routines
6089         * device/lib/_fsrshift.c: right shift a float's mantissa
6090         * device/lib/_fsswapargs.c: swap 2 floats
6091         * device/lib/Makefile.in: build these 6 new files for mcs51
6092         * device/lib/libfloat.lib: add these 6 files to the library
6093
6094 2004-12-26 Borut Razem <borut.razem AT siol.net>
6095
6096         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
6097           built by gcc 3.4.2
6098
6099 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
6100
6101         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
6102           and fully reentrant and register bank neutral.
6103         * device/lib/printf_fast.c: added float (not enabled by default),
6104           added compact/slower integer (also not enabled by default),
6105           improved size/speed of fast integer code, other minor changes
6106         * device/include/stdio.h, device/lib/Makefile.in,
6107           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
6108
6109 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
6110
6111         * src/pic16/pcode.c: declaring variables other than at the start of a
6112           block is not supported in C by VC6.
6113
6114 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
6115
6116         * applied a previous patch from Raphael Neider that wasn't included
6117         in the previous commits, which fixes infinite loops within jumptable
6118         improvements,
6119         * made some fixes that previous patches introduced
6120
6121 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
6122
6123         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
6124         that fixes an issue with AOP_PCODE asmop's offset,
6125         * (pic16_popCopyReg): update instance field too,
6126         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
6127         function of pic port,
6128         * (genCmp, genAnd, genAssign),
6129         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
6130
6131 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
6132
6133         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
6134         variables initial values to idata section,
6135         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
6136         variables in some functions. This utilizes parmBytes field of iCode
6137         structure to hold the offset of the variable in stack. (might be
6138         able to use the stack field too?)
6139         * applied patch from Raphael Neider # ### , # ###
6140         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
6141         variable initial values in idata section,
6142         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
6143         for static variables with initial value
6144         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
6145         applied fix in while loop from Raphael Neider.
6146
6147 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
6148
6149         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
6150         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
6151         * src/ds390/ralloc.c (serialRegAssign): spill bits
6152         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
6153         * support/Util/SDCCerr.c,
6154         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
6155         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
6156         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
6157
6158 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
6159
6160         * device/include/sdcc-lib.h: inserted LGPL, added includes
6161           asm/ds390/features.h and asm/mcs51/features.h
6162         * device/include/asm/default/features.h,
6163         * device/include/asm/gbz80/features.h,
6164         * device/include/asm/z80/features.h: added empty _AUTOMEM
6165           and _STATMEM
6166         * device/include/asm/ds390/features.h,
6167         * device/include/asm/mcs51/features.h: added files with defines for
6168           _AUTOMEM and _STATMEM indicating automatic and static storage class
6169         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
6170         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
6171         * src/SDCCicode.c (geniCodeCast),
6172         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
6173         * src/SDCCloop.c (loopInduction): removed unused variable lr
6174         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
6175           to convertToFcall to include char modulo (RFE 1065037), added check
6176           if left operand is unsigned and use abs of literal value
6177         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
6178           as it doesn't work after conversion from peephole.def to peephole.rul
6179         * src/mcs51/gen.c (toBoolean): added check for size,
6180           (genModOneByte): optimized code for signed char modulo a literal
6181           power of 2 (thanks to Hubert Sack),
6182           (genRRC): removed unnecessary "clr c",
6183           (genRLC): replaced "add a,acc" with cheaper "rlc a"
6184         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
6185           jump optimization,
6186           swapped rules 256.c and 256.d,
6187           extended 256.d by using new multiple checks (thanks Erik),
6188           added rules 256.e and 256.f,
6189           updated rule 261.a and 261.b to new generated code
6190         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
6191
6192 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6193
6194         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
6195           induction related bugs, including first part of bug #1074377
6196
6197 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
6198
6199         * applied patch from bug-report #1076292,
6200         * applied patches for genAnd and Goto-optimizations for Raphael
6201         Neider,
6202         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
6203         dump a less iCode information,
6204         * src/pic16/device.h (pic16_options_t): added field debgen,
6205         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
6206         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
6207         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
6208         puclic,
6209         * (various functions): added macros FENTRY and FENTRY2 to functions,
6210         to emit function prologue,
6211         * (various functions): fixed indentation,
6212         * (genNearPointerGet): fixed loading of FSR0,
6213         * (genPackBits): applied patch from Raphael Neider to fix updating
6214         of FSR0 and touching only the modified bits,
6215         * src/pic16/genarith.c (various functions): added macros FENTRY to
6216         emit function prologue in comments,
6217         * src/pic16/pcode.h: added functions debugf2, debugf3,
6218         * src/pic16/ralloc.c: partial fix for packForPush caused
6219         segmentation fault,
6220
6221 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6222
6223         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
6224           <stsp AT users.sourceforge.net> with reversed byte order
6225         * support/regression/tests/rotate.c: added (ds390 skips some tests)
6226
6227 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6228
6229         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
6230           bug #1074377
6231         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
6232         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
6233
6234 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6235
6236         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
6237
6238 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6239
6240         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
6241           conditions,
6242           (setFromConditionArgs): friendly operand parser for peephole rules,
6243           (operandBaseName, operandsNotRelated): new peephole condition
6244           "operandsNotRelated" -- similar to "operandsNotSame", but takes
6245           architecture specific register naming into account, handles n-way
6246           comparisons, and supports quoted literals
6247         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
6248
6249 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6250
6251         * src/mcs51/peeph.def: fixed bug #1076940
6252
6253 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6254
6255         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
6256
6257 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6258
6259         Adding support for replacing ljmps with sjmps in jumptables
6260         generated for switch statements. For now you need to set the
6261         environment variable SDCC_SJMP_JUMPTABLE to enable this.
6262         Now 4 algorithms for mcs51 jumptable generation are used:
6263         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
6264         addresses loaded pc-relative for up to 112 cases and stack-pushing
6265         target addresses loaded with offset from dptr for up to 256 cases.
6266
6267         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
6268         * src/mcs51/main.c: adapted constants for switch table generation
6269         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
6270
6271 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
6272
6273         * device/lib/printf_large.c (_print_format): fixed bug 1073386
6274         * support/regression/tests/bug1057979.c: added test for bug 1073386
6275
6276 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6277
6278         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
6279         compilers
6280
6281 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6282
6283         * src/pic16/device.h,
6284         * src/pic16/genarith.c,
6285         * src/pic16/glue.c,
6286         * src/pic16/main.c,
6287         * src/pic16/pcode.c: applied patches #1068154 and #1070213
6288
6289 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
6290
6291         Large cummulative patch for pic16 port.
6292         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
6293         to call when a stack overflow occurs,
6294         * (malloc.h): added CVS Id tag,
6295         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
6296         variable,
6297         * added libc directory. The current version of LibC contains string
6298         functions, ctype functions and macros and some functions of the
6299         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
6300         be extensively tested in the future. Standard disclaimer here.
6301         Library is not automatically build yet. But one can build it by
6302         invoking 'make' inside the libc directory.
6303         * added ADC library under libio. Preliminary version yet.
6304
6305         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
6306         * src/pic16/gen.c (aopForRemat): asmop size is filled by
6307         aopForRemat() now and not by pic16_aopOp(),
6308         * (pic16_popGetTempReg): removed warning messgae when allocating
6309         temporary registers, its a buggy feature and will be removed,
6310         * (pic16_popGet): set register instance field in AOP_CRY,
6311         * (pic16_outBitC): fixed for results in size greater than 1,
6312         * (genUminusFloat): fixed for pic16, ported code from mcs51,
6313         * (pic16_storeForReturn): optimized return of 0,
6314         * (genCmp): experimental code for new genCmp which uses PIC18's
6315         special compare&skip instructions. Initial tests fail some times
6316         with variables grater than 1 byte in size, so new code is disabled,
6317         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
6318         a single bit,
6319         * (genCast): began a fix to optimize the casting of a bit to another
6320         bit, now assigning a bitfield to another bitfield will fail, sorry,
6321         * src/pic16/main.c: disabled the use of lr-support feature,
6322         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
6323         * added some function prototypes, added function _debugf prototype,
6324         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
6325         bits with offset (case PO_GPR_BIT),
6326         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
6327         command line,
6328         * (isBankInstruction): modified to return 0 for no banking instruction,
6329         and 1 for banking instruction,
6330         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
6331         caused stop processing pCodes after a inline assembly block,
6332         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
6333         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
6334         registers when it shouldn't,
6335         * src/pic16/ralloc.c (allocReg): add preliminary support for
6336         supporting a limited set of temporary registers,
6337
6338 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6339
6340         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
6341           genDataPointerSet): ensure assignments always copy in MSB to LSB
6342           order,
6343           (loadRegFromAop): recognize CLRH optimization,
6344           (genFunction): optimize RECEIVE iCodes in reentrant functions
6345
6346 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6347
6348         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
6349           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
6350           selected.
6351         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
6352         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
6353           contiguous with data
6354
6355 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6356
6357         * device/lib/_gptrget.c (_gptrget),
6358         * device/lib/_gptrgetc.c (_gptrgetc),
6359         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
6360           instead of sjmp to ret
6361         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
6362           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
6363
6364 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6365
6366         * .version: bumped version to 2.4.7
6367         * device/lib/_gptrget.c (_gptrget): is now _naked
6368         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
6369         * device/lib/_gptrput.c (_gptrput): is now _naked
6370         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
6371           (createFunction): fixed xstack
6372         * src/SDCCglue.c (emitMaps): set allocation required for bit area
6373         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
6374           or bit either,
6375           (geniCodeCritical): store original interrupt state in an iTemp bit
6376           var unless stack-auto
6377         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
6378         * src/SDCCmain.c (setIncludePath): added include/target to search path
6379         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
6380         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
6381           prototype,
6382           (processFuncArgs): put bit vars in bit area
6383         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
6384           unsaveRBank): fixed xstack,
6385           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
6386           (genFunction, genEndFunction): fixed xstack,
6387           (genAssign): optimization don't walk backwards through mem
6388         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
6389         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
6390         * support/regression/Makefile: also make library (for stack-auto) when
6391           making "all" and added "test-mcs51-xstack-auto"
6392         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
6393         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
6394         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
6395         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
6396         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
6397           make-library by MAKE_LIBRARY
6398         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
6399           regression tests for xstack
6400         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
6401         * support/regression/tests/critical.c: test for critical on mcs51
6402
6403 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6404
6405         * support/regression/ports/ucz80/spec.mk: use include and lib files from
6406           built version of sdcc instead of installed version
6407
6408 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
6409
6410         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
6411         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
6412           vprintf.c now
6413         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
6414         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
6415           WARNING: remove device/lib/build/z80/printf.o by hand when
6416           updating from previous build!
6417         * device/lib/z80/printf.c: updated comment
6418         * support/regression/tests/bug1057979.c: test all ports now
6419         * support/regression/tests/bug1065458.c: file added
6420
6421 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6422
6423         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
6424           *_start and *_end symbols for static functions
6425
6426 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
6427
6428         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
6429           and search crt0.o in all library paths,
6430           (setIncludePath): proper handling of --nostdinc,
6431           (setLibPath): proper handling of --nostdlib
6432         * support/regression/Makefile,
6433         * support/regression/ports/ds390/spec.mk,
6434         * support/regression/ports/gbz80/spec.mk,
6435         * support/regression/ports/hc08/spec.mk,
6436         * support/regression/ports/mcs51/spec.mk,
6437         * support/regression/ports/mcs51-large/spec.mk,
6438         * support/regression/ports/mcs51-stack-auto/spec.mk,
6439         * support/regression/ports/z80/spec.mk: use include and lib files from
6440           built version of sdcc instead of installed version
6441         * doc/sdccman.lyx: fixed typo in --nostdinc
6442
6443 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
6444
6445         * src/pic/pcode.c,
6446         * src/pic/device.c,
6447         * src/pic/ralloc.c,
6448         * src/pic/gen.c : added support to generate code for struct bit fields.
6449
6450 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
6451
6452         * as/xa51/xa_version.h,
6453         * device/include/errno.h,
6454         * device/include/regc515c.h,
6455         * device/lib/_itoa.c,
6456         * device/lib/_ltoa.c,
6457         * device/lib/ser_ir_cts_rts.c,
6458         * sim/ucsim/xa.src/glob.cc,
6459         * sim/ucsim/xa.src/inst_gen.cc,
6460         * sim/ucsim/xa.src/xa_bit.cc,
6461         * sim/ucsim/xa.src/xa_sfr.cc,
6462         * sim/ucsim/z80.src/inst_dd.cc,
6463         * sim/ucsim/z80.src/inst_fdcb.cc,
6464         * support/scripts/keil2sdcc.pl,
6465         * src/pic16/pic16.dsp,
6466         * src/pic16/pic16a.dsp: corrected cvs line endings
6467         * device/lib/printf_large.c: fixed bug 1057979
6468         * src/pic16/gen.c: fixed non-C standard code
6469         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
6470         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
6471         * support/regression/ports/mcs51/support.c: reload T1 asap
6472         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
6473           pdata use and clear idata startup behaviour
6474         * support/regression/tests/bug1057979.c: added
6475
6476 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
6477
6478         * device/examples/ds390/ow390/ad26.h,
6479         * device/examples/ds390/ow390/cnt1d.h,
6480         * device/examples/ds390/ow390/crcutil.c,
6481         * device/examples/ds390/ow390/ownet.h,
6482         * device/examples/ds390/ow390/owsesu.c,
6483         * device/examples/ds390/ow390/swt12.h,
6484         * device/examples/ds390/ow390/swtoper.c,
6485         * device/examples/ds390/ow390/temp10.h,
6486         * device/examples/ds390/ow390/thermodl.c,
6487         * device/examples/ds390/tinitalk/tinitalk.dsp,
6488         * device/examples/ds390/tinitalk/tinitalk.dsw,
6489         * device/examples/mcs51/clock/hw.h,
6490         * device/examples/mcs51/simple2/go.bat,
6491         * device/examples/serialcomm/windows/serial.h,
6492         * device/examples/xa51/dummy.c,
6493         * device/examples/xa51/hello.c,
6494         * device/include/80c51xa.h,
6495         * device/include/at89x051.h: corrected cvs line endings
6496
6497 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
6498
6499         * src/pic16/main.c (options): added command line --gstack, to trace
6500         stack over/under flows,
6501         * added pragma 'wparam' to allow passing first byte of function
6502         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
6503         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
6504         call to __gstack_test function and sets up the symbol as extern,
6505         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
6506         * popaop): added call to pic16_testStackOverflow,
6507         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
6508         wparamList list,
6509         * (genCall, genPcall): now all parameters are passed via stack
6510         except in functions that are pass to wparam pragma in which WREG is
6511         used too,
6512         * (genPcall): REENTRANT flag is checked to see if variable prototype
6513         contains reentrant keyword, don't call a non-reentrant function, via
6514         a reentrant function pointer or vice versa, functions are never
6515         passed via WREG,
6516         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
6517         D.Winkler,
6518         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
6519         SIGSEGV when accessing a NULL register stucture,
6520         * (pic16_printGPointerType): modified to handle UPPER modifier for
6521         function initializers, changed prototype of function to simpler one,
6522         * (pic16_printIvalFuncPtr): check to see if function is already
6523         added in externs list,
6524         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
6525         optimized a move from W to SFR with a move to the same register
6526         later after a CALL,
6527         * device/lib/pic16/debug: NEW directory, contains debug features
6528         which are enabled when linking with libdebug.lib, currently command
6529         line option --gstack enables stack pointer tracing for over/under
6530         flow, corresponding sources are in debug/gstack
6531
6532 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
6533
6534         * doc/sdccman.lyx: updated SDCC version,
6535         * (PIC16 port): update list of command line options,
6536         * src/pic16/device.h (structure pic16_options_t): added field gstack
6537         to enable stack overflow tracing on push/pops,
6538         * src/pic16/device.c (statistics structure): added statistics
6539         structure,
6540         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
6541         pic16_dump_int_registers): increase statistics counters for each
6542         * variable which is encountered
6543         * (pic16_dump_usection): emit each .udata variable to its own udata
6544         section,
6545         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
6546         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
6547         parameters via stack, otherwise use old scheme,
6548         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
6549         assembler output file,
6550         * src/pic16/main.c: added command line options --gstack to enable
6551         push/pop tracing for stack overflow,
6552         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
6553         instructions): added size of each instruction,
6554         * (pic16_countInstruction): estimate size of instructions in
6555         the_pFile list, inline assembly blocks are not counted,
6556         * (pic16_FixRegisterBanking): trace previous register usage, when
6557         banksel optimizations is greater than 0, don't emit a redudant
6558         banksel directive,
6559
6560 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
6561
6562         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
6563         * src/pic16/ralloc.c : applied same fix for pic16.
6564         * src/pic/gen.c : tidied it up a little.
6565
6566 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6567
6568         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
6569         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
6570
6571 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6572
6573         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
6574
6575 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6576
6577         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
6578         non-reentrant function __modsint in the interrupt function (thus
6579         corrupting math operations during serial I/O)
6580         * device/lib/ser_ir.c: as above, changed buffersize
6581         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
6582         256.c,d for zeroing
6583         * doc/Makefile: added option -t for rsync
6584
6585 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6586
6587         * src/SDCCast.h (struct ast),
6588         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
6589
6590 2004-10-20 Borut Razem <borut.razem AT siol.net>
6591
6592         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
6593         package
6594
6595 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
6596
6597         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
6598         makefile targets,
6599         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
6600         support functions to replace long sequences of MOVFF's from access
6601         bank registers to stack and vice versa,
6602         * src/pic16/device.h: added new field opt_flags, where optimization
6603         flags can be set to enable certain features,
6604         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
6605         * pBlock, (genFunction, genEndFunction): surroung loop for
6606         saving/loading used registers in stack with PC_INFO pCodes,
6607         INF_LREGS. Code in between can then be optimized by pCode optimizer
6608         to support function calls,
6609         * (genDataPointerSet): fixed bug which loaded float fields in
6610         structures with corrupt data,
6611         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
6612         in a standard way debug info on stderr. Feature used for developing
6613         and debugging only,
6614         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
6615         obsolete chunks of code,
6616         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
6617         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
6618         * pic16/src/pcode.c (pic16_newpCodeInfo,
6619         * (pic16_newpCodeOpLocalRegs),
6620         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
6621         feature,
6622         * (pic16_pCodeConstString): printing of the initial value of a
6623         symbol as a comment is inhibited since parsing was already done by
6624         copyStr and output is corrupt,
6625         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
6626
6627 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6628
6629         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
6630
6631 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
6632
6633         * as/mcs51/lkarea.c: removed old K&R style,
6634           (lnksect): changed check on boundary error,
6635           (lnksect2): changed check on boundary error,
6636           (lnksect2): extend XSTK to end of page if size = 1
6637         * as/mcs51/lkmain.c: removed old K&R style,
6638           (Areas51): create l_IRAM symbol
6639         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
6640         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
6641           model-mcs51-stack-auto, added model-mcs51-xstack-auto
6642         * device/lib/_mullong.c: added version to be compiled with xstack
6643         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
6644         * device/lib/mcs51/crtxclear.asm: clear pdata as well
6645         * device/lib/mcs51/crtxstack.asm: fixed comment
6646         * src/SDCCglue.c: maxInterrupts defaults to 0,
6647           (emitMaps): added pdata,
6648           (createInterruptVect): (re)moved default,
6649           (glue): added pdata,
6650           (glue): moved __start__xstack to XSTK with default size 1
6651         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
6652           and options.float_rent when options.stackAuto is set,
6653           (linkEdit): only write XDATA_NAME if provided on command line
6654         * src/SDCCmem.h,
6655         * src/SDCCmem.c: added pdata
6656         * src/port.h: added pdata_name to PORT
6657         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
6658           (saveRegisters, unsaveRegisters): removed usage of B,
6659           (genMinus): fixed accumulator clash,
6660           (genJumpTab): added comment, this needs another look
6661         * src/mcs51/gen.c: added check for "B in use" paranoia,
6662           added pushB() and popB()
6663         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
6664           chance
6665         * src/avr/main.c,
6666         * src/ds390/main.c,
6667         * src/hc08/main.c,
6668         * src/mcs51/main.c,
6669         * src/pic/main.c,
6670         * src/pic16/main.c,
6671         * src/xa51/main.c,
6672         * src/z80/main.c: (reset_regparms) made void parameter explicit and
6673           added PSEG (PAG,XDATA) or NULL to port specifier
6674         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
6675         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
6676           (_mcs51_genInitStartup): removed __start__xstack equ,
6677           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
6678         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
6679         * src/z80/gen.c (_rleAppend): fixed warnings
6680         * support/regression/tests/zeropad.c: added pdata test
6681         * .version: bumped to 2.4.6
6682
6683 2004-10-17 Borut Razem <borut.razem AT siol.net>
6684
6685         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
6686         as a part of nightly build
6687
6688 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
6689
6690         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
6691         WREG holds the first byte function parameters,
6692         * (aopForSym): take special case for symbols which are in FARSPACE
6693         but in CODESPACE too,
6694         * (assignResultValue): modified to take into account _G.useWreg,
6695         * (genCall): don't use wreg for parameter passing when function is
6696         declared as reentrant, too, added optimization INCF to stack
6697         pointer when stack parameter count is 1,
6698         * (genFunction, genEndFunction): refurnished and fixed to not using
6699         wreg for passing parameters when function has varargs or is
6700         reentrant, fixed bug with symbol name compare for generating
6701         functions in absolute address,
6702         * (pic16_storeForReturn): refurnished,
6703         * (genCmp): began writing a new version of the function, not ready
6704         yet, therefore it is disabled,
6705         * (genAssign): do not read code memory when assigning a function to
6706         a pointer function,
6707         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
6708         array of characters, not pointer,
6709         * (pic16initialComments): in debug mode emit an .ident directive for
6710         the assembler,
6711         * (_process_pragma): emit a new warning type (internal to pic16)
6712         when setting stack to default length, emit a similar warning when
6713         placing a function at absolute address and address is not word aligned
6714         * (_pic16_parseOptions): added 'return TRUE' statement,
6715         * (_pic16_linkEdit): if compiling a source, then add the source's
6716         file object, first in the list of objects to link,
6717
6718 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
6719
6720         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
6721         * src/pic/main.c : removed VC warning.
6722         * src/pic/gen.c : changed comment.
6723
6724 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
6725
6726         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
6727         reference to a deprecated symbol _GPTRREG was causing failure to
6728         link. Thanks G. M. Gallant for the info.
6729
6730 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
6731
6732         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
6733         comments for Bugs item #954788.
6734
6735 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
6736
6737         * src/pic16/device.c (pic16_dump_gsection,
6738         * pic16_groupRegistersInSection): handle symbols declared to be in
6739         access bank differently,
6740         * src/pic16/gen.c (struct _G): added field resDirect,
6741         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
6742         send values read from stack directly to result and don't allocate
6743         temporary values,
6744         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
6745         same registers,
6746         * (pic16_sameRegsOfs): NEW,
6747         * (freeAsmop): if _G.resDirect is set then do not mark registers as
6748         free because they were not allocated from temporary pool,
6749         * pic16_popRegFromString): workaround to fix a problem with
6750         allocating variables twice or never,
6751         * (genGenPointerGet): using PRODL instead of FSR0H,
6752         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
6753         instead of FSR0H,
6754         * (genAssign): take advantage of the _G.resDirect flag,
6755         * (genCast): around line 11844, use mov2f instead of directly
6756         MOVFF'ing between operands to account for literal values,
6757         * src/pic16/genutils.c: some new debug functions for gpsim have been
6758         added,
6759         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
6760         float with integer part only,
6761         * src/pic16/main.c (_process_pragma): handle pragma udata access to
6762         place variables in access bank
6763         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
6764         updated sources to reflect recent changes in gen.c
6765
6766 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
6767
6768         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
6769         sources that searched for headers in installation path, now the
6770         device/include/pic16 is used,
6771         * src/pic16/glue.c (pic16glue),
6772         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
6773         .line directives if not in debug mode, this suppresses assembler's
6774         warnings for ignored directives
6775
6776 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6777
6778         * src/port.h: made reset_regparms prototype void parameter explicit.
6779         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
6780         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
6781         * doc/sdccman.lyx: documented warning disabling and how to use
6782           printf_large to make it print floats.
6783         * device/include/stdbool.h: NEW
6784         * device/lib/_atof.c,
6785         * device/lib/_divuint.c,
6786         * device/lib/_divulong.c,
6787         * device/lib/expf.c,
6788         * device/lib/printf_large.c,
6789         * device/lib/sincosf.c,
6790         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
6791         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
6792           a completely reentrant lib.
6793
6794 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
6795
6796         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
6797         * device/include/pic16/stdio.h: fixed bug with colon
6798
6799 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
6800
6801         * device/include/pic16/stdio.h,
6802         * device/include/pic16/stdlib.h,
6803         * device/include/pic16/math.h: NEW
6804         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
6805         declared as _naked to reduce overhead
6806         * device/lib/Makefile.in (target port-specific-objects-pic16):
6807         changed * to *.* so to ignore the CVS directory,
6808         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
6809         stacked variables back in stack,
6810         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
6811         corruption
6812
6813 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
6814
6815         * .version: bumped version number to 2.4.5
6816         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
6817         * support/Util/SDCCerr.c (messages structure): added entry for
6818         W_POSSBUG2
6819
6820         Large cumulative patch for pic16 port and libraries.
6821         * device/include/pic16/sdcc-lib.h,
6822         * device/include/pic16/stdarg.h,
6823         * device/include/asm/pic16/features.h,
6824         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
6825         * device/include/pic16/float.h: changes reentrant keyword with
6826         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
6827         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
6828         updated target build-libraries to include objects from gptr,
6829         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
6830         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
6831         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
6832         all function headings,
6833         * src/SDCCmain.c: added global parameter userIncDirsSet,
6834         * (parseCmdLine): when option -I is encountered add directory to
6835         userIncDirsSet too,
6836         * src/version.awk: added space between control and long,
6837         * src/pic16/NOTES: added some notes for the port,
6838         * src/pic16/gen.c: added prototype for mov2fp function,
6839         * (fReturnpic16[]): properly named return value registers,
6840         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
6841         * (aopForSym): added code to handle symbols with onStack flag set,
6842         symbols onStack are allocated PTRSIZE bytes,
6843         * (aopFreeAsmop): handles special case where asmops are stack objects,
6844         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
6845         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
6846         added argument lock to trace flaws in allocating temporary registers
6847         when developing port,
6848         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
6849         * (pic16_popRegFromString): reenabled allocating a direct register
6850         from string,
6851         * (assignResultValue): various beautifications,
6852         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
6853         referenced function argument,
6854         * (genIpush): reenabled to allow stacked arguments, handles only
6855         ic->parmPush iCodes,
6856         * (genCall, genPcall): major changes to allow for variable argument
6857         functions, fixed a bug with falsely restoring stack pointer after
6858         returning from call,
6859         * (genFunction): pending code for critical function,
6860         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
6861         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
6862         * (genNearPointerGet): fixed bug with indirect reading, was always
6863         reading from INDF0
6864         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
6865         pointers,
6866         * (genAddrOf): rewrote code to take address of a stacked function parameter
6867         * (genCast): fixed casting to generic pointer type,
6868         * src/pic16/gen.h: added AOP_STA,
6869         * (struct asmop): added field stk,
6870         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
6871         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
6872         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
6873         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
6874         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
6875         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
6876         generic pointers,
6877         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
6878         and library paths,
6879         * (pic16_port structure): generic pointer size is set to 3,
6880         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
6881         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
6882         compiler warning,
6883         * src/pic16/ralloc.c (allocReg): prevent allocating register when
6884         operand is an iTemp,
6885
6886 2004-09-24 Martin Helmling <mh AT octo-soft.de>
6887
6888         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
6889         * debugger/mcs51/simi.c: addapt new syntax of s51
6890
6891 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
6892
6893         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
6894         * src/pic16/pcode.c: commented out some calls to free() in order to
6895         fix bug #989576,
6896
6897 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6898
6899         * src/SDCCicode.h,
6900         * src/SDCCicode.c (isiCodeInFunctionCall),
6901         * src/avr/ralloc.c (selectSpil),
6902         * src/pic/ralloc.c (selectSpil),
6903         * src/pic16/ralloc.c (selectSpil),
6904         * src/ds390/ralloc.c (selectSpil),
6905         * src/hc08/ralloc.c (selectSpil),
6906         * src/xa51/ralloc.c (selectSpil),
6907         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
6908         stack in the middle of a function call sequence (fixes bug #1020268)
6909         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
6910         costs associated with the minimum switch case.
6911
6912 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6913
6914         * src/SDCC.lex: fixed bug #1030549
6915
6916 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6917
6918         * src/SDCCcse.h (struct cseDef),
6919         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
6920         over a function call if the CSE is derived from a symbol whose
6921         address has been taken (fixes bug #1029883)
6922         * support/regression/tests/bug-1029883: a new regression test for
6923         this bug
6924
6925 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6926
6927         * src/hc08/gen.c (emitinline): fixed bug #1029778
6928         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
6929         to a cast object is no longer a syntax error ("fixes" bug #1030006,
6930         and starts toward RFE #905167)
6931
6932 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
6933
6934         * src/pic16/gen.c (mov2f): New function to move an operand to
6935         another without considering if it is a literal or a register,
6936         * (pic16_sameRegs): don't check if they are both AOP_REG,
6937         * (AccRsh): removed andmask=0 lines,
6938         * (genLeftShift): duplicated to be improved in future versions,
6939         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
6940         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
6941         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
6942         * (pic16initMnemonics): added initialization for POC_INFSNZW,
6943         * (insertBankSwitch): fixed inserting banksel directives algorithm
6944         for instructions that follow a skip instruction, this fixes a report
6945         for broken subtraction code generation,
6946         * src/pic16/ralloc.c (deassignLRs): do not free register if current
6947         iCode is a left op, just in case result and right share the same
6948         registers
6949
6950 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6951
6952         * src/hc08/main.c,
6953         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
6954         preservation of HX
6955         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
6956         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
6957         on 2004-09-12; it was buggy
6958
6959 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
6960
6961         * src/SDCCsymt.h: removed RESULT_CHECK
6962         * src/SDCCast.c,
6963         * src/SDCCglue.c,
6964         * src/SDCCval.c,
6965         * src/pic/glue.c,
6966         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
6967
6968 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
6969
6970         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
6971         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
6972         configuration values no more rejected by compiler, they are assigned
6973         to configuration registers with a warning message instead,
6974         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
6975         the for-loop so last conf register is emitted too,
6976         * (_pic16_initPaths): link library libsdcc.lib by default,
6977         * (_hasNativeMulFor): modified test for multiplication according to
6978         Raphael Neider's remarks. Integer multiplication is also done with
6979         support functions,
6980         * device/include/pic16/pic18fregs.h: corrected type error in while
6981         testing and including 18f6720 header file
6982
6983 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
6984
6985         * src/pic16/device.h (pic16_options): removed field use_crt,
6986         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
6987         until an optimization to handle single bits is added,
6988         * (pic16_loadFSR0): moved before genUnpackBits,
6989         * (genAnd): some white lines removed,
6990         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
6991         leave_reset flags in pic16_options when using crt modules,
6992
6993 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
6994
6995         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
6996           for bugs 898889 & 979599. Also used some safer print instructions.
6997
6998 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
6999
7000         * src/pic16/device.h (pic16_options_t): added field use_crt,
7001         crt_name, no_crt,
7002         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
7003         catch a probable future bug,
7004         * src/pic16/gen.c: aopIdx function commented out,
7005         * (genAssign): commented out old code which used aopIdx,
7006         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
7007         code, added if conditionals to take into account the --use-crt
7008         command line options,
7009         * src/pic16/main.c (pic16_optionsTable): added new command line
7010         options, --use-crt= and --no-crt,
7011         * (_pic16_linkEdit): now the proper crt object is added in the
7012         linker command line except than when --no-crt is specified,
7013         * src/pic16/pcode.c,
7014         * src/pic16/pcode.h: added some structures and functions for a new
7015         optimization scheme to compansate for instruction overhead between
7016         same iCodes, this scheme is currently under development and is not
7017         working in any way,
7018         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
7019         to && operator,
7020         * device/lib/pic16/startup/crt0i.c,
7021         * device/lib/pic16/startup/crt0iz.c: added global char variable
7022         __uflags to force the generation of an idata section
7023
7024 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
7025
7026         * doc/Makefile,
7027         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
7028         * doc/sdccman.lyx: updated sdcc version to 2.4.4
7029
7030 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7031
7032         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
7033         Frieder) and clarified the default code optimization mode
7034
7035 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7036
7037         * src/SDCC.lex (doPragma, process_pragma),
7038         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
7039         "opt_code_size", and "opt_code_balanced"
7040         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
7041         regrouped options by category, added support for category headers
7042         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
7043         and "--opt-code-size"
7044         * doc/sdccman.lyx: documented these new options and pragmas
7045         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
7046         preference into account
7047
7048 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7049
7050         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
7051           geniCodePreDec): Fixed bug 904237 by generating a warning
7052         * src/SDCCerr.h,
7053         * src/SDCCerr.c: added warning W_SIZEOF_VOID
7054
7055 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
7056
7057         * src/pic/device.c : When no max ram set validate full memory range.
7058         * src/pic/pcode.c,
7059         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
7060
7061 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7062
7063         * device/lib/_gptrget.c,
7064         * device/lib/_gptrput.c: updated comment
7065         * device/lib/calloc.c,
7066         * device/lib/free.c,
7067         * device/lib/malloc.c,
7068         * device/lib/realloc.c: added LGPL, made them reentrant-safe
7069         * src/SDCCcse.c (cseBBlock),
7070         * src/SDCCicode.c (printOperand, geniCodeArray),
7071         * src/SDCCicode.h (struct operand): fixed bug 868103
7072         * support/regression/tests/bug-868103.c: added
7073         * src/SDCCast.c (searchLitOp),
7074         * src/SDCCcse.h (struct cseDef),
7075         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
7076         * src/SDCCicode.h (struct operand),
7077         * src/SDCCsymt.h (struct sym_link),
7078         * src/avr/gen.c (hasInc),
7079         * src/ds390/gen.c (hasInc),
7080         * src/hc08/gen.c (genPlusIncr, hasInc),
7081         * src/mcs51/gen.c (hasInc),
7082         * src/pic16/glue.c (pic16_printIvalChar),
7083         * src/pic16/ralloc.c (regWithIdx),
7084         * src/xa51/gen.c (hasInc) : removed warnings
7085         * src/SDCCast.c (createBlock): added comment ???
7086         * src/hc08/ralloc.c: updated comments
7087
7088 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7089
7090         * doc/sdccman.lyx: updated section on switch statements, added
7091         section about semaphore locking
7092         * doc/Makefile: added option -info for latex2html
7093         * device/lib/_gptrget.c,
7094         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
7095
7096 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7097
7098         * src/pic/device.h,
7099         * src/pic/device.c,
7100         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
7101          maxram is less than 0x100.
7102
7103 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7104
7105         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
7106
7107 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7108
7109         * src/port.h,
7110         * src/mcs51/main.c,
7111         * src/ds390/main.c,
7112         * src/z80/main.c,
7113         * src/hc08/main.c,
7114         * src/pic/main.c,
7115         * src/pic16/main.c,
7116         * src/avr/main.c,
7117         * src/xa51/main.c
7118         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
7119         a jump table is the best form for a switch statement, including
7120         automatic insertion of missing cases to make the case range
7121         continuous. Developed in collaboration with Frieder Ferlemann.
7122
7123 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7124
7125         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
7126         accumulator result if it needs sign extension
7127
7128 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7129
7130         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
7131
7132 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7133
7134         * device/lib/gbz80/printf.c,
7135         * device/lib/z80/printf.c: removed define for NULL
7136
7137 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7138
7139         * as/xa51/xa_link.c,
7140         * device/examples/ds390/ow390/ad26.c,
7141         * device/examples/ds390/ow390/cnt1d.c,
7142         * device/examples/ds390/ow390/counter.c,
7143         * device/examples/ds390/ow390/ds2480.h,
7144         * device/examples/ds390/ow390/ds2480ut.c,
7145         * device/examples/ds390/ow390/findtype.c,
7146         * device/examples/ds390/ow390/gethumd.c,
7147         * device/examples/ds390/ow390/owllu.c,
7148         * device/examples/ds390/ow390/ownetu.c,
7149         * device/examples/ds390/ow390/swt12.c,
7150         * device/examples/ds390/ow390/swtloop.c,
7151         * device/examples/ds390/ow390/temp.c,
7152         * device/examples/ds390/ow390/temp10.c,
7153         * device/examples/ds390/ow390/thermo21.c,
7154         * device/examples/ds390/ow390/tinilnk.c,
7155         * device/examples/ds390/ow390/tstfind.c,
7156         * device/examples/serialcomm/windows/serial.cpp,
7157         * device/examples/serialcomm/windows/test_serialcomm.cpp,
7158         * device/include/reg51.h: fixed line endings for cvs
7159
7160 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7161
7162         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
7163         packRegsForAccUse, packRegisters): new accumulator register
7164         packing algorithm
7165         * support/regression/ports/hc08/support.c (_putchar): suppress
7166         warning of unused variable
7167         * src/SDCCicode.c: added SWAP entry to codeTable
7168
7169 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
7170
7171         * device/lib/sprintf.c: forgot to add this file before previous commit
7172
7173 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
7174
7175         * src/pic16/gen.c (genPackBits): added operand right in function
7176         parameters, load result directly if p_type is POINTER (that is
7177         called by genNearPointerSet)
7178         * (genUnPackBits): added operand left in function parameters,
7179         * (genNearPointerGet, genNearPointerSet): prevent the loading of
7180         FSR0 if accessing bitfields,
7181
7182 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
7183
7184         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
7185           _print_format; updated printf, sprintf, vsprintf
7186         * device/include/asm/default/features.h: corrected comment/define
7187         * device/lib/Makefile.in: added sprintf.c
7188         * device/lib/libsdcc.lib: added sprintf module
7189         * device/lib/printf_large.c,
7190         * device/lib/vprintf.c,
7191         * device/lib/sprintf.c: totally refactored printf_large and vprintf
7192           into these 3 files
7193         * support/regression/Makefile: changed ALL_PORTS into a usefull default
7194         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
7195         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
7196           hc08 test
7197         * support/regression/tests/zeropad.c: define idata as data for hc08
7198
7199 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7200
7201         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
7202         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
7203         labels are referenced at least once (even if a reference is not found)
7204         * src/hc08/gen.c (emitcode): set isComment flag for comments
7205         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
7206         loads), rules 6a..6b (optimize jumps to return)
7207
7208 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7209
7210         * device/lib/acosf.c (acosf),
7211         * device/lib/asinf.c (asinf),
7212         * device/lib/atanf.c (atanf),
7213         * device/lib/ceilf.c (ceilf),
7214         * device/lib/cosf.c (cosf),
7215         * device/lib/coshf.c (coshf),
7216         * device/lib/cotf.c (cotf),
7217         * device/lib/fabsf.c (fabsf),
7218         * device/lib/floorf.c (floorf),
7219         * device/lib/log10f.c (log10f),
7220         * device/lib/logf.c (logf),
7221         * device/lib/sinf.c (sinf),
7222         * device/lib/sinhf.c (sinhf),
7223         * device/lib/sqrtf.c (sqrtf),
7224         * device/lib/tanf.c (tanf),
7225         * device/lib/tanhf.c (tanhf),
7226         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
7227         replaced all instances of "reentrant" in the library functions
7228         defined in math.h with this macro.
7229         * support/regression/tests/float_trans.c: reenabled test for hc08
7230
7231 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
7232
7233         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
7234         erroneously deleted
7235
7236 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7237
7238         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
7239         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
7240         multi-byte volatile operands are used
7241         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
7242         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
7243         initialization to area GSINIT0 so that it would always precede
7244         any static initializers in GSINIT
7245         * support/regression/tests/zeropad.c: fixed idata define for hc08
7246         * support/regression/tests/bug-927659.c,
7247         * support/regression/tests/float_trans.c: disabled tests for hc08
7248         pending missing library routines
7249         * .version: increased version number to 2.4.4 - hc08 port now passes
7250         regression tests
7251
7252
7253 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
7254
7255         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
7256         * Makefile.common.in,
7257         * as/Makefile,
7258         * as/hc08/Makefile.in,
7259         * as/mcs51/Makefile.in,
7260         * as/z80/Makefile.in,
7261         * debugger/mcs51/Makefile.in,
7262         * device/include/Makefile.in,
7263         * device/lib/Makefile.in,
7264         * doc/Makefile,
7265         * link/Makefile,
7266         * link/z80/Makefile.in,
7267         * packihx/Makefile.in,
7268         * sim/ucsim/main_in.mk,
7269         * sim/ucsim/avr.src/Makefile.in,
7270         * sim/ucsim/doc/Makefile.in,
7271         * sim/ucsim/gui.src/serio.src/Makefile.in,
7272         * sim/ucsim/hc08.src/Makefile.in,
7273         * sim/ucsim/s51.src/Makefile.in,
7274         * sim/ucsim/xa.src/Makefile.in,
7275         * sim/ucsim/z80.src/Makefile.in,
7276         * src/Makefile.in,
7277         * support/cpp2/Makefile.in,
7278         * support/librarian/Makefile,
7279         * support/makebin/Makefile: added DESTDIR to the install path proposed
7280         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
7281         * doc/sdccman.lyx: added DESTDIR documentation
7282
7283 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
7284
7285         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
7286         instruction for interrupt handlers, use fast returns when returning
7287         from high priority interrupts
7288
7289 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7290
7291         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
7292         code generation
7293         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
7294         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
7295         bugs, ported much of Bernhard's code from mcs51
7296         * src/mcs51/gen.c (genSend),
7297         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
7298         than one when calling a reentrant function
7299         * device/lib/_mullong.c: defined an alternate struct layout for big
7300         endian ports (hc08)
7301
7302 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7303
7304         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
7305         test
7306
7307 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7308
7309         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
7310         are sane and complete before asking the port its prefered parameter
7311         passing method (fixes bug #1017633)
7312         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
7313         and _ret3
7314
7315 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7316
7317         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
7318         problem in bitfields >= 8 bits.
7319
7320 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7321
7322         * src/SDCCsymt.c: undid changes that were not meant to be committed
7323
7324 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7325
7326         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
7327
7328 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7329
7330         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
7331           copied and wrong bit got inverted
7332
7333 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7334
7335         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
7336         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
7337         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
7338         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
7339         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
7340         assignments to bitfields at known addresses
7341         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
7342         reads from bitfields at known addresses
7343         * src/hc08/ralloc.c (packRegisters),
7344         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
7345         genhc08Code): optimize pointer get values used as conditionals
7346         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
7347         and branch
7348
7349 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7350
7351         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
7352         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
7353         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
7354         as conditionals
7355
7356 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7357
7358         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
7359
7360 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7361
7362         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
7363         related problems
7364
7365 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
7366
7367         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
7368
7369 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7370
7371         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
7372         mcs51 port
7373
7374 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7375
7376         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
7377
7378 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7379
7380         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
7381         cases use more compact code.
7382
7383 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
7384
7385         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
7386
7387 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7388
7389         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
7390
7391 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7392
7393         * src/SDCCsymt.h,
7394         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
7395         parameter of changePointer() from symbol* to sym_link*
7396         * src/SDCCast.c (decorateType): call changePointer() for CAST op
7397         * src/SDCCsymt.c (compareType): void* type is castable to other
7398         pointers, but not necesarily an exact match.
7399         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
7400         is no longer blindly treated as an exact match.
7401         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
7402
7403 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
7404
7405         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
7406
7407 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
7408
7409         * src/pic/gen.c,
7410         * src/pic/pcode.c,
7411         * src/pic/ralloc.h,
7412         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
7413
7414 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
7415
7416         * src/pic/device.c,
7417         * src/pic/device.h,
7418         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
7419
7420 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7421
7422         * src/mcs51/gen.c (emitcode): fixed bug #992819
7423
7424 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
7425
7426         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
7427           there's no need to make it worse
7428
7429 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7430
7431         * src/mcs51/ralloc.c (deassignLR),
7432         * src/ds390/ralloc.c (deassignLR),
7433         * src/hc08/ralloc.c (deassignLR),
7434         * src/z80/ralloc.c (deassignLR),
7435         * src/pic/ralloc.c (deassignLR),
7436         * src/pic16/ralloc.c (deassignLR),
7437         * src/avr/ralloc.c (deassignLR),
7438         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
7439         rlivePoint): fixed another part of bug #971834
7440
7441 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7442
7443         * src/z80/main.c: enabled "critical" keyword
7444         * src/z80/mappings.i,
7445         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
7446         functions (fixes bug #979646)
7447         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
7448
7449 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7450
7451         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
7452           such as c:\mydir.
7453
7454 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
7455
7456         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
7457           doesn't disable too much optimizations
7458
7459 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7460
7461         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
7462
7463 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
7464
7465         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
7466
7467 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7468
7469         * src/pic/gen.c tidied up tabs
7470         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
7471         * src/pic/main.c tidied up tabs
7472         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
7473         * src/pic/pcoderegs.c tidied up tabs
7474         * src/pic/ralloc.c tidied up tabs
7475
7476 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
7477
7478         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
7479         to S_FIXED for pic16 port and when symbol is not in level 0,
7480         allocate for S_REGISTER storage class and pic16 port, too,
7481         * src/pic16/device.h: prototype for checkSym,
7482         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
7483         * (pic16_assignConfigWordValue): test the value and the mask to
7484         validate that the value is suitable for the configuration word,
7485         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
7486         collect extern declared symbols, don't emit symbol twice, check
7487         first if symbol is in publics set first,
7488         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
7489         * added command line '--fstack' which enables an experimental
7490         feature for stack access, too buggy to be used yet...
7491         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
7492         * (pic16_allocDirReg): when register has storage class S_REGISTER
7493         allocate in pic16_dynAccessRegs,
7494         * device/include/pic16/pic18f????.h: modified configuration word
7495         naming convention, words started as CONFIG0H but should be CONFIG1H
7496
7497 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
7498
7499         * device/include/mcs51reg.h: fixed bug 970993
7500
7501 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
7502
7503         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
7504         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
7505         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
7506         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
7507         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
7508         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
7509           error/warning numbers,
7510           added function setWarningDisabled()
7511         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
7512         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
7513           _memcmp.c _memmove.c calloc.c realloc.c free.c
7514         * support/regression/tests/malloc.c: added tests for new functionality
7515         * support/regression/tests/zeropad.c: added tests for truncated initializers
7516           and initialized char arrays starting with '\x0'
7517         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
7518
7519 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
7520
7521         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
7522
7523 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7524
7525         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
7526         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
7527         peephole 177.e. Thanks to anonymous
7528
7529 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
7530
7531         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
7532         function isn't used in the source but referenced as a
7533         variable initializer then declare it as extern in .asm file
7534
7535 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
7536
7537         * .version: increased version number to 2.4.3
7538
7539         Adding version extension according to ChangeLog CVS revision
7540         * src/Makefile.in (target all): added dependency 'version.h'
7541         * (rule version.h): added rule to create version.h from ChangeLog,
7542         * (rule dep): added dependency version.h,
7543         * src/version.awk: AWK script to create version.h
7544         * src/SDCCdwarf2.c (dwWriteModule),
7545         * src/SDCCglue.c (initialComments),
7546         * src/SDCCmain.c (printVersionInfo): modified to write after
7547         version string the version extension number,
7548         * src/SDCCutil.c: included "version.h"
7549         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
7550         number,
7551         * src/SDCCutil.h: added prototype for getBuildNumber
7552
7553         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
7554         includeDirsSet, too,
7555         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
7556         const char [] is found in function prototype...
7557
7558         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
7559         moving to WREG with source is already in WREG,
7560         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
7561         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
7562         * (aopForSym): stack'ed symbols are partially supported, added
7563         if-clause to support symbols in FARSPACE,
7564         * (sameRegs): added test for AOP_ACC to see if registers are same,
7565         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
7566         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
7567         * (pic16_popRegFromString): will not allocate a new register if it
7568         doesn't find one by name, bug may have introduced...
7569         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
7570         * (genIpush): revived to use pic16 port's stack,
7571         * (genAddrOf): added incomplete case for stack'ed operand,
7572         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
7573         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
7574         can handle multibyte operands,
7575         * src/pic16/glue.c (pic16_printIval*): some debug info added,
7576         * (pic16initialComments): added message for MPLAB compatibility
7577         mode enabled,
7578         * src/pic16/main.h: prototype for pic16_mplab_comp,
7579         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
7580         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
7581         * (_pic16_linkEdit): NEW, handles link stage, transferred here
7582         because of increased complexity of procedure,
7583         * (_process_pragma): stack pragma changed to format 'stack pos len',
7584         emit symbol '_stack_end' to conform with gplink,
7585         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
7586         to search for register,
7587         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
7588         PO_GPR_REGISTER,
7589         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
7590         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
7591         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7592         case for PO_GPR_REGISTER,
7593         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
7594         dies, the new era is ahead !...
7595         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
7596         pic16_dynInternalRegs,
7597         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
7598         * (pic16_allocDirReg): minor optimizations and bug fixes,
7599         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
7600
7601         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
7602         load stack and frame pointer with address of 'stack_end' symbol
7603
7604 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
7605
7606         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
7607         without source code but only variable initializers
7608
7609 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
7610
7611         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
7612         external are not declared as extern to reduce overhead while linking
7613
7614 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
7615
7616         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
7617
7618 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
7619
7620         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
7621           Yee Keat for the patch
7622         * src/SDCCast.c (decorateType): fixed bug #979599
7623         * src/ds390/gen.h: removed local fReturnSizeDS390
7624         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
7625         * src/ds390/gen.c (genAnd, genOr, genXor),
7626         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
7627
7628 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
7629
7630         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
7631         add relFilesSet to $3, manipulate $2 to handle linking of object
7632         files without source files in command line,
7633         * device/include/pic16 (all headers): added ID location macros,
7634         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
7635         entries for ID location bytes,
7636         * (pic16_assignIdByteValue): NEW,
7637         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
7638         added field dumpcalltree to pic16_options_t,
7639         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
7640         is used instead of pic16_Gstack_base_addr, check if (ifx) before
7641         emitting rFalseIfx label after check_carry label,
7642         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
7643         pic16_emitDIRegs), NEW
7644         * (pic16glue): dump .calltree file when option --calltree found,
7645         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
7646         * (_pic16_genAssemblerPreamble): emit ID locations after
7647         configuration registers,
7648         * (pic16_linkCmd): modifications of the link command,
7649         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
7650         * (pic16_pCodeInitRegisters): don't init stack registers,
7651         * (pic16_findPrevInstruction): fixed bug,
7652         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
7653         bug with immediate registers,
7654         * (buildCallTree): traces stack push and pop,
7655         * (pct2): dump also stack usage for each function,
7656         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
7657         * (pic16_allocDirReg): various modifications,
7658         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
7659         fixed to 1,
7660
7661 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
7662
7663         * src/pic16/pcode.c: removed buggy double colon
7664
7665 2004-07-01 Borut Razem <borut.razem AT siol.net>
7666
7667         * support/scripts/sdcc.nsi: added include/pic16 to setup
7668
7669 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
7670
7671         * device/lib/Makefile.in: fixed bug in target objects-pic16,
7672         * device/lib/pic16/Makefile: prefixed with dash (-) command under
7673         target 'clean',
7674         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
7675         specific command line arguments. Also added sample lkr script
7676         for placing a variable at a specific memory bank.
7677         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
7678         at a specific memory bank,
7679         * (pic16_dump_isection): fixed bug which caused string literals to
7680         be omitted when dumping idata section,
7681         * (pic16_groupRegistersInSection): added code to handle registers
7682         in specific memory banks,
7683         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
7684         public, all references are renamed too,
7685         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
7686         AOP_DPTR2,
7687         * (pic16_storeForReturn): added case to handle when dest is WREG,
7688         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
7689         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
7690         pic16_rel_udata, check to see if that register is marked as being
7691         a member of a specific memory bank,
7692         * (pic16_printIvalCharPtr): added code to add string literals either
7693         to code or the idata sections,
7694         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
7695         also accept the 'udata' pragma,
7696         * src/pic16/main.h: new structure types sectName and sectSym
7697         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
7698         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
7699         * (pic16_findPrevInstruction): fixed, it returned nothing,
7700         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
7701         instruction combinations,
7702         * (pic16_FixRegisterBanking): heavily reorganised,
7703         * (pic16_AnalyzeBanking): if generating banksel directives is
7704         disabled, then don't call FixRegisterBanking at all,
7705         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
7706         completely removed,
7707         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
7708
7709 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
7710
7711         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
7712         Phuah Yee Keat <yk.phuah AT nestac.com>
7713
7714 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
7715
7716         * src/pic16/glue.c (pic16createInterruptVect): function now emits
7717         correctly the IVT even if it is relocated to some other location
7718
7719 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
7720
7721         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
7722         * device/include/pic16/pic18f2220.h: NEW,
7723         * device/lib/pic16/libdev/pic18f2220.c: NEW,
7724         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
7725         * src/pic16/device.c (struct Pics16): added info for 18f2220,
7726         * src/pic16/device.h (struct pic16_options): added ivt_loc and
7727         nodefaultlibs, ivt_loc is the location of the interrupt vector
7728         table, and nodefaultlibs signs that default libraries should not be
7729         linked in link stage,
7730         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
7731         according to --ivt-loc argument,
7732         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
7733         when pragma stack is found,
7734
7735 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7736
7737         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
7738         256 (range check), 257 (do while), 258.a-f (bit banging
7739         f.e. on 3-wire SPI bus)
7740
7741 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7742
7743         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
7744         variables used exclusively within a loop
7745
7746 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
7747
7748         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
7749
7750 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7751
7752         * src/SDCClrange.c (computeClash): fixed bug #971834
7753
7754 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7755
7756         * src/mcs51/gen.c (genCmp): fixed bug #975903
7757         * src/hc08/gen.c (operandsEqu),
7758         * src/ds390/gen.c (operandsEqu),
7759         * src/z80/gen.c (operandsEqu),
7760         * src/pic/gen.c (operandsEqu),
7761         * src/pic16/gen.c (operandsEqu),
7762         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
7763         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
7764
7765 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7766
7767         * src/SDCCcse.c (cseBBlock): fixed bug #966963
7768
7769 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
7770
7771         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
7772         default case in switch statement,
7773         * glue.c (pic16_initPointer): expr is initialised via decoarteType
7774         to eliminate problem with initialisation of pointers, but problem
7775         still exists,
7776         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
7777         * (emitStaticSegment): removed various lines emitting debug info,
7778         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
7779         added processor registers for utilizing EEPROM,
7780         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
7781         configurable and set 8
7782
7783 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
7784
7785         * .version: increased version number to 2.4.2,
7786
7787         Cumulative patch for pic16 port
7788         * src/pic16/device.c: changed scheme to dump initial values for
7789         variables in idata segment, all print_idata* functions were removed,
7790         now the pic16_printIval* will be called,
7791         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
7792         * _pic16_printPointerType, pic16_printPointerType,
7793         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
7794         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
7795         NEW, similar to the respective functions in SDCCglue.c,
7796         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
7797         way, emitting hex bytes,
7798         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
7799
7800 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7801
7802         * src/avr/ralloc.c (serialRegAssign),
7803         * src/xa51/ralloc.c (serialRegAssign),
7804         * src/pic/ralloc.c (serialRegAssign),
7805         * src/pic16/ralloc.c (serialRegAssign),
7806         * src/hc08/ralloc.c (serialRegAssign),
7807         * src/z80/ralloc.c (serialRegAssign),
7808         * src/ds390/ralloc.c (serialRegAssign),
7809         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
7810
7811 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7812
7813         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
7814         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
7815
7816 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
7817
7818         Cumulative patch for pic16 port:
7819         * src/pic16/device.h (typedef PIC16_device) modified fields for
7820         defining microcontrollers,
7821         * src/pic16/device.c: added new info for all devices in Pics16 array,
7822         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
7823         to be optimised out by the pCode optimiser,
7824         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
7825         specially, bug reported by G.M. Gallant,
7826         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
7827         as force'd so that cannot be optimised out by pCode optimiser,
7828         * src/pic16/pcode.c,
7829         * src/pic16/pcodepeeph.c,
7830         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
7831         they are disabled by default, but can be enabled explicit with
7832         command argument --denable-peeps, for testing,
7833         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
7834         --pomit-ivt in COMPILE_FLAGS
7835
7836 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7837
7838         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
7839           compilation on MSVC
7840
7841 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7842
7843         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
7844
7845 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7846
7847         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
7848         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
7849
7850 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
7851
7852         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
7853         would only assign 0x300001 register.
7854
7855 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
7856
7857         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
7858         in COMPILE_FLAGS. Thanks to G. Gallant for report.
7859
7860 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7861
7862         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
7863         for ds80c400
7864         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
7865         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
7866         added peephole 254 (left shift), 255 (jump table)
7867
7868 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
7869
7870         * device/lib/Makefile.in: removed comment line with model-pic16,
7871         * (target port-specific-objects-pic16): the libraries and objects
7872         are copied to the build directory form the device/lib/pic16/bin
7873         directory
7874
7875         Cumulative patch concerning pic16 port:
7876         * library directory has been re-organized,
7877         * added support for PIC18F1220,
7878         * added headers and library sources for chips 18f1220,18f6520,
7879         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
7880
7881         * configuration registers setting has changed, now each supported
7882         device has a complete description of the registers it uses,
7883         * all initialisations are moved to idata sections, these section
7884         can be absolute or relocatable,
7885         * fixed initialisation of codespace variables,
7886         * fixed warning about PCLATU and gpsim,
7887         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
7888         * (genAssign): use table reads when assigning from variables in codespace,
7889         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
7890         char/int variables placed in codespace,
7891         * (pic16_emitConfigRegs): NEW, emits a list with configuration
7892         registers set in .asm file, no need for --pomit-config-words anymore,
7893         * (pic16glue): some 8051 legacy segments are commented out
7894         (to be removed completely),
7895         * added support for alternative assembler and linker with --asm=
7896         and --link= command line arguments,
7897         * peepholes are disabled automatically in the port, no need to
7898         specify on command line,
7899         * port supports natively char/int/long multiplication, but converts
7900         all divisions to support functions,
7901         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
7902         to the file set in variable $2,
7903         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
7904         strings in ASCII format and not in hex,
7905         * ralloc.c (serialRegAssign): added a triplet of conditional calls
7906         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
7907         allocate proper register if iCodes aren't temporary,
7908
7909 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
7910
7911         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
7912
7913 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
7914
7915         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
7916         is commented out
7917
7918 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7919
7920         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
7921         computed address is reused
7922         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
7923         multi-byte bitfields
7924
7925 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7926
7927         * src/z80/gen.c: (genArrayInit): must check for pointers too
7928
7929 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7930
7931         * support/regression/tests/zeropad.c: never meant to commit the
7932           nestedstruct test: removed, added check for GCC version
7933
7934 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
7935
7936         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
7937         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
7938         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
7939           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
7940           bugs 928906 and 954082 half-empty initializers
7941         * src/SDCCsymt.h,
7942         * src/SDCCsymt.c (getAllocSize): added for above fix
7943         * src/z80/gen.c (genArrayInit): fixed bug 741044
7944         * support/regression/tests/zeropad.c: added tests
7945
7946 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
7947
7948         * src/pic16/device.c (pic16_dump_section): corrected bug which
7949         caused some symbols of the libraries to be misplaced
7950
7951 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7952
7953         * src/pic16/glue.c,
7954         * src/pic16/ralloc.h,
7955         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
7956         to fix conflict with pic port
7957
7958 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7959
7960         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
7961         externs configuration variables,
7962         * src/pic16/ralloc.h,
7963         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
7964         prototype in header, commented out some debug messages
7965
7966 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
7967
7968         * src/pic16/glue.c,
7969         * src/pic16/main.c,
7970         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
7971         for gpasm COFF object generation. Thanks to D. Hawkins for
7972         his patch info
7973
7974 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7975
7976         * src/ds390/main.c,
7977         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
7978         Brock for spotting this)
7979         * src/ds390/gen.c (genEndFunction),
7980         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
7981         interrupt handler and critical. Disable push/pop optimizations when
7982         peephole optimizations disabled.
7983
7984 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7985
7986         Updated pic16 library sources and headers.
7987         * device/lib/pic16/pic18f*/ ,
7988         * device/include/pic16/*.h: modified to handle structured SFR
7989         definitions
7990
7991 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7992
7993         * src/port.h (PORT structure): added hook initPaths, now each
7994         port can declare its own default search paths,
7995         which can been seen with the --print-search-dirs option,
7996         see pic16 port for example,
7997         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
7998         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
7999         * (doPrintSearchDirs): NEW, replaces in a central manner the
8000         printing of search dirs which was split in set*Paths functions,
8001         * (main): added call to port->initPaths and doPrintSearchDirs,
8002         * src/avr/main.c,
8003         * src/ds390/main.c,
8004         * src/hc08/main.c,
8005         * src/izt/i186.c,
8006         * src/izt/tlcs900h.c,
8007         * src/mcs51/main.c,
8008         * src/pic/main.c,
8009         * src/pic16/main.c: modified port structures to reflect addition of
8010         initPaths hook,
8011
8012         * src/pic16/device.c (regCompare): registers are finally sorted by name,
8013         * (pic16_dump_section): for registers in same address reserve memory once,
8014         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
8015         to no_banksel,
8016         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
8017         result is greater in size than right or left,
8018         * (pic16_genUMult8X8_8): there are some cases where the result can
8019         be 16 bits size, so handle these,
8020         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
8021         * (pic16_outBitC): modified to emit pcodes,
8022         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
8023         or not,
8024         * (genDivOneByte): implemented algorithm to divide 8-bits,
8025         * (genCmp): uncommented goto, but issues still exist,
8026         * (genAnd): fixed a bug with variables >8bits,
8027         * (genPackBits): optimization added that uses BCF/BSF to change a
8028         single bit,
8029         * (genAssign): fixed bug when assigning floating point literals,
8030         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
8031         __sdcc_gsinit_startup label,
8032         * src/pic16/main.c (_pic16_init): removed search directory
8033         initialisations,
8034         * (_pic16_initPaths): NEW, used to initialise search directories,
8035         * (_hasNativeMulFor): support functions for all except char/int
8036         multiplication, and char division,
8037         * (PIC16_port struct): modified entry for native mul support,
8038         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
8039         no_banksel option,
8040         * (buildCallTree): call to register_usage is ifdef'ed out,
8041
8042 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8043
8044         * device/include/string.h: applied Stas Sergeev's patch to make this
8045         header file compatible with the preprocessor -Wundef option
8046         * src/SDCCmain.c (main): abort compilation if preprocessor reports
8047         failure (fixes bug #941458)
8048
8049 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8050
8051         * src/SDCCopt.c (killDeadCode): fixed bug #907733
8052         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
8053         that the variable, not the function, should be static
8054         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
8055         to be consistent with non-literal case
8056
8057 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8058
8059         * src/SDCCast.c (isConformingBody): fixed bug #949967
8060         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
8061         convilong): fixed bug #952086
8062
8063 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8064
8065         * src/SDCCmem.c (allocVariables): fixed bug #955321
8066
8067 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8068
8069         * src/hc08/main.c (_hc08_genAssemblerEnd),
8070         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
8071         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
8072         completely eliminated the use of a temporary file
8073         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
8074         when more than one file linked
8075         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
8076
8077 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8078
8079         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
8080         which fixes bug #543481
8081         * support/regression/tests/bug-751703.c: fixed comments left from a
8082         cut and paste error
8083         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
8084         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
8085         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
8086         scopes
8087         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
8088         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
8089         are now changed to underscores in moduleName
8090
8091 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8092
8093         * as/mcs51/lkmem.c: better fix for bug #954173
8094
8095 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8096         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8097
8098         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
8099         * device/include/c8051f000.h,
8100         * device/include/c8051f120.h,
8101         * device/include/c8051f300.h,
8102         * device/include/c8051f310.h,
8103         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
8104         PWM16) and detab'ed
8105
8106 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8107
8108         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
8109         and mailing lists, doc'ed --no-peep-comments, removed reference
8110         to knoppix (newest version has no LyX/LaTeX), other minor changes
8111         * src/SDCCglue.c (glue): save 2 bytes stack space with
8112         option --main-return. The ljmp could probably be avoided too
8113
8114 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8115
8116         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
8117
8118 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8119
8120         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
8121         * src/SDCCopt.c (isLocalWithoutDef),
8122         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
8123         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
8124         (credit to Maarten Brock for patch #949363, on which this is based)
8125         * support/regression/tests/bug-751703.c: some test cases of extern used
8126         within inner scopes.
8127
8128 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8129
8130         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
8131         SPEC_STRUCT
8132         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
8133         struct definitions
8134         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
8135         dwWriteLabel): fix to create valid debugger symbols even when
8136         the module name has non-alphanumeric symbols in it
8137         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
8138         when a variable's allocation has been optimized away
8139
8140
8141 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8142
8143         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
8144         * src/hc08/main.c,
8145         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
8146         * src/mcs51/main.c,
8147         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
8148         * src/ds390/main.c,
8149         * src/z80/gen.c (z80_emitDebuggerSymbol),
8150         * src/z80/main.c,
8151         * src/pic/gen.c (pic14_emitDebuggerSymbol),
8152         * src/pic/main.c,
8153         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
8154         * src/pic16/main.c,
8155         * src/avr/gen.c (avr_emitDebuggerSymbol),
8156         * src/avr/main.c,
8157         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
8158         * src/xa51/main.c,
8159         * src/SDCCdebug.c (emitDebuggerSymbol),
8160         * src/SDCCdebug.h,
8161         * src/port.h: added a debugger struct to the port struct. Added a
8162         callback for defining debugger symbols
8163
8164         * src/SDCCast.c (createLabel),
8165         * src/SDCC.y (labeled_statement): mark all compiler generated labels
8166         with isitmp = 1
8167         * src/SDCCicode.h,
8168         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
8169         iCode back to the ast for the function
8170
8171         * src/hc08/ralloc.c (hc08_assignRegisters),
8172         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
8173         unneeded fields from the regs struct.
8174         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
8175         pushReg() & pullReg() functions instead of emitcode()
8176
8177         * src/hc08/gen.c (genLabel, genhc08Code),
8178         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
8179
8180         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
8181         debugger hooks
8182
8183         * src/hc08/gen.c (genEndFunction, genhc08Code),
8184         * src/hc08/gen.h,
8185         * src/mcs51/gen.c (genEndFunction, gen51Code),
8186         * src/mcs51/gen.h,
8187         * src/ds390/gen.c (genEndFunction, gen390Code),
8188         * src/ds390/gen.h,
8189         * src/z80/gen.c (genEndFunction, genZ80Code),
8190         * src/z80/gen.h,
8191         * src/z80/z80.h,
8192         * src/pic/gen.c (genEndFunction, genpic14Code),
8193         * src/pic/gen.h,
8194         * src/pic16/gen.c (genEndFunction, genpic16Code),
8195         * src/pic16/gen.h,
8196         * src/avr/gen.c (genEndFunction, genAVRCode),
8197         * src/avr/gen.h,
8198         * src/xa51/gen.c (genEndFunction, genXA51Code),
8199         * src/xa51/gen.h,
8200         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
8201         specific code to cdbFile.c and out of the backend code generators
8202
8203         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
8204         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
8205         starting address is now 0
8206
8207         * as/hc08/asm.h,
8208         * as/hc08/m08pst.c,
8209         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
8210         assembler directive for DWARF support
8211         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
8212
8213         * src/src.dsp,
8214         * src/Makefile.in,
8215         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
8216
8217 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8218
8219         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
8220         and inappropriate peephole optimization in jump tables
8221
8222 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8223
8224         * as/hc08/m08pst.c,
8225         * src/SDCCglue.c: sdccopt works for the hc08 port now
8226
8227 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
8228
8229         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
8230
8231 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8232
8233         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
8234
8235 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8236
8237         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
8238         rules
8239         * src/SDCCmain.c,
8240         * src/SDCCglobl.h,
8241         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
8242         comments from the peephole optimizer replacement rules
8243         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
8244         symbols
8245         * src/SDCCcse.c (updateSpillLocation),
8246         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
8247         equivalents
8248         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
8249         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
8250         objects far pointers
8251
8252 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8253
8254         * src/SDCCsymt.h: a missing part of my last change
8255         * src/pic/ralloc.c (regTypeNum),
8256         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
8257
8258 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8259
8260         * src/SDCCicode.h,
8261         * src/SDCCicode.c (aggrToPtrDclType),
8262         * src/SDCCptropt.h,
8263         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
8264         ptrPseudoSymConvert),
8265         * src/pic/ralloc.c (regTypeNum),
8266         * src/pic16/ralloc.c (regTypeNum),
8267         * src/hc08/ralloc.c (regTypeNum),
8268         * src/ds390/ralloc.c (regTypeNum),
8269         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
8270         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
8271
8272 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8273
8274         * link/z80/lkmain.c (afile),
8275         * as/hc08/lkmain.c (afile),
8276         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
8277         prevent a pointer problem when a filename has no directory and
8278         no extension specified.
8279
8280 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8281
8282         * link/z80/lkmain.c (afile): allow periods in directory names
8283         * link/z80/lkmain.c (afile),
8284         * as/mcs51/lkmain.c (afile),
8285         * as/hc08/lkmain.c (afile): allow linker script file to have an
8286         extension other than ".lnk"
8287         * link/z80/lklex.c (getfid),
8288         * link/z80/lkmain.c (parse),
8289         * as/mcs51/lklex.c (getfid),
8290         * as/mcs51/lkmain.c (parse),
8291         * as/hc08/lklex.c (getfid),
8292         * as/hc08/lkmain.c (parse): Support comments in the linker script
8293         file on lines by themselves and after filenames
8294
8295 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8296
8297         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
8298
8299 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8300
8301         * src/z80/peeph-z80.def: removed some peephole rules that don't
8302         work with multibyte arithmetic (fixed bug #937126)
8303         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
8304         to registers and not global variables
8305         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
8306         geniCodePreInc, geniCodePostDec, geniCodePreDec,
8307         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
8308         checking for assignments not internally generated (fixed bug #931895)
8309         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
8310         structure member (fixed bug #930072)
8311
8312 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8313
8314         * src/SDCCmain.c (linkEdit),
8315         * src/hc08/main.c (_hc08_parseOptions),
8316         * as/hc08/Makefile.in,
8317         * as/hc08/aslink.h,
8318         * as/hc08/asm.h,
8319         * as/hc08/m08pst.c,
8320         * as/hc08/lkrloc.c (relr, rele),
8321         * as/hc08/lkarea.c (lnkarea)
8322         * as/hc08/lkmain.c (afile, parse),
8323         * as/hc08/lkelf.c: support for ELF output
8324         * as/hc08/lks19.c (s19),
8325         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
8326
8327 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8328
8329         * as/mcs51/lkihx.c: Fixed bug #899105.
8330
8331 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8332
8333         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
8334         .dsp files from Unix to DOS.
8335
8336 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8337
8338         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
8339         function pointers; we have been compliant for several months now.
8340         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
8341         change that was accidently commented out
8342         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
8343         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
8344         bug #922319
8345
8346 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8347
8348         * src/hc08/gen.c: output of all of the internal debugging information
8349         is now controlled by the D() macro; it is disabled by default
8350
8351 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8352
8353         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
8354         harder to keep the same registers during a CAST iCode
8355         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
8356         long via int can be done in a single cast, if the signedness is
8357         correct.
8358         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
8359         putchar() in tinibios.c in ds390's library
8360
8361 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
8362
8363         * src/SDCCast.c (decorateType): fixed bug #898889,
8364         cast result of a literal complement too
8365         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
8366         fixed check for bitfields
8367
8368 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
8369
8370         * src/SDCCicode.c (geniCodeLogic): made it static,
8371         (geniCodeLogicAndOr): added in order to fix bug #905492,
8372         (ast2iCode): fixed bug #905492
8373         * support/regression/tests/bug-905492.c: added
8374         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
8375         (processParms): fixed bug #927659: don't copy parms, this will clear
8376         decorated flag
8377         * support/regression/tests/bug-927659.c: added
8378
8379 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
8380
8381         * src/SDCCast.c (addCast): don't cast float to char
8382         * device/lib/libsdcc.lib: added _memmove
8383
8384 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
8385
8386         * device/lib/large/Makefile: fixed parallel execution by
8387         replacing `make` by `$(MAKE)`
8388
8389 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8390
8391         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
8392         offsets (fixes bug #923936)
8393
8394 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
8395
8396         * device/lib/small/Makefile: fixed parallel execution by
8397         replacing `make` by `$(MAKE)`
8398
8399 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8400
8401         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
8402
8403 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
8404
8405         * src/pic/gen.c (genCpl): multi-byte complements were not working.
8406         * src/regression/Makefile: Regression test was not running.
8407
8408 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8409
8410         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
8411         complement if possible
8412         * src/SDCCval.c (valComplement),
8413         * src/SDCCicode.c (operandOperation): fixed complement of literal
8414         * support/regression/tests/onebyte.c (testComplement): added
8415
8416 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
8417
8418         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
8419         return an optimized tree; actually replace actParm with the new tree
8420         * src/SDCCast.h: added some parantheses to remove side effects
8421         * support/regression/tests/bug-920866.c
8422
8423 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
8424         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
8425         Bit operands were not being handled properly in the pic14 port.
8426         (now src/regression/add.c passes again).
8427
8428 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8429
8430         * src/SDCC.y (labeled_statement): case and default no longer require
8431         a following statement (RFE #893037)
8432
8433 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8434
8435         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
8436         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
8437         disabled (fixes bug #916294)
8438         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
8439         "mov a,acc"; patch provided by Lenny Story
8440         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
8441
8442 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8443
8444         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
8445         functions
8446         * src/ds390/gen.c (genFunction, genEndFunction),
8447         * src/ds390/ralloc.c (ds390_assignRegisters),
8448         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
8449         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
8450         pushed if there are parameters passed on the stack. Also, a cleaner
8451         way to decide if r0/r1 should be pushed/popped. (Together they fix
8452         bug #918693)
8453
8454 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8455
8456         * doc/sdccman.lyx,
8457         * device/lib/mcs51/crtpagesfr.asm,
8458         * device/lib/mcs51/crtxinit.asm,
8459         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
8460         to avoid confusion with Si Lab's SFRPAGE register.
8461
8462 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8463
8464         * src/SDCCglue.c (emitMaps): allow public sfr variables
8465         * src/SDCCglue.c (initialComments): include compiler build date
8466         with compiler version and put the timestamp of the generated
8467         assembly file on a serperate line to be less confusing.
8468         * src/port.h: added genInitStartup hook
8469         * src/avr/main.c,
8470         * src/ds390/main.c,
8471         * src/hc08/main.c,
8472         * src/pic/main.c,
8473         * src/pic16/main.c,
8474         * src/xa51/main.c,
8475         * src/z80/main.c: genInitStartup initialize as NULL (default to
8476         historical behaviour)
8477         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
8478         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
8479         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
8480         library instead of hard coding it into the compiler.
8481         * support/regression/ports/mcs51-stack-auto/spec.mk,
8482         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
8483         * device/lib/mcs51/Makefile,
8484         * device/lib/small/Makefile,
8485         * device/lib/large/Makefile,
8486         * device/lib/mcs51/crtpagesfr.asm,
8487         * device/lib/mcs51/crtstart.asm,
8488         * device/lib/mcs51/crtxclear.asm,
8489         * device/lib/mcs51/crtxinit.asm,
8490         * device/lib/mcs51/crtclear.asm,
8491         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
8492         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
8493         and into user configurable files.
8494         * device/lib/clean.mk: clean mcs51 directory too
8495         * support/regression/tests/longlit.c: added static to T1 declaration
8496         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
8497         accesses in the initialization code
8498
8499 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8500
8501         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
8502         OSCTRIMVAL as noted in bug #916008
8503
8504 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8505
8506         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
8507         in loops with multiple exits (reported as incorrect registers
8508         used by Martin Helmling in Sdcc-user list)
8509
8510 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8511
8512         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
8513         made ds390 register extensions look less like error messages
8514
8515 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8516
8517         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
8518         reported by Adam Wozniak in Sdcc-user list
8519
8520 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
8521
8522         * src/SDCCast.c (decorateType): fixed with bug and promotion in
8523         arithmetic optimizations, added debug output
8524
8525 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
8526
8527         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
8528         * sdcc.spec: updated and split sdcc into 3 rpms
8529         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
8530         needed for literals of LEFT_OP and '+'
8531         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
8532         introduced RESULT_TYPE_NOPROM
8533         (geniCodeMultiply): fixed logic for decision if mul is optimized to
8534         left shift
8535         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
8536         limited promotion to int only for '*'
8537         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
8538
8539 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
8540
8541         * src/pic16/gen.c (genSkip),
8542         (genc16bit2lit), (gencjneshort): commented out
8543         (is_LitOp): new helper function, checks operand type
8544         (genCmpEq): rewritten
8545
8546 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
8547
8548         * support/regression/tests/bug-908454.c: added
8549
8550 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
8551
8552         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
8553         * src/SDCCicode.c (usualBinaryConversions): op needs int type
8554         (geniCodeCast): cosmetic, don't preserve bit storage class
8555         (geniCodeLeftShift): added promotion
8556         (geniCodeLogic): fixed regression
8557         * src/SDCCsymt.c (computeTypeOr): accept bits too
8558         (compareType): 2nd part of fix for bug #908454, needed for bitfields
8559
8560 2004-03-07  Borut Razem <borut.razem AT siol.net>
8561
8562         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
8563
8564 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
8565
8566         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
8567         version of pic16_genPackRegisters which does not check if ic is a
8568         CAST operator,
8569         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
8570         function cause string1.c regression test fails
8571
8572 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
8573
8574         * sim/ucsim/configure.in,
8575         * sim/ucsim/configure,
8576         * sim/ucsim/doc/Makefile.in: use docdir
8577         * src/SDCC.y: fixed sbit atrributes
8578         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
8579         * src/SDCCast.c (decorateType): |^& need special promotion handling
8580         * src/SDCCast.h,
8581         * src/SDCCsymt.h: moved definition of RESULT_TYPE
8582         * src/SDCCsymt.h (computeType),
8583         * src/SDCCicode.c: computeType() needs op
8584         * src/SDCCsymt.c (checkTypeSanity),
8585         * doc/sddman.lyx: "plain" bitfields are unsigned
8586         * src/SDCCsymt.c (computeTypeOr): added
8587         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
8588         |^& ops
8589         * src/SDCCval.c (val*): computeType() needs op
8590         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
8591         * support/regression/tests/onebyte.c: added tests for |^&
8592
8593 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
8594
8595         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
8596         for writing icode into asm output.
8597
8598 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
8599
8600         * src/pic16/device.c: added some debug lines enabled
8601         with macro DEBUG_CHECK,
8602         * src/pic16/genarith.c: more debug in genPlus,
8603         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
8604         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
8605         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
8606         * (aopForSym): onStack symbols are re-placed in data memspace,
8607         and onStack flag is cleared,
8608         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
8609         copy temporary pcodeop,
8610         * (genPcall): added warning for not updating PCLATU,
8611         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
8612         always true for pic16 port,
8613         * (genMultOneWord): NEW, supports integer multiplication,
8614         * (genMult): modified to call genMultOneWord,
8615         * (ifxForOp): added warning when return NULL,
8616         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
8617         flag is set before call to operandFromSymbol for implicit
8618         added structures,
8619         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
8620         options.intlong_rent are set by default,
8621         * (_hasNativeMulFor): modified to allow port generation of integer
8622         multiplication,
8623         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
8624         set regtype to REG_SFR for all registers, restricting seting the
8625         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
8626
8627 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8628
8629         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
8630         more than 500 times in the regression tests
8631
8632 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8633
8634         * support/Util/SDCCerr.h,
8635         * support/Util/SDCCerr.c,
8636         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8637         enumerator_list),
8638         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
8639         for symbol conflicts.
8640         * support/valdiags/tests/enum.c,
8641         * support/valdiags/tests/tentdecl.c,
8642         * support/valdiags/tests/struct.c: expect possible error messages
8643         referring to original symbol definitions.
8644         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
8645         * src/SDCCsymt.h,
8646         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
8647
8648 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
8649
8650         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
8651
8652 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
8653
8654         * src/pic16/ralloc.c (newReg): fixed bug #908929
8655
8656 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8657
8658         * src/ds390/gen.c: added missing #include "main.h"
8659
8660 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
8661
8662         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
8663         checking if symbol is already in set,
8664         * src/pic16/device.h: prototype for checkAddSym,
8665         * src/pic16/gen.c: (_G): added entry interruptvector,
8666         * (assignResultValue): removed some commented out lines,
8667         * (genFunction): check for ISR via sym->type, absolute section for
8668         interrupt code is created via a new pBlock, the goto instruction is
8669         placed now correctly at the interrupt vector position, changed all
8670         references from ivec to _G.interruptvector,
8671         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
8672         is the interrupt is a high priority one, same for return from ISR,
8673         * src/pic16/glue.c: changed all calls of addSetHead for publics and
8674         externs to calls of checkAddSym,
8675         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
8676         pic16_pcode_verbose flag is set,
8677         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
8678         * src/pic16/pcoderegs.c: message about how many registers are saved
8679         will only be emitted if pic16_pcode_verbose flag is set,
8680
8681 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8682
8683         * src/ds390/ralloc.h,
8684         * src/ds390/ralloc.c (ds390_regWithIdx),
8685         * src/ds390/gen.c (emitcode),
8686         * src/ds390/main.h,
8687         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
8688         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8689         ds390operandCompare, getRegsRead, getRegsWritten,
8690         initializeAsmLineNode): customized instruction size calculation for
8691         ds390, started basis for some register optimizations
8692         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
8693         corresponding assembly output
8694         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
8695         missing push/pop of r0/r1. Optimized push/pops
8696
8697 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8698
8699         * src/mcs51/main.c (instructionSize): fixed ACALL size
8700         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
8701
8702 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
8703
8704         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
8705         the sorting of rlist with NULL elements
8706         * (print_idataType, print_idata): NEW to create idata sections
8707         * src/pic16/device.h: idataSymSet new variable
8708         * src/pic16/gen.c (genFunction): fixed some bugs in string
8709         comparing, improved the absolute section creation for ISRs,
8710         added FSR0L/FSR0H in registers that are saved in an ISR,
8711         * (genInline): fixed the processing of inline snippets,
8712         now they undergo no process by the peephole optimizer
8713         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
8714         are placed in idataSymSet,
8715         * (pic16emitStaticSeg): extern symbols are added in externs,
8716         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
8717         switching when aboslute variables are placed in access bank memory
8718         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
8719         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
8720         commented out with #if,
8721         * (pic16_packRegisters): reintroduce the check for CAST because some
8722         symbols are not correctly handled,
8723         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
8724         pCodeInstruction instead of pCode,
8725         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
8726         pCodeAsmDir definition,
8727         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
8728         directive, then the argument directive is emitted without the leading
8729         tab, hack for inline labels which must be in the first column,
8730         * (compareLabel,pic16_findNextInstruction),
8731         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
8732         * (insertBankSwitch): modified for the new pCodeAsmDir,
8733
8734 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8735         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
8736
8737         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
8738         instance,
8739         * (pushSide): commented out with #if,
8740         * (assignResultValue): fixed some typos in saving
8741         registers,
8742         * (genPcall): FIXED and sync'ed with genCall,
8743         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
8744         * (genNearPointerGet): fixed to handle some more cases,
8745         implementation scheme via table reads,
8746         * (genConstPointerGet): modified to access code memory correct,
8747         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
8748         and improved to handle some cases
8749         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
8750         instead of "RETLW" for init data
8751         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
8752         not IN_DIRSPACE, work around to reduce bank switching when aboslute
8753         variables are placed in access bank memory (<0x80 and >=0xf80),
8754         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
8755         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
8756         TBLWT_POSTDEC,TBLWT_PREINC
8757         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
8758         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
8759         directives
8760         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
8761         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
8762         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
8763         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
8764
8765 2004-02-29  Borut Razem <borut.razem AT siol.net>
8766
8767         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
8768         support/Util/findme.h, support/Util/system.h: enhance binary relative
8769         search for lib and include by using findProgramPath()
8770
8771 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8772
8773         * src/SDCCpeeph.h,
8774         * src/SDCCpeeph.c (pcDistance),
8775         * src/port.h,
8776         * src/mcs51/ralloc.h,
8777         * src/mcs51/ralloc.c (mcs51_regWithIdx),
8778         * src/mcs51/main.h,
8779         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
8780         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8781         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
8782         size calculation port specific, started basis for some register
8783         optimizations
8784         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
8785         missing push/pop of r0/r1. Optimized push/pops
8786         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
8787         * device/lib/_modsint.c (_modsint),
8788         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
8789         and stack version so regression tests pass
8790
8791 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
8792
8793         * src/Makefile.in (dep): include SLIBOBJS in dependency check
8794         * src/SDCCast.c (decorateType): catch another small optimization
8795         with '?' operator
8796         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
8797         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
8798         modified to finally use computeType() all over SDCC,
8799         see Feature Request #877103
8800         * src/SDCCval.h: cosmetic
8801         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
8802         valCompare(); regression tested in muldiv.c
8803         * support/regression/tests/muldiv.c (testMod): mod sign follows
8804         dividend only
8805
8806 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
8807
8808         * src/SDCCast.c (decorateType): fixed bug #902362
8809         * doc/INSTALL.txt: fixed install instructions for win32
8810
8811 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
8812
8813         * device/include/Makefile.in (install): fixed by replacing spaces
8814         by tabs
8815         * doc/README.txt,
8816         * doc/INSTALL.txt: updated for release
8817         * doc/sdccman.lyx: added warning for --xstack being buggy
8818
8819 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
8820
8821         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
8822         to eliminate build warnings.
8823         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
8824
8825 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
8826            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8827
8828         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
8829         removed -penable-stack, added comment for stack pragma, added
8830         warning for not initializing the stack/frame registers, removed
8831         comment at interrupts section
8832
8833         Stack is made permanent, there is no ability to disable stack usage.
8834         * src/pic16/device.h,
8835         * src/pic16/device.c: removed all references to USE_STACK macro,
8836         * src/pic16/device.c (pic16_dump_section): when no elements in
8837         rlist, free rlist before return,
8838         * (pic16_dump_int_registers): NEW, internal registers are a new set
8839         of general purpose registers reused by each function,
8840         * (checkAddReg): returns 1 if registers is added to set,
8841         * (pic16_groupRegistersInSection): when a registers is of type
8842         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
8843         * src/pic16/device.h: memRange and Assigned Memory are deleted,
8844         SRCASECMP macro is moved here from device.c
8845         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
8846         PO_PCLATU, PO_PRODL, PO_PRODH,
8847         * (pic16_pCodeOpType, genMinus,
8848         changed compares to "a" register, with AOP_ACC,
8849         * (pic16_genPlus): fixed some bugs and indented properly,
8850         * (pic16_addSign): changed size to size+offset in the MOVWF
8851         instruction,
8852         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
8853         multiply 8-bit operand by literal, result is 8-bit,
8854         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
8855         multiply 2 8-bit operand, result is 8-bit,
8856         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
8857         genUMult8X*_16,
8858         * src/pic16/gen.c: changed accUse to contain WREG only,
8859         * (pic16_emitcomment): renamed to pic16_emitpcomment,
8860         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
8861         true, do not use immediate addressing any more unless sym is a
8862         pointer in codespace,
8863         * (aopForRemat): do not use immediate addressing when symbol not in
8864         codespace and when symbol's address is requested,
8865         * (aopOp): for-loop in if(sym->accUse) is modified for the new
8866         accUse size (= 1),
8867         * (aopGet): added case for AOP_ACC and don't return "accumulator
8868         bug" but WREG instead,
8869         * (popGetTempReg): pushes contents of temporary register in stack,
8870         * (popReleaseTempReg): pops contents of temporary register from
8871         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
8872         * (pic16_popGet): separated case AOP_ACC to return register WREG
8873         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
8874         or PO_IMMEDIATE and initializes their instance/offset appropriately,
8875         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
8876         the use of immediate pointers to certain cases only.
8877
8878         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
8879         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
8880         * (assignResultValue, genCall, genRet): modified to use the new
8881         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
8882         genPcall is still broken,
8883         * (genFunction): added code to create 'A' type pBlocks when
8884         interrupt functions are generated, code not extensively tested yet,
8885         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
8886         * (genEndFunction): modified so ISRs pop stored registers from stack,
8887         * (genMultOneByte): cleanup,
8888         * (AccRsh): added flag andmask, to and result with appropriate mask,
8889         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
8890         * (genDataPointerGet): fixed and reenabled its use,
8891         * (genNearDataPointerGet): bugs fixed,
8892         * (genDataPointerSet): bugs fixed,
8893         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
8894         pic16_DumpSymbol, pic16_DumpOp,
8895         * src/pic16/genutils.h: function prototypes for the above functions,
8896         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
8897         pointers,
8898         * (pic16emitRegularMap): many many many improvements, but needs a
8899         major cleanup,
8900         * src/pic16/main.c: enable_stack in pic16_options is removed,
8901         * (_pic16_parseOptions): removed command line options -penable-stack,
8902         * (_process_pragma): emit stack symbol only when stack pragma is
8903         processed,
8904         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
8905         redirected to FSR0L/FSR0H pair,
8906         * (pic16_get_op, pic16_get_op2): modifications and improvements,
8907         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8908         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
8909         for immediates,
8910         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
8911         * (dumpPicOptype): NEW,
8912         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
8913         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
8914         with movff instruction,
8915         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
8916         added pic16_int_regs, some packRegsFor* functions are commented out,
8917         because produce errors,
8918         * src/pic16/NOTES: minor modifications
8919
8920 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8921
8922         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
8923         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
8924         --pack-iram.
8925         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
8926         * as/mcs51/lkaomf51.c: fixed bug #895763
8927
8928 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
8929
8930         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
8931
8932 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8933
8934         * doc/sdccman.lyx: added details about the HC08 storage classes and
8935         interrupts, fixed the register usage info for z80 & gbz80
8936
8937 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
8938
8939         * doc/sdccman.lyx: added more pic16 port documentation
8940         * device/include/pic16/: added header pic18fregs.h
8941
8942 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
8943
8944         * doc/sdccman.lyx: added Vangelis' contribution
8945
8946 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8947
8948         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
8949         extend to the next CALL or PCALL, not just to the next CALL.
8950
8951 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
8952
8953         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
8954
8955 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8956
8957         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
8958         bug #895752 and a better fix for bug #716790
8959
8960 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8961
8962         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
8963
8964 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8965
8966         * doc/sdccman.lyx: minor changes, minor changed
8967
8968 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
8969
8970         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
8971         which can't handle SDCC_NEWONEBYTEOPS,
8972         (geniCodeMultiply): removed conversion from mult to shift for pic14
8973         and pic16
8974
8975 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8976
8977         * src/hc08/gen.h,
8978         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
8979         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
8980         thus fixing bug #895406
8981
8982 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
8983
8984         * device/lib/_modsint.c,
8985         * device/lib/_modslong.c: sign follows divisor only
8986         * src/hc08/gen.c (genMultOneByte): if result size is 1,
8987         signs or signedness can be ignored
8988         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
8989         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
8990         added optimization for IFX,
8991         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
8992         arguments;
8993         reenabled optimization for IFX, which was removed on 2004-01-11
8994         * src/SDCCast.h: added return type IFX
8995         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
8996         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
8997         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
8998         SDCC_OLDONEBYTEOPS selects the old behaviour
8999         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
9000         changed again and commented promotion rule
9001         * src/SDCCval.c (valDiv): promotion no longer necessary
9002         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
9003         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
9004         rewritten
9005         * support/regression/tests/onebyte.c: added
9006
9007 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
9008
9009         * gen.c (genInline): reverted to old code for assemnling inline
9010         code because of bug reported James Chadd
9011
9012 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
9013
9014         * ralloc.h: missing declarations from previous patch,
9015         seems that patch for ralloc.h was never applied, fixed
9016
9017 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9018            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9019
9020         * pcode.c,
9021         * pcode.h,
9022         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
9023         indirect addressing. Marked FSR0 as deprecated
9024         * gen.c (pointerCode): commented out, not needed now
9025         (pic16_popGet2p): new MOVFF helper function
9026         (genGenPointerGet),
9027         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
9028         (shiftRLong): removed duplicate debugging info
9029
9030 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9031
9032         * src/ds390/gen.c (genNearPointerGet),
9033         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
9034         optimization with bits, but not bitfields.
9035         * src/ds390/ralloc.c (packRegisters),
9036         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
9037
9038 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
9039
9040         * src/SDCCcse.c (algebraicOpts): copy operands before modification
9041
9042 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9043
9044         * src/SDCCsymt.h,
9045         * src/SDCCicode.c (operandFromSymbol),
9046         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
9047         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
9048         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
9049         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
9050         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
9051         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
9052         bug #892038
9053         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
9054         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
9055         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
9056         * src/SDCCsymt.c (newSymbol),
9057         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9058         enumerator_list),
9059         * src/SDCCval.h,
9060         * src/SDCCval.c (newiList): fixed bug #885705
9061
9062 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9063
9064         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
9065         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
9066
9067 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9068
9069         * device/include/c8051f120.h,
9070         * device/include/c8051f300.h,
9071         * device/include/c8051f310.h: added/updated header files for Silicon
9072         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9073         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
9074         in new section Submitting patches
9075
9076 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9077
9078         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
9079         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9080         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9081         genGenPointerSet),
9082         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
9083         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9084         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9085         genGenPointerSet),
9086         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
9087         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9088         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9089         genGenPointerSet),
9090         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
9091         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9092         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9093         genGenPointerSet): fixed bug #892400
9094         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
9095         to eliminate build warnings.
9096         * src/SDCCast.c (processParms),
9097         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
9098         fixed bug 751859
9099         * support/valdiag/valdiag.py: added GCC to the list of defines active
9100         when compiling with gcc
9101
9102 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9103
9104         * support/Util/SDCCerr.h,
9105         * support/Util/SDCCerr.c,
9106         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
9107         with an incomplete type (fixed bug #883734)
9108         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
9109
9110 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9111
9112         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
9113
9114 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9115
9116         * src/SDCCast.c (decorateType),
9117         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
9118         function pointer implementation
9119         * support/regression/tests/funptrs.c: added tests to verify both forms
9120         of function pointers work correctly. Added tests to verify parameters
9121         are passed in the correct order.
9122
9123 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
9124
9125         * device.c (regCompare): registers are sorted by ascending
9126         address and increasing size,
9127         * main.c (_pic16_finaliseOptions): removed the declaration
9128         of compiler macro MCU. Now a macro of the format pic18fxxxx
9129         will be defined from the command line
9130
9131 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9132             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9133
9134         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
9135         PCOP_RLCF was overwritten!
9136         * gen.c (genSkip): commented out calls to pic16_emitcode,
9137         * (genCmpEQ): fixed "long" compares, only high word did get compared,
9138         * (genlshTwo),
9139         * (genRRC): added debugging info,
9140         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
9141         overwritten while shifting,
9142         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
9143         overwritten while shifting,
9144         * (AccLsh),
9145         * (AccRsh),
9146         * (shiftLLeftOrResult),
9147         * (shiftRLeftOrResult),
9148         * (shiftRLong),
9149         * (shiftLLong): Implemented with pic16_emitpcode
9150         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
9151         * (genLeftShift): Fixed bug, operand for shift by variable always
9152         was "and"ed with 0x0f,
9153         * (genLeftShiftLiteral),
9154         * (genrshTwo),
9155         * (genRightShiftLiteral): added debugging info,
9156         * (genrshFour): added comment,
9157         * (genRightShift): determined signedness from operand "left"
9158         instead of "result"
9159
9160 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9161
9162         * src/SDCCicode.c (geniCodeParms),
9163         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
9164         function pointers, fixed function pointer bugs #861242 and #861896
9165
9166 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9167
9168         * device/include/c8051f000.h,
9169         * device/include/c8051f120.h,
9170         * device/include/c8051f300.h: added header files for Silicon
9171         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9172
9173 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
9174
9175         * src/SDCCast.c (processParams): added new type flow and restructured
9176         (gatherAutoInit): added new type flow
9177         (addCast): cosmetic changes
9178         (getLeftResultType): added new type flow for array indices, patch
9179         provided by Stas, see FR #877103
9180         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
9181         array index patch by Stas
9182         * src/SDCCast.h: added prototype getResultTypeFromType()
9183         * src/SDCCval.h,
9184         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
9185         * src/pic/glue.c (pic14emitStaticSeg),
9186         * src/pic16/glue.c (pic16emitStaticSeg),
9187         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
9188         for initialization of symbols
9189         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
9190         * support/Util/SDCCerr.h:
9191         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
9192         * .version: bumped version number to 2.3.8
9193         * device/include/Makefile.in (install),
9194         * doc/Makefile (install): changed to 'rm `find ...`' construct to
9195         avoid warnings
9196
9197 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
9198
9199         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
9200         Slade Rich fixed an optimization bug
9201         * src/pic/pcodepeep.c,
9202         * src/pic/pcoderegs.c
9203         * doc/Makefile (install): added test for directory
9204
9205 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9206
9207         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
9208         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
9209         * src/pic/ralloc.c (getRegPtr, getRegGpr),
9210         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
9211         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
9212         * as/mcs51/asexpr.c (term),
9213         * as/hc08/asexpr.c (term): fixed bug #887146
9214
9215 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9216
9217         * src/z80/gen.c (genMult): handle single byte result product
9218         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
9219         DUMMY_READ_VOLATILE (fixed bug #886367)
9220
9221 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9222
9223         * support/regression/tests/libmullong.c: fixed logic, on little endian
9224         hosts we ended without a mullong_wrapper()
9225
9226 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9227
9228         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
9229         virus/worm forged address usage.
9230
9231 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9232
9233         Fixed promotion, it should be done on AST level:
9234         * src/SDCCast.c (addCast): added promotion to int
9235         (decorateType): updated call to upCast()
9236         * src/SDCCicode.c (geniCodeLeftShift): removed call to
9237         usualUnaryConversions()
9238
9239 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
9240
9241         * support/regression/tests/literalop.c (mulWrapper): Added a
9242         wrapper to remove integer overflow warnings.
9243
9244         * support/regression/tests/float_trans.c: Made work on host.
9245
9246         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
9247         location of sz80.
9248
9249         * support/regression/generate-cases.py (main): Changed from inline
9250         to a main method.
9251
9252         * doc/Makefile (install): Changed to depth first to get rid of
9253         missing directory install warning.
9254
9255         * as/Makefile (install-doc): Made work on Mac.
9256
9257 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
9258
9259         * src/SDCCast.c: added an additional type flow in decorateType() of
9260         opposite direction, see feature request #860006; it's enabled at runtime
9261         by setting the environment variable SDCC_NEWTYPEFLOW
9262         * src/SDCCast.h: changed prototype of decorateType()
9263         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
9264         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
9265         'char' to 'int' can be omitted, if both operands are 'unsigned char';
9266         see feature request #877103
9267         * src/SDCCval.c: updated call of decorateType()
9268         (valBitwise): fixed bug #882876
9269         (valMinus): added promotion
9270         (valLogicAndOr): result is unsigned
9271         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
9272         * src/SDCCsymt.c (computeType),
9273         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
9274         must not cause an unsigned operation
9275         * src/pic/glue (pic14emitRegularMap),
9276         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
9277
9278 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
9279
9280         * src/pic/pcode.c (PCodeID): commented out left over debug code
9281
9282 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
9283
9284         * support/valdiag/tests/overflow.c: added shift tests
9285         * src/pic/device.c,
9286         * src/pic/gen.c,
9287         * src/pic/gen.h,
9288         * src/pic/glue.c,
9289         * src/pic/main.c,
9290         * src/pic/pcode.c,
9291         * src/pic/pcode.h,
9292         * src/pic/pcodepeep.c,
9293         * src/pic/pcoderegs.c,
9294         * src/pic/ralloc.c,
9295         * src/pic/ralloc.h: applied patch from Slade Rich;
9296         added support for multiple code pages and multiple RAM banks on the
9297         PIC 14 port. The ASM files now no longer simply assume all the
9298         code / RAM are in the same page / bank. This means the linker can
9299         safely allocate code/RAM of separate ASM files to different pages/banks.
9300         * doc/sdccman.lyx: added Slade's tips
9301         * src/mcs51/peeph.def: fixed bug #880768
9302
9303 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9304
9305         * src/hc08/ralloc.c (rematStr): fixed bug #879282
9306         * src/SDCCast.c (decorateType): fixed bug #880197
9307
9308 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
9309
9310         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
9311         getopt.h.
9312
9313         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
9314         strtof is not part of C89 and isn't included with Mac OS X.
9315
9316 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9317
9318         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
9319         shiftL2Left2Result): fixed bug #879326
9320         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
9321         (genMultOneByte): fixed bug in signed vs unsigned multiplication
9322         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
9323         address fetch for clr instruction
9324         * device/lib/hc08/_mulint.c: created optimized assembly version
9325         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
9326
9327 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
9328
9329         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
9330         proposed in FR #877103
9331
9332 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
9333
9334         * src/SDCCval.c (cheapestVal): added missing checks
9335         * src/SDCCicode.c (usualBinaryConversions): fixed condition
9336         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
9337
9338 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
9339
9340         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
9341         equal operands
9342
9343 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
9344
9345         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
9346         loaded with the linker search paths (-L arguments) and the libraries
9347         to be linked with the current source (-l arguments). Changes
9348         currently will affect only the pic16 port.
9349         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
9350         include path the port specific paths and port specific libraries,
9351         * gplink command now contains the $3 argument,
9352         * src/pic16/device.h,
9353         * src/pic16/device.c,: structure PIC_device is made public and
9354         renamed to PIC16_device, the same for variable Pics which is renamed
9355         to Pics16. Updated all references to them.
9356         * src/pic16/glue.c (pic16glue): corrected bug with code
9357         initialization which bypassed the variable initializations block.
9358
9359         * device/lib/pic16/Makefile.rules: removed --penable-stack from
9360         COMPILE_FLAGS and added the --nostdinc option
9361
9362 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9363
9364         * device/include/mc68hc908jb8.h: Register defs for another member
9365         of the hc08 family. Contributed by Bjorn Bringert - thanks!
9366
9367 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
9368
9369         Documenting changes from previous commits.
9370         * configure.in (version 1.56),
9371         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
9372         when generating output files to configure the pic16 library,
9373         but now I've commented it out, since gputils aren't installed in the
9374         SF compile farm, so library won't compile
9375
9376         * device/lib/Makefile.in (version 1.56): initially I've added in
9377         target 'all' the prerequestive 'model-pic16' so it compiled the
9378         pic16 library, but now I've commented it out for the same reasons
9379         above,
9380         * added targets 'model-pic16' and 'objects-pic16' to compile the
9381         library
9382         * added target 'port-specific-objects-pic16' to handle the
9383         generated libraries and copy them into the build/ directory
9384         * added target 'clean-intermediate-pic16' to clean intermediate
9385         files into pic16 directory
9386         * in target 'installdirs' added line to create directory pic16 in
9387         the installation path
9388
9389         * device/include/Makefile.in (version 1.11): in target 'install'
9390         added lines to copy all header files to installation path,
9391         * in target 'installdirs' added line create directory for pic16
9392         headers in the installation path
9393
9394 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
9395
9396         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
9397          a function call
9398
9399 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
9400
9401         * configure,
9402         * device/lib/configure.in,
9403         * device/lib/configure: fixed for autoconf 2.57
9404
9405 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9406
9407         * src/z80/main.c (_parseOptions): fixed the portmode= command line
9408         option so that it actually works. Made it specific to the z80, since
9409         the gbz80 doesn't have these kinds of I/O ports.
9410
9411 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9412
9413         * device/include/z180.h,
9414         * device/lib/_memcpy.c,
9415         * device/lib/_memmove.c,
9416         * device/lib/_mulint.c,
9417         * device/lib/ser_ir.c,
9418         * device/lib/ser_ir_cts_rts.c,
9419         * device/lib/_strcmp.c,
9420         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
9421         * src/z80/main.c (_process_pragma): add support for pragmas bank and
9422         portmode; added deprecation warning for bank= and protmode= forms.
9423         Also, guard against buffer overflow.
9424         * src/z80/gen.c (aopGet): generate better code for sfr banked read
9425
9426 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9427
9428         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
9429         changed interrupt vector table generation to only emit declared vectors.
9430         * device/include/Makefile.in: added missing backslash
9431         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
9432
9433 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9434
9435         Mainly changes to support compilation of the device libraries
9436         * src/pic16/device.c: stack is allocated via symbol and not
9437         via literal number. The symbol is placed in the corresponding
9438         position of the data ram
9439         * (pic16_dump_section): relocatable and absolute uninitialized
9440         data are now emitted in sorted order to reduce section naming,
9441         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
9442         weren't marked as being in the access bank,
9443
9444 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9445
9446         Added portion of GNU PIC Library under the directory
9447         device/include/pic16 and device/lib/pic16. These files
9448         contain the declarations of SFRs for the PIC18Fxx2 devices.
9449         The directory is initialized via configure from toplevel.
9450
9451 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
9452
9453         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
9454         the spilllocations to be compared correctly
9455
9456 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9457
9458         * src/SDCCast.c (decorateType): fixed bug introduced today
9459
9460 2004-01-12  Borut Razem <borut.razem AT siol.net>
9461
9462         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
9463         doc/sdccman.lyx: upper case pragmas are deprecated
9464
9465 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9466
9467         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
9468         in simpler and even better code
9469
9470 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
9471
9472         * src/SDCCicode.c (operandOperation): fixed bug #874819
9473         * src/SDCCast.c (decorateType): fixed
9474         char foo (unsigned long ul) { return ul > 0; }
9475
9476 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9477
9478         * doc/sdccman.lyx: Moved and added some sections, small changes
9479         all over. Telling LaTeX to be less strict with word spacing
9480         to better keep the right margin. Changed some notes about
9481         maintainance of the ports in section 3.2.1 - is it OK like this?
9482
9483 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
9484
9485         SDCC source changes:
9486         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
9487         convilong): modified to inform the pic16 port that builtin functions
9488         are external
9489
9490         PIC16 PORT specific changes:
9491         * src/pic16/device.c pic16_dump_equates() added,
9492         processor registers declared internally by the port are emitted in
9493         the translation as equates,
9494         * src/pic16/gen.c: inline code is passed unprocessed to the
9495         translation,
9496         * (pic16_popGetLit2): fnuction modified to take second operand as
9497         pCodeOp pointer and not as literal,
9498         * (popRegFromIdx): prefixed with pic16_,
9499         * (pic16_popCombine2): modified to receive already allocated pCode
9500         operands,
9501         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
9502         * (genFunction): initializes local stack frame and pushes on stack
9503         all the registers used by this function,
9504         * (genEndFunction): restores all registers from stack and restores
9505         stack frame,
9506         * src/pic16/glue.c (pic16emitRegularMap): various changes and
9507         improvements,
9508         * (pic16glue): changed the program startup sequence,
9509         * added new dbName code 'A' for functions placed in absolute section
9510         * src/pic16/main.c: added function attribute _naked,
9511         * added pragma 'code' to place a fnuction at an absolute address,
9512         * added command line arguments --debug-ralloc and --pcode-verbose,
9513         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
9514         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
9515         * (pic16_newpCodeOpLit2): modified to take the second operand as
9516         pCodeOp pointer,
9517         * (pic16_printpBlock): modified to emit each function in a separate
9518         section,
9519         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
9520         UPPER for immediate operands,
9521         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
9522         instruction,
9523         * src/pic16/peeph.def: all peepholes with movff are commented out,
9524         because there is a problem in the pcode peep optimizer,
9525         * src/pic16/ralloc.c: the register allocator can now reuse local
9526         function symbols for another function. This saves register usage.
9527         * src/pic16/ralloc.h: added flag isLocal in structure regs,
9528
9529         Added file src/pic16/NOTES with information about program writing on
9530         the current port version.
9531
9532 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9533
9534         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
9535         and peephole 252 (array access)
9536
9537 2004-01-09  Borut Razem <borut.razem AT siol.net>
9538
9539         * src/SDCCmain.c : fixed #872250: -l command line defined library
9540           files are scanned before standard library files
9541
9542 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9543
9544         * src/SDCCast.c (decorateType): fixed bug #874046
9545
9546 2004-01-09  Borut Razem <borut.razem AT siol.net>
9547
9548         * support/scripts/sdcc.nsi: remove previous installation
9549
9550 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9551
9552         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
9553         bytes for last interrupt vector (mcs51)
9554         * sdcc.spec: fixed typo
9555
9556 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9557
9558         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
9559         gen51Code): more efficient parameter receive for --model-large
9560         ("bug" #845294)
9561
9562 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9563
9564         * src/ds390/main.c,
9565         * src/z80/main.c: added missed needLinkerScript flags (more than
9566         one port structure defined in these file)
9567         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
9568         bug #795325
9569
9570 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
9571
9572         * src/SDCCmain.c: removed various references to DEFAULT_PORT
9573         * src/port.h: added flag needLinkerScript in port->linker
9574         structure to inform whether to create a .lnk file or not,
9575         * src/avr/main.c,
9576         * src/ds390/main.c,
9577         * src/hc08/main.c,
9578         * src/mcs51/main.c,
9579         * src/pic/main.c,
9580         * src/pic16/main.c,
9581         * src/xa51/main.c,
9582         * src/z80/main.c: changed appropriately to configure
9583         needLinkerScript flag
9584         * src/pic/gen.c,
9585         * src/pic16/gen.c (genAddrOf): fixed bug #863624
9586         * src/pic/glue.c: added variable udata_section_name to
9587         override default uninitialized data segment definition for
9588         devices only with SHAREBANK memory (reported from Erik Epetrich)
9589         * (pic14emitOverlay): modified to emit a commented overlay segment
9590         directive when no overlay data exist
9591         * (picglue): modified to emit uninitialized data segment
9592         according to udata_section_name
9593         * src/pic/main.c (_pic14_parseOptions): added command line
9594         options --udata-section-name=[name] to override default
9595         udata definition name
9596         * modified _linkCmd and _asmCmd to include compiler passed
9597         arguments via -W option
9598         * src/pic16/main.c: added $l in _asmCmd, changed extension for
9599         object file from '.rel' to '.o' in port->linker structure,
9600         changed size of fptr from 2 to 3 in port structure
9601
9602 2004-01-07  Borut Razem <borut.razem AT siol.net>
9603
9604         * support/scripts/sdcc.nsi: update PATH
9605         * support/scripts/sdcc.ico: craeted
9606
9607 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
9608
9609         * device/include/Makefile.in: fix install
9610         * doc/Makefile: fix install
9611
9612 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9613
9614         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
9615         in bug #860505
9616         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
9617         how the function variable allocation summary is displayed; also
9618         include information about variables allocated to the overlay
9619         segment
9620
9621 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9622
9623         * as/mcs51/lkmain.c: Help about -Y option
9624         * as/mcs51/lkarea.c: Fixed gcc warnings
9625
9626 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
9627
9628         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
9629         fixed warning
9630         * support/valdiag/tests/overflow.c: added
9631         * src/SDCCast.c (decorateType),
9632         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
9633         LEFT_OP (left shift)
9634
9635 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9636
9637         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
9638         (default behaviour).
9639
9640 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9641
9642         A python script to validate compiler diagnostic messages. It can be
9643         used to verify that sdcc complains about bad c source code and
9644         gives a good location of the error.
9645         * support/valdiag/Makefile,
9646         * support/valdiag/valdiag.py,
9647         * support/valdiag/tests/*
9648
9649 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9650
9651         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
9652         * src/SDCCsymt.c (newEnumType),
9653         * src/SDCCsymt.h
9654         * support/Util/SDCCerr.c,
9655         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
9656         enum related bugs.
9657         * support/regression/tests/enum.c: added test for enum values that
9658         require at least 2 bytes of storage.
9659
9660 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
9661
9662         * src/common.h: added ifndef/define/endif macros
9663         around the header file.
9664         Bug reported from Jesus Calvino-Fraga
9665
9666 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
9667
9668         * sdcc.spec: updated
9669         * device/include/Makefile.in: don't install CVS directories
9670         * device/lib/Makefile.in: added removal of CVS directories after install
9671         * doc/Makefile: fixed install, added local_icons
9672         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
9673         * src/mcs51/gen.c (genRightShift): fixed bug #870788
9674         * src/ds390/gen.c (genRightShift): fixed bug #870788
9675         * src/SDCCast.c (decorateType): fixed bug #870781
9676
9677 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
9678
9679         PIC16 port related changes:
9680         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
9681         added variable stackPos,
9682
9683         * gen.c: genCall, assignResultValue: added support for
9684         pushing/retrieving function parameters to/from stack,
9685         genFunction,genEndFunction: setup stack frame for the
9686         generated function,
9687         genAddrOf: will be changed according to bug 863624
9688
9689         * added files genutils.c and genutils.h which contain gen*
9690         debugged and optimised functions extracted from gen.c
9691
9692         * glue.c: added variable 'externs' which holds extern symbols,
9693         pic16emitRegularMap: is modified to properly handle relocatable
9694          symbols under the new scheme,
9695         pic16createInterruptVect: is modified
9696         pic16printPublics: is modified to emit 'global' assembler directives,
9697         added pic16_printExterns to print extern symbols,
9698         pic16glue: initializes stack/frame pointer in the beginning of
9699         the assembly output. Temporary hack, will be corrected later,
9700         because gplink yet does not support stack and SDCC does not
9701         yet support a type of crt0.o object to create the final binary.
9702
9703         * Removed many lines that contain 8051 legacy code.
9704         * The code is finally placed under a 'code' directive.
9705         * Added port specific options.
9706
9707         * _process_pragma: simplified since now we do not need *special*
9708         include file to define SFR registers. But a separate header
9709         will be needed. This will be developed later.
9710         * _pic16_parseOptions: added, parses port specific options:
9711         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
9712         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
9713         --preplace-udata-with=
9714
9715         * _pic16_setDefaultOptions: modified to initialize section names,
9716         but hack is temporarly out of order since it needs improvement.
9717         * _pic16_genAssemblerPreamble: configuration words are emitted by
9718         their address instead of their name. This part is incomplete and
9719         supports only the 18Fxx2 devices. Other devices will emit an error
9720         during assembly since they do not contain the same set of config
9721         registers
9722         * _pic16_genIVT: is modified,
9723
9724         * pcode.c: added definitions for some hardware registers that are needed
9725         for stack support
9726         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
9727         All PCI entries are updated. Now LFSR is supported.
9728         * Removed pic16_pciTRIS is mentioned by mdubuc in source
9729         * added pic16_newpCodeOpLit2 to support instructions with
9730         two literal arguments
9731         * pic16_pCode2str: corrected code that emits assembler instructions
9732         with two literal operands and those that have an access bit modifier
9733         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
9734         this fixes a bug which caused some labels to be lost, when an
9735         assembler directive was added, i.e. banksel,
9736         * pic16_FixRegisterBanking: improved logic that causes the insertion
9737         of bank switching,
9738         * InlineFunction: functions that are called once, are not any more
9739         inlined. This can be a port option in the future,
9740
9741         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
9742
9743         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
9744         hold the corresponding uninitialized symbols,
9745         * pic16_allocProcessorRegister: registers have explicit marked the
9746         accessBank field,
9747         * pic16_allocInternalRegister: registers are explicit marked as
9748         not used,
9749         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
9750         processing list, so bit registers were lost,
9751         *
9752
9753         * ralloc.h: added field 'accessBank' and original symbol operand
9754         in register definition,
9755         * removed the field isMapped from register definition,
9756
9757         ** Several functions have been removed from various sources:
9758         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
9759         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
9760         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
9761         pic16_assignRelocatableRegisters
9762
9763         ** others have been introduced:
9764         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
9765         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
9766
9767 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
9768
9769         * support/scripts/inc2h.pl: changed definition of BIT_AT
9770         to emit 'sbit at' instead of 'bit at'. This was a request.
9771
9772         PIC16 port related preliminary changes:
9773         * gen.c: prefixed function popRegFromString with
9774         pic16_ and all references to it corrected
9775         * pcode.c: all pic16_pc_* hardware registers prefixed
9776         with underscore (_),
9777         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
9778         * ralloc.c: newReg(): when register is REG_SFR then
9779         set address to rIdx,
9780         pic16_allocProcessorRegister(): marks register wasUsed=0
9781         pic16_writeUsedRegs(): added a call to assign processor
9782         registers via pic16_assignFixedRegisters
9783
9784 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9785
9786         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
9787         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
9788         variables in unused register banks.  Also the SSEG is placed
9789         wherever there is enough space for it, and IDATA can be anywhere
9790         in internal RAM.  For now compile using -Wl-Y[stack_size].
9791         The mem file is different for this option as well, since it
9792         makes no sense of talking about DSEG lenght.
9793
9794 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
9795
9796         * src/SDCClrange.c: fixed bug 869095 that caused segfault
9797         in certain cases, e.g. when ROM assignment, patch provided
9798         from Albert den Haan.
9799
9800 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
9801
9802         Many signedness and type propagation fixes:
9803         * src/SDCCicode.c: made geniCodeCast() static
9804         replaced SPEC_ by IS_ (cosmetic)
9805         (operandOperation): fixed div and mod operation
9806         (usualBinaryConversions): added support for promotion of char
9807         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
9808         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
9809         (geniCodeAdd): an array index will stay unsigned, even if promoted
9810         from char to int
9811         (geniCodeArray): ditto
9812         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
9813         * src/SDCCsymt.c (computeType): added more support for char;
9814         promotion of char is selectable by promoteCharToInt, fixed signedness
9815         for all cases
9816         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9817         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9818         * src/SDCCval (val*): replaced signedness calculation by
9819         computeType()
9820         rearranged if-branches (cosmetic)
9821         (valShift): added warning W_SHIFT_CHANGED
9822         (valCompare): fixed problem with different types
9823         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
9824         * support/regression/tests/literalop.c: added many cases
9825         * support/regression/tests/ast_constant_folding.c: changed finally to
9826         'unsigned int'
9827         * .version: new year, new version: 2.3.7
9828         * src/SDCCmain.c (main): applied patch #866468
9829         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
9830         provided by Scott Bronson
9831         * doc/sdccman.lyx: updated documentation for sdcdb
9832         updated and added chapter tips
9833
9834 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9835
9836         * src/SDCCsymt.h: missing from yesterday's commits
9837
9838 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9839
9840         * src/SDCC.y (struct_or_union_specifier),
9841         * support/Util/SDCCerr.c,
9842         * support/Util/SDCCerr.h: verify that struct & union tags are used
9843         as declared.
9844
9845 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9846
9847         * src/SDCCglobl.h: missing from yesterday's commits
9848
9849 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9850
9851         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
9852         sft_attributes, struct_declaration, parameter_declaration,
9853         type_name, start_block, declaration_list),
9854         * src/SDCC.lex (check_type): support redefinition of typedef names
9855
9856 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9857
9858         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
9859         aligned xdata arrays. Erik helped me with the if clause.
9860
9861 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9862
9863         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
9864         warning
9865
9866 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9867
9868         * src/SDCCast.h,
9869         * src/SDCCast.c (newAst_),
9870         * src/SDCCicode.h,
9871         * src/SDCCicode.c (ast2iCode, newiCode),
9872         * src/SDCCglobl.h,
9873         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
9874         expr, statement, expression_statement, selection_statement,
9875         iteration_statement, expr_opt, jump_statement): foundation for tracking
9876         sequence points
9877         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
9878         point code too)
9879
9880 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9881
9882         * support/Util/SDCCerr.c,
9883         * src/SDCCast.h,
9884         * src/SDCCast.c (createCase, createDefault, decorateType),
9885         * src/SDCClabel.c (labelUnreach),
9886         * src/SDCC.y (labeled_statement, jump_statement): More improvements
9887         to error messages.
9888         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
9889         (with thanks to Stas Sergeev)
9890         * device/include/time.h,
9891         * device/lib/time.c (CheckTime): suppress unreachable code warning
9892
9893 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9894
9895         * src/SDCCast.c (createIvalCharPtr),
9896         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
9897         bug #753752)
9898         * support/regression/tests/nullstring.c: tests for these two bugs
9899
9900 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9901
9902         * support/Util/SDCCerr.h,
9903         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
9904         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
9905         about storage class and 'at' used inside struct or union
9906         * src/SDCCBBlock.c (iCodeFromeBBlock),
9907         * src/SDCCcse.c (ifxOptimize),
9908         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
9909         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
9910         printIval, emitStaticSeg, emitOverlay),
9911         * src/SDCClabel.c (deleteIfx),
9912         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
9913         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
9914         gatherAutoInit, processParms),
9915         * support/Util/SDCCerr.h,
9916         * support/Util/SDCCerr.c (werrorfl): Support for better error location
9917         reporting for post-parse errors.
9918
9919 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9920
9921         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
9922         implicit casts via union; they don't work on big endian systems
9923         (possible fix for bug #861138)
9924
9925 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9926
9927         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
9928         * src/mcs51/main.c: fixed the fix for bug #737001
9929
9930 2003-12-15  Borut Razem <borut.razem AT siol.net>
9931
9932         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
9933
9934 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9935
9936         * support/makebin/makebin.c: put output in binary mode
9937
9938 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9939
9940         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
9941         xdata and data memory on startup. Set the environment variable
9942         SDCC_NOGENRAMCLEAR to disable this.
9943         * src/mcs51/peephole.def,
9944         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
9945         (allows non-interrupt and interrupt code to safely compete for a resource
9946         without the non-interrupt code having to disable interrupts)
9947
9948 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9949
9950         * src/SDCCicode.c (geniCodeAdd),
9951         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
9952         with valFromType if type might be a pointer and host is big endian).
9953         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
9954         types, not just integer types.
9955         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
9956         multiply defined with mismatching "at" address.
9957
9958 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9959
9960         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
9961         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
9962         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
9963         with embedded nulls (fixed bug #753752)
9964
9965 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9966
9967         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
9968         Apparently this did not see much testing (endless loop)
9969
9970 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9971
9972         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
9973
9974 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9975
9976         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
9977         gracefully handle NULL memmap pointers
9978
9979 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9980
9981         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
9982         instead of deleting the iCode when an operand is volatile
9983         * src/z80/gen.c (genDummyRead),
9984         * src/mcs51/gen.c (genDummyRead),
9985         * src/ds390/gen.c (genDummyRead),
9986         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
9987         not just IC_RIGHT
9988         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
9989         * src/SDCC.y: fixed bug #850420
9990
9991 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9992
9993         Applied z80 i/o port patch from Peter Townson and fixed some operators
9994         to better handle operands in A register.
9995         * device/include/z180.h
9996         * src/SDCC.y
9997         * src/SDCCglue.c
9998         * src/z80/gen.c
9999         * src/z80/gen.h
10000         * src/z80/main.c
10001         * src/z80/peeph-z80.def
10002         * src/z80/peeph.def
10003         * src/z80/z80.h
10004
10005 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10006
10007         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
10008
10009 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10010
10011         * device/lib/hc08/_mullong.c: Removed extra #endif
10012
10013 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10014
10015         * sim/ucsim/hc08.src/inst.cc,
10016         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
10017         carries from x to h
10018         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
10019         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
10020         * device/include/stdarg.h: fixed varargs for hc08
10021         * device/lib/Makefile.in,
10022         * device/lib/hc08/Makefile,
10023         * device/lib/hc08/_mulint.c,
10024         * device/lib/hc08/_mullong.c: fixed some endian problems
10025
10026 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10027
10028         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
10029         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
10030         * device/lib/_gptrget.c,
10031         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
10032
10033 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10034
10035         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
10036         * src/SDCCast.c (astErrors): fixed bug #846007
10037         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
10038
10039 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10040
10041         * src/SDCCast.c (decorateType): disabled a transformation I added in
10042         revision 1.188 (access to fields of a structure at an absolute address);
10043         it breaks with bitfields, extern declarations, and gcse analysis.
10044         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
10045         could be assigned through a pointer, so don't complain.
10046         * src/SDCCast.c (astErrors),
10047         * src/SDCCast.h,
10048         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
10049
10050 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
10051
10052         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
10053         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
10054         output of __config directives, since gpasm now supports them
10055         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
10056         pre-processor macro, i.e. -DMCU=p18f452
10057         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
10058         and modified to handle 'cast' icode similarly to '=' icode
10059         * src/pic16/device.h (typedef struct PIC_device): added field
10060         'extMIface' to indicate that chip has external memory interface
10061         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
10062         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
10063         18F8720
10064
10065 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10066
10067         * src/SDCC.y (pointer): fixed bug #846006
10068         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
10069         * src/SDCCast.c (decorateType): fixed bug #846009
10070         * src/ds390/peeph.def,
10071         * src/ds390/gen.c (genAnd, genOr),
10072         * src/mcs51/peeph.def,
10073         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
10074
10075 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10076
10077         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
10078         * src/SDCCdflow.c
10079         * src/SDCCcse.c
10080         * src/SDCCcse.h
10081         * src/SDCCBBlock.h
10082         * src/SDCCBBlock.c
10083
10084 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
10085
10086         fixed bug #845089
10087         * src/SDCCbitv.h,
10088         * src/SDCCbitv.c: added function to free a bitvector
10089         * src/SDCClrange.h,
10090         * src/SDCClrange.c: added function to recompute the liveranges
10091         * src/avr/ralloc.c,
10092         * src/ds390/ralloc.c,
10093         * src/hc08/ralloc.c,
10094         * src/mcs51/ralloc.c,
10095         * src/pic/ralloc.c,
10096         * src/pic16/ralloc.c,
10097         * src/xa51/ralloc.c,
10098         * src/z80/ralloc.c: recompute the liveranges after register packing
10099
10100 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
10101
10102         * src/SDCCloop.c (newInduction): fixed bug #845630
10103
10104 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10105
10106         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
10107         inadvertantly left behind from my 2003-11-12 change
10108
10109 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10110
10111         Updated headers I neglected to commit yesterday.
10112         * src/SDCClrange.h,
10113         * src/SDCCicode.h
10114
10115 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10116
10117         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
10118         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
10119         * src/SDCCopt.c (eBBlockFromiCode),
10120         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
10121         the creation of the key hash table from the sequencing so it can be used
10122         earlier (for some GCSE bug fixes still pending)
10123
10124 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10125
10126         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
10127         * support/regression/tests/addsub.c: testing genPlus shortcut
10128
10129 2003-11-15  Borut Razem <borut.razem AT siol.net>
10130
10131         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
10132
10133 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10134
10135         * src/SDCCcse.c (cseBBlock): fixed bug #527779
10136         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
10137         ordering is immaterial.
10138         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
10139
10140 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10141
10142         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
10143         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
10144         (SIGSEV) of bug #840381
10145         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
10146         unlink new file before rename if new and old filenames are the same)
10147
10148 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10149
10150         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
10151         uninitialized variables) for the mcs51. Set environment variable
10152         SDCC_GENRAMCLEAR to test.
10153         xdata initialization slightly shorter
10154
10155 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10156
10157         * src/SDCCsymt.h,
10158         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
10159         #838241 & 780691 (basicly the same bug)
10160         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
10161         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
10162
10163 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
10164
10165         * src/SDCCmain.c (linkEdit): "fix" #834252
10166
10167 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10168
10169         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
10170         * src/SDCCast.h,
10171         * src/SDCC.y: fixed bug #819403
10172
10173 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10174
10175         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
10176         the reentrant attribute.
10177         * src/hc08/gen.c (genPackBits): added missing stack readjustment
10178         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
10179         simulation
10180         * src/SDCCast.c (decorateType): fixed bug with storage class not being
10181         updated during pointer dereference; f.e. ~(((char *)1)*) was being
10182         erroneously reduced to a literal.
10183         * src/hc08/ralloc.c (packRegisters, rematStr),
10184         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
10185         some cases
10186
10187 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10188
10189         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
10190         * doc/sdccman.lyx: changed from 'article' to 'book'
10191         * doc/Makefile: readded test_suite_spec and cdbfileformat
10192
10193 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
10194
10195         * device/include/stdlib.h: include malloc.h to comply with ANSI
10196         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
10197
10198 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10199
10200         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
10201         * doc/clean.mk: also remove *.out files
10202         * doc/sdccman.lyx: some additions, larger top/bottom margins
10203
10204 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10205
10206         * src/SDCC.y: fixed bug #837365
10207         * support/regression/tests/bitopcse.c
10208         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
10209         a symbol (might be valop instead)
10210         * device/lib/Makefile.in: added errno.c to HC08SOURCES
10211         * device/lib/clean.mk: added hc08 to the cleaning list
10212
10213 2003-11-04  Borut Razem <borut.razem AT siol.net>
10214
10215         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
10216           made 2003-11-04
10217         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10218           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
10219           malloc is declared in standard stdlib.h
10220
10221 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10222
10223         * device/lib/hc08/Makefile: need to clean .rel not .o files
10224         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
10225
10226 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10227
10228         * src/port.h,
10229         * src/hc08/main.c,
10230         * src/mcs51/main.c,
10231         * src/ds390/main.c,
10232         * src/z80/main.c,
10233         * src/avr/main.c,
10234         * src/pic/main.c,
10235         * src/pic16/main.c,
10236         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
10237         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
10238         tests (which uses the port's oclsExpense function)
10239         * src/SDCC.y,
10240         * src/SDCCast.c,
10241         * src/SDCCicode.c,
10242         * src/hc08/gen.c,
10243         * src/ds390/gen.c,
10244         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
10245
10246 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10247
10248         * src/SDCCcse.c (ifxOptimize),
10249         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
10250         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
10251         deleting the IFX iCode.
10252         * src/hc08/ralloc.c: reduced unneeded slocs
10253         * src/hc08/gen.c: fixed bug in asmopToBoolean
10254
10255 2003-11-04  Borut Razem <borut.razem AT siol.net>
10256
10257         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
10258           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10259           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
10260           transferred to configure
10261
10262 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
10263
10264         Use headers defined in the C[++] standards:
10265         * sim/ucsim/gui.src/serio.src/fileio.cc
10266         * sim/ucsim/gui.src/serio.src/frontend.cc
10267         * sim/ucsim/gui.src/serio.src/main.cc
10268         * sim/ucsim/gui.src/serio.src/posix_signal.cc
10269         * support/Util/NewAlloc.c
10270         * as/hc08/lklibr.c
10271         * as/mcs51/lklibr.c
10272         * as/z80/aslist.c
10273         * as/z80/assym.c
10274
10275 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10276
10277         * Added MSVC projects for hc08 assembler and linker:
10278         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
10279         /as/hc08/link_hc08.dsp
10280
10281 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
10282
10283         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
10284
10285 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
10286
10287         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
10288
10289 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10290
10291         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
10292
10293 2003-10-31  Borut Razem <borut.razem AT siol.net>
10294
10295         * support/cpp2/cpplib.h,
10296           support/cpp2/cpplib.c,
10297           support/cpp2/cpplex.c,
10298           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
10299           to switch _asm block preprocessing on / off. Default is
10300           #pragma preproc_asm +
10301
10302 2003-10-31  Borut Razem <borut.razem AT siol.net>
10303
10304         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
10305           when outputting comment blocks (when executed with -C option) and
10306           _asm (SDCPP specific) blocks
10307
10308 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10309
10310         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
10311
10312 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
10313
10314         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
10315
10316 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
10317
10318         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
10319         * src/SDCCast.c (decorateType): fixed bug #832664
10320
10321 2003-10-31  Borut Razem <borut.razem AT siol.net>
10322
10323         * support/cpp2/cpplex.c: fixed for SDCPP:
10324           comments(when executed with -C option) and _asm blocks
10325           were included even if they where in skipped #if block.
10326           Applied solution from GCC cpp 3.3.2
10327
10328 2003-10-31  Borut Razem <borut.razem AT siol.net>
10329
10330         * src/SDCC.lex: sdcc now understands both formats:
10331           '# <line_number> <file_name>' and
10332           '#line <line_number> <file_name>'
10333         * support/cpp2/cppmain.c: sdcpp now generates the standard
10334           '# <line_number> <file_name>' instead of former
10335           '#line <line_number> <file_name>'
10336
10337 2003-10-30  Borut Razem <borut.razem AT siol.net>
10338
10339         * support/cpp2/cpphash.h,
10340         * support/cpp2/cpplib.h
10341         * support/cpp2/cpplex.c,
10342         * support/cpp2/cppmain.c,
10343         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
10344
10345 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10346
10347         Fixed a number of problems revealed by bug #827883.
10348         * src/SDCCloop.c (loopInvariants): Spill location of the
10349         result operand should be recomputed if extracted from
10350         a loop. Also, don't extract assignments of an iTemp
10351         from a literal.
10352         * src/SDCCast.c (isConformingBody): loop reversal should
10353         not occur if the control variable is involved with a
10354         relational operator.
10355
10356 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
10357
10358         * .version: bumped to 2.3.6 to reflect the big improvements
10359         made by Erik and Klaus. Thanks!
10360
10361 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
10362
10363         Replaced the livrange code.
10364         * src/SDCClrange.c: added new LR code
10365         * src/SDCCloop.c,
10366         * src/SDCCBBlock.h: removed remainig parts from old LR code
10367         * src/ds390/ralloc.c,
10368         * src/ds390/gen.c: minor fixes to make it work with new code
10369
10370 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10371
10372         * as/hc08/asm.h,
10373         * as/hc08/lkrloc.c,
10374         * src/hc08/gen.c,
10375         * src/hc08/ralloc.c: Fix various warnings related to the hc08
10376         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
10377         (tweaked fix for bug #818696)
10378
10379 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10380
10381         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
10382
10383 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10384
10385         * src/SDCCmain.c,
10386         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
10387         * src/mcs51/gen.c (gencjneshort),
10388         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
10389         more efficient (per Scott Bronson's suggestion)
10390
10391 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10392
10393         Extended the semantics of the critical keyword to include
10394         individual statements. See RFE #827755 and #799831
10395         * src/SDCC.y
10396         * src/SDCCicode.c
10397         * src/SDCCopt.c
10398         * src/SDCCast.c
10399         * support/Util/SDCCerr.c
10400         * support/Util/SDCCerr.h
10401         * src/mcs51/gen.c
10402         * src/ds390/gen.c
10403         * src/hc08/gen.c
10404
10405 2003-10-19  Borut Razem <borut.razem AT siol.net>
10406
10407         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
10408
10409 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10410
10411         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
10412         Fixed bug #818696
10413         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
10414         and predecrement operand is displayed
10415
10416 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10417
10418         * src/SDCCval.c (valMinus): fixed bug #826041
10419
10420 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10421
10422         Some hc08 related updates that I missed earlier
10423         * sim/ucsim/stypes.h
10424         * support/regression/ports/hc08/spec.mk
10425
10426 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10427
10428         New target "hc08" for the Motorola 68hc08 family of micros
10429
10430         * configure
10431         * configure.in
10432         * Makefile
10433         * src/hc08/*
10434         * src/SDCCmain.c
10435         * src/port.h
10436         * sim/ucsim/hc08.src/*
10437         * sim/ucsim/configure.in
10438         * src/ucsim/configure
10439         * sim/ucsim/packages_in.mk
10440         * as/hc08/*
10441         * as/Makefile
10442         * device/include/mc68hc908qy.h
10443         * device/lib/hc08/*
10444         * device/lib/Makefile.in
10445         * support/regression/ports/hc08/*
10446         * support/regression/Makefile
10447
10448 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10449
10450         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
10451         regression test
10452         * src/ds390/gen.c (genCast): fixed bug #821957
10453
10454 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10455
10456         * device/lib/logf.c: "fixed" overlay bug
10457         * support/regression/ports/host/spec.mk: added m library
10458         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
10459         * support/regression/tests/float_trans: added (for Eric)
10460
10461 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
10462
10463         * src/mcs51/gen.c (genCpl): fixed bug
10464         http://sf.net/mailarchive/message.php?msg_id=6263915
10465
10466 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
10467
10468         * src/SDCCast.c (decorateType): added extended constant folding
10469         * src/SDCCsymt.c (computeType): cleanup
10470         * src/SDCCval.c (valShift): minor optimization
10471         * support/regression/tests/ast_constant_folding.c: added
10472
10473 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10474
10475         * src/SDCCmain.c: removed some unintended changes
10476
10477 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10478
10479         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
10480         * src/z80/gen.c: fixed part of bug #817589
10481         * src/SDCCsymt.c (checkFunction): fixed bug #817895
10482
10483 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
10484
10485         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
10486         * src/SDCCcflow.c
10487         * src/SDCCcse.c
10488         * src/SDCCdflow.c
10489         * src/SDCClabel.c
10490         * src/SDCClrange.c
10491         * src/SDCCmem.c
10492         * src/SDCCopt.c
10493         * src/SDCCpeeph.c
10494         * src/SDCCset.c
10495         * src/avr/ralloc.c
10496         * src/ds390/ralloc.c
10497         * src/izt/ralloc.c
10498         * src/mcs51/ralloc.c
10499         * src/pic/ralloc.c
10500         * src/pic16/ralloc.c
10501         * src/xa51/ralloc.c
10502         * src/z80/ralloc.c
10503         * src/z80/gen.c: removed unused label "release:"
10504
10505 2003-10-06  Borut Razem <borut.razem AT siol.net>
10506
10507         * src/SDCC.lex: removed definition of unused variables
10508           save_optimize and save_options
10509
10510 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
10511
10512         * clean.mk: removed '=' in "-maxdepth=1"
10513         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
10514         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
10515
10516 2003-10-06  Borut Razem <borut.razem AT siol.net>
10517
10518         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
10519           my_unput() replaced by unput()
10520
10521 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
10522
10523         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
10524         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
10525         type-punned pointer will break strict-aliasing rules"
10526         Old LR behaviour is again default; Klaus' LR can be choosen by
10527         defining the environment variable LRKLAUS
10528         * src/SDCCBBlock.h
10529         * src/SDCCloop.c
10530         * src/SDCClrange.c
10531         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
10532         * clean.mk: fixed removal of files in bin/CVS/
10533         * device/lib/clean.mk: fixed removal of directories small and large
10534         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
10535         * src/SDCCicode.c,
10536         * src/SDCCval.c: removed superflous test for pedantic
10537
10538 2003-10-05  Borut Razem <borut.razem AT siol.net>
10539
10540         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
10541           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
10542           message "unmatched #pragma SAVE and #pragma RESTORE"
10543
10544 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10545
10546         * doc/sdccman.lyx: various additions and updates (interrupts, inline
10547           assembly, critical functions, atomic, nojtbound)
10548
10549 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
10550
10551         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
10552         * src/SDCCBBlock.h
10553         * src/SDCCloop.c
10554         * src/SDCCloop.h
10555         * src/SDCClrange.c
10556
10557 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10558
10559         * src/z80/gen.h,
10560         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10561         * src/mcs51/gen.h
10562         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10563         * src/ds390/gen.h
10564         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10565         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
10566         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
10567
10568 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10569
10570         * src/z80/gen.c (genRet): fixed bug #524753
10571         * src/z80/gen.c (genCast): fixed internal error on cast from
10572         pointer to long
10573         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
10574         fix for bug #477835 to the z80
10575         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
10576         for tracking iCodes in the peephole optimizer for z80
10577
10578 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10579
10580         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
10581         the other part of bug #814548
10582         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
10583
10584 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
10585
10586         * src/SDCCcse.c: fixed part of bug #814548
10587
10588 2003-09-28  Borut Razem <borut.razem AT siol.net>
10589
10590         * src/asm.c: rewrite of printILine() to use temporary file instead
10591           a pipe
10592         * src/xa51/main.c: commented out declaration of int rewinds
10593
10594 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10595
10596         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
10597
10598 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10599
10600         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
10601         * src/asm.c (printILine): Fixed bug #811015
10602
10603 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10604
10605         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
10606         freeing.
10607
10608 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10609
10610         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
10611         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
10612         to correctly handle general case of AOP_PAIRPTR
10613         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
10614
10615 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10616
10617         * src/mcs51/ralloc.c (fillGaps),
10618         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
10619         register positioning bug)
10620
10621 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
10622
10623         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
10624
10625 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10626
10627         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
10628         genCodePointerGet, genGenPointerGet, genFarPointerSet,
10629         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
10630         (ralloc doesn't intentionally do this now, but perhaps later)
10631         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
10632         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
10633         register positioning bugs (Fixed bug #762602 and #795325)
10634         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
10635         (Fixed bug #808779)
10636         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
10637         lines that --i-code-in-asm generates
10638
10639 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10640
10641         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
10642         trying to fclose a FILE* that was already closed.
10643
10644 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10645
10646         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
10647         of const struct should be treated as if const themselves)
10648
10649 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
10650
10651         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
10652
10653 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10654
10655         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
10656         Unix (/n) and DOS (/r/n) line terminations.
10657
10658 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10659
10660         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
10661         bug #613775
10662
10663 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10664
10665         * src/mcs51/gen.c (genFunction, genEndFunction),
10666         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
10667         and restore of EA so that stack offsets to parameters are
10668         correct when using both critical and reentrant/stack-auto.
10669         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
10670         size (can be triggered in error if sloc is shared between
10671         different sized objects)
10672         * device/include/float.h: fixed macros to explicitly use
10673         unsigned long where needed
10674
10675 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
10676
10677         Feature req. 799831: added code to allow nesting of critical functions
10678         * src/mcs51/gen.c (genFunction, genEndFunction)
10679         * src/ds390/gen.c (genFunction, genEndFunction)
10680
10681 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10682
10683         * src/SDCCsymt.c (sclsFromPtr),
10684         * src/SDCCsymt.h,
10685         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
10686         support for standard C idiom of memory mapped variables; for
10687         example, *((xdata int*)0x1234) = 1 is now internally equivalent
10688         to xdata int at 0x1234 tempvar = 1.
10689         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
10690         provided by Akiya ISHIDA
10691
10692 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
10693
10694         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
10695         * src/SDCCval.c (constVal): added reduction from int to char
10696         * src/SDCCval.c (valMult, valDiv): fixed sign handling
10697         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
10698         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
10699         to ignore the sign
10700         * support/regression/tests/shifts.c: fixed
10701
10702 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10703
10704         * src/z80/gen.c (genXor): Fixed bug #805445
10705
10706 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10707
10708         Fixed bug #621531 (const & volatile confusion in the type chain).
10709         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
10710         refer to the const or volatile state of the pointer itself.
10711
10712         * src/SDCCast.c
10713         * src/SDCCglue.c
10714         * src/SDCCicode.c
10715         * src/SDCCsymt.c
10716         * src/SDCCval.c
10717         * src/SDCC.y
10718         * src/SDCCsymt.h
10719         * src/pic/gen.c
10720         * src/pic/ralloc.c
10721         * src/pic16/gen.c
10722         * src/pic16/ralloc.c
10723         * support/regression/tests/const.c
10724
10725 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10726
10727         When checking for duplicated modules, use absolute paths
10728         instead of relative paths.  Files changed:
10729
10730         * as/mcs51/lklib.c
10731         * link/z80/lklib.c
10732
10733 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10734
10735         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
10736
10737 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10738
10739         * device/include/string.h: added size_t typedef, changed
10740         prototypes to use size_t, eliminated separate reentrant and
10741         non-reentrant declarations, added _memmove declaration
10742         * device/lib/_memcpy.c: changed to use size_t instead of int,
10743         changed /4 to >>2 to avoid division library call
10744         * device/lib/_memcmp.c,
10745         * device/lib/_memset.c,
10746         * device/lib/_strncat.c,
10747         * device/lib/_strncpy.c,
10748         * device/lib/_strncmp.c: changed to use size_t instead of int
10749         * device/lib/_memmove.c: new file (fixed bug #772294)
10750         * device/lib/Makefile.in: added _memmove.c
10751         * device/lib/z80/asm_strings.s: fixed bug #772290
10752         * support/regression/tests/bitfields.c: attempt to fix host assertion
10753         failure on amd64-unknown-linux2.2
10754
10755 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10756
10757         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
10758         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
10759         * as/z80/asmain.c (main): fixed bug #801766
10760
10761 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
10762
10763         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
10764         compilers
10765
10766 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10767
10768         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
10769         reported in bug #800609
10770
10771 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
10772
10773         * Top header beautifications in src/pic16 directory:
10774           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
10775           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
10776           pcoderegs.h, ralloc.c, ralloc.h
10777         * main.c: added top header and GPL license notice
10778         * pcode.c: fixed the if-conditional warning
10779
10780 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
10781
10782         * device/lib/_mullong.c: replaced int by short for gcc
10783
10784 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10785
10786         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
10787         and JUMPTABLE iCodes properly now (worked by accident before)
10788         * src/mcs51/gen.c (leftRightUseAcc),
10789         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
10790         iCode properly now. Use getSize instead of nRegs since a & b
10791         aren't part of the nRegs tally.
10792
10793 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
10794
10795         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
10796         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
10797           before instructions that use the _STATUS register
10798
10799 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
10800
10801         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
10802         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
10803         fetching of the pointer
10804         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
10805         copied from genNearPointerSet()
10806         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
10807         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
10808         If they pop r0/r1 they must be called in the opposite order than aopOp().
10809         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
10810         (resp. --stack-auto), prepared for --xstack
10811
10812 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10813
10814         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
10815
10816 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10817
10818         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
10819         these ports have their own __sdcc_external_start()
10820
10821 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
10822
10823         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10824         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
10825         type for bits was changed. It resulted in bit variables becoming
10826         global, which is not permitted in PIC 14 assembly output.
10827
10828 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10829
10830         * doc/sdccman.lyx: various additions and updates. Rearranged sections
10831
10832 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10833
10834         Z80 and MCS51 linkers complaint if a public symbol is defined
10835         in more than one library module:
10836
10837         * as/mcs51/lklib.c
10838         * link/z80/lklib.c
10839         * as/mcs51/Makefile.in
10840
10841 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10842
10843         A few small changes that speed up the peephole optimizer.
10844
10845         * src/SDCCpeeph.c
10846
10847 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10848
10849         Try to make the peephole optimizer smarter by maintaining
10850         an association between the assembly source code and the
10851         iCodes that originated them. Put this information to use
10852         with a new peephole rule condition "notVolatile" so that
10853         the rules can be aggressive yet still safe.
10854
10855         * src/SDCCpeeph.c
10856         * src/SDCCpeeph.h
10857         * src/mcs51/gen.c
10858         * src/mcs51/peeph.def
10859
10860 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10861
10862         Fixed bug #741761
10863
10864         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
10865         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
10866         if the left or right operand symbols have the accuse flag set.
10867
10868 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10869
10870         Changed the type of the result of the ! (NOT) operator to char;
10871         previously it returned the same type as the source. This allows
10872         us to eliminate all the genFloatNot functions (all of its target
10873         implementations were very buggy) since !float can use the same
10874         code as !long now.
10875
10876         * src/SDCCicode.c (ast2iCode): ! returns char
10877         * src/mcs51/gen.c (genNot, genNotFloat),
10878         * src/ds390/gen.c (genNot, genNotFloat),
10879         * src/z80/gen.c (genNot, genNotFloat),
10880         * src/pic/gen.c (genNot, genNotFloat),
10881         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
10882
10883 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
10884
10885         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10886         1. Interrupt would not compile properly. Ensure PCLATH register is saved
10887            during interrupts. Ensure WSAVE is located at a shared bank address.
10888         2. Fixed page selection in some places
10889         3. Fixed BTFSS/C to where necessary use registers directly and not simply
10890            the registers name strings.
10891         4. Fixed "signed / unsigned compare" compiler warnings.
10892         5. The PIC port manages its own allocation of the general purpose
10893            registers, but makes no attempt to reuse them. As a result when
10894            compiling it soon runs out of general purpose registers. Some
10895            additional code was added to the files pcode.c and device.c to walk
10896            through the function call tree and rename the registers so that they
10897            get reused.
10898
10899         * src/pic/device.c
10900         * src/pic/gen.c
10901         * src/pic/glue.c
10902         * src/pic/pcode.c
10903         * src/pic/pcode.h
10904         * src/pic/ralloc.c
10905         * src/pic/ralloc.h
10906         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
10907         genPlus() & genMinus() when the result is the same as left or right
10908
10909 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10910
10911         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
10912
10913 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10914
10915         Made bitfield a distinct type from bit so that bitfields
10916         convert as per ANSI C and bits retain their traditional
10917         boolean style behaviour. Implemented bitfield support in
10918         the z80 port.
10919
10920         * src/SDCCsymt.h,
10921         * src/SDCCsymt.c,
10922         * src/SDCCast.c,
10923         * src/cdbFile.c,
10924         * src/mcs51/gen.c,
10925         * src/ds390/gen.c: bit v bitfield split
10926         * src/z80/gen.c: New support for bitfields
10927         * support/regression/tests/bitfields.c: reenabled z80,
10928         added more tests
10929
10930 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10931
10932         Rules 246.x, 247.x relate to bitfields, the others speed up
10933         access to xdata mapped I/O devices.
10934
10935         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
10936
10937 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10938
10939         Cleaned up genPackBits and genUnpackBits and added two helper
10940         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
10941         for literal assignments in genPackBits (thanks to Frieder for
10942         reminding me).
10943
10944         * src/mcs51/gen.c
10945         * src/ds390/gen.c
10946
10947 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10948
10949         Fixed bug #748310 (pointer to function type mishandled when the
10950         function name is omitted). Also fixed a SIGSEGV when a function
10951         attribute (reentrant, etc) is used on a non-function or on a
10952         function but misplaced before the parameter list.
10953
10954         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
10955         bug #748310
10956         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
10957         * support/Util/SDCCerr.h,
10958         * support/Util/SDCCerr.c: Added func attr misuse error msg
10959
10960 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10961
10962         Fixed bug #787649 by anonymous
10963         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
10964         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
10965
10966 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10967
10968         Fixed numerous bitfield problems.
10969
10970         * src/SDCC.y: More bitfield related error checking
10971         * src/SDCCsymt.h,
10972         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
10973         * support/Util/SDCCerr.h,
10974         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
10975         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10976         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10977         * support/regression/tests/bitfields.c: tests added
10978
10979 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10980
10981         Made the constant following the "interrupt" keyword optional. If
10982         omitted, the function will not automatically be given an entry
10983         in the interrupt vector table (similar to #pragma NOIV, but
10984         less syntacticly kludgy). The interrupt number is also now
10985         range checked. Also fixed a bug in the high order bit example
10986         in the manual.
10987
10988         * src/SDCC.y
10989         * src/SDCCmem.c
10990         * src/SDCCglue.c
10991         * src/SDCCsymt.h
10992         * support/Util/SDCCerr.c
10993         * support/Util/SDCCerr.h
10994         * doc/sdccman.lyx
10995
10996 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10997
10998         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
10999         * src/SDCCicode.c (operandOperation): rewritten some ops
11000         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
11001         * src/SDCCsymt.c (computeType): literals are handled the same way as any
11002         other type
11003         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
11004         be re-activated by defining REDUCE_LITERALS)
11005         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
11006         unsigned, but are signed by default
11007         * src/SDCCval.c (constVal): rearranged
11008         * src/SDCCval.c (valMod): preliminary fix
11009         * src/SDCCval.c (valCastLiteral): use TYPE_* types
11010         * support/regression/literalop.c: added, work in progress
11011
11012 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11013
11014         Generate warnings for useless declarations like "char data;"
11015         that don't do what new users expect.
11016
11017         * src/SDCC.y
11018         * support/Util/SDCCerr.h
11019         * support/Util/SDCCerr.c
11020
11021 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
11022
11023         * src/SDCCval.c (valMult): fix overflow detection of negative int
11024
11025 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11026
11027         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
11028
11029         Changes to support big endian targets:
11030
11031         * src/ports.h
11032         * src/SDCCglue.c
11033         * src/avr/main.c
11034         * src/ds390/main.c
11035         * src/izt/i186.c
11036         * src/mcs51/main.c
11037         * src/pic/main.c
11038         * src/pic16/main.c
11039         * src/xa51/main.c
11040         * src/z80/main.c
11041
11042 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
11043
11044         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
11045         * device/lib/time.c: fixed warning "integer overflow in expression"
11046
11047 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
11048
11049         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
11050         * src/SDCCval.c (constVal): changed default to signed; hex and octal
11051         constants are unsigned; added recognition of "u" flag for unsigned
11052         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
11053         * src/SDCCval.c (valDiv, valMod): fixed signdness
11054         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
11055         signedness of modulo, left and right shift
11056         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
11057         * support/Util/SDCCerr.h: added warning W_INT_OVL
11058         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
11059         * src/SDCCast.c (ast_print): improved output of constants
11060
11061 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11062
11063         Fixed some warnings when building with MSVC:
11064
11065         * as/mcs51/asdata.c
11066         * as/z80/asdata.c
11067         * as/mcs51/asm.h
11068         * as/z80/asm.h
11069         * link/z80/aslink.h
11070         * link/z80/lkdata.c
11071         * link/z80/lkeval.c
11072         * link/z80/lkgb.c
11073         * link/z80/lkihx.c
11074         * link/z80/lks19.c
11075         * link/z80/lksym.c
11076         * support/cpp2/cpplib.c
11077         * src/ds390/gen.c
11078         * src/mcs51/gen.c
11079
11080 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
11081
11082         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
11083
11084 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11085
11086         * support/librarian/clean.mk: Do not remove Makefile.
11087         * support/librarian/Makefile: added.
11088
11089 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11090
11091         Added librarian to MSVC build:
11092         * all.dsp
11093         * sdcc.dsw
11094         * support/librarian/librarian.dsp
11095
11096         'configure' not needed for librarian, removed:
11097         * support/librarian/configure
11098         * support/librarian/configure.in
11099         * support/librarian/config_in.h
11100         * support/librarian/Makefile.in
11101
11102         Hopefully these ones built the librarian and the rest of sdcc properly:
11103         * Makefile
11104         * Makefile.common.in
11105
11106         Messed up 'configure', so revert to previous version:
11107         * configure
11108         * configure.in
11109
11110 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
11111
11112         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
11113         there, while the mantissa of a double is "only" 53 bits wide.
11114
11115 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11116
11117         Adding sdcclib to the build.  MSVC project coming soon.
11118         Files added/changed:
11119
11120         * support/librarian/clean.mk
11121         * support/librarian/configure
11122         * support/librarian/configure.in
11123         * support/librarian/config_in.h
11124         * support/librarian/Makefile.bcc
11125         * support/librarian/Makefile.in
11126         * support/librarian/sdcclib.c
11127         * Makefile.bcc
11128         * Makefile
11129         * Makefile.common.in
11130         * configure
11131         * configure.in
11132
11133 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11134
11135         Linker now complaints if linked modules have conflicting options, for
11136         example, one compiled using --model-large and another one compiled with
11137         --model-small.  The following files were modified:
11138
11139         * as/mcs51/asdata.c
11140         * as/mcs51/aslink.h
11141         * as/mcs51/asm.h
11142         * as/mcs51/asmain.c
11143         * as/mcs51/asout.c
11144         * as/mcs51/i51pst.c
11145         * as/mcs51/lkdata.c
11146         * as/mcs51/lklibr.c
11147         * as/mcs51/lkmain.c
11148         * as/z80/asdata.c
11149         * as/z80/asm.h
11150         * as/z80/asmain.c
11151         * as/z80/asout.c
11152         * as/z80/z80pst.c
11153         * link/z80/aslink.h
11154         * link/z80/lkdata.c
11155         * link/z80/lklibr.c
11156         * link/z80/lkmain.c
11157         * src/SDCCglue.c
11158
11159 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11160
11161         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
11162         as/mcs51/lklibr.c: Generate a warning when a library is not found.
11163
11164 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
11165
11166         * src/z80/mappings.i: fix _mul[us][int,long] entries
11167
11168 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11169
11170         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
11171
11172 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11173
11174         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
11175         * support/regression/tests/bitopcse.c: added
11176         fixed warning:
11177         * src/avr/gen.c:
11178         * src/pic/gen.c:
11179         * src/pic16/gen.c:
11180         * src/z80/gen.c:
11181         * src/xa51/gen.c:
11182
11183 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11184
11185         added support for new library format to z80, gbz80 linkers:
11186         *link/z80/aslink.h
11187         *link/z80/lklex.c
11188         *link/z80/lklib.c
11189         *link/z80/lklist.c
11190
11191 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11192
11193         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
11194         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
11195
11196 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
11197
11198         added DUMMY_READ_VOLATILE:
11199         * src/SDCC.y:
11200         * src/avr/gen.c:
11201         * src/xa51/gen.c:
11202         * src/z80/gen.c:
11203         * src/pic/gen.c:
11204         * src/pic16/gen.c:
11205         * src/mcs51/gen.c:
11206         * src/ds390/gen.c:
11207         * src/SDCCcse.c (algebraicOpts): many improvements
11208         * src/SDCCcse.h: removed algebraicOpts()
11209         * src/SDCCicode.c (picDummyRead): added
11210
11211 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11212
11213         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
11214         "Insufficient space in data memory".
11215
11216 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11217
11218         * src/mcs51/gen.c: fixed bug #771358
11219         * src/z80/gen.c: fixed bug #759087
11220
11221 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
11222
11223         * src/pic16/glue.c: minor cleanup by Vangelis
11224
11225 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11226
11227         * device/include/regc515c.h: fixed #758477
11228         * device/lib/_gptrget.c: saving some cycles in generic pointer get
11229         * device/lib/_gptrput.c: saved a few bytes
11230         * my tab spacing is 8, yours too?)
11231         * device/lib/_ser.c: process RX bytes earlier than TX bytes
11232         * device/lib/serial.c: process RX bytes earlier than TX bytes
11233         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
11234
11235 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11236
11237         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
11238
11239 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11240
11241     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
11242
11243 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
11244
11245         * device/lib/Makefile.in: bad fix, reverted to 1.43
11246
11247 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
11248
11249         * device/lib/Makefile.in: added missing z80 object files
11250
11251 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
11252
11253         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
11254         pic16 progress by Vangelis:
11255         * src/SDCCglobl.h:
11256         * src/SDCCmain.c:
11257         * src/pic/Makefile:
11258         * src/pic:
11259         * pic/Makefile:
11260         * pic16/device.c:
11261         * pic16/device.h:
11262         * pic16/gen.c:
11263         * pic16/gen.h:
11264         * pic16/genarith.c:
11265         * pic16/glue.c:
11266         * pic16/main.c:
11267         * pic16/pcode.c:
11268         * pic16/pcode.h:
11269         * pic16/pcodepeep.c:
11270         * pic16/peeph.def:
11271
11272 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11273
11274     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
11275
11276 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11277
11278     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
11279     added gbz80 build to MSVC project.
11280     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
11281     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
11282     from 8051 stuff and setup so it links using a .lnk file.
11283
11284 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11285
11286     * support/librarian/sdcclib.c: sdcc librarian.
11287     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
11288     with sdcclib.
11289
11290 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11291
11292     * as/mcs51/lkmain.c: properly handle extensions in function afile.
11293
11294 2003-07-02  Borut Razem <borut.razem AT siol.net>
11295
11296         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
11297         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
11298         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
11299         src/xa51/main.c, src/z80/main.c:
11300         virtualization of glue() function: each port has it's own glue function,
11301         which is accessed by do_glue function pointer in PORT.general structure
11302
11303 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
11304
11305         * DS800C400 fun, improved ROM interface and tinibios.
11306
11307 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
11308
11309         * More support for DS80C400. Now includes beginning of interface to ROM.
11310
11311 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
11312
11313         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
11314
11315 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11316
11317         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
11318
11319 2003-06-19  Borut Razem <borut.razem AT siol.net>
11320
11321         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
11322
11323 2003-06-19  Borut Razem <borut.razem AT siol.net>
11324
11325         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
11326         fixed Z80 port - crt0.o: cannot open.
11327
11328 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
11329
11330         * support/Util/MySystem.c (merge_command): revert bad fix
11331
11332 2003-06-18  Borut Razem <borut.razem AT siol.net>
11333
11334         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
11335
11336 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11337
11338         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11339         option --use-stdout sends errors to stdout instead of stderr.
11340
11341 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
11342
11343         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
11344
11345 2003-06-15  Borut Razem <borut.razem AT siol.net>
11346
11347         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
11348         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
11349         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
11350         fixed width array of pointers replaced with sets;
11351         multiple include and lib paths ared transferred to preprocessor and linker
11352         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
11353         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
11354         fixed width array of pointers
11355         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
11356         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
11357         fixupPath(), getPathDifference()
11358         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
11359         fixed width array of pointers
11360
11361 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
11362
11363         * src/pic16/ralloc.c: fix warnings
11364         * src/pic16/pcode.c: fix warning
11365
11366 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
11367
11368          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
11369         know all the details, but essentially this set of changes enable
11370         the pic16 port to generate movff instructions and generate assembler
11371         directives,
11372         * src/SDCCmain.c:
11373         * src/pic16/gen.c:
11374         * src/pic16/glue.c:
11375         * src/pic16/pcode.c:
11376         * src/pic16/device.c:
11377         * src/pic16/main.c:
11378         * src/pic16/pcode.h:
11379         * src/pic16/pcoderegs.c:
11380         * src/pic16/ralloc.c:
11381         * src/pic16/ralloc.h:
11382
11383 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11384
11385         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11386         added option --vc, so sdcc errors and warnings are compatible with
11387         Microsoft Visual Studio.
11388
11389 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11390
11391         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
11392           device/lib/libfloat.lib: added atof function.
11393
11394 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
11395
11396         * doc/sdccman.lyx: updated to Lyx 1.3
11397         * doc/cdbfileformat.lyx: updated to Lyx 1.3
11398         * doc/test_suite_spec.lyx: updated to Lyx 1.3
11399         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
11400
11401 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
11402
11403         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
11404
11405 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11406
11407         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
11408           additions to the "related tools/documentation" section
11409
11410 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
11411
11412         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
11413
11414 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
11415
11416         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
11417         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
11418
11419 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
11420
11421         * doc/sdccman.lyx: fix double dash and other minor things
11422         * doc/Makefile: fix double dash
11423
11424 2003-05-28  Karl Bongers(patches from Martin Helmling)
11425         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
11426           condition and ignore commands.
11427
11428 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11429
11430         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
11431           is in parts still quite out of date, I did changes as far as I felt makes sense
11432           for a non-native english speaker.
11433           Please feel free to add to the manual or to correct my changes.
11434         * doc/Makefile: undid touching the date of intermediate tex files.
11435
11436 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11437
11438         * doc/sdccman.lyx: Manual has an index now
11439
11440 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
11441
11442         Finalize muluint/mulsint and mululong/mulslong merging:
11443         * device/lib/_mulint.c
11444         * device/lib/_mullong.c
11445         * device/lib/gbz80/mul.s
11446         * device/lib/gbz80/stubs.s
11447         * device/lib/z80/mul.s
11448         * device/lib/z80/stubs.s
11449         * src/SDCCsymt.c (initCSupport)
11450
11451 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11452
11453         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
11454         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
11455           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
11456           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
11457           instead of /Zm500.
11458
11459 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11460
11461         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
11462           the regression tests I'm not brave enough to enable 245.b, 245.c
11463         * doc/sdccman.lyx: added latex preamble for hyperref package.
11464           Using pdflatex this will give you a hyperlinked pdf file with
11465           bookmarks. (prepend '%' before /usepackage if this breaks something)
11466
11467 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11468
11469          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
11470
11471 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
11472
11473         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
11474
11475 2003-05-21    <johan AT balder>
11476
11477         * src/SDCCglue.c (printIval): fixed bug #739934
11478
11479 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11480
11481         Applied patch from bug 737905 (renamed yylineo to mylineno):
11482         * src/altlex.c
11483         * src/SDCCast.c
11484         * src/SDCglobl.h
11485         * src/SDCC.lex
11486         * src/SDCCsymt.c
11487         * src/SDCCval.c
11488         * src/pic16/pcode.c: Cleaned warnings
11489         * src/pic16/pcodeflow.c: Cleaned warnings
11490         * src/pic16/pcoderegs.c: Cleaned warnings
11491
11492 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
11493
11494         * src/pic16/pcode.c: Cleaned warnings
11495         * src/pic16/pcodepeep.c: Cleaned warnings
11496         * src/pic16/ralloc.c: Cleaned warnings
11497
11498 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11499
11500         * doc/sdccman.lyx: fixed bug 739745
11501         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
11502
11503 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
11504
11505         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
11506         it can be defined with CFLAGS when running configure
11507         * src/SDCCmain.c: fixed compiling + linking with object files
11508
11509 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
11510
11511         * configure.in: configure for pic16 port,
11512             added --disable-pic16-port
11513         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
11514         * src/SDCCmain.c: linkOptions is changed to set *,
11515             added if/endif conditional macros to remove options help
11516             messages from optionsTable when a port is not configured, added
11517             support for the PIc16 port in the ports table, when executing
11518             the compiler with no port specified on command line, a default
11519             port is selected with the new macro DEFAULT_PORT which is
11520             defined in port.h, in setDefaultOptions() linkOptions is removed
11521             from initialization assignment, since now it is a set,
11522             parseCmdLine uses setParseWithComma for linkOptions, in
11523             linkEdit() linkOptions are accessed with new function indexSet()
11524             which returns the i'th item of a set variable. See SDCCset.c, in
11525             linkEdit() when calling buildCmdLine(), added linkOptions as
11526             last argument. Now users can pass arguments to gplink via the
11527             -Wl option, main() uses pic16glue() to glue up pic16 programs
11528         * src/SDCCpeeph.c: various changes to support pic16
11529         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
11530             return the i'th item of the set
11531         * src/SDCCset.h: added function prototype for indexSet()
11532         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
11533         * src/clean.mk: added pic16 in CLEANALLPORTS variable
11534         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
11535             added macro DEFAULT_PORT
11536         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
11537         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
11538             generated
11539         * src/pic16/glue.c: commented out some error producing lines
11540         * src/pic16/main.c: __config directives are commented out to stop
11541             gpasm complaining and test the linkage with gplink, _linkCmd and
11542             _asmCmd changed to be more gplink and gpasm friendly
11543         * src/pic16/peeph.def: peep rule 3 is commented out, since it
11544             produced an error when parsed, peep rule 12 is added to utilize
11545             movff, but it is commented out since the pCode does not support
11546             yet a command with 2 address arguments
11547
11548 2003-05-18    <johan AT balder>
11549
11550         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
11551         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
11552 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
11553
11554         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
11555   Added feature to script commands from file.
11556
11557 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
11558
11559         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
11560         * src/SDCCutil.c: include ctype.h for win32
11561
11562 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
11563
11564         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
11565
11566 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
11567
11568         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
11569   Fixed so you can set breakpoints prior to run, run does not stop
11570   on entry now.  Add tbreak.  Other enhancements and fixes for use
11571   with ddd.
11572
11573 2003-05-12  Borut Razem <borut.razem AT siol.net>
11574
11575         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
11576
11577 2003-05-11  Borut Razem <borut.razem AT siol.net>
11578
11579         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
11580         the path of bin directory, so that PATH is the only env. variable, which has to be set
11581         in case of standard installation.
11582         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
11583         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
11584         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
11585
11586 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
11587
11588         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
11589         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
11590         temp files are in the port dir; clean the gen/test directory when
11591         generating new test.c
11592         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
11593         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
11594         * support/regression/tests/zeropad.c: added
11595
11596 2003-05-09    <johan AT balder>
11597
11598         * src/SDCCglue.c: fixed bug #597940
11599
11600 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
11601
11602         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
11603   cache sfr, optimize next,step, fix off by one sourceline,
11604   support ddd list function.
11605         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
11606
11607 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
11608
11609         * support/regression/HTMLgen.py: added compare_s2f()
11610         * support/regression/Makefile: redo 1.27
11611         * support/regression/generate-cases.py: redo 1.5
11612
11613 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
11614
11615         * support/regression/tests/float.c: workaround 33 bit hex constant
11616         * support/regression/tests/simplefloat.c: fix division for host
11617
11618 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
11619
11620         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
11621         that tame's the PIC's over-aggressive optimizer.
11622
11623 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11624
11625          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
11626          support for MSVC.
11627
11628 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
11629
11630         Initial support for DS80C400. "Hello world" runs on TINIm400
11631         (with polled I/O).
11632
11633 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
11634
11635          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
11636          * Some notes on ddd usage added in debugger/README
11637          Martin Helmling adding more features and fixes for ddd GUI debugger.
11638          Code added for nexti, stepi, up, down, and other adjustments.
11639
11640 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
11641
11642         * src/pic/pCodepeep.c non-wildcard asmops are now handled
11643         * src/pic/peeph.def Added two rules to optimize carry manipulation
11644         * src/pic/* removed debug printfs
11645
11646 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
11647
11648         * debugger/mcs51/cmd.c: added header newalloc.h
11649
11650 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
11651
11652         * as/Makefile: new EXEEXT
11653         * as/z80/Makefile: remove trailing slash of BUILDIR
11654         * as/z80/clean.mk: new EXEEXT
11655         * Makefile.common.in: add to CFLAGS (and others), don't replace it
11656         * support/cpp2/Makefile.in: new EXEEXT
11657         * src/pic/glue.c (pic14emitRegularMap): fixed warning
11658
11659 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
11660
11661         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
11662         EXEEXT was introduced to fix all related problems with targets
11663         "clean", "install" and "uninstall"; a couple of further flaws
11664         especially with "clean" have been fixed too
11665         * as/mcs51/Makefile.in
11666         * as/mcs51/clean.mk
11667         * as/z80/Makefile
11668         * Makefile
11669         * clean.mk
11670         * debugger/mcs51/Makefile.in
11671         * debugger/mcs51/clean.mk
11672         * link/z80/Makefile
11673         * link/z80/Makefile.in
11674         * link/z80/clean.mk
11675         * link/Makefile
11676         * packihx/Makefile.in
11677         * packihx/clean.mk
11678         * sim/ucsim/Makefile
11679         * sim/ucsim/clean.mk
11680         * sim/ucsim/avr.src/Makefile.in
11681         * sim/ucsim/avr.src/clean.mk
11682         * sim/ucsim/s51.src/Makefile.in
11683         * sim/ucsim/s51.src/clean.mk
11684         * sim/ucsim/xa.src/Makefile.in
11685         * sim/ucsim/xa.src/clean.mk
11686         * sim/ucsim/z80.src/Makefile.in
11687         * sim/ucsim/z80.src/clean.mk
11688         * sim/ucsim/main_in.mk
11689         * sim/ucsim/packages_in.mk
11690         * sim/ucsim/gui.src/Makefile.in
11691         * sim/ucsim/gui.src/serio.src/Makefile.in
11692         * sim/ucsim/gui.src/serio.src/clean.mk
11693         * src/Makefile.in
11694         * src/clean.mk
11695         * support/cpp2/Makefile.in
11696         * support/cpp2/clean.mk
11697         * support/makebin/Makefile
11698         * support/makebin/clean.mk
11699         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
11700         * doc/sdccman.lyx: --program-suffix no longer needed
11701
11702 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
11703
11704          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
11705          Martin Helmling added support for ddd GUI debugger.
11706          Code added to display assembly, set variables, and other commands
11707          to interface to ddd.
11708
11709 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
11710
11711         * as/Makefile: fix target clean
11712         * as/clean.mk: fix target clean
11713         * as/z80/clean.mk: fix target clean
11714
11715 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
11716
11717         * Makefile.common.in: added  AT EXEEXT AT
11718         * configure.in: removed all mingw32 stuff
11719         * configure: rebuilt from configure.in
11720         * doc/sdccman.lyx: updated section "installation"
11721         * support/scripts/sdcc_mingw32: adapted to configure
11722         * support/scripts/sdcc_cygwin_mingw32: added
11723
11724 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
11725
11726         * src/pic Added object file support for the PIC port
11727         * src/pic Applied patch from Craig Franklin (this started the object file support)
11728         * src/regression Updated the PIC regression tests for object files
11729
11730 2003-04-20  Borut Razem <borut.razem AT siol.net>
11731
11732         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
11733           lklex.c: In function `getfid':
11734           lklex.c:203: warning: array subscript has type `char'
11735         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
11736           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
11737         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
11738           stack handling macros
11739
11740 2003-04-19  Borut Razem <borut.razem AT siol.net>
11741
11742         * "handling space characters in file path" task:
11743         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
11744         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
11745         * support/Util/MySystem.h: make it self-sufficient
11746         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
11747           src/z80/main.c, sdcc/as/mcs51/lklex.c:
11748           handling space characters in file path
11749         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
11750           (it will be used by assemblers, which have their own includes, e.g. gpasm)
11751         * support/Util/MySystem.c: handling space characters in executable's path
11752
11753 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
11754
11755         * as/z80/Makefile: fix permanent rebuild of z80
11756         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
11757         * support/regression/tests/bitfields.c: added Johan's bitfields.c
11758
11759 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
11760
11761         * src/SDCCopt.c: add special case optimization to replace modulo by
11762           a power of two with a bitwise AND.
11763
11764 2003-04-18    <johan AT balder>
11765
11766         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
11767
11768 2003-04-17    <johan AT balder>
11769
11770         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
11771         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
11772
11773 2003-04-13  Borut Razem <borut.razem AT siol.net>
11774
11775         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
11776         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
11777           fixed mingw problem in adl_NORMALIZE_PATH
11778
11779 2003-04-12  Borut Razem <borut.razem AT siol.net>
11780
11781         * fixed "#pragma SAVE/RESTORE can not be nested":
11782         * src/SDCC.lex: reworked pragma handling functions
11783         * sdcc/src/SDCCglobl.h: reworked stack handling macros
11784         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
11785
11786 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11787
11788         * src/SDCCutil.c (pathEquivalent): defined but not used
11789         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
11790         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
11791         * configure: rebuilt from configure.in
11792         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11793         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11794         * device/include/Makefile.in: replace sdcc_datadir
11795         * device/lib/Makefile.in: replace sdcc_datadir
11796         * Makefile.common.in: add LDFLAGS from configure
11797         * packihx/Makefile.in: use LDFLAGS
11798         * src/Makefile.in: use LDFLAGS
11799         * support/cpp2/Makefile.in: add LDFLAGS from configure
11800         * support/makebin/Makefile: use LDFLAGS
11801         * .version: bumped version number to 2.3.5
11802
11803 2003-04-12  Borut Razem <borut.razem AT siol.net>
11804
11805         * completed "different paths" task:
11806         * src/SDCCmacro.c: fixed bug in handling quotes
11807         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
11808         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
11809
11810 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11811
11812         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
11813
11814 2003-04-11 kevin Vigor <kevin AT vigor.nu>
11815
11816         * ds390/gen.c ds390/peeph.def: fix bug 706781
11817
11818 2003-04-11  Borut Razem <borut.razem AT siol.net>
11819
11820         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
11821
11822 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
11823
11824         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
11825         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
11826          set - this bit used to not be set...).
11827         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
11828           bad code in PIC Port
11829         * src/regression/and2.c added to test bug 609268
11830         * src/regression/Makefile added and2.c to regression test
11831
11832
11833 2003-04-08    <johan AT CP255758-A>
11834
11835         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
11836         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
11837         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
11838
11839 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
11840
11841         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
11842         fix bug #487815
11843         * support/cpp2/Makefile.in: fix bug #487815
11844         * configure: rebuilt from configure.in
11845         * Makefile.common.in: docdir changed, new path suffixes
11846         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11847         * sdcc_vc_in.h: reflect changes from sdccconf.h
11848         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
11849         * src/SDCCutil.h: remove BINDIR hack
11850         * doc/sdccman.lyx: update new path hierarchy
11851
11852 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11853
11854         * src/SDCCpeeph.c: added okToRemoveSLOC test
11855
11856 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11857
11858         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
11859
11860 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11861
11862         * src/SDCCpeeph.c: added labelIsReturnOnly test
11863         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
11864
11865 2003-04-05    <johan AT balder>
11866
11867         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
11868         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
11869         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
11870         * src/SDCCast.c: fixed a warning
11871         * src/SDCCast.h: fixed a warning
11872         * src/SDCCicode.c (operandFromAst): fixed a warning
11873
11874 2003-04-04    <johan AT balder>
11875
11876         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
11877         * src/SDCCast.c (decorateType): fixed bug #715076
11878         * src/SDCC.y: fixed bug #702907
11879
11880 2003-04-03    <johan AT balder>
11881
11882         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
11883         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
11884         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
11885         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
11886         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
11887
11888 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
11889
11890         * _decdptr.c: fix return values
11891         * _gptrget.c: fix return values
11892         * _gptrgetc.c: fix return values
11893         * _gptrput.c: fix return values
11894         * _mulint.c: fix return values
11895         * as/z80/Makefile: fix 'make -j' problem
11896
11897 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
11898
11899         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
11900         * configure.in: big cleanup, updated to autoconf 2.5x
11901         * configure: rebuilt from configure.in
11902         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11903         * sdcc_vc_in.h: reflect changes from sdccconf.h
11904         * doc/Makefile: fixed a flaw in "make install"
11905
11906 2003-04-02    <johan AT balder>
11907
11908         * src/ds390/gen.c (genCmp): no comments
11909         * src/mcs51/gen.c (genCmp): no comments
11910         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
11911         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
11912
11913 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
11914
11915         * support/regression/generate-cases.py: place generated file in given sub directory
11916         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
11917         * support/regression/Makefile: improvements for 'make -j';
11918         side effect: it's simpler and faster now
11919
11920 2003-03-31  Borut Razem <borut.razem AT siol.net>
11921
11922         * src/z80/main.c: link-{port} and as-{port} defined without path
11923         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
11924
11925 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
11926
11927         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
11928
11929 2003-03-30  Borut Razem <borut.razem AT siol.net>
11930
11931         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
11932           changed type of list parameter to set
11933         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
11934         * src/port.h: changed type of do_assemble() parameter to set
11935         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
11936           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
11937           definition of "cppoutfilename" macro with NULL value in preProcess()
11938         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
11939         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
11940         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
11941           replaced with set *binPathSet
11942         * shash_add() deallocates the item, if allready exsists, before adding the new one
11943         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
11944
11945 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
11946
11947         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
11948           a nested for loop bug in the PIC port
11949         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
11950           for loops
11951
11952 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
11953
11954         * support/Util/dbuf.h: remove C++ stuff to make it portable
11955
11956 2003-03-28  Borut Razem <borut.razem AT siol.net>
11957
11958         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
11959           literal strings in stringLiteral()
11960         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
11961         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
11962           to the project
11963
11964 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
11965
11966         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
11967
11968 2003-03-26    <johan AT balder>
11969
11970         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
11971         * src/ds390/gen.c (saveRegisters): catched symbol abuse
11972         * src/SDCCast.c (decorateType): fixed " -v < 3"
11973
11974 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
11975
11976         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
11977         Added Lenny Story's debug infrastructure changes:
11978         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
11979         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
11980         * src/cdbFile.c: added
11981         * src/SDCCdebug.c: added
11982         * src/SDCCdebug.h: added
11983         * src/SDCCast.c (createFunction)
11984         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
11985         * src/SDCCmain.c (parseCmdLine, main)
11986         * src/SDCCmem.c (redoStackOffsets)
11987         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
11988         * src/SDCCsymt.h
11989         * src/common.h
11990         * src/avr/gen.c (genAVRCode)
11991         * src/ds390/gen.c (gen390Code)
11992         * src/mcs51/gen.c (gen51Code)
11993         * src/pic/gen.c (genpic14Code)
11994         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
11995         * src/xa51/gen.c (genXA51Code)
11996         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
11997
11998 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11999
12000         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
12001         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
12002
12003 2003-03-22    <johan AT balder>
12004
12005         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
12006
12007 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
12008
12009         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
12010         * doc/cdbfileformat.lyx: added, written by Lenny Story
12011         * doc/Makefile: added cdbfileformat.lyx
12012         * doc/clean.mk: added cdbfileformat.lyx
12013
12014 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
12015
12016         * src/mcs51/peeph.def: fix bug #705773
12017
12018 2003-03-20    <johan AT balder>
12019
12020         An sfr/sbit can have an "at #" AND an initializer
12021         * src/SDCCsymt.c (checkSClass):
12022         * src/SDCCmem.c (allocGlobal):
12023         * src/SDCCmem.c (allocLocal):
12024         * src/SDCCast.c (createBlock):
12025
12026 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
12027
12028         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
12029
12030 2003-03-16    <johan AT balder>
12031
12032         Undid the hackup of const and volatile, the problem is much bigger
12033         * src/SDCC.y:1.65
12034         * src/SDCCast.c:1.171
12035         * src/SDCCglue.c:1.138
12036         * src/SDCCicode.c:1.146
12037         * src/SDCCsymt.c:1.150
12038         * src/SDCCval.c:1.65
12039
12040 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
12041
12042         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
12043         * src/ds390/gen.c (genAddrOf): fixed bug #704087
12044
12045 2003-03-13    <johan AT balder>
12046
12047         Hackup const and volatile modifiers in type chains a bit:
12048         * src/SDCC.y:1.63
12049         * src/SDCCast.c:1.169
12050         * src/SDCCglue.c:1.136
12051         * src/SDCCicode.c:1.143
12052         * src/SDCCsymt.c1.146
12053         * src/SDCCsymt.h1.59
12054         * src/SDCCval.c:1.63
12055
12056 2003-03-12    <johan AT balder>
12057
12058         * src/SDCCBBlock.h: more LRH debugging junk
12059         * src/SDCCcflow.h: more LRH debugging junk
12060         * src/SDCCloop.c: more LRH debugging junk
12061         * src/SDCC.y (struct_declaration): fixed bug #697590
12062         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
12063         * src/ds390/gen.c (aopForRemat): fixed bug #700031
12064         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
12065
12066 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12067         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
12068         test function names must now match exactly).
12069         * src/SDCCcse.c: added special case in findCheaperOp to allow
12070         extending a short integer. Makes less awful code for bug 700121 test case.
12071
12072 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12073
12074         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
12075         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
12076
12077 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12078
12079         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
12080         actually called (operandsNotEqual() was called for all
12081         operandsNotEqualX tests).
12082
12083 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12084
12085         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
12086         with shorter literals. Fixes bug 700121.
12087
12088 2003-03-11    <johan AT balder>
12089
12090         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
12091
12092 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
12093
12094         * src/SDCCloop.c (mergeRegions): an evil beast is dead
12095         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
12096
12097 2003-03-10  Borut Razem <borut.razem AT siol.net>
12098
12099         * src/SDCCmain.c: pipe preprocessor's output
12100         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12101         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12102         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12103         which closes all pipes in pipeSet set
12104         * src/SDCCset.c: free deleted item in function deleteSetItem()
12105         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12106         moved from z80 to src subproject
12107         * .version: increased version number to 2.3.4
12108
12109 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
12110
12111         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
12112         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
12113         * support/regression/ports/xa51/spec.mk: fix typo
12114
12115 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
12116
12117         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
12118
12119 2003-03-09  Borut Razem <borut.razem AT siol.net>
12120
12121         * src/SDCCmain.c: pipe preprocessor's output
12122         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12123         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12124         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12125         which closes all pipes in pipeSet set
12126         * src/SDCCset.c: free deleted item in function deleteSetItem()
12127         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12128         moved from z80 to src subproject
12129
12130 2003-03-09  Borut Razem <borut.razem AT siol.net>
12131
12132         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
12133         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
12134         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
12135         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
12136         * src/SDCCglobl.h: unification of WIN32 native definitions
12137
12138 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12139
12140         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
12141
12142 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12143
12144         * src/configure.in:   check for endianess (even while cross-compiling)
12145         * src/configure:      check for endianess (even while cross-compiling)
12146         * src/configure_in.h: check for endianess (even while cross-compiling)
12147         * src/avr/gen.c:        remove old endianess stuff
12148         * src/mcs51/gen.c:      remove old endianess stuff
12149         * src/ds390/gen.c:      remove old endianess stuff
12150         * src/pic/gen.c:        remove old endianess stuff
12151         * src/pic/genarith.c:   remove old endianess stuff
12152         * src/pic/glue.c:       fix endianess check
12153         * src/pic16/gen.c:      remove old endianess stuff
12154         * src/pic16/genarith.c: remove old endianess stuff
12155         * src/pic16/glue.c:     fix endianess check
12156         * src/xa51/gen.c:       remove old endianess stuff
12157         * src/z80/gen.c:        fix endianess check
12158         * src/SDCCglue.c:       fix endianess check
12159         * src/ds390/peeph.def: fix bug 700036
12160
12161 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12162
12163         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
12164         * src/configure: find appropriate data-types on host for SDCC's int and long
12165         * src/configure.in: find appropriate data-types on host for SDCC's int and long
12166         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
12167         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
12168
12169 2003-03-07    <johan AT balder>
12170
12171         Just a big NOOP:
12172                 some minor cleanups before the big shot
12173                 OP_DEFS and OP_USES now use Kevin's protection
12174                 new option --nolabelopt
12175
12176         * src/SDCCBBlock.c:
12177         * src/SDCCast.c,:
12178         * src/SDCCcflow.c:
12179         * src/SDCCcse.c:
12180         * src/SDCCicode.c:
12181         * src/SDCCicode.h:
12182         * src/SDCClabel.c:
12183         * src/SDCCloop.c:
12184         * src/SDCCmain.c:
12185         * src/ds390/ralloc.c:
12186         * src/mcs51/ralloc.c:
12187         * src/pic/ralloc.c:
12188         * src/xa51/ralloc.c:
12189         * src/z80/ralloc.c:
12190
12191 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
12192
12193         * src/pic/pcode.c (get_op): fix 64 bit warnings
12194         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
12195         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
12196         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
12197         * support/regression/tests/malloc.c: fix 64 bit warnings
12198
12199 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
12200
12201         * src/mcs51/gen.c (genMinus): fixed bug 696436
12202
12203 2003-03-02  Borut Razem <borut.razem AT siol.net>
12204
12205         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
12206
12207 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
12208
12209         * configure.in: test for mkstemp
12210         * sdccconf_in.h: add HAVE_MKSTEMP
12211
12212 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
12213
12214         * device/include/ctype.h: removed warning while using --stack-auto
12215         * device/include/malloc.h: removed warning while using --stack-auto
12216         * device/include/string.h: removed warning while using --stack-auto
12217
12218 2003-02-23  Borut Razem <borut.razem AT siol.net>
12219
12220         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
12221         because NDEBUG is defined (see man assert)
12222         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
12223
12224 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12225
12226         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
12227         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
12228
12229 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12230
12231         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
12232         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
12233
12234 2003-02-18    <johan AT balder>
12235
12236         * as/mcs51/asmain.c (asmbl): module can start with a digit
12237         * as/z80/asmain.c (asmbl): module can start with a digit
12238
12239 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
12240
12241         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
12242         * src/asm.c: fix pipe() for Mingw32
12243
12244 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
12245
12246         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
12247         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
12248         make -V work again; --c1mode reads now from stdin
12249         * doc/sdccman.lyx: added --c1mode
12250         * support/Util/SDCCerr.c: new messages for c1 mode
12251         * support/Util/SDCCerr.h: new messages for c1 mode
12252         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
12253
12254 2003-02-15    <johan AT balder>
12255
12256         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
12257
12258 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
12259
12260         * doc/sdccman.lyx: Environment variables, -o and other minor things
12261
12262 2003-02-14    <johan AT balder>
12263
12264         * src/xa51/main.c: before anyone really tries to use it :)
12265
12266         * Install doc's in share/sdcc/doc
12267         * removed some obsolete files
12268         * Do a proper make distclean and uninstall
12269         M Makefile.common.in
12270         R sdccbuild.sh
12271         M as/Makefile
12272         M device/include/Makefile.in
12273         M device/lib/Makefile.in
12274         M doc/sdccman.lyx
12275         M link/Makefile
12276         M sim/ucsim/doc/Makefile.in
12277         M src/clean.mk
12278         R src/avr/peeph.rul
12279         R src/xa51/peeph.rul
12280         M support/cpp2/Makefile.in
12281         M support/makebin/Makefile
12282
12283
12284 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
12285
12286         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
12287
12288 2003-02-10  Borut Razem <borut.razem AT siol.net>
12289
12290         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
12291         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
12292         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
12293         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
12294         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
12295         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
12296         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
12297         src/z80/Makefile.bcc: Borland Makefile cleanup
12298         * as/z80/Makefile.bcc: Added Borland Makefile
12299         * support/cpp2/borland.h: Removed
12300
12301 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
12302
12303         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
12304         * src/SDCC.lex: new pragma NOIV
12305         * src/SDCCglobl.h: new pragma NOIV
12306         * src/SDCCmem.c: new pragma NOIV
12307
12308 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12309
12310         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
12311
12312 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12313
12314         * src/SDCCmain.c: signal handling is switched off by --debug
12315         * doc/Makefile: small fix for install; use clean.mk again
12316         * doc/clean.mk: clean *.pdf and *.html too
12317
12318 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
12319
12320         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
12321         * device/lib/printfl.c: fix a ds390 bug by making it portable
12322         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
12323         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
12324         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
12325         * debugger/mcs51/cmd.c: converted multi-line string literals
12326         * sim/ucsim/globals.cc: converted multi-line string literals
12327         * src/SDCCmain.c: introduced signal handler to remove temp files
12328         * doc/Makefile: small tweaks, implement clean
12329         * doc: removed generated files
12330
12331 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12332
12333         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
12334         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
12335         Address Record is not correctly generated for DS390."
12336
12337 2003-02-02  Borut Razem <borut.razem AT siol.net>
12338
12339         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
12340         * as/mcs51/asm.h: fixed compilation with Borland C
12341         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
12342         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
12343         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
12344         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
12345         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
12346         src/z80/Makefile.bcc: delete $(LIB) only if exist
12347         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
12348
12349 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
12350
12351         * device/include/malloc.h: introduced NULL
12352         * device/include/string.h: introduced NULL
12353         * device/include/stdlib.h: introduced NULL
12354         * device/lib/_memcpy.c: removed NULL
12355         * device/lib/_strcat.c: removed NULL
12356         * device/lib/_strchr.c: removed NULL
12357         * device/lib/_strcmp.c: removed NULL
12358         * device/lib/_strcpy.c: removed NULL
12359         * device/lib/_strcspn.c: removed NULL
12360         * device/lib/_strlen.c: removed NULL
12361         * device/lib/_strncat.c: removed NULL
12362         * device/lib/_strncmp.c: removed NULL
12363         * device/lib/_strncpy.c: removed NULL
12364         * device/lib/_strpbrk.c: removed NULL
12365         * device/lib/_strrchr.c: removed NULL
12366         * device/lib/_strspn.c: removed NULL
12367         * device/lib/_strstr.c: removed NULL
12368         * device/lib/_strtok.c: removed NULL
12369         * device/lib/malloc.c: removed NULL, include own header
12370
12371 2003-02-02    <johan AT balder>
12372
12373         * 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
12374         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
12375         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
12376         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
12377         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
12378         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
12379
12380 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12381
12382         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
12383         area 'DATA'"
12384
12385 2003-02-01    <johan AT balder>
12386
12387         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
12388
12389 2003-01-31    <johan AT CP255758-A>
12390
12391         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
12392
12393 2003-01-30    <johan AT balder>
12394
12395         * src/SDCCBBlock.c: automatic bug detection
12396         * src/SDCCicode.c: automatic bug detection
12397
12398 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12399
12400         * src/SDCCglobl.h:   now --xram-size 0 works
12401         * src/SDCCmain.c:    now --xram-size 0 works
12402
12403 2003-01-29    <johan AT balder>
12404
12405         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
12406
12407 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12408
12409         * as/mcs51/aslink.h: Added options --xram-size and --code-size
12410         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
12411         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
12412         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
12413         * src/SDCCglobl.h:   Added options --xram-size and --code-size
12414         * src/SDCCmain.c:    Added options --xram-size and --code-size
12415
12416 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
12417
12418         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
12419         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
12420
12421 2003-01-27    <johan AT balder>
12422
12423         * src/SDCC.y: fixed bug #613764
12424
12425 2003-01-26    <johan AT balder>
12426
12427         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
12428         * src/SDCCsymt.h: fixed bug #673374
12429         * src/SDCCglue.c: fixed bug #661910
12430         * src/SDCCast.c: fixed bug #458099 and 673374
12431
12432 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
12433
12434         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
12435         * as/mcs51/strcmpi.h: added
12436         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
12437         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
12438         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
12439         * as/mcs51/assym.c: strcmpi -> as_strcmpi
12440         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
12441         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
12442         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
12443         * as/mcs51/Makefile.aslink: new module strcmpi
12444         * as/mcs51/Makefile.asx8051: new module strcmpi
12445         * as/mcs51/Makefil.bcc: new module strcmpi
12446         * as/mcs51/Makefile.in: new module strcmpi
12447         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
12448
12449 2003-01-26    <johan AT balder>
12450
12451         * src/SDCCglue.c: reverted back to 1.124
12452         * src/SDCCast.c: reverted back to 1.156
12453         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
12454
12455 2003-01-25    <johan AT balder>
12456
12457         * src/SDCCglue.c: A better fix for bug #661910
12458         * src/SDCCast.c: A better fix for bug #661910
12459         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
12460
12461 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12462
12463         * src/Makefile.in: remove spawn.o
12464         * src/SDCCmain.c: remove spawn.h
12465         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
12466         * src/spawn.c: removed
12467         * src/spawn.h: removed
12468         * support/regression/ports/ds390/spec.mk: link with -r
12469
12470 2003-01-24    <johan AT CP255758-A>
12471
12472         * src/ds390/gen.c (aopOp): fixed bug #667458
12473         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
12474         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
12475         (createIvalCharPtr): an ival doesn't always have a storage class anymore
12476
12477 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12478
12479         * src/mcs51/peeph.def: better assembler identation by Frieder
12480         * src/mcs51/gen.c: better assembler identation by Frieder
12481
12482 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
12483
12484         * as/z80/string.h: removed for gcc 3.2
12485         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
12486         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
12487
12488 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12489
12490         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
12491         * src/SDCCpeeph.c (replaceRule): fix bug #663503
12492         * support/regression/Makefile: separate temp files for ports
12493         * support/regression/generate-cases.py: separate temp files for ports
12494         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
12495         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
12496
12497 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12498
12499         * moved tinitalk to device/examples/ds390
12500
12501 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
12502
12503         * as/mcs51/lkmem.c: rflag is for DS390
12504         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
12505         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
12506                          (linkEdit): move mem- and map-files the same way as ihx-files
12507         * src/z80/main.c (_setDefaultOptions): removed --generic
12508         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
12509         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
12510         * src/pic/glue.c (picglue): --c1mode works again
12511         * src/pic16/glue.c (pic16glue): --c1mode works again
12512         * src/asm.c (printCLine): fix #660034
12513
12514 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
12515
12516         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
12517         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
12518         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
12519         * as/mcs51/lkmem (summary): better fix for sp problem
12520         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
12521         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
12522         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
12523                                               remove --stack-after-data
12524
12525 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
12526
12527         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
12528         * src/SDCCutil.c (join): ugly bug: missing '\0'
12529         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
12530
12531 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
12532
12533         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
12534         * src/port.h: typo
12535         * src/pic/main.c (_asmCmd): gpasm supports -o
12536         * src/z80/main.c: more general macros
12537         * device/lib/Makefile.in: remove intermediate files
12538
12539 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
12540
12541         * .version: Bumped version number to 2.3.3
12542         * src/SDCCBBlock.c: new option -o
12543         * src/SDCCglobl.h: new option -o
12544         * src/SDCCglue.c: new option -o
12545         * src/SDCCmain.c: new option -o
12546         * src/asm.c: new option -o
12547         * src/ds390/main.c: new option -o
12548         * src/pic/glue.c: new option -o
12549         * src/pic/pcode.c: new option -o
12550         * src/pic/ralloc.c: new option -o
12551         * src/pic16/glue.c: new option -o
12552         * src/pic16/pcode.c: new option -o
12553         * src/pic16/ralloc.c: new option -o
12554         * src/z80/main.c: new option -o
12555         * device/lib/Makefile.in: use -o
12556         * support/regression/ports/ds390/spec.mk: use -o
12557         * support/regression/ports/gbz80/spec.mk: use -o
12558         * support/regression/ports/mcs51/spec.mk: use -o
12559         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
12560         * support/regression/ports/z80/spec.mk: use -o
12561         * support/regression/ports/ucz80/spec.mk: use -o
12562         * support/regression/ports/xa51/spec.mk: use -o
12563         * support/regression/fwk/lib/timeout.c: fix usage string
12564
12565 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
12566         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
12567
12568 2003-01-07    <johan AT balder>
12569
12570         * src/SDCCast.c (decorateType): fixed bug #600035
12571
12572 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
12573         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
12574         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
12575         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
12576         * src/pic/pcode.c: outcommented unused variable to remove warnings
12577         * src/pic/ralloc.c: outcommented unused variable to remove warnings
12578
12579 2003-01-06    <karl AT turbobit.com>
12580         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
12581    regression tests.
12582
12583 2003-01-06    <johan AT balder>
12584
12585         * src/SDCCicode.c: fixed array add
12586
12587 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
12588         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
12589         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
12590
12591 2003-01-04    <johan AT balder>
12592
12593         * src/SDCCval.c (getNelements): fixed the initialized array of structures
12594
12595 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12596         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
12597
12598 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
12599         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
12600         * support/regression/tests/bug-524697.c: fit mem usage into 8032
12601
12602 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
12603         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
12604
12605 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
12606         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
12607
12608 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
12609         * src/mcs51/main.c: removed {bindir}{sep} from aslink
12610
12611 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12612
12613     * in /sdcc/as/mcs51/ changed these files in order to create an
12614     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
12615     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
12616     following files to include the previous two files: aslink.dsp,
12617     Makefile.aslink, Makefile.bcc, and Makefile.in.
12618
12619     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
12620     .adb instead of .cdb
12621
12622 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12623
12624         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
12625         value from option --iram-size.
12626
12627 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12628
12629         * /sdcc/as/mcs51/lklist.c: added boundary check before using
12630         dram[] array.
12631
12632 2002-09-18    <wiml AT hhhh.org>
12633
12634         * SDCClrange.h: exposed setFromRange() and setToRange()
12635         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
12636           packRegsForAccUse() (bug 542397)
12637         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
12638           multiple times and emitting the fetch operations more than once
12639           added aopGetUsesAcc() function to allow binary operators to
12640           fetch their operands in the correct order; made genMinus() emit
12641           compact code for X = LITERAL - Y
12642
12643 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12644         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
12645         sprintf() in line 1267.
12646
12647 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12648         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
12649         like ports.
12650
12651 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12652         Changes to aslink (All the changes are marked with 'JCF'):
12653
12654         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
12655         summary().
12656
12657         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
12658         area BSEG.  Also moves, if possible, the DATA area down into the internal
12659         ram so more space is available.
12660
12661         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
12662         sflag.
12663
12664         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
12665         not bytes.  Function summary() which creates a memory usage summary
12666         file with extension .mem.  Reports of overlaping stack and small stack
12667         size.  If the space for the stack is less than 16 bytes aslink trows a
12668         warning.
12669
12670         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
12671         the 8051.  Option 'y' for memory summary output file.
12672
12673         Changes to sdcc (All the changes are marked with 'JCF'):
12674
12675         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
12676
12677         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
12678         overlaying area for it (uses RegBankUsed[4]).
12679
12680         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
12681         bank zero as used by default.  By default aslink locates the stack
12682         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
12683         the creation of the .mem file.  Delegates the allocation of data area
12684         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
12685         the begining of the stack area to aslink.
12686
12687         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
12688         glue() in SDCCglue.c creates an area for it.
12689
12690 2002-09-03  Borut Razem <borut.razem AT siol.net>
12691         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
12692         sdcc/src/pic/glue.c:
12693         introduced atexit() handler for teporay files removal in case of
12694         errors, assertions, ...
12695
12696 2002-08-29  Borut Razem <borut.razem AT siol.net>
12697         * sdcc/support/cpp2/auto-host_vc_in.h:
12698         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
12699         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
12700         Maybe there is a similar problem with BORLANDC? It should be checked!
12701
12702         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
12703         corrected improper use of assert: the assignment to clr variable was done inside the assert.
12704         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
12705         was not executed, and the compiler (cl) launched a warning:
12706         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
12707
12708 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12709         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
12710
12711 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
12712         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
12713
12714         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12715           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
12716           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
12717           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12718           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
12719           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
12720           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
12721         - added Release configuration in VS projects
12722         - review of compiler an linker options
12723         - VC .exe files are generated in bin_vc directory, not to interfere
12724           with binaries generated from other projects (cygwin, mingw, bcc ...)
12725
12726         * sdcc/src/yacc.dsp: added
12727
12728         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
12729         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
12730         and insert the version number definitions from .version
12731
12732         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
12733
12734         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
12735         added - genarate auto-host.h using auto-host_vc_in.h as template
12736
12737         * sdcc/sdcc_vc.h,
12738         removed from CVS, generated automatically
12739
12740 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
12741         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
12742
12743 2002-08-11  Borut Razem <borut.razem AT siol.net>
12744         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
12745
12746 2002-08-10  Borut Razem <borut.razem AT siol.net>
12747         * src/SDCCmain.c (main):
12748         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
12749         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
12750         The consequence was that some temporary files were not removed.
12751
12752         * src/SDCCglue.c:
12753         unification of code in functions tempfilename() and tempfile():
12754         function tempnam() is defined in Visual Studio 6.0 and .NET
12755
12756         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
12757
12758         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12759           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
12760         - removed compiler command line option /WX: Treats all warnings as errors
12761         - update a list of source files, included into the project
12762
12763         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12764           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
12765         changed project type to Generic Project so that can be correcly converted to VS.NET project
12766
12767         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
12768
12769         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
12770
12771         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
12772
12773         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
12774         added return 0 statements after assert() to make compiler happy
12775
12776         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
12777         added newline in the def file to keep MSC compiler satisfied
12778
12779         * sdcc/src/z80/gen.c:
12780         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
12781           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
12782         - solved MSC error in function aopDump()
12783
12784         * sdcc_vc.h: define PREFIX as "\\sdcc"
12785
12786 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
12787         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
12788
12789 2002-06-22  Scott Dattalo <scott AT dattalo.com>
12790         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
12791         - Rewrote the register banking algorithm.
12792         - Added pCode live-range analysis to registers (for now, only non-used and
12793         singly-used registers optimized away)
12794
12795         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
12796
12797         * 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.
12798
12799 2002-05-10  Scott Dattalo <scott AT dattalo.com>
12800         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
12801
12802 2002-04-22  Michael Hope  <michaelh AT vroom>
12803
12804         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
12805
12806         * configure.in (DD_COPT): Added include support required for gbdk.
12807
12808         * .version: Bumped version number just to increase it.
12809
12810         * src/SDCCmain.c: Added -nostdinc to the default options.
12811
12812 2002-04-15  Michael Hope  <michaelh AT vroom>
12813
12814         * device/lib/z80/printf.c (sprintf): Added.
12815
12816         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
12817
12818         * src/z80/peeph.def: Added transpose redundent load rule.
12819
12820         * src/z80/main.c: Added force callee saves for jaune.
12821
12822         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
12823
12824         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
12825
12826 2002-03-28  Johan Knol  <johan AT balder>
12827
12828         * src/SDCCval.c: fixed bug #532436
12829
12830 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12831         * /src/port.h:
12832         Added "char *Processor" field to the port structure.
12833
12834         * /src/SDCCmain.c:
12835         Added -p option. Allows port dependent processor to be specified.
12836
12837         * all ports:
12838         Initialized the new field char *Processor field to NULL in all ports
12839
12840         * /src/pic/*:
12841         Compiler generated registers for interrupt context saving
12842         were not getting allocated.
12843
12844 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
12845
12846         * /src/SDCCast.c:
12847         Fixed left shift. Will promote the left side of a left shift
12848         if a) left shifting more than size of operand or b) when assigned
12849         to something size > size of left side
12850
12851 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12852         * src/pic/*
12853         tons of changes. Register allocation has been
12854         rewritten. Added customization for the various PICs. Flow
12855         analysis is restructured. ...
12856
12857         * src/pic/device.h:
12858         Added
12859
12860         * src/pic/device.c:
12861         Added. device.c is a PIC port hack to accomodate variations
12862         in PIC devices.
12863
12864 2002-03-13  Michael Hope  <michaelh AT vroom>
12865
12866         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
12867
12868 2002-03-04  johanknol  <johanknol AT manik>
12869
12870         * /src/SDCCval.c: fixed
12871
12872         const unsigned char arr[][2] = { { 0, 1 } };
12873         t18.c:1: error: Initializer element is not constant
12874
12875 2002-03-04  bela  <bela AT manik>
12876
12877         * /device/include/mcs51reg.h:
12878         ds89c420 register definition update
12879
12880 2002-03-03    <johan AT FRIJA>
12881
12882         * support/Util/SDCCerr.c: did something, but don't no why anymore
12883
12884         * support/regression/tests/bug-524691.c: made it a little less shy
12885
12886         * src/SDCCast.c (decorateType): fixed bug #524697
12887
12888         * src/SDCCast.c: made some lineno improvements
12889
12890         * src/SDCCval.c (getNelements): changed warning to error
12891
12892         * src/SDCCglue.c (printIvalArray): changed warning to error
12893
12894         * src/SDCCicode.c: fixed a warning for mingw
12895
12896         * src/SDCCast.c (decorateType): fixed the << promotion for ops
12897
12898         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
12899
12900 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
12901
12902         * src/ds390/peeph.def:
12903         Added some more peephole rules
12904
12905         * src/ds390/gen.c: Various fixes & enhancements
12906
12907         * src/SDCClrange.c, src/SDCClrange.h:
12908         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
12909
12910         * src/ds390/ralloc.c:
12911         various fixes & enhancements (ds390) specific
12912
12913         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
12914         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
12915         from rallocs.
12916
12917         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
12918
12919 2002-03-02    <johan AT FRIJA>
12920
12921         * src/SDCCast.c (decorateType): fixed bug #524708
12922
12923         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
12924
12925         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
12926
12927 2002-03-01  Michael Hope  <michaelh AT vroom>
12928
12929         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
12930
12931         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
12932
12933 2002-03-01    <johan AT FRIJA>
12934
12935         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
12936
12937         * src/SDCCast.c (decorateType): fixed bug #524209
12938
12939         * src/SDCCval.c (valNot): fixed bug #524195
12940
12941 2002-02-26    <johan AT balder>
12942
12943         * src/xa51/gen.c: fixed a warning
12944
12945         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
12946
12947         * src/SDCCast.c (decorateType): fixed bug #522534
12948
12949 2002-02-23    <johan AT balder>
12950
12951         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
12952
12953 2002-02-22    <johan AT balder>
12954
12955         * src/SDCCast.c: fixed bug #514865
12956
12957         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
12958
12959 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
12960
12961         * sdcc/src/SDCCloop.c:
12962         Previous fix was not good. basic blocks that have "break" or "return" are
12963         not really partof a loop , but live ranges used in these blocks should
12964         be live thru the entire loop, so set partOfLoop but don't add them to
12965         loop region
12966
12967 2002-02-21    <johan AT FRIJA>
12968
12969         * src/SDCCcse.c: fixed bug #514308
12970
12971 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
12972
12973         * src/SDCCloop.c:
12974         Fixed BUG #519583. If a conditional block ended in a return/break
12975         statement inside a loop, it was not being considered part of the loop.
12976
12977         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
12978
12979 2002-02-10  Karl Bongers <karl AT turbobit.com>
12980
12981         * debugger/*:
12982         Fixed up SDCDB debugger somewhat.  Updated debugger/README
12983         with lots of comments and notes.
12984
12985         * device/examples/test2.c:
12986         Fix bug, "red" variable not being initialized(compiler complained).
12987
12988         * device/examples/Makefile, examples/test3.c:
12989         Add Makefile in device/examples folder, compiles test3.c
12990         for use as a multiple module SDCDB test case.
12991
12992         * sim/ucsim/cmd.src/cmdset.cc:
12993         Took out debug printfs in ucsim "next" command.
12994
12995         * sim/ucsim/xa.src:
12996         Karl and Johan start ucsim XA support.  Most dissassembly working,
12997         about 75% emulation done(plenty of work remaining).
12998
12999         * sim/ucsim/z80.src:
13000         Add Z80 support to ucsim, add test-ucz80 regression test,
13001         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
13002         Notice z80 compiler fails on examples/test3.c/crc code.
13003
13004 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
13005
13006         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
13007         Added support for --parms-in-bank1
13008
13009         * src/ds390/peeph.def:
13010         added a few more peephole optimzations
13011
13012         * src/ds390/main.c:
13013         1) added __builtin_inp & __builtin_outp used to read in data of given length
13014            from a memory mapped port
13015         2) added __builtin_memcmp
13016         3) added __builtin_swapw swap bytes of a short
13017
13018         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
13019         1) handle multiple send & receives from register bank1
13020         2) ralloc can now allocate DPTR1 to some liveRanges
13021
13022         * src/SDCCsymt.c, src/SDCCsymt.h:
13023         changes to handle multiple sends & receives
13024
13025         * src/SDCCptropt.h:
13026         added some pointer arithmetic optimization
13027
13028         * src/SDCCptropt.c:
13029         added some pointer arithmetic optimizations but not stable yet so not
13030         called from anywhere (will get this working shortly)
13031
13032         * src/SDCCopt.c: fixed for multiple sends & receives
13033
13034         * src/SDCCmain.c:
13035         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
13036         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
13037            set preprocessor defines (depending on options)
13038
13039         * src/SDCCicode.c, src/SDCCicode.h:
13040         changes made to handle multiple sends & receives
13041
13042         * src/SDCCglobl.h:
13043         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
13044
13045         * src/SDCCcse.c, src/SDCCcse.h:
13046         added function findbackward def (to be used in upcoming optimization)
13047
13048         * src/SDCCcflow.c, src/SDCCcflow.h:
13049         added function returnAtEnd - to determine if a basic block terminates with
13050         a RETURN iCode
13051
13052         * src/SDCCast.c, src/SDCCast.h:
13053         added option parms-in-bank1
13054
13055         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
13056         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
13057         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
13058         adjusted for --parms-in-bank1 option
13059
13060         * device/include/string.h:
13061         donot redefine "reentrant" keyword
13062
13063         * device/include/ds80c390.h: Added some more SFRs
13064
13065 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
13066
13067         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
13068
13069 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
13070
13071         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
13072
13073 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
13074
13075         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
13076
13077 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
13078
13079         * Added --xram-movc option
13080
13081 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
13082
13083         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
13084
13085 2002-01-11  Johan Knol
13086
13087         * Added math lib of Jesus Calvino-Fraga
13088
13089 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
13090
13091         * src/SDCCmain.c (processFile): fix processing of ../../src.c
13092         * support/regression/Makefile: new target test-mcs51-stack-auto
13093         * support/regression/ports/mcs51-stack-auto/spec.mk: added
13094
13095 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13096
13097         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
13098
13099 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13100
13101         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
13102
13103 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
13104
13105         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
13106
13107         * src/SDCCglue.h: add definition for printIvalChar()
13108
13109 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13110
13111         * src/SDCCast.c: fix #498138 by Johan
13112
13113         * src/SDCCglue.c: fix #498138 by Johan
13114
13115 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13116
13117         * support/regression/Makefile: fix clean
13118
13119         * support/regression/ports/ds390/support.c: fix transmission of last character
13120
13121 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
13122
13123         * /sdcc/src/ds390/gen.c:
13124         a) improved computing address of stack variable
13125         b) took out some #if 0 code
13126         c) improved parmBytes adjustment
13127         d) improved genPlusIncr & genMinusIncr
13128         e) genCmp could generate bad code (when left assigned to DPTR)
13129         f) Fixed bug in hasInc
13130
13131         * /sdcc/src/ds390/ralloc.c:
13132         a) packRegsForSupport could mess up live information (Fixed)
13133         b) packRegsDPTRuse could be incorrect for left & right shift
13134
13135         * /sdcc/src/mcs51/ralloc.c:
13136         packRegsForSupport could mess up the live information (Fixed)
13137
13138         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
13139
13140         * /sdcc/src/SDCCast.c:
13141         can reverse a loop even if function call is present as long
13142         as the loop control variable is local & is not passed as parameter
13143
13144 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13145
13146         * /sdcc/ChangeLog: *** empty log message ***
13147
13148         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
13149         More builtin function additions for TININative
13150
13151         * /sdcc/src/ds390/ralloc.c:
13152         Had broken the regression testsuite
13153
13154         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
13155
13156         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
13157         Added funcattr hasStackParms will be set for reentrant functions when there
13158         are paramteres on the stack, this helps in minimizing frame pointer generation
13159         typeFromStr can handle function pointers now
13160
13161         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
13162         *** empty log message ***
13163
13164 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13165
13166         * /src/ds390/gen.c, /src/ds390/main.c:
13167         More builtin function additions for TININative
13168
13169         * /src/ds390/ralloc.c:
13170         Had broken the regression testsuite
13171
13172         * /src/SDCCast.c: Fixed a bug in dumptree
13173
13174         * /src/SDCCsymt.c, /src/SDCCsymt.h:
13175         Added funcattr hasStackParms will be set for reentrant functions when there
13176         are paramteres on the stack, this helps in minimizing frame pointer generation
13177         typeFromStr can handle function pointers now
13178
13179         * /doc/builtins.txt, /doc/TININative.txt:
13180         *** empty log message ***
13181
13182
13183 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13184
13185         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
13186         ALPHA version for -mTININative
13187
13188         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
13189         updated to reflect changes in the port structure
13190
13191         * /src/port.h:
13192         added function do_assemble (similar to do_link) if non-null this function
13193         will be called to do assembly (-mTININative) requires a multi command
13194         assembly
13195         added function genAssemblerEnd will be called to generate assembler Epilogue
13196
13197         * /src/SDCCsymt.c:
13198         added _JavaNative to debug info printing
13199
13200         * /src/SDCCmain.c: added option --tini-libid
13201         added port->do_assemble function (-mTININative) has a multi command assemble
13202
13203         * /src/SDCCglue.c: Disabled "constExpr" check
13204         added port->genAssemblerEnd function
13205
13206         * /src/SDCCglobl.h: Added option --tini-libid value
13207
13208         * /src/SDCCast.h:
13209         tookout optimizeCompare from the header (has no external references)
13210
13211         * /src/SDCCast.c: made one more function "static"
13212
13213 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
13214
13215         * src/z80/mappings.i: Added z80asm support.
13216
13217         * src/z80/main.c: Added z80asm support on --asm=z80asm
13218
13219         * src/z80/gen.c: Fixed asm portability issues.
13220
13221         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
13222
13223         * src/SDCCglue.c (printExterns): Added global/extern split.
13224
13225 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
13226
13227         * support/regression/Makefile: added test for mcs51 model large
13228
13229         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
13230
13231         * support/regression/ports/gbz80/spec.mk: added -mgbz80
13232
13233 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
13234
13235         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
13236
13237 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
13238
13239         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
13240
13241         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
13242
13243 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
13244
13245         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
13246
13247         * support/regression/tests/simplefloat.c: Port to mcs51.
13248
13249 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
13250         * support/regression/tests/bug-485362.c: Added.
13251
13252         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
13253
13254         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
13255
13256         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
13257
13258         * src/z80/gen.c (aopDump): Added a dump function.
13259
13260 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
13261         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
13262
13263         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
13264
13265         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
13266
13267         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
13268
13269         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
13270
13271         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
13272
13273         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
13274
13275         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
13276
13277         * support/regression/ports/ds390/support.c: Use tinibios.
13278
13279         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
13280
13281 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
13282
13283         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
13284         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
13285
13286         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
13287
13288         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
13289
13290 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
13291
13292         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
13293
13294         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
13295         (packRegsForIYUse): Created and optimised.
13296
13297 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13298
13299         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
13300 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
13301
13302         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
13303
13304         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
13305
13306         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
13307
13308 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13309
13310         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
13311
13312         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
13313
13314 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13315
13316         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
13317
13318         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
13319
13320         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
13321
13322 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13323
13324         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
13325         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
13326         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
13327
13328         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
13329
13330         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
13331         (genNotFloat): Added.
13332         (genUminusFloat): Added.
13333
13334         * device/lib/z80/Makefile: Added floating pt stubs.
13335
13336         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
13337
13338         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
13339
13340         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
13341
13342 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13343
13344         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
13345
13346         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
13347
13348         * sdcc/support/regression/Makefile: Add port ds390.
13349
13350         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
13351
13352         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
13353
13354         * sdcc/support/regression/ports/ds390/spec.mk: Added.
13355
13356         * sdcc/support/regression/ports/ds390/support.c: Added.
13357
13358         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
13359
13360         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
13361
13362         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
13363
13364 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13365
13366         * device/include/malloc.h: Added z80 and gbz80 support.
13367
13368         * device/lib/gbz80/heap.s: Added.
13369
13370         * device/lib/z80/heap.s: Added.
13371
13372         * device/lib/malloc.c: Added z80 and gbz80 support.
13373
13374         * support/regression/tests/malloc.c (testMalloc): Added.
13375
13376         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
13377
13378         * support/regression/tests/bug-478094.c: Added.
13379
13380         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
13381
13382 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
13383
13384         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
13385
13386         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
13387
13388         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
13389
13390         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
13391
13392         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
13393
13394 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13395
13396         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
13397
13398 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
13399
13400         * support/regression/tests/bug-477927.c: Added.
13401
13402         * src/z80/peeph.def: Added minor rules.
13403
13404         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
13405
13406         * src/z80/peeph.def: Added jump optimisation modification.
13407
13408 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
13409
13410         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
13411
13412 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
13413
13414         * support/regression/tests/funptrs.c: Added.
13415
13416 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
13417
13418         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
13419
13420 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
13421
13422         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
13423
13424         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
13425
13426         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
13427         (movLeft2ResultLong): Created.
13428
13429         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
13430         (joinPushes): Added.  Joins two char pushes into a word push.
13431
13432 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
13433
13434         * support/cpp2/Makefile.in (install): Added creation of dest dir.
13435
13436         * support/makebin/Makefile (install): Added creation of dest dir.
13437
13438 2001-10-24 Karl Bongers <karl AT turbobit.com>
13439
13440         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
13441
13442 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
13443
13444         * src/z80/ralloc.c: Turned off faulty pack for one use.
13445
13446         * src/z80/peeph-gbz80.def: Removed redundent restart options.
13447
13448         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
13449
13450 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
13451
13452         * support/regression/Makefile: Improved clean
13453
13454         * support/regression/ports/gbz80/spec.mk: Added clean
13455
13456         * support/regression/ports/host/spec.mk: Added clean
13457
13458         * support/regression/ports/z80/spec.mk: Added clean
13459
13460         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
13461
13462         * support/regression/ports/mcs51/timeout.c: little improvements
13463
13464 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
13465
13466         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
13467
13468         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
13469
13470         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
13471
13472 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
13473
13474         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
13475
13476         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
13477
13478 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
13479         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
13480
13481         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
13482
13483         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
13484
13485         * src/mcs51/main.c (_linkCmd): Added bin path to command.
13486
13487         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
13488
13489         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
13490
13491         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
13492
13493         * support/regression/tests/longor.c: Added.
13494
13495 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
13496
13497         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
13498
13499         * as/mcs51/aslink.h: define PATH_MAX
13500
13501         * as/mcs51/asm.h: define PATH_MAX
13502
13503         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
13504
13505         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
13506
13507         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
13508
13509         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
13510
13511         * src/SDCCglobl.h: define PATH_MAX
13512
13513         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
13514
13515         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
13516
13517 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
13518
13519         * src/z80/gen.c (gencjneshort): Fixed
13520
13521         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
13522
13523 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
13524
13525         * support/regression/tests/bug-469671.c: Added.
13526
13527         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
13528
13529 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
13530
13531         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
13532
13533         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
13534
13535 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
13536
13537         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
13538
13539         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
13540
13541         * src/device/lib/_mullong.c : removed hint: nooverlay bug
13542
13543         * src/device/lib/_divuint.c : removed hint: nooverlay bug
13544
13545         * src/device/lib/_divulong.c: removed hint: nooverlay bug
13546
13547         * src/device/lib/_moduint.c : removed hint: nooverlay bug
13548
13549         * src/device/lib/_modulong.c: removed hint: nooverlay bug
13550
13551 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
13552
13553         * 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.
13554
13555         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
13556
13557         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
13558
13559 2001-10-07    <johan AT FRIJA>
13560
13561         * device/lib/gets.c (gets): fixed the return value.
13562
13563 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
13564         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
13565
13566         * 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.
13567
13568         * 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.
13569
13570         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
13571
13572         * src/pic/gen.c: Removed Safe_strdup.
13573
13574         * configure.in: Added option to enable libgc support.
13575
13576         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
13577         (bitVectUnion): Optimised.
13578         (bitVectIntersect): Optimised.
13579         (bitVectBitsInCommon): Optimised.
13580         (bitVectCplAnd): Optimised.
13581
13582         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
13583
13584 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13585
13586         * src/SDCCmain.c: distinguish between assembler debug and plain options
13587
13588         * src/avr/main.c:   remove standard assembler options
13589
13590         * src/ds390/main.c: remove standard assembler options
13591
13592         * src/mcs51/main.c: remove standard assembler options
13593
13594         * src/port.h: removed "PENDING" comment
13595
13596 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13597
13598         * src/device/lib/_mulint.c  : new, with assember functions
13599
13600         * src/device/lib/_mullong.c : new, with assember functions
13601
13602         * src/device/lib/_divuint.c : with assember functions
13603
13604         * src/device/lib/_divsint.c : with assember functions
13605
13606         * src/device/lib/_divulong.c: with assember functions
13607
13608         * src/device/lib/_divslong.c: with assember functions
13609
13610         * src/device/lib/_moduint.c : with assember functions
13611
13612         * src/device/lib/_modsint.c : with assember functions
13613
13614         * src/device/lib/_modulong.c: with assember functions
13615
13616         * src/device/lib/_modslong.c: with assember functions
13617
13618         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
13619
13620         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
13621
13622         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
13623                                       replaced _mululong.c and _mulslong.c by _mullong.c
13624
13625 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13626
13627         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
13628
13629 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
13630
13631         * src/SDCCglue.c: test, if win32api is available for MINGW
13632
13633 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
13634
13635         * src/SDCCsymt.c: no more _modifier in printTypeChain()
13636         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
13637         * support/regression/ports/gbz80/spec.mk: removed GENERIC
13638         * support/regression/ports/host/spec.mk: removed GENERIC
13639         * support/regression/ports/mcs51/spec.mk: removed GENERIC
13640         * support/regression/ports/z80/spec.mk: removed GENERIC
13641
13642 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
13643
13644         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
13645
13646         * support/regression/tests/bug-467035.c: Created.
13647
13648 2001-10-01    <johan AT FRIJA>
13649
13650         * src/SDCC.y: fixed bug #466586 part 1
13651
13652 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
13653
13654         * SDCCicode.c: z80 has no generic pointers
13655         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
13656
13657 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
13658
13659         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
13660
13661 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
13662
13663         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
13664
13665         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
13666
13667 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
13668
13669         * configure.in: Fixed up so that ucsim is only configured once.
13670
13671         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
13672
13673         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
13674         (getPathDifference): As above.
13675
13676         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
13677
13678         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
13679
13680 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
13681         * .version: Updated to 2.3.1
13682
13683         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
13684         Added copyright header.
13685
13686         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
13687         (assemble): Added support for macro based assembler commands.
13688         (linkEdit): Added support for macro based linker commands.
13689         (preProcess): Changed the pre-processor to use macros.
13690         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
13691         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
13692
13693         * device/lib/z80/crt0.s: Added module name for debugging.
13694
13695 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
13696
13697         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
13698
13699         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
13700
13701         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
13702
13703         * src/Makefile.in: Added SDCCmacro and SDCCutil
13704
13705 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
13706
13707         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
13708
13709 2001-09-16    <johan AT FRIJA>
13710
13711         * 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.
13712
13713 2001-09-15    <johan AT FRIJA>
13714
13715         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
13716         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
13717
13718 2001-09-11    <johan AT FRIJA>
13719
13720         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
13721
13722 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
13723
13724         * support/regression/tests/bug-460444.c: Added test case.
13725
13726         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
13727         (genCast): Added justification for all of the asserts.
13728
13729 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
13730
13731         * support/regression/support.c: _xdata replaced by xdata
13732
13733         * support/regression/spec.mk: removed _generic
13734
13735 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
13736
13737         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
13738
13739         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
13740         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
13741
13742         * src/z80/peeph.def: Added a rule to optimise shift then compare.
13743
13744         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
13745
13746         * support/regression/tests/bug-460010.c: Added test case.
13747
13748         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
13749
13750 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
13751
13752         * support/regression/Makefile: inter-port-clean adjusted for mcs51
13753
13754         * support/regression/testfwk.c: removed workaround for bug #436344
13755
13756         * support/regression/tests/bp.c: use less memory with mcs51
13757
13758         * support/regression/tests/bug-441448.c: use less memory
13759
13760         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
13761
13762         * support/regression/collate-results.py: typo
13763
13764 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
13765
13766         * support/regression/tests/fetchoverlap.c: Added new test case.
13767
13768         * support/regression/tests/bp.c: Added new test case.
13769
13770         * support/regression/tests/bug-448984.c: Added new test case.
13771
13772         * support/regression/tests/pow2shifts.c: Added new test case.
13773
13774         * src/z80/gen.c: Turned off the noise it normally generates for the release.
13775         (genlshTwo): Fixed right shift for count > 8.
13776
13777         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
13778
13779 2001-09-08    <johan AT FRIJA>
13780
13781         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
13782
13783 2001-09-07    <johan AT FRIJA>
13784
13785         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
13786
13787         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
13788
13789 2001-09-06    <johan AT FRIJA>
13790
13791         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
13792         * bernhard noted me at this: "() equals to (void)" (1.38)
13793
13794 2001-09-05    <johan AT FRIJA>
13795
13796         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
13797
13798 2001-09-04    <johan AT FRIJA>
13799
13800         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
13801
13802
13803 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
13804
13805         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
13806
13807 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
13808
13809         * link/z80/aslink.h: Fixed path for PATH_MAX
13810
13811 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
13812
13813         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
13814
13815         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
13816
13817         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
13818
13819         * 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.
13820
13821 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
13822
13823         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
13824         (genCmp): Fixed up genCmp for the GB with longs.
13825
13826         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
13827
13828         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
13829
13830         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
13831
13832         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
13833
13834 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
13835
13836         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
13837
13838 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
13839
13840         * 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.
13841
13842         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
13843
13844 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
13845
13846         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
13847
13848         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
13849
13850 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
13851
13852   * sim/ucsim/configure:    little improvement of Cygwin-detection
13853   * sim/ucsim/configure.in: little improvement of Cygwin-detection
13854   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
13855   * support/regression/tests/bug-221100.c: small changes for mcs51
13856   * support/regression/tests/bug-221168.c: small changes for mcs51
13857   * support/regression/tests/bug-227710.c: small changes for mcs51
13858   * support/regression/tests/staticinit.c: small changes for mcs51
13859   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
13860   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13861   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13862
13863 $Revision$