* doc/sdccman.lyx: updated "configure options" for autoconf 2.6
[fw/sdcc] / ChangeLog
1 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
2
3         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
4         * support/scripts/sdcc_cygwin_mingw32,
5         * support/scripts/sdcc_mingw32,
6         * support/scripts/build.mak: replaced --datadir by --datarootdir for
7         conformance with autoconf 2.6
8
9 2007-01-19 Raphael Neider <rneider AT web.de>
10
11         * src/pic/device.c (register_map): fixed list construction
12         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
13           (genMod): removed case for genModbits,
14           (genModbits): removed as now unused/unimplemented
15         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
16
17 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
18
19         * support/regression/tests/swap.c: added in response to #1638622
20         * doc/sdccman.lyx: synced version, minor changes
21
22 2007-01-18 Borut Razem <borut.razem AT siol.net>
23
24         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
25           thanks to Gunther Jehle
26         * src/asm.c: don't die if the file drfined in #line couldn't be opened
27         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
28           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
29           use filename in lineno instead.
30         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
31           print the file name in ast_print()
32
33 2007-01-18 Borut Razem <borut.razem AT siol.net>
34
35         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
36           defined in MSVC
37         * src/SDCC.lex: stringLiteral() returns const char pointer,
38           EOF detection in stringLiteral(), fixed asmbuf memory leak,
39           fixed column counting
40         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
41           accept const char pointer as parameter
42         * src/SDCCdwarf2.c: corrected buffer size
43
44 2007-01-17 Borut Razem <borut.razem AT siol.net>
45
46         * support/Util/dbuf_string.c: fixed for amd64
47
48 2007-01-15 Borut Razem <borut.razem AT siol.net>
49
50         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
51           removed terminal symbol ELIPSIS, since it was never generated by the
52           lexer and it was wrongly used in parameter_identifier_list rule
53
54 2007-01-15 Raphael Neider <rneider AT web.de>
55
56         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
57             code page and data banking description
58         * src/pic/genarith.c,
59         * src/pic/gen.h: removed bit arithmetic functions,
60             updated exit(1) to exit(EXIT_FAILURE)
61         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
62         * device/include/pic16/pic18f2455.h,
63         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
64             TRISD and TRISE, fixed/added some bit names
65         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
66         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
67             updated pic18f2455.{c,h} instead of duplicating them
68
69 2007-01-14 Borut Razem <borut.razem AT siol.net>
70
71         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
72           Cannot debug files that contain spaces in the path name
73           by converting spaces in asm file name to underscores
74
75 2007-01-13 Borut Razem <borut.razem AT siol.net>
76
77         * doc/sdccman.lyx: fixed format errors
78
79 2007-01-10 Borut Razem <borut.razem AT siol.net>
80
81         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
82           codeseg/constseg #pragma fail
83         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
84         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
85           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
86           suppoprt/cpp2/sdcpp.[ch]: house cleaning
87
88 2007-01-09 Borut Razem <borut.razem AT siol.net>
89
90         * get rid of diagnistic.[ch], pretty-print.[ch],
91           c-pretty-print.[ch], ... used just for error, warning, ...
92           message formatting
93         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
94           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
95           suppoprt/cpp2/pretty-print.[ch]:
96           removed
97         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
98           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
99           suppoprt/cpp2/sdcpp.dsp:
100           changed
101
102 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
103
104         * device/lib/printf_large.c (output_float): removed recursion,
105           use smaller buffer on stack for mcs51,
106           fixed bug printing 1.96
107         * support/regression/tests/snprintf.c: added test
108
109 2007-01-07 Borut Razem <borut.razem AT siol.net>
110
111         * use dynamic memory buffers instead temporary files
112         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
113           added
114         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
115           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
116           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
117           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
118           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
119           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
120           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
121           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
122           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
123           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
124           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
125           support/Util/dbuf.c, support/Util/dbuf.h:
126           modified
127         * .version, sdcc.spec: bumped version to 2.6.4
128
129 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
130
131         * src/port.h: added TARGET_Z80_LIKE macro
132         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
133           output PSEG location if --xram-loc or --xstack-loc was used
134         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
135
136 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
137
138         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
139         * as/as_z80.dsp,   as/z80/as_z80.dsp,
140         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
141         * sdcc.dsw: moved project files into subdir
142         * as/hc08/as_hc08.dsp,
143         * as/hc08/Makefile.bcc,
144         * as/hc08/Makefile.in,
145         * as/mcs51/Makefile.bcc,
146         * as/mcs51/Makefile.in,
147         * as/z80/Makefile.bcc,
148         * as/z80/Makefile.in,
149         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
150         * as/hc08/asm.h,
151         * as/mcs51/asm.h,
152         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
153         * as/hc08/asmain.c,
154         * as/hc08/assym.c,
155         * as/mcs51/asmain.c,
156         * as/mcs51/assym.c,
157         * as/z80/assym.c: removed include "strcmpi.h"
158         * as/hc08/strcmpi.c,
159         * as/hc08/strcmpi.h,
160         * as/mcs51/strcmpi.c,
161         * as/mcs51/strcmpi.h,
162         * support/Util/strcmpi.c,
163         * support/Util/strcmpi.h: removed files
164         * as/strcmpi.c: added as_strncmpi()
165
166 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
167
168         * sdcc.dsw: Added some dependencies on project config.dsp
169
170 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
171
172         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
173           with [di]ram_start to fix a regresion
174
175 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
176
177         * configure.in: added missing mcs51 in status output
178         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
179         directory
180         * debugger/mcs51/clean.mk (distclean): remove config.h
181         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
182         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
183         options.h, s-options-h and options.c
184         * support/cpp2/clean.mk: unused, removed
185         * Makefile.common.in,
186         * main_in.mk,
187         * as/Makefile.in,
188         * as/hc08/Makefile.in,
189         * as/hc08/clean.mk,
190         * as/mcs51/Makefile.in,
191         * as/mcs51/clean.mk,
192         * as/z80/clean.mk,
193         * as/z80/conf.mk,
194         * as/z80/Makefile.in,
195         * as/z80/clean.mk,
196         * as/link/Makefile.in,
197         * as/link/hc08/Makefile.in,
198         * as/link/hc08/clean.mk,
199         * as/link/mcs51/Makefile.in,
200         * as/link/mcs51/clean.mk,
201         * as/link/z80/Makefile.in,
202         * as/link/z80/clean.mk,
203         * as/link/z80/conf.mk,
204         * debugger/mcs51/Makefile.in,
205         * debugger/mcs51/clean.mk,
206         * device/include/Makefile.in,
207         * device/lib/Makefile.in,
208         * device/lib/mcs51/Makefile.in,
209         * device/lib/pic/Makefile.in,
210         * device/lib/pic/Makefile.common.in,
211         * device/lib/pic/Makefile.subdir,
212         * device/lib/pic/Makefile.rules,
213         * device/lib/pic16/libio/Makefile.in,
214         * device/lib/pic16/Makefile.subdir,
215         * device/lib/pic16/libdev/Makefile.in,
216         * device/lib/pic16/Makefile.rules,
217         * device/lib/pic16/Makefile.common.in,
218         * sim/ucsim/avr.src/Makefile.in,
219         * sim/ucsim/main_in.mk,
220         * sim/ucsim/cmd.src/Makefile.in,
221         * sim/ucsim/doc/Makefile.in,
222         * sim/ucsim/gui.src/Makefile.in,
223         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
224         * sim/ucsim/gui.src/serio.src/Makefile.in,
225         * sim/ucsim/hc08.src/Makefile.in,
226         * sim/ucsim/libltdl/Makefile.in,
227         * sim/ucsim/s51.src/Makefile.in,
228         * sim/ucsim/sim.src/Makefile.in,
229         * sim/ucsim/sim.src/conf.mk,
230         * sim/ucsim/xa.src/Makefile.in,
231         * sim/ucsim/z80.src/Makefile.in,
232         * src/Makefile.in,
233         * src/clean.mk,
234         * src/port.mk,
235         * support/cpp2/Makefile.in,
236         * support/librarian/Makefile.in,
237         * support/librarian/clean.mk,
238         * support/makebin/Makefile.in,
239         * support/makebin/clean.mk,
240         * support/packihx/Makefile.in,
241         * support/regression/Makefile.in,
242         * support/regression/ports/ds390/spec.mk,
243         * support/regression/ports/gbz80/spec.mk,
244         * support/regression/ports/hc08/spec.mk,
245         * support/regression/ports/mcs51/spec.mk,
246         * support/regression/ports/mcs51-large/spec.mk,
247         * support/regression/ports/mcs51-medium/spec.mk,
248         * support/regression/ports/mcs51-xstack-auto/spec.mk,
249         * support/regression/ports/pic14/spec.mk,
250         * support/regression/ports/pic16/spec.mk,
251         * support/regression/ports/mcs51-stack-auto/spec.mk,
252         * support/regression/ports/ucz80/spec.mk,
253         * support/regression/ports/xa51/spec.mk,
254         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
255         adding a slash after $(top_builddir) and/or adding @datarootdir@
256         * configure.in,
257         * debugger/mcs51/configure.in,
258         * device/lib/pic/configure.in,
259         * device/lib/pic16/configure.in,
260         * sim/ucsim/configure.in,
261         * support/cpp2/configure.in,
262         * support/packihx/configure.in: changed AC_PREREQ to 2.60
263         * configure,
264         * debugger/mcs51/configure,
265         * device/lib/pic/configure,
266         * device/lib/pic16/configure,
267         * sim/ucsim/configure,
268         * support/cpp2/configure,
269         * support/packihx/configure: generated with autoconf 2.60
270
271 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
272
273         * as/link/hc08/lkihx.c (newArea),
274         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
275
276 2007-01-02 Borut Razem <borut.razem AT siol.net>
277
278         * doc/sdccman.lyx: documented #pragma sdcc_hash
279         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
280           initialized to 0
281         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
282
283 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
284
285         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
286         empty 'while'-loop to work correctly, see regression test 'while.c'
287         * support/regression/tests/while.c: added
288
289 2007-01-01 Borut Razem <borut.razem AT siol.net>
290
291         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
292           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
293           support/cpp2/libcpp/sdcpp.c:
294           sdcpp specific pragma/directive/option handling moved to sdcpp.c
295         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
296         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
297
298 2006-12-31 Borut Razem <borut.razem AT siol.net>
299
300         * SDCPP synchronized with GCC CPP release version 4.1.1,
301           currently the latest release:
302         * support/cpp2/libcpp, support/cpp2/libcpp/include,
303           support/cpp2/libcpp/include/cpp-id-data.h
304           support/cpp2/libiberty/fopen_unlocked.c
305           support/cpp2/libiberty/md5.c
306           support/cpp2/md5.h
307           support/cpp2/opt-functions.awk
308           support/cpp2/opt-gather.awk
309           support/cpp2/optc-gen.awk
310           support/cpp2/opth-gen.awk:
311           added
312         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
313           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
314           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
315           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
316           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
317           support/cpp2/diagnostic.h, support/cpp2/except.h,
318           support/cpp2/hwint.h, support/cpp2/input.h,
319           support/cpp2/intl.h, support/cpp2/move-if-change,
320           support/cpp2/opts.c, support/cpp2/opts.h,
321           support/cpp2/output.h, support/cpp2/prefix.c,
322           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
323           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
324           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
325           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
326           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
327           support/cpp2/version.c:
328           modified
329         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
330           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
331           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
332           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
333           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
334           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
335           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
336           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
337           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
338           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
339           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
340           moved
341         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
342           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
343           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
344           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
345           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
346           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
347           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
348           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
349           support/cpp2/hashtable.h, support/cpp2/line-map.c,
350           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
351           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
352           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
353           support/cpp2/system.h:
354           deleted / moved
355
356 2006-12-31 Borut Razem <borut.razem AT siol.net>
357
358         * configure.in, configure: fixed bug #1538756: configure dies if bison
359           and flex are not installed, 2nd try
360
361 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
362
363         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
364         400.x for better code in RFE 899102
365
366 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
367
368         * src/SDCCpeeph.c (deadMove),
369         * src/port.h,
370         * src/mcs51/peep.h: renamed 'op' by 'reg'
371         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
372         (scan4op): small change for removeDeadMove(), added support for
373         'callee saves' and/or PACLL function calls,
374         (removeDeadMove): added, removes superflous 'mov r%1,%2',
375         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
376         left in new dispatcher mcs51DeadMove()
377         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
378         removeDeadMove()
379         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
380
381 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
382
383         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
384           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
385
386 2006-12-30 Borut Razem <borut.razem AT siol.net>
387
388         * support/cpp2/spacs.h: deleted from svn
389         * configure.in, configure: fixed bug #1538756: configure dies if bison
390           and flex are not installed
391
392 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
393
394         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
395           with this z80 passes printf float test when enabled
396         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
397
398 2006-12-28 Borut Razem <borut.razem AT siol.net>
399
400         * support/cpp2/config.in, support/cpp2/configure.in,
401           support/cpp2/configure, support/cpp2/Makefile.in:
402           fix for the solaris build
403
404 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
405
406         * src/SDCC.y (type_specifier2, pointer),
407         * src/SDCCsymt.h,
408         * src/SDCCsymt.c (mergeSpec, checkSClass),
409         * support/Util/SDCCerr.c,
410         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
411         * support/valdiag/valdiag.py: Allow test cases to specify
412           required language standard
413         * support/valdiag/tests/restrict.c: New file to test restrict keyword
414         * support/valdiag/tests/tentdecl.c: Supress empty source file error
415
416 2006-12-27 Borut Razem <borut.razem AT siol.net>
417
418         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
419         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
420           mbchar removed
421         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
422           fixed for borland C
423         * support/cpp2/libiberty/Makefile.bcc: updated
424         * src/pic16/main.c: fixed #pragma udata handling
425         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
426
427 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
428
429         * src/SDCCpeeph.c: made labelHashEntry global,
430         made pcDistance, FBYNAME static,
431         (pcDistance): made static, use isComment and isLabel,
432         (deadMove): added,
433         (getLabelRef): added, extracted from labelRefCount(),
434         (labelRefCount): use new getLabelRef(),
435         (callFuncByName): made static, added deadMove,
436         use isComment and isLabel,
437         (newPeepRule): made static, set isLabel,
438         (isLabelDefinition): added parameter isPeepRule to allow '%' in
439         labels from peephole rules,
440         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
441         when isComment or isLabel is set
442         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
443         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
444         to make them global
445         * src/mcs51/peep.h: added
446         * src/mcs51/peep.c: added, implements mcs51DeadMove()
447         * src/port.h: added peep->deadMove to port structure
448         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
449         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
450         deadMove, finally removed no. 1 and 2
451         * src/mcs51/gen.c,
452         * src/pic/gen.c,
453         * src/z80/gen.c,
454         * src/z80/ralloc.c,
455         * src/pic16/gen.c,
456         * src/ds390/gen.c,
457         * src/hc08/gen.c: mark lines with isComment or isLabel
458         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
459         * .version,
460         * sdcc.spec: bumped version to 2.6.3
461
462 2006-12-26 Borut Razem <borut.razem AT siol.net>
463
464         * support/cpp2/Makefile.in: added dependency on options.h
465         * configure: regenerated
466         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
467         * support/cpp2/Makefile.in: added vasprintf.c
468
469 2006-12-25 Borut Razem <borut.razem AT siol.net>
470
471         * SDCPP synchronized with GCC CPP release version 3.4.6,
472           the latest release before 4.x:
473         * support/cpp2/Makefile.in, support/cpp2/config.h,
474           support/cpp2/configure, support/cpp2/configure.in,
475           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
476           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
477           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
478           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
479           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
480           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
481           support/cpp2/cpptrad.c, support/cpp2/except.h,
482           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
483           support/cpp2/hwint.h, support/cpp2/intl.h,
484           support/cpp2/line-map.c, support/cpp2/line-map.h,
485           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
486           support/cpp2/output.h, support/cpp2/prefix.c,
487           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
488           support/cpp2/system.h, support/cpp2/version.c:
489           modified
490         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
491           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
492           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
493           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
494           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
495           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
496           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
497           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
498           support/cpp2/move-if-change, support/cpp2/opts.c,
499           support/cpp2/opts.h, support/cpp2/opts.sh,
500           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
501           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
502           support/cpp2/win32, support/cpp2/win32/dirent.c,
503           support/cpp2/win32/dirent.h:
504           added
505         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
506         * support/cpp2/sdcpp.h: renamed from sdcc.h
507         * sdcppinit.c: deleted
508
509 2006-12-23 Borut Razem <borut.razem AT siol.net>
510
511         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
512           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
513           preproc.c: an other try to fix bug #982435: introduced
514           -pedantic-parse-number command line option and pedantic_parse_number
515           pragma
516
517 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
518
519         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
520            BSEG handling,
521           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
522            corrected overlayed areax addresses, warn about memory overlaps
523         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
524         * src/avr/main.c,
525         * src/ds390/main.c,
526         * src/hc08/main.c,
527         * src/mcs51/main.c,
528         * src/pic16/main.c,
529         * src/pic/main.c,
530         * src/xa51/main.c,
531         * src/z80/main.c,
532         * src/port.h: added xabs_name and iabs_name
533         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
534           (glue, emitMaps): create and emit maps d_abs and i_abs
535         * src/SDCCglue.h: cosmetic changes
536         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
537         * src/SDCCmem.h,
538         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
539           (allocDefault): put absolute, initialized globals in them
540         * support/regression/tests/absolute.c: added absolute bdata test
541         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
542
543 2006-12-20 Borut Razem <borut.razem AT siol.net>
544
545         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
546         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
547           added regression test for bug #982435
548
549 2006-12-18 Borut Razem <borut.razem AT siol.net>
550
551         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
552         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
553           small cosmetic changes
554         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
555         * support/regression/tests/bug-1351710.c: added regression test
556
557 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
558
559         * doc/sdccman.lyx: added the long missed iCode table
560           "<where is figure II?>", added links to wiki
561
562 2006-12-17 Borut Razem <borut.razem AT siol.net>
563
564         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
565           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
566           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
567           unified table driven pragma handling, pragma argument type checking
568         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
569           current one - version 1.1.3
570         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
571
572 2006-12-13 Raphael Neider <rneider AT web.de>
573
574         * src/pic/device.h: removed AssignedMemory structure and macros
575         * src/pic/device.c: removed global finalMapping (linker assigns
576             memory locations),
577           (register_map): add SFRs to remembered memRanges
578           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
579           assignFixedRegisters,assignRelocatableRegisters): removed,
580           (setMaxRAM,validAddress): adapted accordingly,
581           (pic14_hasSharebank,pic14_getSharedStack): only report and use
582             reasonably sized sharebanks,
583         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
584           (allDefsOutOfRange): removed unused code,
585         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
586             handling
587         * src/pic/pcode.c (register_reassign): removed recursion warning,
588             fired far too often,
589         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
590             to use existing pic14_stringInSet() to avoid duplicate symbols,
591             tidied up the code a bit,
592           (pic14printLocals): added in symmetry to printExterns, replaces
593             writeUsedRegs more or less,
594           (picglue): call new pic14_printLocals(),
595         * device/include/pic/pic*.h: removed #pragma memmap directives,
596             information gathered from include/pic/pic14devices.txt
597         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
598
599 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
600
601         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
602
603 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
604
605         * device/include/mcs51/cc2430.h: fixed missing ';'
606
607 2006-12-10 Raphael Neider <rneider AT web.de>
608
609         * device/lib/pic16/libc/stdio/vfprintf.c,
610         * device/lib/pic16/libc/stdio/printf_small.c,
611         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
612           char arguments, as char varargs are cast to int by the caller,
613           hopefully fixes #1604915 (other device libraries are still affected)
614
615 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
616
617         * src/mcs51/ralloc.c (packRegsForAssign),
618         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
619
620 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
621
622         * device/include/malloc.h: removed init_dynamic_memory
623         * device/lib/malloc.c: made init_dynamic_memory static and automatically
624           call it once from malloc. Also use _sdcc_heap[] from _heap.c
625         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
626         * device/lib/libsdcc.lib,
627         * device/lib/Makefile.in,
628         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
629         * doc/sdccman.lyx: documented use of new _heap.c
630         * support/regression/tests/malloc.c: removed init_dynamic_memory
631         * src/cdbFile.c(spacesToUnderscores): new function,
632           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
633           1068030
634         * device/include/tinibios.h: removed defines for putchar and getchar
635         * device/lib/ds390/Makefile.in: added putchar.c
636         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
637
638 2006-12-09 Borut Razem <borut.razem AT siol.net>
639
640         * support/cpp2/sdcc.h: prevent multiple inclusion
641         * support/cpp2/options.h: deleted
642
643 2006-12-08 Borut Razem <borut.razem AT siol.net>
644
645         * support/cpp2/sdcc.h: removed x*alloc() macros
646         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
647         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
648           support/cpp2/sdcpp.sdc: x*alloc files added to the project
649         * support/cpp2/system.h: moved #include "sdcc.h"
650         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
651           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
652           added
653         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
654           -funsigned-char options
655         * support/cpp2/sdcppmain.c: fixed bug 1611411
656
657 2006-12-07 Borut Razem <borut.razem AT siol.net>
658
659         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
660           directive
661
662 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
663
664         * src/SDCCsymt.c (addDecl): fixed bug 1609244
665         * src/SDCCmain.c (linkEdit): fixed bug 1609279
666         * doc/sdccman.lyx,
667         * .version: bumped to 2.6.2 because a) it's been a while
668           b) the linker sources have moved c) the preprocessor is upgraded
669
670 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
671
672         * support/regression/tests/snprintf.c: some checks
673         * lib/src/printf_large.c: %bc: read char instead of int from stack
674
675 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
676
677         * device/include/mcs51/cc2430.h: inserted _XPAGE
678
679 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
680
681         * device/include/mcs51/cc2430.h: added
682
683 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
684
685         * device/include/asm/default/features.h,
686         * device/include/asm/ds390/features.h,
687         * device/include/mcs51/at89s53.h,
688         * device/include/ser.h,
689         * device/include/ser_ir.h,
690         * device/include/serial.h: changed keywords to double underscore variants,
691           fixes bug 1590261 some more, thanks Steven Borley
692
693 2006-12-01 Raphael Neider <rneider AT web.de>
694
695         * src/pic/pcode.c (register_reassign): do not crash on recursive code
696           but emit warning (recursion is not supported for pic14)
697
698 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
699
700         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
701         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
702
703 2006-11-30 Raphael Neider <rneider AT web.de>
704
705         * src/pic/device.c (dump_sfr): always emit symbols
706         * src/pic/glue.c (pic14printPublics): fixed typo
707
708 2006-11-30 Raphael Neider <rneider AT web.de>
709
710         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
711           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
712           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
713            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
714            a sharebank, use a non-shared bank for the stack if none available
715         * src/pic/device.h (struct memRange): added linked list next field,
716           added prototypes for above functions
717         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
718           (typeRegWithIdx): accept fixed and unfixed stack registers
719         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
720           the stack, handle shared and banked stack (except for WSAVE),
721           (insertBankSel): removed useless optimization (will never fire),
722           (FixRegisterBanking): added optimization for devices with only one
723           possibly aliased bank of memory, like 16f84
724         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
725           devices have no SHAREBANK in the linker script
726         * device/include/pic/pic14devices.txt: documented memmap
727         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
728
729 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
730
731         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
732           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
733           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
734           genhc08Code): switched most of the D (debug) macros to DD (detailed
735           debug) macros to better control clutter in the generated .asm file.
736         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
737           genRightShift): fixed bug with non-constant bit shift stored to
738           a volatile result (SF Open Discussion forum thread #1616749).
739           Single byte case is not yet optimized.
740
741 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
742
743         * device/include/asm/mcs51/features.h,
744         * device/include/malloc.h,
745         * device/include/stdio.h: changed keywords to double underscore variants,
746           fixes bug 1590261
747
748 2006-11-27 Borut Razem <borut.razem AT siol.net>
749
750         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
751           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
752           support/cpp2/output.h, support/cpp2/cppinit.c,
753           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
754           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
755           support/cpp2/cppdefault.c, support/cpp2/system.h,
756           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
757           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
758           support/cpp2/prefix.c, support/cpp2/except.h,
759           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
760           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
761           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
762           support/cpp2/version.c, support/cpp2/cppmain.c,
763           support/cpp2/version.h, support/cpp2/hashtable.c,
764           support/cpp2/cpperror.c:
765           synchronized with GCC CPP release version 3.3.6,
766           the latest where cppmain.c still exists.
767         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
768           support/cpp2/sdcppinit.c: added
769
770 2006-11-27 Borut Razem <borut.razem AT siol.net>
771
772         * support/cpp2/cpplex.c:
773           fixed _asm ... _endasm handling bug, introduce with GCC CPP
774           synchronization
775         * support/cpp2/cpplib.c: removed definitions of unused variables
776
777 2006-11-26 Borut Razem <borut.razem AT siol.net>
778
779         * support/cpp2/libiberty.h: commented out x*alloc() declarations
780           since they are redefined by macros in support/cpp2/sdcc.h
781         * support/cpp2/sdcc.h: x*alloc macro redefinition
782
783 2006-11-25 Borut Razem <borut.razem AT siol.net>
784
785         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
786           support/cpp2/configure, support/cpp2/Makefile.in,
787           support/cpp2/cppfiles.c, support/cpp2/output.h,
788           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
789           support/cpp2/config.h, support/cpp2/cpplib.h,
790           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
791           support/cpp2/cppdefault.c, support/cpp2/config.in,
792           support/cpp2/system.h, support/cpp2/cpplex.c,
793           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
794           support/cpp2/cppdefault.h, support/cpp2/prefix.c
795           support/cpp2/hwint.h, support/cpp2/mbchar.h,
796           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
797           support/cpp2/configure.in, support/cpp2/intl.h,
798           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
799           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
800           support/cpp2/version.c, support/cpp2/cppmain.c,
801           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
802           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
803           support/cpp2/cpperror.c,
804           support/cpp2/libiberty/safe-ctype.c,
805           support/cpp2/libiberty/safe-ctype.h,
806           support/cpp2/libiberty/splay-tree.c,
807           support/cpp2/libiberty/obstack.c,
808           support/cpp2/libiberty/lbasename.c,
809           support/cpp2/libiberty/splay-tree.h,
810           support/cpp2/libiberty/obstack.h:
811           synchronized with GCC CPP release version 3.2.3,
812           the latest before integration of cpp into gcc
813         * support/cpp2/except.h, support/cpp2/line-map.c,
814           support/cpp2/line-map.h,
815           support/cpp2/libiberty/hex.c,
816           support/cpp2/libiberty/concat.c,
817           support/cpp2/libiberty/filenames.h: added
818         * support/cpp2/intl.c: deleted
819
820 2006-11-24 Borut Razem <borut.razem AT siol.net>
821
822         * src/SDCC.y: enabled compilation of empty source file
823         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
824           "ISO C forbids an empty source file"
825         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
826           if all the code is ifdefed out.
827
828 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
829
830         * src/hc08/gen.c (genPcall): fix for bug #1601032
831
832 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
833
834         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
835         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
836         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
837         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
838         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
839         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
840         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
841         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
842         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
843         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
844         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
845         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
846         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
847         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
848         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
849           Renamed to all upper case as per the standard set by SiLabs
850
851 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
852
853         * device/include/mcs51/C8051F520.h: new, added
854         * device/include/mcs51/compiler.h: added link about predefined macros
855
856 2006-11-23 Raphael Neider <rneider AT web.de>
857
858         * src/regression/Makefile: add -L path to fresh library
859         * src/regression/simulate: emphasize FAILED output
860         * src/regression/create_stc: output _failures from gpsim
861         * src/regression/compare4.c,
862         * src/regression/rotate6.c: fixed char literals,
863           all compile, all run =8-D
864
865         * src/pic/pcode.h: added isPCASMDIR macro
866         * src/pic/gen.c (genAnd): fixed bit offset
867         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
868           packBits): unified register numbering schemes,
869           (newReg): do not insert stack registers into hash table,
870           (initStack): unpinned pseudo stack, simplified,
871           (typeRegWithIdx): fixed retrieval of stack registers,
872         * src/pic/pcode.c (addpCodeComment,sameBank): added,
873           (pCodeReplace): removed invalid assertion,
874           (insertPCodeInstruction): fixed newly added labels,
875           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
876           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
877           DumpFlow): removed unsed (broken?) code,
878           (insertBankSel): prevent STATUS from being BANKSELed,
879           (FixRegisterBanking): rewritten from scratch, implemented generic
880             optimizations (suppress BANKSELs to same register and to registers
881             present in all banks),
882           (AnalyzeBanking): update flow after BANKSELection
883
884         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
885             sharebank, let linker place it, mark STKxx symbols as emitted
886
887 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
888
889         * src/regression/arrays.c,
890         * src/regression/bank1.c,
891         * src/regression/bool2.c,
892         * src/regression/compare7.c,
893         * src/regression/compare8.c,
894         * src/regression/compare9.c,
895         * src/regression/compare10.c,
896         * src/regression/configword.c,
897         * src/regression/for.c,
898         * src/regression/mult1.c,
899         * src/regression/pointer1.c,
900         * src/regression/rotate6.c,
901         * src/regression/string1.c,
902         * src/regression/struct1.c,
903         * src/regression/Makefile: make PIC14 regression tests run again
904           (3 fail, 6 won't compile)
905
906 2006-11-21 Raphael Neider <rneider AT web.de>
907
908         * device/include/pic16/pic18f4550.h,
909         * device/include/pic16/pic18f4455.h,
910         * device/lib/pic16/libdev/pic18f4550.c,
911         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
912         * configure.in: removed superfluous closing bracket
913
914 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
915
916         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
917           always positive.
918
919 2006-11-21 Raphael Neider <rneider AT web.de>
920
921         * src/pic/device.{c,h}: added pic14_getPIC()
922         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
923           (genAnd): added PIC code for one case, fixes #1597044
924         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
925           SFRs that are present in all banks (e.g., STATUS)
926
927 2006-11-20 Raphael Neider <rneider AT web.de>
928
929         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
930           INCFSZ/INCFSZW and declared them as changing Z bit,
931           (insertPCodeInstruction): correctly invert the above instructions,
932           fixes #1599333,
933           (DoBankSelect): don't panic on po_immediates
934
935 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
936
937         * as/link/aslink.h,
938         * as/link/mcs51/lkihx.c (newArea),
939         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
940         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
941
942 2006-11-11 Raphael Neider <rneider AT web.de>
943
944         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
945           bitfield symbols, fixes #1579535 (once more...).
946
947 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
948
949         * support/regression/generate-cases.py,
950         * support/regression/fwk/include/testfwk.h,
951         * support/regression/fwk/lib/testfwk.c: used code pointers,
952           (about 50kByte less code generated for mcs51)
953
954 2006-11-06 Borut Razem <borut.razem AT siol.net>
955
956         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
957           debugger/mcs51/configure: fixed failed check because the function
958           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
959           who submitted the patch for gpsim.
960         * debugger/mcs51/configure.in: removed the result message
961         * debugger/mcs51/Makefile.in: fixed the config.status warning
962           "... seems to ignore the --datarootdir setting"
963
964 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
965
966         * device/include/mcs51/c8051f020.h,
967         * device/include/mcs51/c8051f040.h,
968         * device/include/mcs51/c8051f060.h,
969         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
970         * src/z80/gen.c (gencjneshort),
971         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
972
973 2006-10-31 Borut Razem <borut.razem AT siol.net>
974
975         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
976           debugger/mcs51/configure: get readline version
977
978 2006-10-30 Borut Razem <borut.razem AT siol.net>
979
980         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
981         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
982           debugger/mcs51/configure: locate readline even when cross compiling
983         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
984
985 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
986
987         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
988           serial port.
989
990 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
991
992         * device/include/malloc.h,
993         * device/lib/calloc.c,
994         * device/lib/free.c,
995         * device/lib/malloc.c,
996         * device/lib/realloc.c: moved definition of struct into sources
997         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
998
999 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1000
1001         * as/asx8051.dsp: corrected output directories
1002         * as/link/hc08: new directory for hc08 linker
1003         * as/hc08/aslink.h,             as/link/aslink.h,
1004         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
1005         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
1006         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
1007         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
1008         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
1009         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
1010         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
1011         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
1012         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
1013         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
1014         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
1015         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
1016         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
1017         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
1018         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
1019         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
1020         * as/link/hc08/conf.mk,
1021         * configure,
1022         * configure.in,
1023         * Makefile.in,
1024         * sdcc.dsw: moved hc08 linker to as/link/hc08
1025         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
1026         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
1027         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
1028         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
1029         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
1030         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
1031         * as/link/mcs51/aslink.dsp,
1032         * as/link/mcs51/Makefile.in: factored out the common files
1033         * as/hc08/lkstore.c: deleted, use the one already in as/link/
1034         * as/clean.mk: extra cleaning common files
1035         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
1036         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
1037         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
1038
1039 2006-10-29 Raphael Neider <rneider AT web.de>
1040
1041         * src/pic/ralloc.c (newReg): create aliases for registers with
1042           multiple names to fix #1579535 and #1584001,
1043           (regWithIdx,dirregWithName): resolve aliases on lookup
1044         * src/pic/pcode.c (DoBankSelect): die with error message on failing
1045           bankselect
1046         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
1047           to prevent build errors on small devices
1048
1049 2006-10-28 Raphael Neider <rneider AT web.de>
1050
1051         * src/pic/gen.c (genFunction,genCall): drop "same code page"
1052           assumption within interrupt handlers, fixes #1584940
1053         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
1054           "emitted" to avoid emitting them again in udata
1055
1056 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1057
1058         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1059         Removed.
1060
1061 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1062
1063         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1064         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
1065         on/off CR to CRLF conversion.
1066
1067 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1068
1069         * doc/sdccman.lyx: updated IRQ section
1070
1071 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1072
1073         * device/lib/serial_io.c: removed
1074         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
1075         replacements for serial_io.c
1076
1077 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
1078
1079         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
1080
1081 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1082
1083         * device/lib/serial_io.c: Default putchar() and getchar() for
1084           mcs51 uses serial port.
1085
1086 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
1087
1088         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
1089
1090 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1091
1092         * support/regression/ports/mcs51/support.c: smaller
1093         _sdcc_external_startup()
1094         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
1095
1096 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
1097
1098         * device/lib/gbz80/crt0.s,
1099         * device/lib/gbz80/crt0_rle.s,
1100         * device/lib/gbz80/div.s,
1101         * device/lib/gbz80/fstubs.s,
1102         * device/lib/gbz80/heap.s,
1103         * device/lib/gbz80/mul.s,
1104         * device/lib/gbz80/putchar.s,
1105         * device/lib/gbz80/stubs.s,
1106         * device/lib/z80/crt0.s,
1107         * device/lib/z80/crt0_rle.s,
1108         * device/lib/z80/div.s,
1109         * device/lib/z80/fstubs.s,
1110         * device/lib/z80/heap.s,
1111         * device/lib/z80/mul.s,
1112         * device/lib/z80/putchar.s,
1113         * device/lib/z80/stubs.s: reverted, I was mistaken
1114
1115 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1116
1117         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
1118         * support/regression/ports/mcs51/support.c: removed race
1119         condition on TI in _putchar allowing to use serial port mode 0
1120
1121 2006-10-20 Borut Razem <borut.razem AT siol.net>
1122
1123         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
1124
1125 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
1126
1127         * device/lib/gbz80/crt0.s,
1128         * device/lib/gbz80/crt0_rle.s,
1129         * device/lib/gbz80/div.s,
1130         * device/lib/gbz80/fstubs.s,
1131         * device/lib/gbz80/heap.s,
1132         * device/lib/gbz80/mul.s,
1133         * device/lib/gbz80/putchar.s,
1134         * device/lib/gbz80/stubs.s,
1135         * device/lib/z80/crt0.s,
1136         * device/lib/z80/crt0_rle.s,
1137         * device/lib/z80/div.s,
1138         * device/lib/z80/fstubs.s,
1139         * device/lib/z80/heap.s,
1140         * device/lib/z80/mul.s,
1141         * device/lib/z80/putchar.s,
1142         * device/lib/z80/stubs.s: removed all leading underscores from area names
1143
1144 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
1145
1146         * support/regression/ports/mcs51/support.c: use highest baudrate so the
1147           regression tests are not waiting in the simulator for simulated
1148           transmission of debug output
1149
1150 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1151
1152         * device/lib/printf_large.c: slightly smaller
1153         * doc/sdccman.lyx: do not use spaces within html links
1154
1155 2006-10-16 Borut Razem <borut.razem AT siol.net>
1156
1157         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
1158           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
1159           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
1160           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
1161           debugger/mcs51/configure:
1162           [ 1185668 ] add gnu readline support to sdcdb - enabled
1163
1164 2006-10-16 Raphael Neider <rneider AT web.de>
1165
1166         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
1167           fixes #1577882, removes close to all banking optimizations
1168
1169 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
1170
1171         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
1172           variables in code memory
1173         * support/regression/tests/absolute.c: added test for this
1174
1175 2006-10-15 Raphael Neider <rneider AT web.de>
1176
1177         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
1178           devices,
1179           (BankSelect): emit BANKSEL before touching linker-placed regs,
1180           fixes #1570934
1181
1182 2006-10-10 Raphael Neider <rneider AT web.de>
1183
1184         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
1185         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
1186         * src/pic/main.c (_pic14_parseOptions),
1187         * src/pic/main.h: mostly reverted to previous state, now use results
1188             from SDCCmain.c's argument parsing
1189
1190 2006-10-10 Borut Razem <borut.razem AT siol.net>
1191
1192         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
1193           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
1194           [ 1185668 ] add gnu readline support to sdcdb -
1195           prepared for READLINE, not enabled yet,
1196           thanks to <tal.bav AT gmail.com>
1197
1198 2006-10-10 Raphael Neider <rneider AT web.de>
1199
1200         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
1201         * src/pic16/devices.inc,
1202         * device/include/pic16 (pic18f[24]620.h),
1203         * device/include/pic18fregs.h,
1204         * device/lib/pic16/pics.all,
1205         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
1206             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
1207             Gary Plumbridge and Anton Strobl
1208
1209 2006-10-10 Raphael Neider <rneider AT web.de>
1210
1211         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
1212           --stack-siz=NUM options to configure the argument passing stack
1213         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
1214         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
1215           (pic14_getSharebankSize): obey --stack-siz=NUM,
1216           (pic14_getSharebankAddress): obey --stack-loc=NUM
1217
1218 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1219
1220         * doc/sdccman.lyx: added to the manual
1221         * doc/figures/ddd_example.png: added (neither pdflatex nor
1222         most browsers seem to like the .eps file)
1223
1224 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
1225
1226         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
1227         to /tmp and /var/tmp acc. LSB
1228         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
1229         RESULT_TYPE_IFX
1230         * support/regression/tests/onebyte.c: added test
1231
1232 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1233
1234         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
1235
1236 2006-10-05 Borut Razem <borut.razem AT siol.net>
1237
1238         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
1239           thanks to dfulab:
1240           - sdcc.dsw: changed property eol-style to CRLF
1241           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
1242
1243 2006-10-04 Raphael Neider <rneider AT web.de>
1244
1245         * device/include/pic/{pic16f84.h,pic16f84a.h},
1246         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
1247           from patch #1522504, thanks to Robas Teodor
1248
1249 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
1250
1251         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
1252           fixes bug 1566015
1253
1254 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
1255
1256         * src/pic16/glue.c (pic16emitMaps),
1257         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
1258         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
1259         * device/lib/pic16/libc/string/memcpypgm2ram.c,
1260         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
1261           Philipp Krause
1262         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
1263         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
1264
1265 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1266
1267         * support/librarian/sdcclib.c: Added option -l.
1268         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
1269           usage totals.
1270         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
1271           using Windows command prompt.
1272
1273 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1274
1275         * device/lib/libsdcc.lib: added module rand
1276         * src/ds390/ralloc.c (rematStr),
1277         * src/hc08/ralloc.c (rematStr),
1278         * src/mcs51/ralloc.c (rematStr),
1279         * src/z80/ralloc.c (rematStr): made output more consistent
1280         * src/mcs51/gen.c: cosmetic changes
1281
1282 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1283
1284         * src/port.h: added mem.cabs_name to PORT
1285         * src/ds390/main.c,
1286         * src/hc08/main.c,
1287         * src/mcs51/main.c,
1288         * src/pic16/main.c,
1289         * src/pic/main.c,
1290         * src/xa51/main.c,
1291         * src/z80/main.c: added cabs_name initializers
1292         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
1293           constants
1294           (emitMaps): emit absolutes in code memory into cabs_name
1295         * src/SDCCmem.c,
1296         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
1297         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
1298         * support/regression/fwk/include/testfwk.h: added define for at
1299         * support/regression/tests/absolute.c: added, new
1300
1301 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
1302
1303         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
1304           optimizations, see also patch 887161 by Stas Sergeev
1305         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
1306           to be necessary anymore,
1307           (102, 103, 104, 127): renamed all occurances of bp to _bp
1308
1309 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
1310
1311         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
1312           thanks Weston T. Schmidt for patch 1555221
1313         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
1314         * src/SDCCicode.c(geniCodeMultiply): small optimization
1315
1316 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1317
1318         * device/include/stdlib.h: added rand prototypes
1319         * device/lib/rand.c: new, added
1320         * device/lib/Makefile.in: added rand.c
1321         * src/z80/peeph.def,
1322         * src/z80/peeph-gbz80.def,
1323         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
1324
1325 2006-09-20 Raphael Neider <rneider AT web.de>
1326
1327         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
1328
1329 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
1330
1331         * as/link/aslink.h: cosmetic changes
1332         * as/link/mcs51/Makefile.in,
1333         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
1334
1335 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
1336
1337         * as/link/aslink.h,
1338         * as/link/mcs51/aslink.h,
1339         * as/link/z80/aslink.h: merged and moved to as/link/
1340         * as/link/lkstore.c,
1341         * as/link/mcs51/lkstore.c: moved to as/link/
1342         * as/link/clean.mk: remove *.o
1343         * as/link/mcs51/alloc.h: deleted
1344         * as/link/mcs51/lkarea.c: added lnksect prototype
1345         * as/link/mcs51/lkdata.c,
1346         * as/link/mcs51/lklex.c,
1347         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
1348         * as/link/mcs51/lkmem.c,
1349         * as/link/mcs51/lknoice.c: removed include strcmpi.h
1350         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
1351         * as/link/mcs51/aslink.dsp,
1352         * as/link/mcs51/Makefile.aslink,
1353         * as/link/mcs51/Makefile.bcc,
1354         * as/link/mcs51/Makefile.in: updated for moved files
1355         * as/link/z80/lkarea.c,
1356         * as/link/z80/lkhead.c,
1357         * as/link/z80/lklex.c,
1358         * as/link/z80/lklibr.c,
1359         * as/link/z80/lklist.c,
1360         * as/link/z80/lkmain.c,
1361         * as/link/z80/lkrloc.c,
1362         * as/link/z80/lksym.c: synced with mcs51
1363         * as/link/z80/lkdata.c,
1364         * as/link/z80/lkeval.c,
1365         * as/link/z80/lkihx.c,
1366         * as/link/z80/lks19.c: cosmetic changes
1367         * as/link/z80/Makefile.in,
1368         * as/link/z80/linkgbz80.dsp,
1369         * as/link/z80/linkz80.dsp: updated for moved files
1370
1371 2006-09-16 Borut Razem <borut.razem AT siol.net>
1372
1373         * debugger/mcs51/sdcdb.c: partially fixed
1374           [ 1203664 ] sdcdb fails to open files w. two "." periods
1375         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
1376           debugger/mcs51/symtab.h: fixed indenting
1377         * configure.in, configure: up to date with latest Maarten's changes
1378
1379 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
1380
1381         as/link/mcs51
1382         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
1383         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
1384         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
1385         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
1386         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
1387         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
1388         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
1389         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
1390         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
1391         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
1392         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
1393         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
1394         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
1395         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
1396         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
1397         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
1398         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
1399         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
1400         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
1401         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
1402         as/link/mcs51/alloc.h,
1403         as/link/mcs51/clean.mk,
1404         as/link/mcs51/conf.mk,
1405         as/link/mcs51/Makefile.bcc,
1406         as/link/mcs51/Makefile.in,
1407         as/link/mcs51/readme.390,
1408         as/link/mcs51/strcmpi.c,
1409         as/link/mcs51/strcmpi.h,
1410         as/mcs51/clean.mk,
1411         as/mcs51/Makefile.bcc,
1412         as/mcs51/Makefile.in,
1413         configure,
1414         Makefile.in,
1415         sdcc.dsw: moved mcs51 linker to as/link/mcs51
1416
1417 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
1418
1419         * as/link,
1420         * as/link/Makefile.in,
1421         * as/link/z80/linkgbz80.dsp,
1422         * as/link/z80/linkz80.dsp,
1423         * configure,
1424         * link,
1425         * link/clean.mk,
1426         * link/Makefile.in,
1427         * link/README,
1428         * link/z80,
1429         * link/z80/aslink.h,
1430         * link/z80/clean.mk,
1431         * link/z80/conf.mk,
1432         * link/z80/linkgbz80.dsp,
1433         * link/z80/linkz80.dsp,
1434         * link/z80/lkarea.c,
1435         * link/z80/lkdata.c,
1436         * link/z80/lkeval.c,
1437         * link/z80/lkgb.c,
1438         * link/z80/lkgg.c,
1439         * link/z80/lkhead.c,
1440         * link/z80/lkihx.c,
1441         * link/z80/lklex.c,
1442         * link/z80/lklibr.c,
1443         * link/z80/lklist.c,
1444         * link/z80/lkmain.c,
1445         * link/z80/lkrloc.c,
1446         * link/z80/lks19.c,
1447         * link/z80/lksym.c,
1448         * link/z80/Makefile.in,
1449         * Makefile.in,
1450         * sdcc.dsw: moved link/ to as/link/
1451
1452 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
1453
1454         * as/mcs51/i51mch.c (machine): fixed warning
1455
1456 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1457
1458         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
1459
1460 2006-09-09 Borut Razem <borut.razem AT siol.net>
1461
1462         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
1463           sdcdb WIN32 native port
1464         * src/clean.mk: fixed
1465
1466 2006-09-08 Borut Razem <borut.razem AT siol.net>
1467
1468         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
1469
1470 2006-09-08 Raphael Neider <rneider AT web.de>
1471
1472         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
1473         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
1474             to gplink to disable processor mismatch warning and to allow
1475             the use of devices with only aliased (shared) memory banks,
1476           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
1477
1478 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1479
1480         * doc/sdccman.lyx: Some re-formating plus example on using
1481           #pragma preproc_asm +/-
1482
1483 2006-09-07 Borut Razem <borut.razem AT siol.net>
1484
1485         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
1486           section
1487
1488 2006-09-06 Borut Razem <borut.razem AT siol.net>
1489
1490         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
1491           line at sdcc.nsi:153
1492         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
1493
1494 2006-09-05 Borut Razem <borut.razem AT siol.net>
1495
1496         * configure.in, configure: support for winsock2
1497         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
1498           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
1499           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
1500           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
1501           debugger/mcs51/symtab.h: sdcdb WIN32 native port
1502
1503 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
1504
1505         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
1506           and OP_DEFS
1507         * support/regression/tests/bug1551947.c: new, added
1508         * src/SDCCsymt.h: strings are char* not byte*
1509
1510 2006-09-05 Raphael Neider <rneider AT web.de>
1511
1512         * device/lib/pic16/libdev/pic18f4550.c,
1513           device/include/pic16/pic18f4550.h: added PORTD/TRISD
1514             declarations/definitions from patch #1520949
1515
1516 2006-09-05 Raphael Neider <rneider AT web.de>
1517
1518         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
1519           byte-aligned bitfields, fixes #1539278
1520
1521 2006-09-05 Raphael Neider <rneider AT web.de>
1522
1523         * src/pic/gen.c (genReceive): skip unreferenced arguments,
1524           fixes #1544120
1525
1526 2006-09-04 Borut Razem <borut.razem AT siol.net>
1527
1528         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
1529         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
1530           -mno-cygwin is a part of the compiler name
1531         * support/scripts/sdcc_mingw32: don't disable ucsim
1532
1533 2006-09-03 Borut Razem <borut.razem AT siol.net>
1534
1535         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
1536         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
1537
1538 2006-09-03 Raphael Neider <rneider AT web.de>
1539
1540         * src/pic/ralloc.c,
1541         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
1542           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
1543           fixes #1550049
1544
1545 2006-09-01 Borut Razem <borut.razem AT siol.net>
1546
1547         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
1548           to make ppc-osx happy
1549
1550 2006-08-31 Borut Razem <borut.razem AT siol.net>
1551
1552         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
1553         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1554         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1555         * support/regression/ports/ds390/spec.mk,
1556           support/regression/ports/mcs51/spec.mk,
1557           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
1558           To run regression tests in mingw environment:
1559           make DEV_NULL=NUL CC=gcc
1560
1561 2006-08-30 Borut Razem <borut.razem AT siol.net>
1562
1563         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
1564           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
1565           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
1566           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
1567           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
1568           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
1569           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
1570           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
1571           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
1572           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
1573           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
1574           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
1575           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
1576           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
1577           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
1578           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
1579           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
1580           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
1581           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
1582           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
1583           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
1584           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
1585           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
1586           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
1587           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
1588           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
1589           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
1590           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
1591           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
1592           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
1593           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
1594           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
1595           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
1596           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
1597           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
1598           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
1599           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1600           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
1601           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
1602           ucsim WIN32 native port
1603
1604 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1605
1606         * doc/sdccman.lyx: added note on dynamic memory heap initialization
1607
1608 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
1609
1610         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
1611         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
1612
1613 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
1614
1615         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
1616         * support/regression/tests/bug1546986.c: new, added
1617         * as/mcs51/.cvsignore,
1618         * debugger/mcs51/.cvsignore,
1619         * src/.cvsignore: deleted
1620
1621 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1622
1623         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
1624           definitions)
1625
1626 2006-08-20 Borut Razem <borut.razem AT siol.net>
1627
1628         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
1629           removed cl_listen_console::match(), cl_console::match(),
1630           restructured cl_commander::proc_input()
1631
1632 2006-08-16 Borut Razem <borut.razem AT siol.net>
1633
1634         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
1635           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
1636           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
1637
1638 2006-08-14 Borut Razem <borut.razem AT siol.net>
1639
1640         * support/regression/Makefile.in,
1641           support/regression/ports/pic14/gpsim.cmd,
1642           support/regression/ports/pic14/spec.mk,
1643           support/regression/ports/pic14/support.c:
1644           added pic14 regression test
1645
1646 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
1647
1648         * as/doc/asxhtm.html: documented changed ABS behaviour
1649         * as/doc/README: fixed some typos
1650
1651 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
1652
1653         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
1654           not defined on host
1655
1656 2006-08-12 Borut Razem <borut.razem AT siol.net>
1657
1658         * support/regression/fwk/include/testfwk.h,
1659           support/regression/fwk/lib/testfwk.c,
1660           support/regression/generate-cases.py,
1661           support/regression/Makefile.in:
1662           regression test framework does not depend on function pointers and
1663           variable arguments
1664
1665 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1666
1667         * device/include/stddef.h: c temporary hack to fix bug 1518273
1668
1669 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1670
1671         * device/include/mcs51/cc2510fx.h: added
1672         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
1673           to projects.
1674
1675 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1676
1677         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
1678         * as/z80/Makefile.in: added strcmpi.c
1679         * as/z80/z80adr.c: added upper case registers and lower case conditionals
1680         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
1681
1682 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
1683
1684         * device/lib/gbz80/asm_strings.s,
1685         * device/lib/gbz80/crt0_rle.s,
1686         * device/lib/gbz80/div.s,
1687         * device/lib/gbz80/mul.s,
1688         * device/lib/gbz80/shift.s,
1689         * device/lib/z80/asm_strings.s,
1690         * device/lib/z80/crt0_rle.s,
1691         * device/lib/z80/div.s,
1692         * device/lib/z80/mul.s,
1693         * device/lib/z80/shift.s: changed to all lower case menmonics except the
1694           flags which are all upper case
1695
1696 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1697
1698         * as/z80/asm.h: made CASE_SENSITIVE 1
1699         * link/z80/aslink.h: made CASE_SENSITIVE 1
1700         * src/z80/gen.c (throughout): made all conditionals upper case
1701         * support/regression/tests/bug1503067.c: new
1702
1703 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1704
1705         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
1706           (shiftIntoPair): added case 2 for PAIR_IY,
1707           (setupToPreserveCarry): replaced parameters with iCode and check if
1708            PAIR_DE is in use to fix bug 1399290,
1709           (genPlus, genMinus): updated call to setupToPreserveCarry
1710         * support/regression/tests/bug1399290.c: new
1711
1712 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
1713
1714         * device/lib/Makefile.in (Z80SOURCES): enabled float support
1715         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
1716         * src/ds390/gen.c (shiftRLong),
1717         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
1718         * src/mcs51/gen.c (sameReg): changed to sameByte,
1719           (xch_a_aopGet): new,
1720           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
1721            shiftRLong): fixed bug 1533966
1722         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
1723           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
1724         * support/regression/Makefile.in: disabled z80, enabled ucz80
1725         * support/regression/tests/float_trans.c: enabled test for z80 and host
1726         * support/regression/tests/shifts2.c: new, for testing bug 1533966
1727
1728 2006-08-01 Borut Razem <borut.razem AT siol.net>
1729
1730         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
1731           comparison is always false due to limited range of data type
1732           on PPC64 machine (openpower-linux1) where "char = unsigned char"
1733
1734 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
1735
1736         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
1737         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
1738         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
1739         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
1740
1741 2006-07-31 Borut Razem <borut.razem AT siol.net>
1742
1743         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
1744           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
1745           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
1746           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
1747           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
1748           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
1749           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
1750           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
1751           enable ucsim mingw compilation. Serial port is disabled,
1752           since it uses termios.h API, which is not available on native
1753           WIN32
1754
1755 2006-07-31 Borut Razem <borut.razem AT siol.net>
1756
1757         * Small Device C Compiler 2.6.0 released
1758         * support/scripts/sdcc.nsi: added FULL_DOC option
1759         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
1760
1761 2006-07-28 Borut Razem <borut.razem AT siol.net>
1762
1763         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
1764         * doc/INSTALL.txt: updated
1765
1766 2006-07-27 Borut Razem <borut.razem AT siol.net>
1767
1768         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
1769           device/lib/pic/libdev/Makefile.in: fixed bug
1770           [ 1438354 ] pic libsdcc: distclean doesn't work
1771         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
1772           device/lib/pic16/libio/Makefile.in: fixed bug
1773           [ 1438344 ] pic16 lib: clean doesn't work properly
1774         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
1775
1776 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
1777
1778         * device/lib/pic/libsdcc/fsdiv.c,
1779         * device/lib/pic/libsdcc/fsmul.c,
1780         * device/lib/pic16/libsdcc/float/fsdiv.c,
1781         * device/lib/pic16/libsdcc/float/fsmul.c,
1782         * device/lib/_fsdiv.c,
1783         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
1784         * support/regression/tests/bug1520966.c: added
1785         * doc/knownbugs.html: removed [ 1520966 ] from the list
1786
1787 2006-07-25 Borut Razem <borut.razem AT siol.net>
1788
1789         * configure.in, configure, sdccconf_in.h: fixed bug
1790           [ 1519095 ] regression test onebyte.c fails on ppc64 host
1791         * doc/knownbugs.html: removed [ 1519095 ] from the list
1792
1793 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
1794
1795         * doc/knownbugs.html: added, contains list of known bugs at release
1796         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
1797
1798 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1799
1800         * device/include/mcs51/compiler.h: added SFRX for xdata based special
1801           function registers and corrected defaults with additional warning
1802         * device/lib/malloc.c: cosmetic changes
1803         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
1804         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
1805           (fillGaps): and used it
1806
1807 2006-07-20 Raphael Neider <rneider AT web.de>
1808
1809         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
1810           output unless SDCCPICDEBUG is set
1811         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
1812           output if SILENT is set
1813
1814 2006-07-11 Borut Razem <borut.razem AT siol.net>
1815
1816         * doc/README.txt: updated
1817
1818 2006-07-10 Borut Razem <borut.razem AT siol.net>
1819
1820         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
1821           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
1822           in WIN32 installation
1823         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
1824           release candidate 1
1825
1826 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
1827
1828         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
1829         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
1830
1831 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
1832
1833         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
1834
1835 2006-07-06 Borut Razem <borut.razem AT siol.net>
1836
1837         * support/regression/tests/bitfields.c:
1838           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
1839         * support/regression/tests/constantRange.c:
1840           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
1841
1842 2006-07-04 Borut Razem <borut.razem AT siol.net>
1843
1844         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
1845           src/port.mk,
1846           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1847           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1848           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1849           reverted changes from 2006-07-03
1850         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
1851         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
1852           added CPPFLAGS, used by the host port
1853
1854 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
1855
1856         * support/regression/valdiag/tests/switch.c,
1857         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
1858         * support/regression/tests/libmullong.c: fixed for host
1859         * support/regression/ports/host/spec.mk: disable all warnings for host,
1860         SDCC runs with --less-pedantic too
1861
1862 2006-07-03 Borut Razem <borut.razem AT siol.net>
1863
1864         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
1865           defined CPPFLAGS
1866         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
1867         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1868           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1869           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1870           include ../port.mk
1871         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
1872           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1873           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1874           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
1875
1876 2006-07-02 Raphael Neider <rneider AT web.de>
1877
1878         * src/pic16/devices.inc,
1879         * device/include/pic16/pic18fregs.h,
1880         * device/include/pic16/pic18f4550.h,
1881         * device/lib/pic16/pics.all,
1882         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
1883
1884 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
1885
1886         * as/hc08/lkaomf51.c (OutputName),
1887         * as/mcs51/lkaomf51.c (OutputName),
1888         * as/z80/asmain.c (asmbl),
1889         * src/ds390/main.c (asmLineNodeFromLineNode),
1890         * src/hc08/ralloc.c (hc08_assignRegisters),
1891         * src/mcs51/main.c (asmLineNodeFromLineNode),
1892         * src/xa51/ralloc.c (checkRegMask),
1893         * src/xa51/gen.c (emitcode),
1894         * src/z80/gen.c (_emit2),
1895         * src/SDCCast.c (searchLitOp),
1896         * src/SDCCglobl.h,
1897         * support/packihx/packihx.c,
1898         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
1899         * src/ds390/gen.c (aopPutUsesAcc),
1900         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
1901         * support/regression/tests/libmullong.c (mullong_wrapper),
1902         * src/SDCCsymt.c (powof2),
1903         * src/SDCCast.c,
1904         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
1905         * src/SDCCsymt.h: added TYPE_TARGET_*
1906         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
1907         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
1908         SDCCast because 1) header problems 2) this is the right place
1909         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
1910         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
1911         prototype
1912
1913 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
1914
1915         * src/SDCCicode.h: removed buggy semicolon in unused macro
1916         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
1917         search for previous definiton of auto symbols too,
1918         (findPrevUse): fixed logic of emitWarnings
1919
1920 2006-06-26 Raphael Neider <rneider AT web.de>
1921
1922         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
1923           PCLATH and PCLATU on interrupts, potentially fixes #1505141
1924
1925 2006-06-25 Raphael Neider <rneider AT web.de>
1926
1927         * device/lib/pic/libm: NEW, added math library functions
1928         * device/lib/pic/libsdcc: NEW; added float support functions
1929         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
1930         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
1931           NEW, added math related headers
1932         * device/include/asm/pic/features.h: NEW
1933         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
1934           (popGet): allow larger offsets for AOP_PCODE,
1935           (genDataPointerSet): handle literals explicitly, more debug output,
1936           (genAssign): fixed for float using aopLiteral ;-)
1937         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
1938           GOTO initialisation routine
1939         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
1940           flag on registers, fixes #1469043 (local variables do not work)
1941         * src/pic/main.c (_pic14_do_link),
1942         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
1943           available
1944
1945 2006-06-25 Borut Razem <borut.razem AT siol.net>
1946
1947         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
1948           characters printed (not including the trailing '\0' used to end
1949           output to strings). Problem detected in regression test bug-927659.c.
1950           NOTE: printf() family functions should return int instead
1951           unsigned int!
1952         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
1953           specifier are printed as themselves
1954         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
1955           support flags, width and precision specifiers
1956
1957 2006-06-24 Borut Razem <borut.razem AT siol.net>
1958
1959         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
1960           to the list of sdcc tagrets not supporting bit type
1961         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
1962           testfor pic16 due to bug:
1963           [ 1511794 ] pic16: regression test bug-895992.c fails
1964
1965 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
1966
1967         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
1968         * src/SDCCglue.c (initPointer), fixed bug 1496419
1969         * support/regression/tests/bug1496419.c: new, added
1970
1971 2006-06-22 Borut Razem <borut.razem AT siol.net>
1972
1973         * support/regression/ports/pic16/support.c: use gpsim usart module from
1974           libgpsim_modules library
1975
1976 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1977
1978         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
1979         IP0H to IPH0.
1980
1981 2006-06-19 Raphael Neider <rneider AT web.de>
1982
1983         * src/pic/glue.h,src/pic16/glue.h: added prototypes
1984         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
1985           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
1986           (pic14printExterns,pic14printPublics,pic16printPublics,
1987           pic16_printExterns): use new functions to emit symbols
1988           (picglue,pic16glue): emit publics before emitting externs
1989         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
1990           locally defined functions to avoid bug #1443651
1991         * support/regression/tests/bug-716242.c: removed pic16 workaround
1992         * support/regression/ports/pic16/spec.mk: ignore errors during build
1993
1994 2006-06-19 Raphael Neider <rneider AT web.de>
1995
1996         * src/pic/glue.h: added pic14aopLiteral prototype
1997         * src/pic/glue.c (pic14aopLiteral): return unsigned int
1998         * src/pic/gen.c: removed stdint.h dependency
1999           (aopGet): use Safe_strdup()
2000           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
2001           (genDataPointerSet): use pic14aopLiteral()
2002         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
2003           for pic16; thanks to Bernhard and Maarten
2004
2005 2006-06-18 Borut Razem <borut.razem AT siol.net>
2006
2007         * support/regression/tests/structflexarray.c: flexible array members
2008           not supported by gcc < 3
2009         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
2010           GUI tool by default
2011         * src/pic/gen.c: don't include [p]strdin.h on solaris
2012         * support/Util/pstdint.h: addad svn attributes
2013         * support/regression/tests/constantRange.c,
2014           support/regression/tests/rotate.c: include inttypes.h instead
2015           stdint.h on solaris, addad svn attributes
2016
2017 2006-06-18 Raphael Neider <rneider AT web.de>
2018
2019         * src/SDCCsymt.c (initCSupport): change return type of divschar to
2020           int for PIC16
2021         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
2022           (pic16_genMinusBits): simplified sign-extension
2023           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
2024             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
2025             adjusted to correctly handle mixed-signed operands, disabled
2026             now unused multiplciation routines
2027         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
2028           (assignResultValue): added argument denoting the size of the result
2029             as returned by the function (fixes upcasts in assigning from
2030             function calls: char foo(); int i = foo();)
2031           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
2032             function result to assignResultValue
2033           (genMult): disabled inlined multiplication code
2034           (genDiv): augmented to also handle the modulus operator, fixed to
2035             handle mixed-signed operands correctly
2036           (genMod): simply call genDiv, disabled unused code
2037           (genAssign): fixed missing (sign-)extension on result
2038         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
2039             valid char operands, allow signed operands for native code, added
2040             division and modulo operator handling
2041         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
2042
2043         As a consequence, onebyte.c (if split into two files) and muldiv.c
2044         pass regression tests.
2045
2046 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2047
2048         * doc/Makefile.in: two runs of makeindex seem needed to get
2049         correct page references in the index of sdccman.pdf
2050         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
2051
2052 2006-06-17 Borut Razem <borut.razem AT siol.net>
2053
2054         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
2055
2056 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2057
2058         * doc/sdccman.lyx: updated, added (porting source code, debugging),
2059         mentioned ec2drv and paulmon
2060
2061 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2062
2063         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
2064           consecutive abs areas
2065           (find_empty_space, allocate_space): added map to handle codemap or
2066            xdatamap,
2067           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
2068            absolute idata and xdata
2069         * as/mcs51/lkmem.c (summary2): updated legend
2070
2071 2006-06-16 Raphael Neider <rneider AT web.de>
2072
2073         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
2074
2075 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
2076
2077         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
2078           1208515
2079         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
2080
2081 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
2082
2083         * src/port.h (struct PORT): added field gp_tags, to hold the tag
2084         value of generic pointers,
2085         * src/avr/main.c,
2086           src/ds390/main.c,
2087           src/hc08/main.c,
2088           src/izt/i186.c,
2089           src/izt/tlcs900h.c,
2090           src/mcs51/main.c,
2091           src/pic/main.c,
2092           src/pic16/main.c,
2093           src/xa51/main.c,
2094           src/z80/main.c: PORT structure, added elements for gp_tags field,
2095         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
2096         fields in the PORT structure of each port,
2097         * src/SDCCast.c (decorateType): allow processing of generic pointers
2098         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
2099         S_FIXED symbols
2100
2101 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
2102
2103         * link/z80/lkgb.c,
2104         * link/z80/lkgg.c,
2105         * src/pic16/gen.c,
2106         * src/pic16/main.c,
2107         * src/pic16/pcode.c,
2108         * src/pic/main.c,
2109         * src/pic/pcoderegs.c,
2110         * src/SDCCicode.c,
2111         * src/SDCCmain.c,
2112         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
2113           bug 1504689 on minGW
2114
2115 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2116
2117         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
2118
2119 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
2120
2121         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
2122
2123 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
2124
2125         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
2126           for optimization
2127
2128 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
2129
2130         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
2131         to a char variable. Fixed bug #1504211
2132         * device/include/pic16/adc.h,
2133         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
2134         and fixed bug #1364390
2135
2136 2006-06-10 Borut Razem <borut.razem AT siol.net>
2137
2138         * CVSROOT: removed the CVS left-over
2139
2140 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2141
2142         * as/hc08/asmain.c (asexit),
2143         * as/hc08/lkmain.c (lkexit),
2144         * as/mcs51/asmain.c (asexit),
2145         * as/mcs51/lkmain.c (lkexit),
2146         * src/SDCCglue.c (DEFSETFUNC),
2147         * src/SDCCmain.c (linkEdit, assemble),
2148         * support/librarian/sdcclib.c (AddRel),
2149           replaced unlink() by standard C remove()
2150         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
2151         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
2152           gatherImplicitVariables): new, added to fix bug 608752,
2153           (createFunction): added gatherImplicitVariables()
2154         * src/SDCCast.h: added createRMW prototype
2155         * src/SDCCsymt.h (struct symbol): added infertype
2156         * support/regression/tests/bug608752.c: new, added
2157
2158 2006-06-10 Raphael Neider <rneider AT web.de>
2159
2160         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
2161           multibyte dummy reads (fixes #1503234)
2162
2163 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2164
2165         * device/include/mcs51/compiler.h: new, added header file to enable
2166           creating common sfr definition header files for different compilers
2167
2168 2006-06-05 Raphael Neider <rneider AT web.de>
2169
2170         * src/pic16/{pcode.h,genarith.c}:
2171           introduced pCodeOp combining any two pCodeOps (previously only
2172           two register operands could be combined), removed pcop2 from
2173           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
2174         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
2175         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
2176           rewritten to use new PO_TWO_OPS
2177         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
2178         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
2179           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
2180           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
2181           (pic16_get_op): embraced return arg to allow #define return(x),
2182             added new case for combined opcodes
2183           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
2184           (pic16_pCode2str,pic16_getRegFrompCodeOp,
2185            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
2186
2187 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
2188
2189         * src/SDCCval.c (checkConstantRange): added
2190         * src/SDCCval.h: added checkConstantRange
2191         * support/Util/SDCCerr.c,
2192         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
2193         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
2194         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
2195         * src/SDCCast.c (decorateType): added checkConstantRange,
2196         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
2197         can be emitted with the correct always true/false warning,
2198         added optimization for double '!';
2199         result of decorateType() must be assigned back to the tree, because
2200         decorateType() can change the tree
2201         * src/SDCCicode.c (geniCodeLogic),
2202         (geniCodeAssign): replaced new checkConstantRange, added warnings,
2203         (checkConstantRange): removed, it was only a fragment which never
2204         emitted a warning
2205         * src/SDCCsymt.c (computeType): fixed promotion for
2206         "-1 < (unsigned bit) b"
2207         * src/pic/ralloc.c (packRegsForAssign),
2208         * src/pic16/ralloc.c (packRegsForAssign),
2209         * src/hc08/ralloc.c (packRegsForAssign),
2210         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
2211         from mcs51
2212         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
2213         * support/regression/tests/constantRange.c: added
2214         * support/valdiag/tests/constantRange.c: added
2215         * support/valdiag/valdiag.py: added -DPORT_HOST=1
2216
2217 2006-06-02 Borut Razem <borut.razem AT siol.net>
2218
2219         * support/regression/ports/pic16/support.c: increase stack size
2220           to 255 bytes
2221         * support/regression/Makefile.in: sort tests by name so that the
2222           resutlts can be compared on different machines / platforms
2223
2224 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2225
2226         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
2227         * src/ds390/gen.c (emitLabel): new, added,
2228           (genDjnz): fixed stack overflow bug,
2229           (throughout): cosmetic changes to sync with mcs51/gen.c,
2230           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
2231         * src/mcs51/gen.c (genEndFunction): small optimization,
2232           (throughout): cosmetic changes to sync with ds390/gen.c
2233
2234 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2235
2236         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
2237           (_print_format): fixed printing pointers
2238         * src/mcs51/gen.c (emitLabel, movb): new, added,
2239           (genAssign): small optimization,
2240           (genDjnz): fixed stack overflow bug,
2241           (throughout): replaced sprintf with SNPRINTF,
2242           replaced mcs51_regWithIdx with REG_WITH_INDEX,
2243           replaced emitcode("mov", "b,...") with MOVB(...),
2244           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
2245           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2246         * src/mcs51/peeph.def: added rules 140 and 264
2247         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
2248           so they may get optimized into registers
2249
2250 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
2251
2252         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
2253           immediately when encountered,
2254           (printUsage): always use stderr even on windows
2255
2256 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
2257
2258         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
2259         (processParms): fixed bug #1247551
2260         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
2261         parseCmdLine, main): print '--version' to stdout,
2262         print 'help' to stdout if --help is given,
2263         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
2264         arguments are given; fixed --help
2265
2266 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
2267
2268         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
2269         * support/regression/tests/bug-1493710.c: added
2270
2271 2006-05-27 Borut Razem <borut.razem AT siol.net>
2272
2273         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
2274           static instead auto
2275         * support/regression/ports/pic16/support.c: increase stack size
2276           from default 64 bytes to 128 bytes
2277         * support/regression/tests/staticinit.c,
2278           support/regression/tests/float.c: regression tests fully enabled
2279           for pic16 port by putting the initialized data arrays into the code
2280           section
2281         * support/regression/ports/pic16/spec.mk: don't link default libraries.
2282           This was changed by mistake in the previous version.
2283
2284 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
2285
2286         * src/pic16/gen.c (genFunction, genEndFunction): some
2287         beautifications, fixed bug with falsely restoring FSR2 in large
2288         stack model, thanks to Beau E. Cox for reporting the bug
2289
2290 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2291
2292         * debugger/mcs51/break.c,
2293         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
2294           use %p to print pointers, made address variables unsigned
2295         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
2296         * debugger/mcs51/symtab.c (parseSymbol): must return something
2297         * src/mcs51/gen.c (aopForSym): small optimization,
2298            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
2299           (freeAsmop): added missing break,
2300           (aopPut): removed parameter bvolatile, determine it inside the function,
2301           (saveRegisters, unsaveRegisters): small optimization,
2302           (genIpush): removed pointless check,
2303           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
2304           replaced sprintf with SNPRINTF,
2305           replaced strcpy with strncpyz,
2306           updated aopPut calls,
2307           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2308         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
2309
2310 2006-05-24 Borut Razem <borut.razem AT siol.net>
2311
2312         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
2313           modification of test for the pic16 port, put the array to the code
2314           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
2315
2316 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2317
2318         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
2319         * support/Util/pstdint.h: added
2320
2321 2006-05-22 Borut Razem <borut.razem AT siol.net>
2322
2323         * src/regression/Makefile: removed bool2.c test, added -q linker option
2324         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
2325           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
2326           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
2327           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
2328           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
2329           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
2330           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
2331           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
2332           define SUPPORT_BIT_TYPES 0, removed unused bit variables
2333
2334 2006-05-22 Raphael Neider <rneider AT web.de>
2335
2336         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
2337           bug #1492360 (problematic due to generic pointers, see code)
2338
2339 2006-05-22 Borut Razem <borut.razem AT siol.net>
2340
2341         * support/regression/ports/pic16/specs.mk: removed stack size linker
2342           directive
2343         * support/regression/tests/array.c,
2344           support/regression/tests/bitopcse.c,
2345           support/regression/tests/bug-908454.c,
2346           support/regression/tests/malloc.c: modified for pic16 regression test
2347         * support/regression/tests/bitfields.c:
2348           pic16 - excluded bitfileds of size > 8
2349         * support/regression/tests/bp.c: pic16 - reduced data size
2350         * support/regression/tests/bug-221100.c: pic16 - reduced data size
2351         * support/regression/tests/bug-460010.c:
2352           pic16 - used the absolute address the fits in memory
2353         * support/regression/tests/bug-716242.c:
2354           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
2355         * support/regression/tests/float.c:
2356           pic16 - excluded - data size too big
2357         * support/regression/tests/onebyte.c:
2358           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
2359         * support/regression/tests/shifts.c:
2360           pic16 - function names probably have to differ in first X characters
2361           (gpasm limitation?)
2362         * support/regression/tests/staticinit.c:
2363           pic16 - excluded some tests due error: no target memory available for
2364           section ".idata"
2365
2366 2006-05-22 Borut Razem <borut.razem AT siol.net>
2367
2368         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2369           second try. Thanks Stas Sergeev once more.
2370
2371 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2372
2373         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
2374           (genLeftShift, genRightShift): fixed bug 1491627
2375         * src/hc08/peeph.def (rules 7, 8.x): added
2376         * support/regression/tests/shifts.c (ShiftLeftByParam,
2377           ShiftRightByParam, testShiftByParam): added to test variable shifting
2378
2379 2006-05-20 Raphael Neider <rneider AT web.de>
2380
2381         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
2382         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
2383           (allocReg): add only new registers to dynAllocRegs,
2384           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
2385             #1489055, #1445850, and probably #1483693
2386
2387 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
2388
2389         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
2390         bug in for-loop that didn't emit the last of CONFIG and ID registers
2391
2392 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
2393
2394         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
2395           with offset
2396         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
2397           1489016, 1434401 and 1490124
2398         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
2399           1489016, 1434401 and 1490124
2400
2401 2006-05-17 Borut Razem <borut.razem AT siol.net>
2402
2403         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2404           thanks Stas Sergeev
2405
2406 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2407
2408         * device/include/mcs51/P89c51RD2.h,
2409         * device/include/mcs51/P89LPC901.h,
2410         * device/include/mcs51/P89LPC922.h,
2411         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
2412
2413 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2414
2415         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
2416         to fix missing stack pragma in compiled binary object file,
2417
2418 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
2419
2420         * support/packihx/configure.in,
2421         * support/packihx/configure: removed warning, autoconf >= 2.5x can
2422         determine sizeof basic types even while cross compiling
2423
2424 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
2425
2426         * src/avr/gen.c (aopop),
2427         * src/ds390/gen.c (aopOp),
2428         * src/hc08/gen.c (aopOp),
2429         * src/mcs51/gen.c (aopop),
2430         * src/pic16/gen.c (pic16_aopOp),
2431         * src/pic/gen.c (aopOp),
2432         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
2433         if size of operand is smaller than spill location
2434
2435 2006-05-12 Borut Razem <borut.razem AT siol.net>
2436
2437         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
2438           have to have CR/LF line endings even if they are checked out on *nix
2439           or on WIN32 in cygwin binmode
2440
2441 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
2442
2443         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
2444         * device/include/ds80c390.h: added sfr16 definitions
2445         * src/ds390/gen.c,
2446         * src/ds390/gen.h,
2447         * src/ds390/main.c,
2448         * src/ds390/ralloc.c,
2449         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
2450           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
2451           bit returning functions
2452         * support/regression/tests/sfr16.c: enabled test on ds390
2453
2454 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2455
2456         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
2457         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
2458
2459 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
2460
2461         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
2462         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
2463           (cl_address_space constructor): removed expensive initialization,
2464           (cl_address_space::get_cell): extended for late initialization,
2465           (cl_address_space::*): use late initialization,
2466           (cl_address_decoder::activate): removed expensive initialization,
2467           This reduced regression test running time by 25%
2468
2469 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
2470
2471         * packihx/,
2472         * configure.in,
2473         * configure,
2474         * sdcc.dsw,
2475         * Makefile.bcc,
2476         * Makefile.in,
2477         * support/packihx/Makefile.in,
2478         * support/packihx/clean.mk,
2479         * support/packihx/Makefile.bcc,
2480         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
2481
2482 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2483
2484         * src/SDCCval.c (valNot): fix for regression test failure
2485           of not.c on big endian hosts
2486
2487 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
2488
2489         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
2490
2491 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2492
2493         * device/lib/mcs51/Makefile.in: changed string comparison operator
2494           to = for POSIX compliance; == is bash extension
2495
2496 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
2497
2498         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
2499           kosmonaut_pirx
2500
2501 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
2502
2503         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
2504         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
2505         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
2506         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
2507         bug report #1478657,
2508
2509 2006-05-05 Borut Razem <borut.razem AT siol.net>
2510
2511         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
2512           making the html
2513
2514 2006-05-02 Borut Razem <borut.razem AT siol.net>
2515
2516         * doc/Makefile.in: removed *.ind dependency since there is no rule to
2517           create *.ind, which made make to fail if invoked with -j 2
2518
2519 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
2520
2521         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
2522           Hubert Sack for patch 1479782
2523
2524 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
2525
2526         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
2527
2528 2006-05-01 Raphael Neider <rneider AT web.de>
2529
2530         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
2531           (create_pic): store only prefix-free device name,
2532           (init_pic): check for device names with "16" prefix,
2533           (list_valid_pics),
2534         * src/pic/device.h (struct PIC_device),
2535         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
2536             stored device name,
2537         * device/include/pic/pic12f{635,675,629,683}.h,
2538         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
2539         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
2540         * device/include/pic/pic16f505.h,
2541         * device/lib/pic/libdev/pic16f505.c: removed
2542         * device/include/pic/pic14devices.txt: added support for pic12f
2543             devices, removed unsupported non 16-bit devices
2544             [above changes provided by patch from Zik Saleeba]
2545         * src/pic/*, src/pic16/*, device/include/pic16/*,
2546           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
2547
2548 2006-05-01 Borut Razem <borut.razem AT siol.net>
2549
2550         * configure.in, configure, doc/Makefile.in:
2551           sync with nightly build makefile - latex, dvipdf and dvips
2552           not needed any more
2553
2554 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
2555
2556         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
2557         in the library source
2558
2559 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
2560
2561         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
2562
2563 2006-04-28 Raphael Neider <rneider AT web.de>
2564
2565         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
2566         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
2567           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
2568         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
2569
2570 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
2571
2572         * device/lib/pic/libdev/Makefile.in,
2573         * device/lib/hc08/Makefile.in,
2574         * device/lib/gbz80/Makefile.in,
2575         * device/lib/z80/Makefile.in,
2576         * device/lib/ds390/Makefile.in,
2577         * device/lib/ds400/Makefile.in: added srcdir to include search path,
2578         thanks to Borut for the bug report
2579         * configure.in,
2580         * configure: always create doc/Makefile independent from --enable-doc
2581         * Makefile.in: always install from directory doc independent from
2582         --enable-doc
2583         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
2584         removed
2585         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
2586         * doc/Makefile.in: install *.txt if present
2587         * device/include/Makefile.in (install): added installation of pic/*.inc
2588         and pic/*.txt files again, they were erroneously removed
2589
2590 2006-04-28 Raphael Neider <rneider AT web.de>
2591
2592         * src/pic/{gen.c,main.h,pcode.c},
2593         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
2594             concerning signedness with casts
2595
2596 2006-04-28 Raphael Neider <rneider AT web.de>
2597
2598         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
2599             definition of an interrupt handler,
2600         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
2601             interrupt handler stuff from picglue() to separate routine,
2602           (picglue): enabled definition of intr handlers in files w/o main()
2603
2604 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2605
2606         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
2607           compilation with MSVC 2005 Express Edition (VC8)
2608
2609 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
2610
2611         * device/lib/Makefile: fixed build of gbz80 lib
2612
2613 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2614
2615         * support/regression/tests/bug-460010.c,
2616         * support/regression/tests/bug-524691.c,
2617         * support/regression/tests/bug-716242.c: removed conditional defines
2618           that are already in testfwk.h
2619
2620 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2621
2622         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
2623           (AccAXRsh1): added, shift right by 1,
2624           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
2625            AccAXLrl1
2626         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
2627
2628 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
2629
2630         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
2631         remove cast to same type
2632         * src/SDCCast.c (decorateType): fix for RFE 1475742,
2633         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
2634         * as/z80/Makefile,
2635         * link/z80/Makefile: removed, they have moved to
2636         Makefile.in files
2637         * configure,
2638         * configure.in: replaced duplicate message about ucsim by missing sdcpp
2639         * install-sh: fix bug #1204398 by setting umask 0022
2640         * device/lib/Makefile: separate build of z80 and gbz80 lib
2641
2642 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
2643
2644         Enabled VPATH feature: changed nearly all Makefiles (149 files).
2645         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
2646
2647         One basic decision: e.g. src/clean.mk includes further files. In order
2648         to make this work there are two solutions:
2649         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
2650           run configure on them. This way they can use
2651           'include $(srcdir)/port-clean.mk'
2652         - always include clean.mk by the Makefile at the same level. To avoid
2653           that `make clean` tries to include and build Makefile.dep the
2654           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
2655           implemented, because now even `make uninstall` doesn't create
2656           Makefile.in. clean.mk could be eliminated by pasting it in
2657           Makefile.in.
2658
2659         * debugger/mcs51/Makefile.in: build own objects from library sources
2660         (SLIB, SDCC) in current directory
2661
2662         * configure, configure.in: renamed --disable-device-lib-build in
2663         --disable-device-lib; added --enable-doc, the required tools are
2664         searched by configure; added result message; the toolchain for the
2665         belonging ports are now only built, if the port is enabled.
2666
2667         * support/regression/*: all output is written in directory gen, because
2668         the fwk and ports directories don't livet in the build tree using vpath
2669
2670         * doc/sdccman.lyx: renamed --disable-device-lib-build to
2671         --disable-device-lib, added --enable-doc, added section VPATH
2672
2673         * sim/ucsim/configure.in,
2674         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
2675         z80 are enabled by default
2676
2677 2006-04-24 Raphael Neider <rneider AT web.de>
2678
2679         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
2680             to config word, "pic14_"-prefixed some extern functions
2681           (pic14_emitConfigWord): emit __config directive(s) if assignment to
2682             config word has been found
2683         * src/pic/device.h: added prototypes
2684         * src/pic/pcode.c: added "pic14_"-prefix where needed
2685         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
2686             fixup
2687         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
2688             words,
2689           (pic14emitRegularMap): ignore config words,
2690           (pic14createInterruptVect): moved generating __config directives away
2691           (picglue): have __config directives emitted
2692
2693 2006-04-24 Borut Razem <borut.razem AT siol.net>
2694
2695         * doc/Makefile: sync with nightly build makefile
2696
2697 2006-04-24 Raphael Neider <rneider AT web.de>
2698
2699         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
2700             registers that have not been assigned proper liveranges,
2701             fixes #1469504 and #1474602,
2702           (pCodeRegOptimizeRegUsage): fixed typo in comment
2703
2704 2006-04-24 Borut Razem <borut.razem AT siol.net>
2705
2706         * device/examples/main8051.c: deleted - it was removed from CVS
2707           24.mar.2000 and after that modified 18.feb.2001, so it reappered
2708           after the transition to Subversion
2709         * src/SDCCalloc.h: deleted - it was removed  from CVS
2710           3.feb.2001 and after that modified 18.feb.2001, so it reappered
2711           after the transition to Subversion
2712         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
2713           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
2714           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
2715           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
2716
2717 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
2718
2719         * as/asx8051.dsp: added mcs51/strcmpi.h
2720         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
2721         * as/hc08/aslink.h: updated lnksect prototype
2722         * as/hc08/asm.h,
2723         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
2724         * as/hc08/asmain.c,
2725         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
2726           (newdot): handle A_ABS
2727         * as/hc08/asout.c,
2728         * as/mcs51/asout.c (outarea): output address
2729         * as/hc08/lkaomf51.c,
2730         * as/mcs51/lkaomf51.c: disabled unused array UsageType
2731         * as/hc08/m08pst.c,
2732         * as/mcs51/i51pst.c,
2733         * as/z80/z80pst.c: "ABS" is not A_OVR
2734         * as/hc08/lkarea.c (newarea): read a_addr,
2735           (lnkarea): added codemap array, sort absolute areas to the front,
2736            combine all GSINITx/GSFINAL,
2737           (find_empty_space, allocate_space): new functions,
2738           (lnksect): return next address, handle absolute sections
2739         * as/mcs51/lkarea.c (newarea): read a_addr,
2740           lnksect2 prototype changed,
2741           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
2742           (find_empty_space, allocate_space): new, factored out of lnksect2,
2743           (lnksect2): return next address, handle absolute sections
2744         * as/hc08/lkhead.c,
2745         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
2746         * as/hc08/lklibr.c (addfile, fndsym),
2747         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
2748           index out of range and detect both '\' and '/'
2749         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
2750         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
2751           regression tests (ds390 cannot return bool yet)
2752         * doc/sdccman.lyx: changed version number, document changed --no-peep,
2753           document critical interrupts on z80, document changed SDCC define
2754         * src/asm.c (_asxxxx_mapping): fixed .org directive,
2755           (_a390_mapping): added .org directive
2756         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
2757           (genMultOneByte): fixed warnings
2758         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
2759           ones
2760         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
2761         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
2762           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
2763         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
2764         * src/pic16/main.c: removed newReg prototype
2765         * src/pic16/pcode.c,
2766         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
2767           warnings
2768         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
2769           ones
2770         * src/pic16/ralloc.c
2771         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
2772           to fix warnings
2773         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
2774           from short to PIC_OPTYPE
2775         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
2776         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
2777           optype from short to PIC_OPTYPE
2778         * src/port.h: made int_size unsigned to fix warnings
2779         * src/SDCC.y: fixed warning on MSVC
2780         * src/SDCCicode.c (getArraySizePtr): return unsigned int
2781         * src/SDCCopt.c (convertToFcall): fixed warnings
2782         * src/SDCCsymt.h: removed double prototype for genSymName
2783         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
2784           offset int to fix warnings
2785
2786 2006-04-22 Borut Razem <borut.razem AT siol.net>
2787
2788         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2789           references to CVS replaced with Subversion
2790
2791 2006-04-21 Borut Razem <borut.razem AT siol.net>
2792
2793         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2794           references to CVS replaced with Subversion
2795
2796 2006-04-19 Borut Razem <borut.razem AT siol.net>
2797
2798         * src/version.awk: adapted for svn
2799         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
2800           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
2801           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
2802           /binutils-avr/etc/*.vi, *.jin: removed all properties
2803           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
2804
2805 2006-04-19 Borut Razem <borut.razem AT siol.net>
2806
2807         * CVS to Subversion migration completed
2808
2809 2006-04-18 Borut Razem <borut.razem AT siol.net>
2810
2811         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
2812           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
2813
2814 2006-04-17 Borut Razem <borut.razem AT siol.net>
2815
2816         * device/include/Makefile.in: added pic/*.inc to the installation
2817
2818 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
2819
2820         * support/regression/collate-results.py: fixed output in case of
2821         a valdiag error
2822         * support/regression/generate-cases.py: fixed splitting of pathnames
2823         with dots
2824         * as/hc08/lklibr.c (addfile),
2825         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
2826
2827 2006-04-11 Raphael Neider <rneider AT web.de>
2828
2829         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
2830         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
2831         * src/pic16/pcode.c (assignValnums): fixed #1460578
2832
2833 2006-04-11 Raphael Neider <rneider AT web.de>
2834
2835         * device/lib/pic/libdev/*.c,
2836         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
2837           fixes #1468739, enables compilation in --std-c99 mode
2838         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
2839
2840 2006-04-11 Raphael Neider <rneider AT web.de>
2841
2842         * src/pic/device.c (find_device): removed debug output
2843           (list_valid_pics): enabled verbose listing of supported devices
2844         * device/include/stdbool.h: define bool as char for pic14/16 as well
2845
2846 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2847
2848         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
2849
2850 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2851
2852         * .version: bumped version to 2.5.6
2853         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
2854
2855 2006-04-06 Raphael Neider <rneider AT web.de>
2856
2857         * .version: bumped version to 2.5.6 (pic14 ABI changed)
2858         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
2859         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
2860           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
2861             pic14_constructAbsMap
2862           (pic14printPublics): declare absolute global symbols as global
2863           (pic14createInterruptVect),
2864         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
2865           (newReg): assume new registers unused, use correct name in
2866             hashtable (reg->name instead of name), more debugLog output
2867         * src/pic/device.h (PIC_device): added fields for verbose output
2868         * src/pic/device.c: moved device definition to pic14devices.txt,
2869             added routines for runtime parsing of pic14devices.txt,
2870             added support for second config word
2871         * src/pic/main.c (_process_pragma): removed #pragma maxram,
2872           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
2873           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
2874           (_pic14_parseOptions): moved pCodeInitRegisters here
2875           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
2876         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
2877           (pCodeInitRegisters): rewrapped comments, perpared new approach to
2878             handling the pseudo stack
2879         * device/lib/Makefile.in: ignore failures in objects-pic16,
2880         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
2881         * device/lib/pic/NEWS: document new dependency on picXXX.lib
2882         * device/lib/pic/Makefile.subdir,
2883         * device/lib/pic16/Makefile.subdir: improved clean rules
2884         * device/lib/pic/libdev/: NEW, pic14 device libraries
2885         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
2886         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
2887         * device/include/Makefile.in: create subdir and install pic14 headers
2888         * device/include/pic/p16f_common.inc: removed unused declarations
2889         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
2890             PICs from inc2h.pl v1.6,
2891             replaced BIT_AT macros with struct declarations
2892         * device/include/pic/pic14devices.txt: definition of supported devices,
2893             all above improvements contributed by Zik Saleeba, thanks
2894         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
2895         * support/scripts/sdcc.nsi: also install pic14 device libraries and
2896             headers
2897
2898 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2899
2900         * device/include/mcs51/c8051f410.h: added interrupt numbers,
2901         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
2902           thanks to Charles Olds
2903
2904 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2905
2906         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
2907
2908 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2909
2910         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
2911         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
2912         * support/regression/bug1464657.c: added, new test
2913
2914 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2915
2916         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
2917           version number
2918
2919 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2920
2921         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
2922           --no-peep and --peep-file <file> are used don't use default rules but
2923           do use the <file>
2924
2925 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2926
2927         * src/mcs51/gen.c (genCall): fixed bug 1457608
2928
2929 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2930
2931         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
2932         changes seem to cause (trigger?) problems with the build system.
2933
2934 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
2935
2936         * src/SDCCpeeph.c (operandsLiteral): new, added,
2937           (callFuncByName): inserted operandsLiteral
2938         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
2939
2940 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2941
2942         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
2943         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
2944
2945 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2946
2947         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
2948           implemented patch 1120823 Thanks to Willy De la Court (normal
2949           interrupts need an interrupt number now if they are made critical),
2950           and enabled nesting of critical functions though not for gbz80
2951           (genCritical, genEndCritical): added functions
2952           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
2953         * src/z80/mappings.i: added "ei" to all mappings
2954
2955 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2956
2957         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
2958         submitted by the Debian SDCC maintainer Aurelien Jarno:
2959         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
2960         archive with gcc 4.1 on mips and wrote the patch"
2961
2962 2006-03-16 Raphael Neider <rneider AT web.de>
2963
2964         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
2965           the left operand is shorter than the result (c* = lit-c* + int),
2966           fixes bug #1450796
2967         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
2968           OP_SYMBOL
2969
2970 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2971
2972         * src/.version: increased version number to 2.5.5
2973         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
2974         linking is done manually in pic16 port's _linkEdit,
2975         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
2976         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
2977         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
2978         allocate asmop as AOP_ACC,
2979         (aopForRemat): added parameter 'bool result' in function declaration,
2980         (pic16_aopGet): return AOP_ACC when accessing WREG,
2981         (pic16_popGetTempReg): minor modification,
2982         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
2983         'pic16_allocWithIdx',
2984         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
2985         calling function in absolute addresses,
2986         (genAssign): take into account AOP_ACC asmop,
2987         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
2988         * src/pic16/pcoderegs.c: some debug functions and lines added,
2989         * src/pic16/ralloc.c (decodeRegType): added but commented out,
2990         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
2991         register too,
2992         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
2993         call to allocReg, not by manually allocating a new one,
2994         (pic16_assignRegisters): now before going through the register
2995         allocating functions mark all registers as free. This eliminates some
2996         side effects resulting from peephole parser done earlier in the backbone
2997
2998 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
2999
3000         * src/SDCCicode.c (geniCodeLogic),
3001         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
3002
3003 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
3004
3005         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
3006           (genSend): bugfix, do not allocate and free twice,
3007           (shiftRLong): handle partially overlapping aops
3008         * support/regression/tests/bitopcse.c: fixed warning redefined idata
3009
3010 2006-03-08 Borut Razem <borut.razem AT siol.net>
3011
3012         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
3013           for pic16
3014
3015 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
3016
3017         * support/regression/tests/bug1409955.c: new, added
3018         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
3019         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
3020           (aopForSym, aopOp): increment asmop.allocated if reused,
3021           (freeAsmop): decrement asmop.allocated and check for zero instead of
3022           using asmop.freed,
3023           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
3024           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
3025            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
3026            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
3027            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
3028            genSignedRightShift, genRightShift, genDataPointerGet,
3029            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
3030            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
3031             in reverse order from allocation,
3032           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
3033             added swappedLR to keep track
3034         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
3035           pdata & code for GCC, z80, gbz80 & hc08
3036         * support/regression/tests/zeropad.c: moved defines to testfwk.h
3037
3038 2006-03-08 Raphael Neider <rneider AT web.de>
3039
3040         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
3041
3042 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
3043
3044         * device/include/mcs51/c8051f410.h: new SiLabs mcu
3045         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
3046         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
3047
3048 2006-03-06 Borut Razem <borut.razem AT siol.net>
3049
3050         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
3051           made the linker quiet
3052
3053 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3054
3055         * src/pic16/gen.c (genPcall): fixed bug #1443644
3056         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
3057         which dumps before the function entry point a data byte which represents
3058         the number of the local variables used by the specified function, added
3059         'xinst' for initial support for Extended Instruction Support,
3060         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
3061         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
3062         port->fun_prefix anymore (may change later),
3063         (genFunction, genEndFunction): do not store/restore local registers for
3064         _main (this should take care the --main-return command line option in
3065         the future),
3066         (genOr): removed some legacy pic-port instructions,
3067         * src/pic16/genarith.c (genAddLit): re-enabled old code because
3068         performing operations with SFR's causes data to be written more than
3069         once to each SFR. Perhaps SFRs should be handled in special cases...
3070         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
3071         pcode.h
3072         * src/pic16/main.c (_process_pragma): stack bound checking did not take
3073         into account for stack starting position,
3074         (struct OPTIONS pic16_optionsTable): added command line argument
3075         --extended or -y for Extended Instruction Support,
3076         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
3077         (deassignLRs): *** perhaps the most important change, old 'for' code
3078         (commented out for reference), didn't account for some registers which
3079         were left marked 'not free' after a pointer operation. The change
3080         reduces register usage a lot in some cases
3081
3082 2006-03-04 Borut Razem <borut.razem AT siol.net>
3083
3084         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
3085           _clean
3086         * support/regression/tests/bug-524697.c: decreased array size for
3087           mcs51 to fit into the internal RAM
3088         * support/regression/Makefile.in: a little bit more verbose
3089
3090 2006-03-03 Borut Razem <borut.razem AT siol.net>
3091
3092         * support/regression/fwk/lib/testfwk.c,
3093           support/regression/fwk/include/testfwk.h: introduced function
3094           _prints(), nonrecursive _printn(), call _initEmu() from main()
3095         * support/regression/ports/gbz80/support.asm,
3096           support/regression/ports/ucz80/support.asm,
3097           support/regression/ports/z80/support.asm,
3098           support/regression/ports/ds390/support.c,
3099           support/regression/ports/hc08/support.c,
3100           support/regression/ports/host/support.c,
3101           support/regression/ports/mcs51/support.c,
3102           support/regression/ports/xa51/support.c: added empty _initEmu()
3103           function
3104         * support/regression/ports/pic16/gpsim.cmd,
3105           support/regression/ports/pic16/spec.mk,
3106           support/regression/ports/pic16/support.c,
3107           support/regression/Makefile.in: added pic16 regression test
3108
3109 2006-03-01 Raphael Neider <rneider AT web.de>
3110
3111         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
3112           genConstPointerGet): use safe way of generating MOVFF to cover
3113             literals as well as registers, fixes bug #1440527
3114         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
3115             dereference
3116           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
3117             more correctly, fixes bug #1232186
3118           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
3119         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
3120             gplink guess the correct processor in more cases, applied patch
3121             from Till Riedel attached to and fixing bug #1436552
3122
3123 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3124
3125         * support/regression/tests/array.c: added, contains check for #1434401
3126         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
3127
3128 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
3129
3130         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
3131         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
3132         * device/include/mcs51/c8051f326.h,
3133         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
3134         * device/include/mcs51/c8051f000.h,
3135         * device/include/mcs51/c8051f018.h,
3136         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
3137           PCON_IDLE,PCON_STOP and added sfr16 definitions
3138
3139 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3140
3141         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
3142           genGetWord): fixed bug 1409955
3143
3144 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3145
3146         * device/include/hc08/mc68hc908gp32.h,
3147         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
3148
3149 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
3150
3151         * src/SDCCast.c (constExprValue): return NULL if not a value
3152         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
3153         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
3154         * support/regression/tests/bitfields.c: enabled signed bitfield for all
3155
3156 2006-02-13 Borut Razem <borut.razem AT siol.net>
3157
3158         * src/regression/ptrarg.c: added, fails due to bug #1430967
3159         * src/regression/Makefile: ptrarg.c added, ...
3160
3161 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
3162
3163         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
3164         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
3165
3166 2006-02-11 Borut Razem <borut.razem AT siol.net>
3167
3168         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
3169           print "Processor: xxx" message to stdout only if --verbose
3170
3171 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3172
3173         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
3174         * support/regression/tests/bug1426356.c: added
3175         * support/regression/tests/bitfields.c: removed 2 tests
3176
3177 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3178
3179         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
3180         * device/include/mcs51/c8051f330.h,
3181         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
3182           PCON_IDLE,PCON_STOP and added sfr16 definitions
3183         * device/lib/_divsint.c,
3184         * device/lib/_divuint.c,
3185         * device/lib/_divulong.c,
3186         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
3187           register bank bug for small stackauto
3188
3189 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3190
3191         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
3192
3193 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
3194
3195         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
3196         * all.dsp: corrected several bin paths
3197         * device/include/mcs51/c8051f120.h,
3198         * device/include/mcs51/c8051f300.h,
3199         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
3200           to PCON_IDLE,PCON_STOP
3201         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
3202         * device/lib/printf_large.c (output_float): fixed bug 1388703
3203         * support/regression/tests/bug1057979.c: added test for bug 1388703
3204
3205 2006-02-08 Raphael Neider <rneider AT web.de>
3206
3207         * src/pic/pcode.c (pciTRIS): fixed typo,
3208           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
3209           (LinkFlow): fixed handling of flows that end in a call,
3210           (ReuseReg): perform safety check earlier
3211         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
3212             to work with flows at the beginning of a pBlock,
3213             fixes #1426557 (Symbol not previously defined),
3214           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
3215             usage information
3216           (RemoveUnusedRegisters): update register usage info
3217         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
3218             created, reuse existing ones instead
3219         * src/pic/gen.c (genPcall): fixed #1424719
3220
3221 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
3222
3223         * link/z80/lkmain.c,
3224         * link/z80/lklex.c,
3225         * link/z80/lkdata.c,
3226         * link/z80/aslink.h: fixed build on current cygwin:
3227         replaced getline() by lk_getline()
3228
3229 2006-02-01 Borut Razem <borut.razem AT siol.net>
3230
3231         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
3232           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
3233           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
3234           src/regression/bool1.c, src/regression/bool2.c,
3235           src/regression/bool3.c, src/regression/call1.c,
3236           src/regression/compare.c, src/regression/compare10.c,
3237           src/regression/compare2.c, src/regression/compare3.c,
3238           src/regression/compare4.c, src/regression/compare5.c,
3239           src/regression/compare6.c, src/regression/compare7.c,
3240           src/regression/compare8.c, src/regression/compare9.c,
3241           src/regression/configword.c, src/regression/for.c,
3242           src/regression/inline.c, src/regression/mult1.c,
3243           src/regression/nestfor.c, src/regression/or1.c,
3244           src/regression/pointer1.c, src/regression/ptrfunc.c,
3245           src/regression/rotate1.c, src/regression/rotate2.c,
3246           src/regression/rotate3.c, src/regression/rotate4.c,
3247           src/regression/rotate5.c, src/regression/rotate6.c,
3248           src/regression/rotate7.c, src/regression/string1.c,
3249           src/regression/struct1.c, src/regression/sub.c,
3250           src/regression/sub2.c, src/regression/switch1.c,
3251           src/regression/while.c, src/regression/xor.c,
3252           src/regression/create_stc, src/regression/simulate,
3253           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
3254           regression tests
3255         * src/regression/gpsim_assert.h: added
3256
3257 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
3258
3259         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
3260         ((void (code *) (void)) 0) ();
3261         * as/hc08/aslex.c,
3262         * as/hc08/aslink.h,
3263         * as/hc08/asm.h,
3264         * as/hc08/asmain.c,
3265         * as/hc08/lkdata.c,
3266         * as/hc08/lklex.c,
3267         * as/hc08/lkmain.c,
3268         * as/mcs51/aslex.c,
3269         * as/mcs51/aslink.h,
3270         * as/mcs51/asm.h,
3271         * as/mcs51/asmain.c,
3272         * as/mcs51/lkdata.c,
3273         * as/mcs51/lklex.c,
3274         * as/mcs51/lkmain.c,
3275         * as/z80/aslex.c,
3276         * as/z80/asm.h,
3277         * as/z80/asmain.c: fixed build on current cygwin:
3278         replaced getline() by as_getline()
3279
3280 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
3281
3282         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
3283         declarator in the symbol chain
3284         * src/SDCCsymt.h,
3285         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
3286         parameter list for function pointers
3287         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
3288         * support/regression/tests/bug-716242.c: added
3289
3290 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
3291
3292         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
3293         offset if possible
3294         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
3295
3296 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
3297
3298         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
3299         inifinitely recurseable, added static
3300         * support/regression/tests/bug-1408066.c: added
3301
3302 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
3303
3304         * src/SDCCicode.h,
3305         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
3306         renamed, added possibility to create "postLoopLbl"-labels
3307         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
3308         newiTempLoopHeaderLabel
3309         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
3310         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
3311         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
3312         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
3313         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
3314         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
3315         (basicInduction): fixed bug #136564, made static,
3316         (loopInduction): changed parameter of basicInduction, made static,
3317         (addPostLoopBlock): added
3318         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
3319         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
3320         findLoopEndSeq
3321         * support/regression/tests/bug-136564.c: added
3322         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
3323         --std-sdcc99 to LIBSDCCFLAGS
3324
3325 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
3326
3327         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
3328         while loop
3329         * support/regression/tests/bug-1406131.c: added
3330
3331 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
3332
3333         * src/SDCCast.c (decorateType): fix promotion of unary minus
3334         * src/SDCCsymt.c (computeType): beautified
3335         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
3336         (valUnaryPM, valComplement): fix sign and promotion,
3337         (valNot): ANSI: result type is int (SDCC: unsigned char)
3338         * support/regression/tests/uminus.c: speedup by removing superflous
3339         test case 'int'
3340         * support/regression/tests/onebyte.c: added promotion and signedness
3341         tests for unary minus
3342         * support/regressions/tests/bug-477927.c: disable warning about
3343         uninitialized variables
3344         * support/regression/tests/not.c: added
3345
3346 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
3347
3348         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
3349         * src/mcs51/gen.c (gen51Code): show final register usage after
3350         fillGaps in asm with --i-code-in-asm
3351         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
3352         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
3353         incUsed, rliveClear, adjustIChain): made static,
3354         (setFromRange): excluded because it's unused,
3355         (findPrevUseSym, markWholeLoop): added,
3356         (findPrevUse): rewritten; fixes bug 895992; now a complete search
3357         through all branches of predecessors enables sdcc to emit the warning
3358         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
3359         (rlivePoint): made static, added parameter emitWarnings which is only
3360         true during the first run out of two,
3361         (findRecursiveSucc, findRecursivePred): removed,
3362         (computeLiveRanges): made static, added parameter emitWarnings,
3363         (dumpIcRlive): added for debugging only
3364         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
3365         removed prototype of setFromRange()
3366         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
3367         in call of computeLiveRanges()
3368         * support/regression/tests/bug-895992.c: added
3369         * support/regression/tests/bug-971834.c: added
3370         * support/valdiag/tests/bug-895992.c: added
3371         * support/valdiag/tests/bug-971834.c: added
3372
3373 2005-12-18 Raphael Neider <rneider AT web.de>
3374
3375         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
3376           (genUnpackBits): improved code for direct operands,
3377           (genPackBits): improved code for literal assignment to bitfields
3378             and for direct destination operands (no FSR indirection),
3379             prevented redundant AND, fixes #1362800,
3380           (AccLsh): added parameter to disable masking of the result
3381         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
3382           skip instructions with side-effects (like incfsz),
3383           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
3384         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
3385         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
3386           fixes #1375263
3387
3388 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
3389
3390         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
3391         volatile variables as spill location
3392
3393 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
3394
3395         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
3396         replacing literals
3397         * support/regression/tests/bug-1376320.c: added
3398
3399 2005-12-08 Raphael Neider <rneider AT web.de>
3400
3401         * src/pic/device.c: renamed is_shared to pic14_is_shared
3402         * src/pic/gen.c (genIfx): re-enabled handling of sbits
3403         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
3404           (is_valid_identifier): added for above workaround
3405
3406 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
3407
3408         * device/lib/Makefile.in: fixed to enable port-specific-objects
3409         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
3410           char, thanks Hubert Sack
3411         * doc/sdccman.lyx: documented --xstack-loc,
3412           elaborated a bit more on interrupts and pitfalls,
3413           removed "setjmp/longjmp unsupported",
3414           documented some unsupported C99 features
3415         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
3416         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
3417           if, thanks Hubert Sack
3418         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
3419         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
3420           make make_library
3421         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
3422           regression tests can report resource usage (rfe 700441)
3423         * support/regression/collate-results.py: report resource usage
3424         * support/regression/ports/ds390/spec.mk,
3425         * support/regression/ports/hc08/spec.mk,
3426         * support/regression/ports/mcs51/spec.mk,
3427         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
3428         * support/regression/ports/ds390/uCsim.cmd,
3429         * support/regression/ports/hc08/uCsim.cmd,
3430         * support/regression/ports/mcs51/uCsim.cmd,
3431         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
3432         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
3433           library, use the default one
3434         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
3435           building the library
3436
3437 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
3438
3439         * config.dsp: added dependency on .version and configure_vc.awk
3440         * device/include/setjmp.h: updated for --stack-auto and --xstack
3441         * device/include/mcs51/at89c51snd1c.h: corrected line endings
3442         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
3443         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
3444         * device/lib/libsdcc.lib: added _setjmp
3445         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
3446           (decorateType): fixed bug 1372851,
3447           (optimizeGetHbit): fixed warning
3448         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
3449           array initialisation
3450         * support/regression/tests/bug1057979.c: added test for bug 1358192
3451         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
3452
3453 2005-12-03 Borut Razem <borut.razem AT siol.net>
3454
3455         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
3456           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
3457
3458 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
3459
3460         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
3461         createIval): implement symbol independant "flexible array member",
3462         (createIvalCharPtr): implemented flexible array initialisation with a
3463         string
3464         * src/SDCCsymt.c (copyStruct): removed,
3465         (getSize): fixed misleading comment,
3466         (getAllocSize): removed, the additional allocation size is now in
3467         sym->flexArrayLength,
3468         (checkStructFlexArray): new, syntax checks for flexible array members,
3469         (compStructSize): added syntax checks for "flexible array members"
3470         (copyStruct): removed,
3471         (copyLinkChain): removed inefficient fix for bug 770487
3472         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
3473         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
3474         symbol->flexArrayLength
3475         * src/SDCCerr.c,
3476         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
3477         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
3478         * support/regression/tests/structflexarray.c: added
3479         * support/valdiag/tests/structflexiblearray.c: added
3480
3481 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
3482
3483         * src/SDCCast.c (decorateType): fixed bug 1368489
3484         * support/Util/SDCCerr.c,
3485         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
3486
3487 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3488
3489         * device/include/mcs51/at89c51snd1c.h: added file submitted by
3490           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
3491
3492 2005-11-27 Borut Razem <borut.razem AT siol.net>
3493
3494         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
3495           support/cpp2/mkdeps.h: added command line option
3496           -obj-ext=<extension> to SDCPP to define object file externion, used
3497           for generation of make dependencies (-M)
3498         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
3499
3500 2005-11-26 Borut Razem <borut.razem AT siol.net>
3501
3502         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
3503           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
3504           added pic and pic16 libraries
3505
3506 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3507
3508         * device/include/float.h: Corrected typo in prototype of __fsgt
3509
3510 2005-11-25 Borut Razem <borut.razem AT siol.net>
3511
3512         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
3513           added creation of model-mcs51-stack-auto libraries
3514
3515 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
3516
3517         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
3518         and fields-list too
3519         * src/SDCCast.c (createIvalArray): removed obsolete comment
3520
3521 2005-11-24 Borut Razem <borut.razem AT siol.net>
3522
3523         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
3524           added missing device/lib/mcs51/crt*.asm sources
3525
3526 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
3527
3528         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
3529
3530 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
3531
3532         * device/lib/_fs2schar.c,
3533         * device/lib/_fs2sint.c,
3534         * device/lib/_fs2slong.c: optimized inline asm
3535
3536 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3537
3538         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3539           Better handling of floats between -1.0 and 0.0.
3540
3541 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3542
3543         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
3544           (the missing "if"s prohibited removal of redundant labels)
3545
3546 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3547
3548         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3549           Properly convert floats between -1.0 and 0.0 to long, int, and char
3550           types (max integer value of negative floats tends to zero).
3551         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3552           Removed changes made so to work properly with floats between
3553           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
3554           and _fs2char.c
3555
3556 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3557
3558         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
3559         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
3560         (genCast) cosmetic change
3561         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
3562         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
3563         from mcs51
3564         * support/regression/tests/bitfields (testSignedBitfields): added
3565
3566 2005-11-18 Borut Razem <borut.razem AT siol.net>
3567
3568         * sdcc/device/lib/Makefile.in: remove all unnecessary files
3569         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
3570           introduced SILENT option to make building of pic16 libraries less
3571
3572 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3573
3574         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3575           Now they work properly with floats between -1.0 and 0.0
3576         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
3577
3578 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
3579
3580         * src/SDCCicode.c (printOperand): added missing else
3581
3582 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3583
3584         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
3585         reformatted for better readability
3586         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
3587         signed bitfields
3588
3589 2005-11-17 Borut Razem <borut.razem AT siol.net>
3590
3591         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
3592           introduced SILENT option to make building of pic16 libraries less
3593           verbose - used for nightly snapshot build
3594         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
3595           available on Win32 platforms.
3596         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
3597           medium, large, pic and pic16
3598
3599 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3600
3601         * device/lib/printf_large.c: Temporary patch for bug 1358192:
3602           printf("%f"...) sets fraction to zero.
3603
3604 2005-11-16 Raphael Neider <rneider AT web.de>
3605
3606         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
3607           fixes #1357221
3608         * src/pic/gen.c (genIfx): implemented for CARRY bit
3609         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
3610           to generic pointers, fixes #1357332,
3611           (pic16_movLit2f): NEW,
3612           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
3613
3614 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3615
3616         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
3617
3618 2005-11-11 Raphael Neider <rneider AT web.de>
3619
3620         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
3621         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
3622           compute pointer's type from operand,
3623           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
3624           improved single bit reads, fixes bug #1353379
3625
3626 2005-11-09 Borut Razem <borut.razem AT siol.net>
3627
3628         * support/scripts/sdcc.nsi: added lib/pic to the package
3629
3630 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
3631
3632         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
3633
3634 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
3635
3636         * support/regression/tests/bug1348008.c: added
3637         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
3638         * support/regression/tests/bug1337835.c: updated comment
3639
3640 2005-11-06 Borut Razem <borut.razem AT siol.net>
3641
3642         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3643           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3644           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3645           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3646           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
3647           dynamic construction of cl_error_class and derivates - 2.nd try
3648
3649 2005-11-05 Borut Razem <borut.razem AT siol.net>
3650
3651         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
3652           bug, which caused Bus Errors on sparc solaris
3653
3654 2005-11-04 Borut Razem <borut.razem AT siol.net>
3655
3656         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3657           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3658           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3659           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3660           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
3661           and derivates to resolve the initialization problem on OSX
3662
3663 2005-11-02 Borut Razem <borut.razem AT siol.net>
3664
3665         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3666           corrected typo - #include <winsock2.h>
3667
3668 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
3669
3670         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
3671           (_asxxxx_mapping): added org directive for future enhancements
3672
3673 2005-11-01 Borut Razem <borut.razem AT siol.net>
3674
3675         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3676           enabled sockets on WIN32
3677         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
3678
3679 2005-10-31 Borut Razem <borut.razem AT siol.net>
3680
3681         * support/regression/generate-cases.py: escape backslashes in {testcase}:
3682           WIN32 backslash path delimiters should be escaped when used in C strings
3683         * support/regression/tests/bitfields.c: exclude failing assertions for
3684           __CYGWIN32__ and __MINGW32__ hosts
3685
3686 2005-10-30 Borut Razem <borut.razem AT siol.net>
3687
3688         * src/SDCCutil.c: corrected double comparison typo
3689
3690 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
3691
3692         * device/lib/medium/Makefile: added for new memory model medium
3693         * device/include/asm/mcs51/features.h: updated for medium/pdata
3694         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
3695           added Multiply & Accumulate sbit's and MAC0_PAGE define
3696         * device/include/mcs51/c8051f300.h: added sfr16 definitions
3697         * device/include/mcs51/c8051f310.h: added sfr16 definitions
3698         * device/lib/_mullong.c: update for medium model
3699         * device/lib/incl.mk: added medium model
3700         * doc/sdccman.lyx: documented medium model
3701         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
3702         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
3703         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
3704         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
3705           (allocParms): set SCLS and OCLS to pdata for medium model
3706         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
3707           for pdata,
3708           (powof2): return <0 if not power of 2
3709         * src/avr/gen.c (genBitWise): use updated powof2
3710         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
3711           (shiftR2Left2Result): small optimization in setup, save acc when storing,
3712           (shiftLLeftOrResult): use B if necessary
3713         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
3714         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
3715         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
3716         * support/regression/Makefile.in: added test-mcs51-medium
3717         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
3718
3719 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
3720
3721         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
3722         specifier unsigned
3723         * device/lib/time.c (mktime): fixed bug 1334315
3724
3725 2005-10-28 Raphael Neider <rneider AT web.de>
3726
3727         * device/include/pic/p16f_common.inc: added common declarations
3728         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
3729
3730 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3731
3732         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
3733           (aopPutUsesAcc): added to predict accumulator use,
3734           (assignResultValue): save acc if necessary,
3735           (genMinusDec): store result if indirectly addressed,
3736           (genDivOneByte):  save acc if necessary,
3737           (movLeft2Result): bugfix if left already in acc,
3738           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
3739             attention to accumulator use (esp. pdata),
3740           (genReceive): receive pdata correctly
3741         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
3742         * src/SDCCicode.h: added isOperandInPagedSpace prototype
3743
3744 2005-10-27 Raphael Neider <rneider AT web.de>
3745
3746         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
3747
3748 2005-10-27 Raphael Neider <rneider AT web.de>
3749
3750         * .version: changed version to 2.5.4
3751         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
3752         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
3753           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
3754             arithmetics support routines
3755         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
3756         * device/lib/Makefile.in: also create installdir for pic
3757
3758         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
3759           pic14 port as well
3760         * src/pic/device.c (dump_sfr): rewritten to delegate register
3761           placement to the linker (use `extern sym' rather than sym EQU addr),
3762           (validAddress): fixed to check last specified address
3763         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
3764           (popGetLit): truncate literal value to 8 bit,
3765           (popGet): moved assert to more appropriate place
3766           (popGetExternal): create pCode operand from and mark the according
3767             symbol as being `extern'
3768           (popGetAddr): added sanity check on immediate's offset, provide
3769             GPOINTER tag on demand
3770           (aopPut): fixed for immediates,
3771           (mov2w_op): move operand's address or contents to WREG (depending on
3772             operand type), safer variant of mov2w,
3773           (movwf,call_libraryfunc): NEW, handy abbreviations,
3774           (get_argument_pcop,get_return_val_pcop,pass_argument,
3775           get_returnvalue): interface for accessing function parameters and
3776             return values,
3777           (assignResultValuei,genRet): use new parameter/return value interface
3778           (pic14_getDataSize): back to old version handling generic pointers,
3779           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
3780             provided implementation and/or fixed old one,
3781           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
3782             calls, removed legacy 8051 reference code
3783           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
3784           (loadSignToC): NEW, move the operands sign bit to CARRY,
3785           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
3786             genRightShiftSigned, accepts negative shift counts,
3787           (setup_fsr): load FSR and adjust IRP (indirect memory access),
3788           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
3789             generic pointers, __data pointers and __code pointers,
3790           (genUnpackBits,genPackBits): rewritten to work with generic pointers
3791             and signed bitfields, limit bitfields to 8 bit,
3792           (genDataPointerGet): fixed number of bytes read,
3793           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
3794           (genPointerGet,genPointerSet): fixed handling of __code pointers,
3795             pointers to constant data are no longer assumed to point to __code
3796             space, removed invalid pointer types,
3797           (bitpatternFromVal): retrieve the PICs representation of an integer
3798             or float literal,
3799           (genDataPointerSet): fixed assigning to po_immediate operands,
3800           (genGenPointerSet): implemented as library call,
3801           (genIfx): fixed incorrect condition,
3802           (genAddrOf): limit generic pointers' addresses to 2 bytes,
3803             provide GPOINTER tag according to destination's storage class,
3804           (genCast): added code to handle casting to generic pointers, added
3805             sign-/zero extension of the result
3806           (aop_isLitLike,op_isLitLike): fixed handling of immediates
3807         * src/pic/gen.h: added macros to access IRP bit in STATUS register
3808         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
3809           extend the result
3810         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
3811           address/register resides in the shared banks
3812           (emitSymbolToFile): improved to handle global and `pinned' symbols,
3813             put all variables into separate sections (have the linker arrange
3814             them)
3815           (picglue): put init code and interrupt handlers in separate sections
3816         * src/pic/main.c: added port specific options table, modified to PORT
3817           structure to make GPOINTERs 3 byte, added pic14_options
3818           (_pic14_do_link): private linking routine (update paths to libraries,
3819             add libsdcc.lib by default)
3820         * src/pic/main.h: declare pic14_options
3821         * src/pic/pcode.c: fixed instructions i/o relations,
3822           (RegCond): reverted to correct version,
3823           (newpCodeOpLit): truncate literals to 8 bit,
3824           (genericPrint): added debug output,
3825           (getRegFromInstruction): fixed for various operand types, simplified
3826           (BuildFlow): fixed broken handling of isntructions with labels
3827           (LinkFlow): start at last instruction in flow (skip trailing comments),
3828             pass the flow on to the next instruction after CALL
3829           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
3830           (insertPCodeInstruction): fixed inserting after a skip instruction,
3831           (DoBankSelect): fixed for labeled instructions
3832           (OptimizepBlock): honor --nopeep switch
3833           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
3834         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
3835         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
3836           (pCodeOptime2pCodes): allow disabling this optimization via
3837             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
3838             but is still buggy), started implementation of a dataflow based
3839             pCode optimization (CSE + dead code elimination)
3840           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
3841         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
3842           names are independant of the stack location and therefore portable across
3843           devices
3844
3845 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3846
3847         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
3848           (selectSpil): fixed bug 1337835 by not spilling bit variables
3849         * support/regression/tests/bug1337835.c: added test for this bug
3850         * src/mcs51/peeph.def: restart after rule 3.c,
3851           addded rules 263.x to optimize loading constants
3852
3853 2005-10-26 Raphael Neider <rneider AT web.de>
3854
3855         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
3856         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
3857           (genAssign): emit warning when casting literals to generic pointer
3858             type, also applies when taking the address of a fixed variable,
3859           (genCast): improved casting to generic pointers
3860         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
3861           extern variables, added verbose error message
3862         * device/include/pic16/{string.h,errno.h}: added #pragma library c
3863
3864 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
3865
3866         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
3867         carry must be complemented too
3868         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
3869         could be emitted by genMinus
3870         * src/SDCCval.c (constVal): fixed bug 1305065
3871
3872 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
3873
3874         * src/SDCCast.c (addCast): added promotion for bit variables
3875         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
3876         promotion casts + optimisation
3877         (optimizeGetWord): fix warning 'i' might be used uninitialized
3878         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
3879         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
3880
3881 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
3882
3883         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
3884         all chars are promoted to int; promotion should be handled in SDCCast.c
3885
3886 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3887
3888         * device/lib/_strcmp.c: Fixed bug 1326457
3889
3890 2005-10-11 Raphael Neider <rneider AT web.de>
3891
3892         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
3893         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
3894
3895 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3896
3897         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
3898         * support/regression/tests/sfr16.c: added test for the sfr32 bug
3899
3900 2005-10-04 Raphael Neider <rneider AT web.de>
3901
3902         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
3903           device/lib/pic16/pics.all: added pic18f1320
3904         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
3905
3906 2005-09-30 Raphael Neider <rneider AT web.de>
3907
3908         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
3909         * src/pic16/devices.inc: NEW, provides device descriptions
3910         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
3911
3912 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
3913
3914         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
3915           GETHBIT
3916
3917 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
3918
3919         * doc/sdccman.lyx: updated Highest Order Bit documentation,
3920           documented Any Order Bit, Higher Order Byte and Higher Order Word
3921         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
3922         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
3923           (optimizeGetAbit): new, to get any bit, not only the high bit,
3924           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
3925           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
3926           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
3927           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
3928             RIGHT_OP: also try GETBYTE, GETWORD optimization,
3929             GETABIT, GETBYTE, GETWORD: decorate them,
3930           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
3931           (ast_print): added GETABIT, GETBYTE, GETWORD
3932         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
3933         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
3934           (geniCodeBinary): new generic binary icode,
3935           (ast2iCode): added GETABIT, GETBYTE, GETWORD
3936         * src/port.h: updated comment for PORT.hasExtBitOp
3937         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
3938           (genGetByte): new, to get a single byte,
3939           (genGetWord): new, to get a word from a long,
3940           (gen51Code): added GETABIT, GETBYTE, GETWORD
3941         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
3942
3943 2005-09-23 Raphael Neider <rneider AT web.de>
3944
3945         * configure.in, configure: have device/lib/pic configured
3946         * device/lib/Makefile.in: added model-pic14
3947         * device/lib/clean.mk: added pic/ to clean rule
3948         * device/lib/pic: added rudimentary pic14 library providing support
3949           functions for multiplication/division/generic pointer access
3950         * src/SDCCopt.c (convilong): mark support functions as extern
3951           for pic14 port as well
3952         * src/pic/gen.c (genMult): added assertions,
3953           (genpic14Code): emit warning on unhandled iCodes
3954         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
3955         * src/pic/pcode.c (pCodeOpCopy),
3956         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
3957           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
3958           SFR_REGISTER}), made safe for future extensions
3959         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
3960           instructions even if preceeded by SKIP instructions (also remove
3961           them); removed unused code
3962         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
3963           prevents leaving parts of the structure uninitialized after copying
3964
3965 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
3966
3967         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
3968           ago by me
3969         * support/regression/tests/addsub.c: added test for the bug
3970
3971 2005-09-21 Raphael Neider <rneider AT web.de>
3972
3973         * device/include/pic16/pic18f1220.h,
3974           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
3975         * device/lib/pic16/Makefile.rules: added missing opening paren
3976         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
3977           are provided in genutils.c,
3978           (genUminusFloat,genUminus,genCmpEq): added asserts on different
3979           operand/result sizes,
3980           (genCmp): assert on NULL pointers first, then check deref'ed values
3981         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
3982           result size
3983
3984 2005-09-18 Raphael Neider <rneider AT web.de>
3985
3986         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
3987           as these are now unused,
3988           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
3989         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
3990           local, avoids uninitialized pointer dereference on r->name
3991         * src/pic16/ralloc.c (newReg): fixed indentation
3992
3993 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
3994
3995         * src/SDCCval.c (constVal): fixed bug 730366
3996         * support/Util/SDCCerr.c,
3997         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
3998
3999 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4000
4001         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
4002
4003 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
4004
4005         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
4006
4007 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4008
4009         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
4010           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4011         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
4012           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4013         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
4014         * packihx/packihx.c (hexDigit): made c unsigned char
4015         * as/mcs51/lklibr.c (fndsym),
4016         * link/z80/lkgb.c (gb),
4017         * link/z80/lklibr.c (fndsym),
4018         * link/z80/lkrloc.c (relr),
4019         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
4020         * src/SDCC.lex (checkCurrFile, process_pragma),
4021         * src/SDCCglue.c (spacesToUnderscores),
4022         * src/SDCCmain.c (setParseWithComma, processFile),
4023         * src/asm.c (tvsprintf, printCLine),
4024         * src/avr/gen.c (emitcode, aopPut),
4025         * src/ds390/gen.c (emitcode),
4026         * src/hc08/gen.c (emitcode, emitinline),
4027         * src/mcs51/gen.c (emitcode, genInline),
4028         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4029           tokenizeLineNode),
4030         * src/pic/ralloc.c (debugLog),
4031         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4032           tokenizeLineNode),
4033         * src/pic16/ralloc.c (debugLog),
4034         * src/z80/main.c (_process_pragma):
4035            made all ctype.h function calls safe
4036         * src/SDCCopt.c: include math.h for fabs
4037         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
4038           and used them throughout the code to make ctype.h function calls safe
4039         * src/ds390/main.c (asmLineNodeFromLineNode),
4040         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
4041         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
4042            unsigned char*
4043         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
4044           (newpCodeAsmDir): made ctype.h function calls safe
4045         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
4046           pic16_emitcode):  made lbp unsigned char*
4047         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
4048           (pic16_newpCodeAsmDir): made ctype.h function calls safe
4049         * src/xa51/gen.c (emitcode),
4050         * src/z80/gen.c (_emit2): made lbp unsigned char*
4051         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
4052            char*
4053
4054 2005-09-05 Raphael Neider <rneider AT web.de>
4055
4056         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
4057           access bank splitpoint
4058
4059 2005-09-05 Raphael Neider <rneider AT web.de>
4060
4061         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
4062
4063 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
4064
4065         * .version: changed to version 2.5.3
4066         * doc/sdccman.lyx: changed version to 2.5.3,
4067           documented --codeseg and --constseg and pragma codeseg and constseg,
4068           documented bit parameters (reentrant) and bit returning
4069         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
4070            currFunc->recvSize, but is this ok for all ports?
4071           (ast2iCode): result of ~ on unsigned char must be cast to int for
4072            bool to work
4073         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
4074           function pointers in bit space
4075         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
4076           (processFuncArgs): call port.reg_parm() with reentrancy info
4077         * src/port.h,
4078         * src/avr/main.c,
4079         * src/ds390/main.c,
4080         * src/hc08/main.c,
4081         * src/pic/main.c,
4082         * src/pic16/main.c,
4083         * src/xa51/main.c,
4084         * src/z80/main.c: port.reg_parm prototype extended with
4085           "bool reentrant" parameter
4086         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
4087           options.stackAuto for allocating bit register parameters
4088         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
4089           (genSend): set BitBankUsed if it is,
4090           (selectRegBank): factored out of genCall for use in genPcall,
4091           (genCall): removed redundant dtype assignmen, use selectRegBank,
4092           (genPcall): handle returning in Carry properly, save in F0 if needed,
4093           (genReceive): handle bit register parameters
4094         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
4095           (mcs51_assignRegisters): enable bit registers for all reentrant
4096            functions and don't set BitBankUsed unconditionally
4097         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
4098         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
4099         * support/regression/tests/funptrs.c: added tests for BOOL and for return
4100
4101 2005-08-27 Borut Razem <borut.razem AT siol.net>
4102
4103         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
4104         ppc-osx (Darwin) does not support -u option. It seems that it is
4105         supported only on Linux - GNU cp
4106
4107 2005-08-25 Borut Razem <borut.razem AT siol.net>
4108
4109         * sim/ucsim/gui.src/serio.src/Makefile.in,
4110           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
4111           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4112           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
4113           install and strip, since the strip at /usr/ccs/bin should be used
4114           on solaris
4115
4116 2005-08-24 Borut Razem <borut.razem AT siol.net>
4117
4118         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
4119
4120 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
4121
4122         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
4123         ffffffffu
4124
4125 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
4126
4127         * as/mcs51/aslink.h: completed lkrloc.c prototypes
4128         * as/mcs51/lkmain.c (link_main): fixed warning
4129         * device/include/stdbool.h: ds390 has no advanced bit support yet
4130         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
4131         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
4132         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
4133           and updated their macros
4134         * src/SDCCval.c (constVal): updated comment for renamed b_long
4135
4136 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
4137
4138         * as/mcs51/asdata.c: changed ctype['['] to BINOP
4139         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
4140           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
4141           (oprio): set priority for '['
4142         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
4143            and adb_24_bit
4144         * as/mcs51/asm.h: added defines R_BIT and S_BIT
4145         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
4146         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
4147         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
4148           added overlayable BIT_BANK area
4149         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
4150           (summary2): explain 'T' in legenda
4151         * as/mcs51/lkrloc.c: replaced old K&R style,
4152           (relr): added R_BIT processing,
4153           (errmsg): added "Bit-addressable relocation error",
4154           (adb_bit): added for converting from byte- to bit-addressable space,
4155           (adb_24_bit): added for converting from byte- to bit-addressable space
4156         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
4157            used in reentrant functions now even as return value
4158         * device/lib/_gptrput.c (_gptrput): removed obsolete code
4159         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
4160           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
4161         * src/SDCCglobl.h: added indicator BitBankUsed
4162         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
4163            the bit registers b0-b7
4164         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
4165           (geniCodeCast): fixed bug 1263853,
4166           (geniCodeLogicAndOr): put result in bool or char,
4167           (geniCodeReceive): added parameter func for accessing the return type,
4168           (geniCodeFunctionBody): pass func to geniCodeReceive
4169         * src/SDCCmain.c: added indicator BitBankUsed
4170         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
4171         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
4172           (checkSClass): don't put automatic bool/bit on stack,
4173           (checkFunction): removed check on function cannot return bit
4174         * src/SDCCsymt.h: added newBoolLink prototype
4175         * src/mcs51/gen.c (rb1regs): added bit registers,
4176           (movc): created for assigning to carry,
4177           (pushReg, popReg): created for pushing registers,
4178           (sameRegs): check both AOP_REG and AOP_CRY types,
4179           (aopOp): handle bit registers,
4180           (aopPut): optimization no self-assign,
4181           (saveRegisters): push reg->base (bits) only once for bit registers,
4182            and use pushReg,
4183           (unsaveRegisters): pop reg->base only once and use popReg,
4184           (assignResultValue): added parameter func and return in carry for bits,
4185           (genIpush): optimization no reload in A if not changed,
4186           (genSend): bit parameters in reentrant functions are passed in bit
4187            registers by first assigning to bits in B, then save registers and
4188            copy B to bits,
4189           (genCall): handle returning in Carry properly, save it in F0 if needed,
4190           (genPcall): updated assignResultValue call, this is not safe yet for bit
4191            returning function !!!
4192           (genFunction): don't generate equ's for bit registers and use pushReg,
4193           (genEndFunction): take care of bit returning functions and use popReg,
4194           (genRet): return bit in Carry,
4195           (genIfx): optimize bit registers and other directly addressable bits,
4196           (genReceive): updated assignResultValue call
4197         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
4198           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
4199            registers when using stack-auto
4200         * src/mcs51/ralloc.c (_G): added allBitregs,
4201           (regs8051): added the bit registers,
4202           (createStackSpil): use macro IS_BIT,
4203           (getRegBit): added to allocate a bit register, else spill,
4204           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
4205           (updateRegUsage): factored out to ease stepping while debugging,
4206           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
4207            also allocate bit registers,
4208           (fillGaps): handle bit registers,
4209           (findAllBitregs): added to create bit vector with all bit registers,
4210           (mcs51_allBitregs): returns this bit vector,
4211           (mcs51_assignRegisters): when using stack-auto use bit registers for
4212            passing parameters and creating local variables
4213         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
4214
4215 2005-08-22 Borut Razem <borut.razem AT siol.net>
4216
4217         * device/lib/Makefile.in: replaced find option -or with -o
4218           to make it run on solaris
4219
4220 2005-08-22 Raphael Neider <rneider AT web.de>
4221
4222         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
4223           fixes #1265442 (crash on Solaris)
4224
4225 2005-08-20 Borut Razem <borut.razem AT siol.net>
4226
4227         * configure, configure.in: added tests for libsocket and libnsl libraries,
4228           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
4229           from support/regression/Makefile.in
4230         * support/regression/Makefile.in: added
4231         * device/lib/pic16/Makefile.common.in: force make to use bash shell
4232         * sim/ucsim/libtool: regenerated on sparc-solaris
4233         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4234           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
4235           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
4236           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
4237           sparc-solaris, which doesn't use GNU ld linker
4238         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
4239         * as/Makefile: find on sparc-solaris does not support -maxdepth option
4240
4241 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
4242
4243         * src/mcs51/peeph.def: updated comments
4244
4245 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4246
4247         * device/lib/_gptrget.c,
4248         * device/lib/_gptrput.c: slightly shorter
4249         * doc/sdccman.lyx: incremented version
4250         * src/mcs51/peeph.def: moved peephole comments to the line of first
4251           change to better keep line correlation, reanimated 186.e
4252         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
4253
4254 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4255
4256         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
4257           David Saxton with quotes around file name.
4258
4259 2005-08-15 Borut Razem <borut.razem AT siol.net>
4260
4261         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
4262           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
4263           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
4264           make tests run on x86_64 platform
4265
4266 2005-08-13 Raphael Neider <rneider AT web.de>
4267
4268         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
4269           as it might be executed DURING a build (parallel make is wonderful)
4270
4271 2005-08-13 Raphael Neider <rneider AT web.de>
4272
4273         * device/lib/Makefile.in (port-specific-objects-pic16):
4274           revert to cp $(PORT)/bin/*.* $(PORTDIR)
4275         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
4276           dependency
4277         * device/lib/pic16/Makefile.rules: build subdirs before creating
4278           the library, removed builddir rule, create $(builddir) early in
4279           recurse rule, use empty recurse rule for leaf directories
4280         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
4281           mkdir errors (race condition), removed duplicate suffix "hex"
4282           from clean rules
4283         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
4284         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
4285           prevents mkdir -p from aborting on Alpha
4286
4287 2005-08-12 Raphael Neider <rneider AT web.de>
4288
4289         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
4290           db-statements in order to allow for arrays of pointers in code
4291           sections to be placed without interspersed 0-padding, fixes
4292           bug #1256215
4293         * (emitStatistics): fixed division by zero for pic18f1220
4294         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
4295           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
4296         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
4297         * (pic16_pCodeConstString): keep track of already emitted string
4298           literals to prevent "duplicate definitions of symbol _str_NR"
4299         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
4300           debug message
4301         * device/lib/Makefile.in: ignore failing PIC16 library builds
4302         * device/lib/pic16/Makefile: do not build if gputils are missing
4303         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
4304
4305 2005-08-10 Raphael Neider <rneider AT web.de>
4306
4307         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
4308           my last commit)
4309
4310 2005-08-10 Raphael Neider <rneider AT web.de>
4311
4312         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
4313           Rokas' patch to add the new fixed point type "__fixed16x16"
4314         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
4315           functions for __fixed16x16 arithmetics
4316         * device/lib/pic16: reimplemented the build system to support
4317           a separate build directory, better handling of libio (create
4318           the library in a separate subdir for each architecture) and
4319           easier configuration (centralized in Makefile.common)
4320
4321 2005-08-07 Raphael Neider <rneider AT web.de>
4322
4323         * src/pic16/gen.c (genrshTwo): fixed sign extension
4324         * src/pic16/device.c: added pic18f2320, 4220 and 4320
4325         * device/include/pic16/pic18f2220.h: changed some bit definitions,
4326           added T0CONbits
4327         * device/include/pic16/pic18f4220.h: NEW, header for
4328           pic18f4220 and pic18f4320
4329         * device/include/pic16/pic18fregs.h: added new devices,
4330           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
4331         * device/include/pic16/signal.h: resolved name clashes
4332           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
4333           to also allow testing for interrupt enable bits, added
4334           comments on how to use the macros
4335         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
4336         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
4337           register definitions for the devices
4338         * device/lib/pic16/pics.all: added new devices
4339         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
4340           allocated memory
4341         * device/lib/pic16/libc/stdlib/memfree: do not count
4342           the block header as free memory
4343         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
4344           simplified and added missing end-of-blocklist-marker
4345           (reported by Peter Onion, fixes #1252814)
4346         * (_mergeHeapBlock): fixed loop condition
4347         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
4348           len==0, restructured code
4349         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
4350           up a bit, reduced bitfield accesses, prevent endless loops
4351           in case of heap corruption
4352         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
4353           "unreferenced arguments/must return a value" warnings
4354         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
4355           replaced BAUDREG with SPBRG
4356         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
4357           device/lib/pic16/debug/gstack/gstack.c: replaced
4358           _naked, _asm, _endasm with __naked, __asm, __endasm
4359
4360 2005-08-05 Raphael Neider <rneider AT web.de>
4361
4362         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
4363           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
4364
4365 2005-08-05 Borut Razem <borut.razem AT siol.net>
4366
4367         * device/lib/Makefile.in: added missing ';'
4368         * configure: removed ^M characters
4369
4370 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4371
4372         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
4373           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
4374           License
4375
4376 2005-08-04 Borut Razem <borut.razem AT siol.net>
4377
4378         * configure.in: pic16 libraries build 2nd try - enable running
4379           configure in device/lib/pic16
4380         * configure: regenerated from configure.in
4381         * device/lib/Makefile.in: create $(PORT)/bin directory
4382
4383 2005-08-03 Raphael Neider <rneider AT web.de>
4384
4385         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
4386           to get/set values via pointers
4387         * (genUnpackBits,genPackBits): changed detection of
4388           ptr->bitfield vs. sym.bitfield, fixed access via generic
4389           pointers, removed dead (wrong) code for multibyte bitfields
4390         * (genNearPointerGet, genGenPointerGet): removed useless code,
4391           fixed bitfield detection, fixes #1250594
4392         * (genNearPointerSet): removed useless code
4393         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
4394           and introduced macro pic16_emitpcode that conditionally emits
4395           the origin of the following pCode (useful for debugging SDCC)
4396         * src/pic16/pcode.c: changed (and disabled) some debug outputs
4397         * (createDefmap): fixed handling of LFSR for --optimize-df
4398
4399 2005-08-02 Borut Razem <borut.razem AT siol.net>
4400
4401         * device/lib/Makefile.in: pic16 libraries build enabled since
4402           gputils-0.13.2 are now localy installed at sourceforge's compile farm
4403
4404 2005-08-02 Raphael Neider <rneider AT web.de>
4405
4406         * src/pic16/gen.c (genPackBits): removed deprecated warning
4407         * (genGenPointerSet): fixed bitfield detection
4408
4409 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4410
4411         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
4412
4413 2005-07-31 Raphael Neider <rneider AT web.de>
4414
4415         * device/lib/pic16/libdev/pic18f458.c,
4416           device/include/pic16/pic18f458.h: added missing T0CONbits
4417
4418 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
4419
4420         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
4421
4422 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
4423
4424         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
4425
4426 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4427
4428         * device/include/mcs51/at89c51ed2.h: added.
4429
4430 2005-07-23 Raphael Neider <rneider AT web.de>
4431
4432         * src/pic/gen.h: added emitpcode macro for debugging
4433         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
4434           and replace by macro adding debug information on demand
4435         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
4436         * (gencjne): tried to fix; replaced with correct (slower) code
4437         * (gen{Unp,P}ackBits): fixed single bit access
4438         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
4439         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
4440           previous instruction
4441         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
4442           register has to be handled with care (forbidding movement
4443           of assignments/uses, removing assignments completely, ...)
4444         * (pCodeOptime2pCodes): make use of regIsSpecial
4445         * added lots of debugging output (commented out)
4446         * src/pic/rallloc.c (deassignLRs): prevent operand registers
4447           from being reused as result UNLESS it is known to work
4448
4449 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
4450
4451         * support/Util/dbuf.h: include <stddef.h> for size_t
4452         * .version: changed to version 2.5.2
4453
4454 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4455
4456         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
4457
4458 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4459
4460         * src/hc08/gen.c (genMinus): fixed bug #1241835,
4461           (genModOneByte): removed needless psha/pula
4462
4463 2005-07-22 Raphael Neider <rneider AT web.de>
4464
4465         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
4466           have PIC14 handled like PIC16, fixes broken pic14 linker calls
4467         * src/pic/gen.c (resolveIfx): do not "invent" labels
4468         * (genSkipc): changed to positive logic
4469         * (genSkipCond): removed as no longer needed
4470         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
4471           backport from PIC16
4472         * (genLeftShift): check operands are in different registers
4473         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
4474           INCF does not update CARRY...
4475         * src/pic/main.c: fixed _linkCmd
4476         * src/pic/pcode.c (unlinkpCode): added inactive code
4477         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
4478           alive (do not assign result and operand overlapping registers)
4479
4480 2005-07-22 Raphael Neider <rneider AT web.de>
4481
4482         * src/pic/device.c (dump_sfr): replaced register declaration with
4483           call to emitSymbolToFile() to avoid duplicate symbols
4484         * (assignRelocatableRegisters): do not declare external symbols
4485         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
4486           right (take size of type, not etype)
4487         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
4488         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
4489         * (packRegsForAccUse): disabled assignment of WREG as
4490           the result reg to prevent occurence of just fixed #1235003,
4491           fixes #1242954
4492         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
4493           symbols (avoids duplicate symbols in .asm file)
4494         * (pic14emitRegularMap): use emitSymbolToFile()
4495         * src/pic/gen.c (aopOp): fixed spillLocation handling
4496         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
4497         * (genDataPointerSet): removed unneccessary variables/output
4498
4499 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
4500
4501         * as/mcs51/lkarea.c: enlarged codemap for banked memory
4502         * device/lib/mcs51/crtbank.asm: added # to 0x0F
4503
4504 2005-07-21 Raphael Neider <rneider AT web.de>
4505
4506         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
4507           architecture cannot handle them efficiently, fixes bug #1235003
4508         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
4509           check for empty sets before using them (fixes bug #1232190)
4510
4511 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
4512
4513         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
4514           (lnksect2): generate warnings for memory overlap
4515         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
4516           constseg to set the name of these segments so you can instruct the linker
4517           to place them in banks
4518         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
4519         * src/SDCCglobl.h: added MODEL_HUGE to enum,
4520           added code_seg and const_seg to options
4521         * src/SDCCglue.c (emitMaps): use options.const_seg,
4522           (createInterruptVect): put interrupt vectors in segment HOME,
4523           (glue): put HOME before static segment and put the main glue in HOME,
4524           (glue): use options.code_seg
4525         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
4526         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
4527           these segments so you can instruct the linker to place them in banks
4528           (linkEdit): use code_loc for HOME segment which should be the first
4529           segment in code memory now
4530         * src/SDCCmem.c: fixed more stuff like bug 1238386
4531         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
4532           (changePointer): don't change function pointers to code pointers for
4533           banked functions,
4534           (compareType): added exceptional check for banked function pointers
4535         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
4536         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
4537           after static in code memory
4538         * src/mcs51/gen.c: added aopLiteralLong prototype,
4539           (aopForSym): use getSize for functions,
4540           (genCall): generate banked calls over one trampoline __sdcc_banked_call
4541           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
4542           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
4543           the segment,
4544           (genPcall): use call for literal function pointers and generate banked
4545           calls over the one trampoline so there's only one place for the user to
4546           modify according to his/hers hardware,
4547           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
4548           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
4549         * src/mcs51/main.c: added keyword banked,
4550           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
4551         * support/Util/SDCCerr.c,
4552         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
4553           needed for passing the bank and address to the trampoline
4554         * device/lib/mcs51/crtbank.asm: added for bankswitching
4555         * device/lib/mcs51/Makefile: added crtbank
4556
4557 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4558
4559         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
4560           for fields at offset 0 of a struct or union as reported
4561           on 2005-07-07 in the developer mailing list.
4562
4563 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
4564
4565         * src/SDCCmem.c: fixed bug 1238386
4566
4567 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4568
4569         * src/mcs51/peeph.def: added labelrefcounting for peepholes
4570           (patch #1144962), added peephole 300, enabled 259.x
4571         * doc/sdccman.lyx: removed screenshot and provided link instead
4572
4573 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4574
4575         * doc/sdccman.lyx: added section about debugging with ddd
4576         * doc/figures/ddd_example.eps: screenshot of debugging session
4577
4578 2005-07-04 Raphael Neider <rneider AT web.de>
4579
4580         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
4581           like CODE pointers, fixes #1115683
4582         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
4583           call, fixes bugs #1232211, #1228110,
4584           fixed wrong casts to pCodeFlow from pCodeInstructions
4585
4586 2005-07-04 Raphael Neider <rneider AT web.de>
4587
4588         * src/pic/gen.c (popGet): changed assert to allow for
4589           bit operands
4590         * (popGetAddr): changed signature to provide
4591           an additional index, patched all call sites
4592         * (genCmpEq): handle literal-like operands correctly
4593         * (genAddrOf): added sanity checks on __code/__data pointers
4594         * (genAssign): added handling of symbols from __code section
4595         * (gencjne): do not generate code for comparisons whose result
4596           is neither stored nor used, fixes bug #1171114
4597         * (AccLsh, AccRsh): operate on operand instead of WREG
4598         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
4599           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
4600           by known count
4601         * rewrote complete shift-by-literal logic, commented unused
4602           functions out
4603         * (genConstPointerGet): get multiple bytes (if result size > 1),
4604           fixed handling of non-immediate addresses
4605         * (genPointerGet): handle CODE pointers like CONST pointers
4606         * (genpic14Code): insert C-SRC lines as Cource-pCodes
4607         * ({aop,op}_isLitLike): NEW, single place to decide whether an
4608           operand is to be treated as a literal or not
4609         * (mov2w,genPcall,genCmpEq),
4610           src/pic/genarith.c: use aop_isLitLike() to decide between
4611           literal/register contents
4612         * (addSign): added missing offset
4613         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
4614           only emit comment in debug-mode,
4615           use {aop,op}_isLitLike throughout the file
4616         * src/pic/glue.c: fix initializers for pointers (work in progress)
4617         * src/pic/pcode.c (get_op): honor index on _const symbols
4618         * ({reset,dump}pCodeStatistics): NEW, estimate code size
4619         * (dumppBlock): added pCode size estimation
4620         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
4621           check for IS_SYMOP before OP_SYMBOL'ing
4622         * fixed indentation, compacted switch-statements
4623         * (allocReg): find free register and allocate it instead of
4624           allocating new registers all the time
4625         * (deassignLRs): prevent POINTER_GET's from being assigned the same
4626           registers as its operands (necessary only for multibyte GETs)
4627
4628 2005-07-01 Raphael Neider <rneider AT web.de>
4629
4630         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
4631           debugging .asm-output macros FENTRY + FEXIT
4632         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
4633           way... I wonder...
4634         * (emitpComment): NEW, printf to pCode
4635         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
4636           offset handling
4637         * (popGetAddr): NEW, variant of popGet to access an immediates
4638           high(er) bytes instead of the n'th byte of memory they reference,
4639           replaced popGet with popGetAddr where neccessary
4640         * (genDataPointerGet): reactivated and fixed implementation
4641         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
4642           accesses
4643         * (genDataPointerSet): fixed multibyte assignments
4644         * (genpic14Code): fixed --i-code-in-asm handling
4645         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
4646         * (genPlus): fixed index-out-of-bounds error
4647         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
4648         * src/pic/ralloc.c: added debugging output macro FENTRY2
4649         * (spillThis): fixed indentation, enbraced for-body for clarity
4650         * (rematStr): commented out as now unused
4651         * (regTypeNum): commented out special spill case (overwrites
4652           arbitrary values)
4653         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
4654
4655 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
4656
4657         * doc/sdccman.lyx: documented sfr16/sfr32,
4658           added example for using storage class with function pointers
4659         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
4660
4661 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
4662
4663         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
4664         * device/lib/_itoa.c,
4665         * device/lib/_ltoa.c: optimized codesize
4666         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
4667           but don't know how to suppress the double warning.
4668         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
4669         * support/Util/SDCCerr.c,
4670         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
4671
4672 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
4673
4674         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
4675           fixed old K&R prototypes
4676         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
4677         * device/lib/_gptrget.c,
4678         * device/lib/_gptrgetc.c,
4679         * device/lib/_gptrput.c: changed versions for new memory indicator values,
4680           also new versions for small generic pointers and banked generic pointers
4681         * src/port.h: added const_name
4682         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
4683         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
4684         * src/SDCCcse.c (findPrevIc): check all associative operators
4685         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
4686         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
4687         * src/SDCCmem.c: updated comments,
4688           set far-space to 0 for pdata, results in optimized code
4689         * src/SDCCmem.h: added macro CONST_NAME
4690         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
4691           moving the info into the highest bits, see also gptrget/gptrput
4692         * src/src.dsp: added sdcc.ico to project files
4693         * src/avr/gen.c (genCast): fixed bug 0x%d
4694         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
4695         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
4696           relation between ptr_type and DCL_TYPE,
4697           (genCast): fixed bug 0x%d
4698         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
4699           (CODE)" for const_name
4700         * src/hc08/gen.c (genCast): fixed bug 0x%d
4701         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
4702           (hc08_port): added "CONST (CODE)" for const_name
4703         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
4704           (aopForRemat, adjustArithmeticResult): disconnected direct relation
4705           between ptr_type and DCL_TYPE,
4706           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
4707           operand* and took AOP() inside function so sfr-ness can be checked,
4708           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
4709           new prototype,
4710           (genFunction, genEndFunction): optimized stack setup,
4711           (genMinus): optimized for literals with ending zeroes (in bytes),
4712           (genCast): fixed bug 0x%d
4713         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
4714           (mcs51_port): added "CONST (CODE)" for const_name
4715         * src/mcs51/peeph.def: made rule 226 more generic
4716         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
4717         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
4718         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
4719         * src/z80/main.c (z80_port): added NULL for const_name,
4720           (gbz80_port): added NULL for const_name
4721         * support/regression/tests/bug663539.c,
4722         * support/regression/tests/sfr16.c: new tests
4723
4724 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4725
4726         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
4727
4728 2005-06-24 Raphael Neider <rneider AT web.de>
4729
4730         * device/lib/pic16/libdev/pic18f[68][567]20.c:
4731           corrected typos...
4732         * device/include/pic16/signal.h: added USBIF
4733           and SIG_USB
4734
4735 2005-06-24 Raphael Neider <rneider AT web.de>
4736
4737         * device/lib/pic16/libdev/pic18f2455.c,
4738           device/include/pic16/pic18f2455.h: NEW
4739         * device/include/pic16/pic18fregs.h,
4740           device/lib/pic16/pics.all,
4741           src/pic16/device.c: added 18f2455
4742         * device/lib/pic16/libdev/pic18f[68][567]20.c,
4743           device/include/pic16/{pic18f[68][567].h,usart.h}:
4744           replaced MULTIPLE_USARTS define with more relaible
4745           compatibility sfrs (for USART access)
4746
4747 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
4748
4749         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
4750           and the output asm file line is printed on two lines.
4751
4752 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4753
4754         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
4755           BGT, BLE, BHI, and BLS instructions
4756         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
4757           genCmpEq): removed
4758         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
4759           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
4760           fixes bug #1216342
4761         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
4762
4763 2005-06-15 Raphael Neider <rneider AT web.de>
4764
4765         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
4766         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
4767         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
4768           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
4769           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
4770
4771 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4772
4773         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
4774           Marcel Telka in bug #1215704
4775
4776 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
4777
4778         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
4779           located in shared memory bank.
4780
4781 2005-05-31 Raphael Neider <rneider AT web.de>
4782
4783         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
4784           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
4785           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
4786
4787 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
4788
4789         * device/lib/_strncpy.c: fixed the fix
4790
4791 2005-05-26 Raphael Neider <rneider AT web.de>
4792
4793         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
4794           initializers with \0, bug #1208187
4795         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
4796           intializers with \0, bug #1208187
4797
4798 2005-05-26 Raphael Neider <rneider AT web.de>
4799
4800         * src/pic16/glue.c (pic16_printIvalChar): fixed string
4801           initializers with \0, bug #1208187
4802         * src/pic16/main.c (_process_pragma): added sanity checks
4803           for stack position and size, emit warnings when appropriate
4804
4805 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4806
4807         * device/lib/_strncpy.c: fixed not filling with \0
4808
4809 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4810
4811         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
4812           createFunction),
4813         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
4814           compound_statement),
4815         * src/SDCCsymt.h,
4816         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
4817
4818 2005-05-24 Raphael Neider <rneider AT web.de>
4819
4820         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
4821
4822 2005-05-24 Raphael Neider <rneider AT web.de>
4823
4824         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
4825           TRISE definitions, closes bug #1162453
4826
4827 2005-05-22 Raphael Neider <rneider AT web.de>
4828
4829         * src/pic16/main.c (_process_pragma): check for missing
4830           arguments to pragmas code and udata
4831         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
4832           consistency fixes to match other headers (thanks to Jim Paris)
4833         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
4834
4835 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4836
4837         * src/SDCCicode.c (isOperandEqual): fixed missing ;
4838
4839 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
4840
4841         * support/regression/tests/bug1198642.c: new test
4842         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
4843         * src/SDCCcse.c (findPrevIc): added comment, please have a look
4844         * support/scripts/resource.h,
4845         * support/scripts/resource.rc,
4846         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
4847         * support/scripts/sdcc.ico: added 32x32 icon
4848
4849 2005-05-18 Raphael Neider <rneider AT web.de>
4850
4851         * device/lib/pic16/libdev/pic18f*.c,
4852         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
4853           keywords to "__sfr" and "__at (X)"
4854         * device/include/pic16/pic18fregs.h: added pic18f4520
4855         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
4856           #1203088 (MPLAB compatibility)
4857
4858 2005-05-17 Raphael Neider <rneider AT web.de>
4859
4860         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
4861         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
4862         * device/lib/pic16/pics.all: added new devices
4863         * src/pic16/device.c: added support for pic18f4520
4864
4865 2005-05-16 Raphael Neider <rneider AT web.de>
4866         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
4867         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
4868         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
4869           convenience function for bit access
4870
4871 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4872
4873         * device/lib/printf_large.c: fixed bug 1193299
4874         * support/regression/tests/bug1057979.c: added test %3.3s
4875
4876 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4877
4878         * device/include/mcs51/8051.h,
4879         * device/include/mcs51/8052.h: made parseable with lint
4880         * device/include/mcs51/lint.h: added include file for (sp)lint
4881         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
4882         * doc/cdbfileformat.lyx,
4883         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
4884
4885 2005-05-14 Raphael Neider <rneider AT web.de>
4886
4887         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
4888         * device/lib/pic16/libc/stdlib/itoa.c (new)
4889         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
4890         * device/lib/pic16/libio/Makefile: exclude subdir according to
4891           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
4892         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
4893         * src/pic16/gen.c (genFunction): prevent annoying warning
4894         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
4895           nameclashes on BeOS
4896         * support/cpp2/cppmain.c (cpp_output_string): new
4897         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
4898           fixes bug 1116802
4899
4900 2005-05-13 Borut Razem <borut.razem AT siol.net>
4901
4902         * src/SDCCmain.c (linkEdit): fixed bug 1195202
4903
4904 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4905
4906         * .version: changed to version 2.5.1; back to bleeding edge development
4907
4908 2005-05-11 Borut Razem <borut.razem AT siol.net>
4909
4910         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
4911           generate PDF version 1.3 documents
4912
4913 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4914
4915         * .version: changed to version 2.5.0
4916
4917 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4918
4919         * doc/sdccman.lyx: updated weblinks, index and smaller updates
4920
4921 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4922
4923         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
4924         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
4925         well as many smaller updates.
4926         * .version: changed to version 2.5.0-pre1
4927
4928 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4929
4930         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
4931
4932 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4933
4934         * support/regression/tests/bug1185672.c: added
4935         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
4936           bug 1185672
4937         * src/mcs51/gen.c (genCall): added comments, made it look safer
4938         * src/mcs51/gen.c (genEndFunction): simplified
4939
4940 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4941
4942         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
4943
4944 2005-04-14 Borut Razem <borut.razem AT siol.net>
4945
4946         * fixed bug 1045046 - SIGSEGV with really simple code?:
4947           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
4948           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
4949
4950 2005-04-14 Borut Razem <borut.razem AT siol.net>
4951
4952         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
4953           src/pic16/device.h: temporarily disabled experimental #inline pragma
4954           for 2.5.0 release
4955
4956 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
4957
4958         * device/include/z80/stdio.h,
4959         * device/include/z80/string.h: removed these highly incomplete files so
4960           SDCC can use the default ones in device/include/
4961
4962 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4963
4964         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
4965         gcc warning.
4966         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
4967         fix sdcpp warnings.
4968
4969 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4970
4971         * device/include/malloc.h: removed redundant __reentrant prototypes
4972         * device/lib/_mullong.c: added working xstack variant in asm (C version
4973           doesn't pass regression tests)
4974         * device/lib/bpx.c: used __data and made bpx char for mcs51
4975         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
4976           (createFunction): fixed bug with xstackPtr
4977         * src/SDCCcse.c: corrected comments
4978         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
4979           (killDeadCode, eBBlockFromiCode): removed unused code
4980         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
4981           corrected comments
4982         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
4983           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
4984           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
4985           (genModOneByte): fixed warning in MSVC
4986         * src/mcs51/main.c (): added comments
4987         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
4988
4989 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4990
4991         * src/SDCCmain.c (linkEdit): oops, changed one line too many
4992
4993 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
4994
4995         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
4996
4997 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
4998
4999         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
5000         characters arrays of larger size than the declared one.
5001
5002 2005-04-10 Borut Razem <borut.razem AT siol.net>
5003
5004         * src/pic/gen.c (genInline),
5005           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
5006           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
5007           (findNextInstruction), (findPrevInstruction),
5008           (findInstructionUsingLabel),
5009           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
5010         * src/pic/pcode.c (findLabel): added missing '\n'
5011         * src/src.dsp: added SDCCdwarf2.c to the project
5012
5013 2005-04-09 Borut Razem <borut.razem AT siol.net>
5014
5015         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
5016
5017 2005-04-08 Raphael Neider <rneider AT web.de>
5018
5019         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
5020           into the chain after a given one) and mergeDefmapSymbols (combine
5021           defmap entries for each symbol per pcode)
5022         * (createDefmap): have defmap entries merged in the end
5023         * (defmapReplaceSymRef): split defmap entries covering two accesses to
5024           a symbol before replacing one access type's symbol, merge symbols in
5025           the end (replacement symbol might already have an entry)
5026         * (assignValnums): keep reference to written WREG intact
5027
5028 2005-04-08 Raphael Neider <rneider AT web.de>
5029
5030         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
5031           Alpha)
5032
5033 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
5034
5035         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
5036         bytes
5037
5038 2005-04-07 Raphael Neider <rneider AT web.de>
5039
5040         * device/include/pic16/usart.h: added compatibility defines for
5041           devices with more than one USART
5042         * device/include/pic16/pic18f[68][567]20.h: activated above defines
5043
5044 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5045
5046         * device/lib/Makefile.in: updated for port specific include
5047
5048 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5049
5050         * support/regression/ports/mcs51/spec.mk: added mcs51 include
5051
5052 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5053
5054         * device/include/8051.h,
5055         * device/include/8052.h,
5056         * device/include/at89S8252.h,
5057         * device/include/at89c55.h,
5058         * device/include/at89x051.h,
5059         * device/include/at89x51.h,
5060         * device/include/at89x52.h,
5061         * device/include/mcs51reg.h,
5062         * device/include/reg51.h,
5063         * device/include/reg764.h,
5064         * device/include/regc515c.h,
5065         * device/include/sab80515.h: (re)moved these 12 files
5066         * device/include/mcs51/8051.h,
5067         * device/include/mcs51/8052.h,
5068         * device/include/mcs51/at89S8252.h,
5069         * device/include/mcs51/at89c55.h,
5070         * device/include/mcs51/at89x051.h,
5071         * device/include/mcs51/at89x51.h,
5072         * device/include/mcs51/at89x52.h,
5073         * device/include/mcs51/mcs51reg.h,
5074         * device/include/mcs51/reg51.h,
5075         * device/include/mcs51/reg764.h,
5076         * device/include/mcs51/regc515c.h,
5077         * device/include/mcs51/sab80515.h: and added them here
5078
5079 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5080
5081         * device/include/stdarg.h: changed SDCC specific keywords to double
5082           underlined form.
5083         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
5084           mcs51 and ds390.
5085         * device/include/hc08/mc68hc908gp32.h,
5086         * device/include/hc08/mc68hc908jb8.h,
5087         * device/include/hc08/mc68hc908jkjl.h,
5088         * device/include/hc08/mc68hc908qy.h: fixed comments
5089         * device/include/mcs51/README: updated
5090         * device/include/mcs51/c8051f120.h: added PINRSF
5091         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
5092         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
5093           amidst code. Also inline is not supported.
5094
5095 2005-04-06 Raphael Neider <rneider AT web.de>
5096
5097         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
5098         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
5099           callers stack/frame pointers
5100
5101 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5102
5103         * device/include/pic16/usart.h: added, missing in previous commit,
5104         * device/include/pic16/adc.h: fixed typo,
5105         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
5106         commit,
5107         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
5108         <p18fxxx.inc>
5109         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
5110         uninitialized because a bug appears with gplink
5111         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
5112         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
5113         complains for unrecognised option
5114
5115 2005-04-05 Raphael Neider <rneider AT web.de>
5116
5117         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
5118           structs as well (using memcpy)
5119         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
5120           on ISRs (GOTO has no label)
5121         * src/pic16/device.h: added OF_OPTIMIZE_DF
5122         * src/pic16/main.c: added compiler switch --optimize-df to enable the
5123           new data flow analysis/optimization
5124         * src/pic16/pcode.c: added (prototypes for and implementation of)
5125           dataflow analysis functions, fixed pCodeInstructions' inCond and
5126           outCond values, made RCALL a branch instruction
5127         * (pic16_unlinkpCode): keep C line if possible
5128         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
5129           C line moved if possible
5130         * (pic16_getRegFrompCodeOp): NEW, improved version of...
5131         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
5132           to use new pic16_getRegFrompCodeOp (works for more SFRs)
5133         * (pic16_BuildFlow): fixed skip instructions with label (did not start
5134           new flow)
5135         * (pic16_getJumptabpCode): NEW, needed in...
5136         * (LinkFlow): fixed handling of jumptables, calls and conditional
5137           branches
5138         * (pic16_InsertCommentAfter): NEW
5139         * (pic16_pCodeReplace): made verbose and flow preserving
5140         * (AnalyzeFlow): added call to data flow analysis
5141         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
5142         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
5143         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
5144
5145 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5146
5147         * src/SDCCast.c (decorateType): fixed bug #1105626
5148
5149 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
5150
5151         * device/include/asm/pic16/features.h,
5152         * pic18f*.h headers,
5153         * device/include/pic16/adc.h,
5154         * device/include/pic16/delay.h,
5155         * device/include/pic16/i2c.h,
5156         * device/include/pic16/malloc.h,
5157         * device/include/pic16/stdio.h,
5158         * device/include/pic16/stdlib.h,
5159         * device/include/pic16/string.h,
5160         * device/lib/pic16/libc/stdio/printf_tiny.c,
5161         * device/lib/pic16/libc/stdio/printf_small.c,
5162         * device/lib/pic16/libc/stdio/strmgpsim.c,
5163         * device/lib/pic16/libc/stdio/strmmssp.c,
5164         * device/lib/pic16/libc/stdio/strmusart.c,
5165         * device/lib/pic16/libc/stdio/vfprintf.c,
5166         * device/lib/pic16/libc/stdlib/ltoa.c,
5167         * device/lib/pic16/libc/stdlib/putchar.c,
5168         * device/lib/pic16/libc/stdlib/x_ftoa.c,
5169         * device/lib/pic16/libc/stdlib/memchrpgm.c,
5170         * device/lib/pic16/libc/stdlib/memchrram.c,
5171         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
5172         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
5173         * device/lib/pic16/libio/adc/adcbusy.c,
5174         * device/lib/pic16/libio/adc/adcread.c,
5175         * device/lib/pic16/libio/adc/adcsetch.c,
5176         * device/lib/pic16/libio/usart/ubaud.c,
5177         * device/lib/pic16/libio/usart/ubusy.c,
5178         * device/lib/pic16/libio/usart/udrdy.c,
5179         * device/lib/pic16/libio/usart/uopen.c,
5180         * device/lib/pic16/libio/usart/uputc.c,
5181         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
5182         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
5183         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
5184         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
5185         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
5186         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
5187         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
5188         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
5189         specific keywords to double underlined form,
5190         * device/lib/pic16/libc/Makefile.rules,
5191         * device/lib/pic16/libsdcc/Makefile.rules,
5192         * device/lib/pic16/libm/Makefile,
5193         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
5194         to compile with C standard set in Makefile.common
5195         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
5196         rand.c and crc.c in compilation process,
5197         * device/lib/pic16/libsdcc/int/divuint.c,
5198         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
5199         `c' from signed to unsigned,
5200         * device/lib/pic16/startup/crt0.c,
5201         * device/lib/pic16/startup/crt0i.c,
5202         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
5203         keywords to double underlined form, bug fixes in _do_cinit function
5204         which prevented the correct initialization of the .idata segment,
5205         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
5206         core to enter a infinite loop
5207         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
5208
5209 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5210
5211         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
5212
5213 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5214
5215         * device/include/Makefile.in: add support for hc08 subdirectory
5216         * device/include/hc08/: new subdirectory
5217         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
5218         Lucas Loizaga, thanks!
5219         * device/include/hc08/mc68hc908qy.h,
5220         * device/include/hc08/mc68hc908gp32.h,
5221         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
5222         their own directory. Changed internal macro names to use the compiler
5223         reserved namespace. Changed SDCC specific keywords to double
5224         underlined form.
5225         * device/include/math.h,
5226         * device/include/malloc.h,
5227         * device/include/stdarg.h,
5228         * device/include/stdbool.h
5229         * device/include/string.h,
5230         * device/include/tinibios.h,
5231         * device/include/ds400rom.h,
5232         * device/include/8051.h,
5233         * device/include/8052.h,
5234         * device/include/80c51xa.h,
5235         * device/include/at89c55.h,
5236         * device/include/at89S8252.h,
5237         * device/include/at89x51.h,
5238         * device/include/at89x52.h,
5239         * device/include/ds80c390.h,
5240         * device/include/reg764.h,
5241         * device/include/regc515c.h,
5242         * device/include/sab80515.h,
5243         * device/include/mcs51/c8051f000.h,
5244         * device/include/mcs51/c8051f018.h,
5245         * device/include/mcs51/c8051f020.h,
5246         * device/include/mcs51/c8051f040.h,
5247         * device/include/mcs51/c8051f060.h,
5248         * device/include/mcs51/c8051f120.h,
5249         * device/include/mcs51/c8051f300.h,
5250         * device/include/mcs51/c8051f310.h,
5251         * device/include/mcs51/c8051f320.h,
5252         * device/include/mcs51/c8051f330.h,
5253         * device/include/mcs51/c8051f350.h,
5254         * device/include/z180.h: Changed SDCC specific keywords to double
5255         underlined form.
5256
5257 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
5258
5259         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
5260         18F4455,
5261         * (pic16_assignConfigWordValue): disable testing of configuration
5262         register value with config mask,
5263         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
5264         function with port->fun_prefix,
5265         * (genFunction): when generating a naked interrupt function never
5266         create an absolute segment placed in interrupt vector address, place
5267         the actual interrupt function at IVA instead, when an interrupt
5268         function is generated with unspecified interrupt then do not create
5269         the absolute section,
5270         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
5271         code for generating a call to generic pointer get/put function with
5272         a call to function pic16_callGenericPointer(),
5273         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
5274         the call to the generic pointer get/put functions with prefixing the
5275         function name with port->fun_prefix,
5276         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
5277         * src/pic16/main.c (_process_pragma): prefix function with
5278         port->fun_prefix,
5279         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
5280         calling assembler, old 18Fxxxx macro is deprecated,
5281         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
5282         PC_ASMDIR in while condition,
5283         * (findInstruction): add PC_ASMDIR in while condition,
5284         * (buildCallTree): prefix main with port->fun_prefix,
5285         * (pic16_pCode2str): fixed bug that didn't emit the memory access
5286         identifier for variable with banked access in instructions BTFSS,
5287         BTFSC, BCF, BSF, BTG
5288         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
5289         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
5290         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
5291         perform optimization when enviroment variable NO_REG_OPT is set,
5292         * (insideLRBlock): NEW, return 1 if register is inside an
5293         INF_LOCALREGS block,
5294         * (RemoveRegFromLRBlock): remove a register that is completely
5295         eliminated by register optimization, but it is still left in local
5296         register store/restore in/from stack block,
5297         * (Remove2pcodes): after removing register, check to see if it
5298         should be removed from local register store/restore in/from stack
5299         block,
5300         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
5301         DUMMY_READ_VOLATILE,
5302
5303         * device/include/pic16/adc.h: minor prototype modifications and
5304         update,
5305         * device/include/pic16/malloc.h: added GPL notice various
5306         modifications,
5307         * device/include/pic16/stdint.h: NEW, standard header for ints
5308         * device/include/pic16/delay.h: NEW, header for delay functions,
5309         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
5310         delay1mtcy,
5311         * device/include/pic16/signal.h: NEW, header providing helper macros
5312         for implementing signal handlers,
5313         * device/include/pic16/stdio.h: added prototypes for functions,
5314         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
5315         prototypes for stdin and stdout, added macro PUTCHAR to
5316         automatically implement putchar function prototype,
5317         * device/include/pic16/usart.h: modified and updated USART library,
5318         * device/lib/pic16/libio/adc/,
5319         * device/lib/pic16/libio/i2c: some modifications to improve library
5320         performance,
5321         * device/lib/pic16/libc/stdio/: modifications for the new printf*
5322         family of functions,
5323         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
5324         family of functions and other sources,
5325         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
5326         of the PIC18Fxx[28] devices,
5327         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
5328         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
5329         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
5330         _do_cinit function, because the previous failed when local variables
5331         where not placed in the same memory bank,
5332         * device/lib/pic16/libsdcc/char/: various modifications to improve
5333         library performance,
5334         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
5335         information on the new functions of the c library and more...
5336
5337 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5338
5339         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
5340
5341 2005-03-26 Raphael Neider <rneider AT web.de>
5342
5343         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
5344           if condition == CARRY)
5345         * (genCmp): adapted to new genSkipc semantics
5346         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
5347           on rIfx (genCmp was broken)
5348
5349 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5350
5351         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
5352         * src/z80/main.c (_keywords[]),
5353         * src/SDCCglobal.h (struct options),
5354         * src/SDCC.y,
5355         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
5356         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
5357         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
5358         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
5359         always available in leading double underscore form. The C99 support is
5360         mostly missing, but it's a start.
5361         * support/regression/tests/bug-227710.c: fixed nonconforming use of
5362         reserved identifier "__data".
5363
5364 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5365
5366         * src/mcs51/peeph.def: fixed bug 1170013
5367
5368 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
5369
5370         * device/include/mcs51reg.h: fixed bug 842007
5371
5372 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5373
5374         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
5375         last time.
5376
5377 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5378
5379         * src/port.h (struct PORT),
5380         * src/avr/ralloc.c (avr_assignRegisters),
5381         * src/avr/main.c,
5382         * src/ds390/ralloc.c (ds390_assignRegisters),
5383         * src/ds390/main.c,
5384         * src/hc08/ralloc.c (hc08_assignRegisters),
5385         * src/hc08/main.c,
5386         * src/mcs51/ralloc.c (mcs51_assignRegisters),
5387         * src/mcs51/main.c,
5388         * src/pic/ralloc.c (pic14_assignRegisters),
5389         * src/pic/main.c,
5390         * src/pic16/ralloc.c (pic16_assignRegisters),
5391         * src/pic16/main.c,
5392         * src/xa51/ralloc.c (xa51_assignRegisters),
5393         * src/xa51/main.c,
5394         * src/z80/ralloc.c (z80_assignRegisters),
5395         * src/z80/ralloc.h,
5396         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
5397         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
5398         * src/SDCCcse.h,
5399         * src/SDCCdflow.c (computeDataFlow),
5400         * src/SDCCdflow.h,
5401         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
5402         * src/SDCCloop.h,
5403         * src/SDCCcflow.c (*),
5404         * src/SDCCcflow.h,
5405         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
5406         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
5407         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
5408         immedDom() returning wrong block; probably fixes bug #1160833)
5409
5410 2005-03-20 Borut Razem <borut.razem AT siol.net>
5411
5412         * support/scripts/inc2h.pl: WIN32 port
5413
5414 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
5415
5416         * device/lib/makefile.in: added abs.c and labs.c
5417
5418 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
5419
5420         * device/include/stdint.h: added
5421         * device/lib/abs.c: added
5422         * device/lib/labs.c: added
5423         * device/include/stdlib.h: added abs() and labs() prototypes
5424         * device/lib/libsdcc.lib: added abs and labs
5425         * device/include/float.h,
5426         * device/lib/_fsmul.c,
5427         * device/lib/printf_fast.c,
5428         * device/lib/printf_tiny.c: updated comments
5429
5430 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5431
5432         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
5433         bug #1164313
5434
5435 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5436
5437         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
5438         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
5439
5440 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
5441
5442         * device/lib/printf_large.c: removed inline assembly for portability and
5443           readability. Use printf_fast if speed or size are more important.
5444         * src/pic16/gen.c: removed conditions around use of DEBUGpc
5445         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
5446
5447 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
5448
5449         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
5450         prevent compiler warning
5451
5452 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5453
5454         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
5455         moved to level 0 and declared as static. Also they are explicit
5456         placed in access bank. This was necessery because some times they
5457         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
5458         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
5459         optimizations. Currently only compare to unsigned char is implemented,
5460         * src/pic16/gen.c: added fReturnIdx array,
5461         * (struct resolvedIfx) is moved to gen.h and made public,
5462         * (struct _G): added sregsAlloc and sregsAllocSet fields,
5463         * (aopForSym): added an optimization to directly store in stack of
5464         the operand of a SEND iCode,
5465         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
5466         but as registers instead (AOP_REG) using the fReturnIdx array,
5467         * (pic16_freeAsmop): remove the freed register from the
5468         _G.sregsAlloc field,
5469         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
5470         a compare of 'WREG',
5471         * (pic16_popGetTempRegCond): changed function prototype, now
5472         function takes also a bitVector argument v which holds the current
5473         set of registers that are allocated for stack access by aopForSym,
5474         registers allocated in aopForSym for accessing stack symbols are not
5475         any more part of the functions usedRegs field,
5476         * (genCall): some times aopOp is called for a stack variable to be
5477         send, aopForSym might perform the push, if this is true make sure
5478         that genCall doesn't push the variable twice by testing _G.resDirect,
5479         * (genFunction): changed testing for unspecified interrupt number
5480         from 256 to INTNO_UNSPEC,
5481         * modified selection scheme of frame pointer generation. Previously
5482         if function did use local registers a frame pointer was generated,
5483         now a frame pointer is generated only if function has arguments
5484         (that need PLUSW2 register access), or has stack arguments, or the
5485         compiler is not instructed to omit the frame pointer,
5486         * (genEndFunction): before restoring local registers that were saved
5487         in the function preamble, also restore the registers that *might*
5488         have been allocated for stack access,
5489         * (genRet): removed some old comments,
5490         * (genCmp, the active (RN's) version): added a call to the
5491         pic16_genCmp_special function to perform the compare with a more
5492         robust and optimized way,
5493         * (genInline): a feature has been added in inline code generation,
5494         which allows a wildcard variable substitution when writing inline
5495         assembly. Code is incomplete and experimental therefore undocumented,
5496         * (genCast): changed order of aopOp for result and right to allow
5497         aopForSym to directly load the result if possible,
5498         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
5499         perform an optimized compare on some selected special occasions,
5500         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
5501         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
5502         generate an IVT any more,
5503         * src/pic16/main.c (pic16_optionsTable): added command line option
5504         --optimize-cmp,
5505         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
5506         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
5507         macros,
5508         * src/pic16/NOTES: Raphael Neider added in list of active developers
5509         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
5510         jumptable_end to prevent bug #,
5511         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
5512         inCond and outCond fields,
5513         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
5514         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
5515         turn off register spilling,
5516         * (packRegsForOneUse): synced with other ports' versions although it
5517         is not used currently,
5518         * (pic16_packRegisters): added an optimization while reading
5519         structure bitfields, some registers may be saved (malloc code is
5520         decreased by 80 bytes)
5521
5522 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
5523
5524         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
5525         left is a bitfield, if yes, then don't optimize assignment. Perhaps
5526         this can be optimized more?
5527
5528 2005-03-10 Raphael Neider <rneider AT web.de>
5529
5530         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
5531           genNearPointerGet): (hopefully) fixed access to bitfields via
5532           pointers (p->bitN = x; and x = p->bitN; failed)
5533
5534 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
5535
5536         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
5537
5538 2005-03-09 Raphael Neider <rneider AT web.de>
5539
5540         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
5541
5542 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
5543
5544         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
5545         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
5546           (regTypeNum): set REG_BIT type if necessary
5547         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
5548         * support/regression/tests/critical.c: check bug 1144613
5549
5550 2005-03-02 Raphael Neider <rneider AT web.de>
5551
5552         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
5553
5554 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5555
5556         * src/avr/ralloc.c (serialRegAssign),
5557         * src/ds390/ralloc.c (serialRegAssign),
5558         * src/hc08/ralloc.c (serialRegAssign),
5559         * src/mcs51/ralloc.c (serialRegAssign),
5560         * src/pic/ralloc.c (serialRegAssign),
5561         * src/pic16/ralloc.c (serialRegAssign),
5562         * src/xa51/ralloc.c (serialRegAssign),
5563         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
5564
5565 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
5566
5567         * src/SDCCast.c (decorateType): fixed bug 1124787
5568
5569 2005-02-20 Hubert Sack <sack AT digiplan.de>
5570         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5571
5572         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
5573         patch #1121755
5574
5575 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5576
5577         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
5578         to keep the correct label reference count when adding/removing references
5579         to labels. A peephole file using this is appended to patch #1144962.
5580
5581 2005-02-14 Raphael Neider <rneider AT web.de>
5582
5583         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
5584         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
5585         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
5586           retrievals of result operand's value on assignment
5587
5588 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
5589
5590         * device/include/pic16/string.h: modified prototype for memccpy()
5591         to memccpy(void *, void *, char, size_t)
5592         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
5593         check whether to omit frame pointer or not,
5594         * (genInline): convert all occurences of "\n" to LF in inline
5595         assembler blocks, this helps formatting the inline text,
5596         * (pic16_loadFSR0): modified prototype,
5597         * (genNearPointerGet, genNearPointerSet): reorganization of code,
5598         removed some 8051 legacy code,
5599         * (genPackBits): enabled handling bitfields exceeding one byte in size,
5600         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
5601         before allocating temporary registers in functions,
5602
5603 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
5604
5605         * support/regression/tests/bitvars.c: corrected the "fix"
5606
5607 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
5608
5609         * support/regression/tests/bitvars.c,
5610         * support/regression/tests/bitwise.c,
5611         * support/regression/tests/rotate.c: "fixed" problems on Alpha
5612
5613 2005-02-10 Raphael Neider <rneider AT web.de>
5614
5615         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
5616           different size for Alpha
5617         * src/pic16/gen.c (genCmpEq) : improved compare with 0
5618
5619 2005-02-09 Raphael Neider <rneider AT web.de>
5620
5621         * src/SDCC.lex(doPragma) : save and restore warning options as well
5622           (also added new stack plus clone- and copyAndFreeSDCCERRG())
5623         * have #pragma less_pedantic set the errorlevel to WARNING
5624           (fixes #1117001)
5625         * (cloneOptimize) : fixed wrong malloc's size
5626         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
5627           facilitate correct handling of #pragma (save|restore)
5628
5629 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
5630
5631         * src/mcs51/gen.c: removed non-standard C nameless struct/union
5632
5633 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
5634
5635         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
5636
5637 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
5638
5639         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
5640
5641 2005-02-02 Raphael Neider <rneider AT web.de>
5642
5643         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
5644         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
5645         * (pic16_storeForReturn): fixed to allow returning function pointers
5646         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
5647         * device/include/pic16/{stddef.h,stdbool.h}: added
5648
5649 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
5650
5651         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
5652
5653 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
5654
5655         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
5656         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
5657          appeared to be required
5658
5659 2005-01-31 Borut Razem <borut.razem AT siol.net>
5660
5661         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
5662           include/mcs51 and include/z80 directories to the package
5663
5664 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5665
5666         * src/hc08/gen.c (genFunction): fixed bug #1112752
5667
5668 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5669
5670         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
5671
5672 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5673
5674         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
5675
5676 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
5677
5678         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
5679
5680 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
5681
5682         * device/include/c8051fxxx.h: removed these 6 files
5683         * device/include/mcs51/c8051fxxx.h: added these 11 new files
5684
5685 2005-01-26 Raphael Neider <rneider AT web.de>
5686
5687         * src/pic16/gen.c (genAssign): fixed assignment from longs
5688           in codespace (were cut to three bytes)
5689         * (genDummyRead): implemented (except for CODESPACE...),
5690           fixed bug #1108575
5691         * src/pic16/glue.c (emitStatistics): beautified
5692         * device/lib/pic16/libm/Makefile: added include path
5693
5694 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5695
5696         * src/z80/gen.c (aopPut): fixed bug #1103902
5697
5698 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5699
5700         * device/lib/expf.c: fixed bug #1095792
5701
5702 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
5703
5704         * device/lib/pic16/libm: added Math library sources
5705
5706 2005-01-24 Raphael Neider <rneider AT web.de>
5707
5708         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
5709           to enable upcast to pCodeOpReg2 (there is no type tag to
5710           differenciate the two and pic16_popGet2p cast into PCOR2)
5711         * src/pic16/main.c (_process_pragma): fixed another malloc bug
5712           (sizeof(sectNames) changed to sizeof(sectName))
5713           Both patches fix segfaults under MinGW.
5714
5715 2005-01-23 Raphael Neider <rneider AT web.de>
5716
5717         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
5718           Safe_[mc]?alloc()'ed variables
5719         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
5720           of (byte sized) temporaries (assign them to WREG for now)
5721         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
5722           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
5723           this might fix SIGSEGVs on MinGW...
5724         * src/SDCCopt.c (killDeadCode): restored original behaviour
5725           (volatile operands might get thrown away though)
5726
5727 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
5728
5729         * src/pic16/gen.c: fixed bug #1106975,
5730         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
5731         pointer update, INTCON is saved, global interrupts are disabled and
5732         restored after updateing TOS.
5733         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
5734         * added function attribute 'shadowregs' to take advantage of shadow
5735         registers,
5736         * added function attribute 'wparam' as an alternative to the wparam
5737         pragma,
5738         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
5739         user declares a non-ISR function as 'shadowregs',
5740         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
5741
5742 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
5743
5744         * .version: bumped version number to 2.4.8
5745         * device/lib/pic16/pics.all: list of PIC18F devices supported by
5746         pic16 port,
5747         * device/lib/pic16/libio/i2c/: I2C module support library,
5748         * device/include/pic16/i2c.h: I2C support library header,
5749         * device/lib/pic16/libc/stdio/: standard IO support sources,
5750         * (printf_small.c): printf_small() source, supports float print,
5751         * (printf_tiny.c): printf_tiny() source, does not support floats,
5752         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
5753         enable global optimizations for entire library source, other
5754         Makefiles in the source tree are also modified to reflect this,
5755         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
5756         function,
5757         * doc/sdccman.lyx: updated to reflect new changes,
5758         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
5759         sym->onStack if-case,
5760         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
5761         sbit, idata, _idata, xdata, _xdata,
5762         * added pragma library, to link an external library, (see doc),
5763         * removed command line options, --pomit-config-words, --pomit-ivt,
5764         --pleave-reset-vector,
5765         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
5766         when calling assembler to reflect memory model used, also define
5767         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
5768         reflect stack model used,
5769         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
5770         on stack return NULL,
5771
5772 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5773
5774         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
5775           of the operands is volatile. Fixes #1020220
5776
5777 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5778
5779         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
5780         * (OptimizeRegUsage): make sure that there is really no other flow where
5781           the first pCode is used
5782
5783 2005-01-22 Raphael Neider <rneider AT web.de>
5784
5785         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
5786           to fix #1106967 (pCode->seq are not set up correctly)
5787
5788 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5789
5790         * src/SDCCglue.c (glue): make sure code area is declared before the
5791         static initialization area.
5792
5793 2005-01-21 Raphael Neider <rneider AT web.de>
5794
5795         * device/lib/Makefile.in: fixed test for pic16 install dir
5796         * device/lib/pic16/*/Makefile*: modified compile flags to enable
5797           optimizations
5798         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
5799           added --optimize-goto compiler switch and pragma wparam documentation
5800         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
5801         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
5802           and PRODH closing bug #1071770 (peephole optimizer)
5803
5804 2005-01-19 Raphael Neider <rneider AT web.de>
5805
5806         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
5807           cmdLine buffers (used when calling sdcpp...) are large enough
5808           (MAX_PATH=256 truncates arguments leading to system halts when
5809           used in MinGW...)
5810         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
5811         * (genUminus): rewritten to for efficiency
5812         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
5813           used uninitialized in some cases)
5814         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
5815           copy the third byte from the int -- now assumes 0x80 (data memory)
5816         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
5817           operands (genAddLit expects the iCode's operands to swapped as
5818           well), fixed leftover bytes (crashed for short left operands)
5819         * (pic16_genMinusDec): performance improvements, removed false
5820           PIC14 emitSKPNCs
5821         * (pic16_genMinus): fixed to cope with differently sized operands
5822         * src/pic16/glue.c (pic16_glue): added new banksel optimization
5823           for --obanksel > 1
5824         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
5825         * src/pic16/graph.[ch]: implementation of directed graphs, used by
5826           new banksel optimization
5827         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
5828           analysis for temporary registers (segfaults...)
5829         * src/pic16/peeph.def: added rule
5830
5831 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
5832
5833         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
5834         which converts a float number to its ASCII representation
5835         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
5836         functions to convert the fractional and integer part of a float to ASCII,
5837         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
5838         realloc.c): added _MALLOC_SPEC to explicit place variables in data
5839         ram
5840         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
5841         _STATMEM macros,
5842         * device/include/pic16/adc.h: added GPL info,
5843         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
5844         a pCodeOp as tested operand,
5845         * (genNearPointerGet): optimized bit testing, does not use
5846         intermediate register for bit value, test directly instead with
5847         BTFSS, BTFSC, works only for single bits,
5848         * (genpic16Code): dump the name of the iCode in the asm,
5849         * src/pic16/ralloc.c (decodeOp): removed static declaration and
5850         renamed to pic16_decodeOp,
5851         * (serialRegAssign): do not allocate a temporary register for iCode
5852         sequences that test a single bit for 1/0
5853
5854 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
5855
5856         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
5857         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
5858         access stack and frame pointers. They are initially assigned to
5859         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
5860         accessing SFRs. Updated all occurences of modification of stack or
5861         frame pointer in gen.c and pcode.c,
5862         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
5863         assigning of a literal value to pointers,
5864         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
5865         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
5866         selected
5867
5868 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5869
5870         * doc/sdccman.lyx: update documentation about stack pragma, added
5871         some info for stack memory models
5872
5873 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5874
5875         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
5876
5877 2005-01-08 Raphael Neider <rneider AT web.de>
5878
5879         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
5880           udata sections to fix bug #1097823
5881
5882 2005-01-05 Raphael Neider <rneider AT web.de>
5883
5884         * src/pic16/gen.c (genGenericShift): added handling of differently
5885           sized left operand and result
5886
5887 2005-01-04 Raphael Neider <rneider AT web.de>
5888
5889         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
5890         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
5891           to hold the condition bit)
5892         * added new version of genCmp (old code available via #define)
5893         * added new version of genShiftLeft/genShiftRight in a generic
5894           way, now supports shifting by negative values
5895         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
5896           shiftCount (expected by genGenericShift)
5897         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
5898         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
5899           dump
5900         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
5901           is an invalid literal too...)
5902
5903 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
5904
5905         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
5906         from Raphael Neider,
5907         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
5908         for 8-bit literals. This fixes some literal operands which are sign
5909         extended to 16-bits ints when instruction needs only 8-bits.
5910
5911 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
5912
5913         * device/lib/logf.c: added mcs51 assembly version
5914         * device/lib/expf.c: added mcs51 assembly version
5915         * device/lib/_logexpf.c: new shared asm code for expf and logf
5916         * device/include/math.h: add defines for assembly math library
5917         * device/lib/Makefile.in: build new _logexpf.c
5918         * device/lib/libfloat.lib: use new _logexpf.c
5919
5920 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5921
5922         * src/pic/device.c
5923         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
5924           device types which have less than 0x7f registers.
5925
5926 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5927
5928         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
5929
5930 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5931
5932         * device/lib/printf_fast.c: only build on supported arch.
5933         * device/lib/printf_tiny.c: only build on supported arch.
5934         * device/lib/printf_fast_f.c: only build if asm float lib
5935         * device/lib/_fsget1arg.c: only build if asm float lib
5936         * device/lib/_fsget2args.c: only build if asm float lib
5937         * device/lib/_fsnormalize.c: only build if asm float lib
5938         * device/lib/_fsreturnval.c: only build if asm float lib
5939         * device/lib/_fsrshift.c: only build if asm float lib
5940         * device/lib/_fsswapargs.c: only build if asm float lib
5941         * device/include/stdio.h: don't provide print_fast,
5942           print_fast_f, print_tiny prototypes if --xstack used
5943
5944 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
5945
5946         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
5947         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
5948           to the SOURCES
5949
5950 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5951
5952         * device/lib/printf_fast_f.c: same as printf_fast, but
5953           with floating point enabled
5954         * device/lib/printf_fast.c: minor tweaks
5955         * device/include/stdio.h: add printf_fast_f
5956
5957 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5958
5959         * src/SDCCmain.c: make --float-reent default for mcs51
5960         * device/lib/_fsadd.c: added mcs51 assembly version
5961         * device/lib/_fssub.c: added mcs51 assembly version
5962         * device/lib/_fsmul.c: added mcs51 assembly version
5963         * device/lib/_fsdiv.c: added mcs51 assembly version
5964         * device/lib/_fseq.c: added mcs51 assembly version
5965         * device/lib/_fsneq.c: added mcs51 assembly version
5966         * device/lib/_fsgt.c: added mcs51 assembly version
5967         * device/lib/_fslt.c: added mcs51 assembly version
5968         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
5969         * device/lib/Makefile.in: add _fscmp to build
5970         * device/lib/libfloat.lib: add _fscmp to build
5971
5972 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5973
5974         * device/lib/_fs2slong.c: added mcs51 assembly version
5975         * device/lib/_fs2sint.c: added mcs51 assembly version
5976         * device/lib/_fs2schar.c: added mcs51 assembly version
5977         * device/lib/_fs2ulong.c: added mcs51 assembly version
5978         * device/lib/_fs2uint.c: added mcs51 assembly version
5979         * device/lib/_fs2uchar.c: added mcs51 assembly version
5980         * device/lib/_slong2fs.c: added mcs51 assembly version
5981         * device/lib/_sint2fs.c: added mcs51 assembly version
5982         * device/lib/_schar2fs.c: added mcs51 assembly version
5983         * device/lib/_ulong2fs.c: added mcs51 assembly version
5984         * device/lib/_uint2fs.c: added mcs51 assembly version
5985         * device/lib/_uchar2fs.c: added mcs51 assembly version
5986         * device/include/float.h: added #define to select asm vs c
5987
5988 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
5989
5990         * device/lib/printf_fast.c: improvements to float output
5991         * device/include/float.h: add defines for assembly float library
5992         * device/lib/_fsget1arg.c: receive 1 float arg
5993         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
5994         * device/lib/_fsnormalize.c: normalize a float
5995         * device/lib/_fsreturnval.c: return float, various helper routines
5996         * device/lib/_fsrshift.c: right shift a float's mantissa
5997         * device/lib/_fsswapargs.c: swap 2 floats
5998         * device/lib/Makefile.in: build these 6 new files for mcs51
5999         * device/lib/libfloat.lib: add these 6 files to the library
6000
6001 2004-12-26 Borut Razem <borut.razem AT siol.net>
6002
6003         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
6004           built by gcc 3.4.2
6005
6006 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
6007
6008         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
6009           and fully reentrant and register bank neutral.
6010         * device/lib/printf_fast.c: added float (not enabled by default),
6011           added compact/slower integer (also not enabled by default),
6012           improved size/speed of fast integer code, other minor changes
6013         * device/include/stdio.h, device/lib/Makefile.in,
6014           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
6015
6016 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
6017
6018         * src/pic16/pcode.c: declaring variables other than at the start of a
6019           block is not supported in C by VC6.
6020
6021 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
6022
6023         * applied a previous patch from Raphael Neider that wasn't included
6024         in the previous commits, which fixes infinite loops within jumptable
6025         improvements,
6026         * made some fixes that previous patches introduced
6027
6028 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
6029
6030         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
6031         that fixes an issue with AOP_PCODE asmop's offset,
6032         * (pic16_popCopyReg): update instance field too,
6033         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
6034         function of pic port,
6035         * (genCmp, genAnd, genAssign),
6036         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
6037
6038 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
6039
6040         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
6041         variables initial values to idata section,
6042         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
6043         variables in some functions. This utilizes parmBytes field of iCode
6044         structure to hold the offset of the variable in stack. (might be
6045         able to use the stack field too?)
6046         * applied patch from Raphael Neider # ### , # ###
6047         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
6048         variable initial values in idata section,
6049         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
6050         for static variables with initial value
6051         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
6052         applied fix in while loop from Raphael Neider.
6053
6054 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
6055
6056         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
6057         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
6058         * src/ds390/ralloc.c (serialRegAssign): spill bits
6059         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
6060         * support/Util/SDCCerr.c,
6061         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
6062         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
6063         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
6064
6065 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
6066
6067         * device/include/sdcc-lib.h: inserted LGPL, added includes
6068           asm/ds390/features.h and asm/mcs51/features.h
6069         * device/include/asm/default/features.h,
6070         * device/include/asm/gbz80/features.h,
6071         * device/include/asm/z80/features.h: added empty _AUTOMEM
6072           and _STATMEM
6073         * device/include/asm/ds390/features.h,
6074         * device/include/asm/mcs51/features.h: added files with defines for
6075           _AUTOMEM and _STATMEM indicating automatic and static storage class
6076         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
6077         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
6078         * src/SDCCicode.c (geniCodeCast),
6079         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
6080         * src/SDCCloop.c (loopInduction): removed unused variable lr
6081         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
6082           to convertToFcall to include char modulo (RFE 1065037), added check
6083           if left operand is unsigned and use abs of literal value
6084         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
6085           as it doesn't work after conversion from peephole.def to peephole.rul
6086         * src/mcs51/gen.c (toBoolean): added check for size,
6087           (genModOneByte): optimized code for signed char modulo a literal
6088           power of 2 (thanks to Hubert Sack),
6089           (genRRC): removed unnecessary "clr c",
6090           (genRLC): replaced "add a,acc" with cheaper "rlc a"
6091         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
6092           jump optimization,
6093           swapped rules 256.c and 256.d,
6094           extended 256.d by using new multiple checks (thanks Erik),
6095           added rules 256.e and 256.f,
6096           updated rule 261.a and 261.b to new generated code
6097         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
6098
6099 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6100
6101         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
6102           induction related bugs, including first part of bug #1074377
6103
6104 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
6105
6106         * applied patch from bug-report #1076292,
6107         * applied patches for genAnd and Goto-optimizations for Raphael
6108         Neider,
6109         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
6110         dump a less iCode information,
6111         * src/pic16/device.h (pic16_options_t): added field debgen,
6112         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
6113         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
6114         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
6115         puclic,
6116         * (various functions): added macros FENTRY and FENTRY2 to functions,
6117         to emit function prologue,
6118         * (various functions): fixed indentation,
6119         * (genNearPointerGet): fixed loading of FSR0,
6120         * (genPackBits): applied patch from Raphael Neider to fix updating
6121         of FSR0 and touching only the modified bits,
6122         * src/pic16/genarith.c (various functions): added macros FENTRY to
6123         emit function prologue in comments,
6124         * src/pic16/pcode.h: added functions debugf2, debugf3,
6125         * src/pic16/ralloc.c: partial fix for packForPush caused
6126         segmentation fault,
6127
6128 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6129
6130         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
6131           <stsp AT users.sourceforge.net> with reversed byte order
6132         * support/regression/tests/rotate.c: added (ds390 skips some tests)
6133
6134 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6135
6136         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
6137           bug #1074377
6138         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
6139         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
6140
6141 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6142
6143         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
6144
6145 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6146
6147         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
6148           conditions,
6149           (setFromConditionArgs): friendly operand parser for peephole rules,
6150           (operandBaseName, operandsNotRelated): new peephole condition
6151           "operandsNotRelated" -- similar to "operandsNotSame", but takes
6152           architecture specific register naming into account, handles n-way
6153           comparisons, and supports quoted literals
6154         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
6155
6156 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6157
6158         * src/mcs51/peeph.def: fixed bug #1076940
6159
6160 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6161
6162         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
6163
6164 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6165
6166         Adding support for replacing ljmps with sjmps in jumptables
6167         generated for switch statements. For now you need to set the
6168         environment variable SDCC_SJMP_JUMPTABLE to enable this.
6169         Now 4 algorithms for mcs51 jumptable generation are used:
6170         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
6171         addresses loaded pc-relative for up to 112 cases and stack-pushing
6172         target addresses loaded with offset from dptr for up to 256 cases.
6173
6174         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
6175         * src/mcs51/main.c: adapted constants for switch table generation
6176         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
6177
6178 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
6179
6180         * device/lib/printf_large.c (_print_format): fixed bug 1073386
6181         * support/regression/tests/bug1057979.c: added test for bug 1073386
6182
6183 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6184
6185         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
6186         compilers
6187
6188 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6189
6190         * src/pic16/device.h,
6191         * src/pic16/genarith.c,
6192         * src/pic16/glue.c,
6193         * src/pic16/main.c,
6194         * src/pic16/pcode.c: applied patches #1068154 and #1070213
6195
6196 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
6197
6198         Large cummulative patch for pic16 port.
6199         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
6200         to call when a stack overflow occurs,
6201         * (malloc.h): added CVS Id tag,
6202         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
6203         variable,
6204         * added libc directory. The current version of LibC contains string
6205         functions, ctype functions and macros and some functions of the
6206         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
6207         be extensively tested in the future. Standard disclaimer here.
6208         Library is not automatically build yet. But one can build it by
6209         invoking 'make' inside the libc directory.
6210         * added ADC library under libio. Preliminary version yet.
6211
6212         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
6213         * src/pic16/gen.c (aopForRemat): asmop size is filled by
6214         aopForRemat() now and not by pic16_aopOp(),
6215         * (pic16_popGetTempReg): removed warning messgae when allocating
6216         temporary registers, its a buggy feature and will be removed,
6217         * (pic16_popGet): set register instance field in AOP_CRY,
6218         * (pic16_outBitC): fixed for results in size greater than 1,
6219         * (genUminusFloat): fixed for pic16, ported code from mcs51,
6220         * (pic16_storeForReturn): optimized return of 0,
6221         * (genCmp): experimental code for new genCmp which uses PIC18's
6222         special compare&skip instructions. Initial tests fail some times
6223         with variables grater than 1 byte in size, so new code is disabled,
6224         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
6225         a single bit,
6226         * (genCast): began a fix to optimize the casting of a bit to another
6227         bit, now assigning a bitfield to another bitfield will fail, sorry,
6228         * src/pic16/main.c: disabled the use of lr-support feature,
6229         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
6230         * added some function prototypes, added function _debugf prototype,
6231         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
6232         bits with offset (case PO_GPR_BIT),
6233         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
6234         command line,
6235         * (isBankInstruction): modified to return 0 for no banking instruction,
6236         and 1 for banking instruction,
6237         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
6238         caused stop processing pCodes after a inline assembly block,
6239         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
6240         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
6241         registers when it shouldn't,
6242         * src/pic16/ralloc.c (allocReg): add preliminary support for
6243         supporting a limited set of temporary registers,
6244
6245 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6246
6247         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
6248           genDataPointerSet): ensure assignments always copy in MSB to LSB
6249           order,
6250           (loadRegFromAop): recognize CLRH optimization,
6251           (genFunction): optimize RECEIVE iCodes in reentrant functions
6252
6253 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6254
6255         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
6256           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
6257           selected.
6258         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
6259         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
6260           contiguous with data
6261
6262 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6263
6264         * device/lib/_gptrget.c (_gptrget),
6265         * device/lib/_gptrgetc.c (_gptrgetc),
6266         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
6267           instead of sjmp to ret
6268         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
6269           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
6270
6271 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6272
6273         * .version: bumped version to 2.4.7
6274         * device/lib/_gptrget.c (_gptrget): is now _naked
6275         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
6276         * device/lib/_gptrput.c (_gptrput): is now _naked
6277         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
6278           (createFunction): fixed xstack
6279         * src/SDCCglue.c (emitMaps): set allocation required for bit area
6280         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
6281           or bit either,
6282           (geniCodeCritical): store original interrupt state in an iTemp bit
6283           var unless stack-auto
6284         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
6285         * src/SDCCmain.c (setIncludePath): added include/target to search path
6286         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
6287         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
6288           prototype,
6289           (processFuncArgs): put bit vars in bit area
6290         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
6291           unsaveRBank): fixed xstack,
6292           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
6293           (genFunction, genEndFunction): fixed xstack,
6294           (genAssign): optimization don't walk backwards through mem
6295         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
6296         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
6297         * support/regression/Makefile: also make library (for stack-auto) when
6298           making "all" and added "test-mcs51-xstack-auto"
6299         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
6300         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
6301         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
6302         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
6303         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
6304           make-library by MAKE_LIBRARY
6305         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
6306           regression tests for xstack
6307         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
6308         * support/regression/tests/critical.c: test for critical on mcs51
6309
6310 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6311
6312         * support/regression/ports/ucz80/spec.mk: use include and lib files from
6313           built version of sdcc instead of installed version
6314
6315 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
6316
6317         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
6318         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
6319           vprintf.c now
6320         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
6321         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
6322           WARNING: remove device/lib/build/z80/printf.o by hand when
6323           updating from previous build!
6324         * device/lib/z80/printf.c: updated comment
6325         * support/regression/tests/bug1057979.c: test all ports now
6326         * support/regression/tests/bug1065458.c: file added
6327
6328 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6329
6330         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
6331           *_start and *_end symbols for static functions
6332
6333 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
6334
6335         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
6336           and search crt0.o in all library paths,
6337           (setIncludePath): proper handling of --nostdinc,
6338           (setLibPath): proper handling of --nostdlib
6339         * support/regression/Makefile,
6340         * support/regression/ports/ds390/spec.mk,
6341         * support/regression/ports/gbz80/spec.mk,
6342         * support/regression/ports/hc08/spec.mk,
6343         * support/regression/ports/mcs51/spec.mk,
6344         * support/regression/ports/mcs51-large/spec.mk,
6345         * support/regression/ports/mcs51-stack-auto/spec.mk,
6346         * support/regression/ports/z80/spec.mk: use include and lib files from
6347           built version of sdcc instead of installed version
6348         * doc/sdccman.lyx: fixed typo in --nostdinc
6349
6350 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
6351
6352         * src/pic/pcode.c,
6353         * src/pic/device.c,
6354         * src/pic/ralloc.c,
6355         * src/pic/gen.c : added support to generate code for struct bit fields.
6356
6357 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
6358
6359         * as/xa51/xa_version.h,
6360         * device/include/errno.h,
6361         * device/include/regc515c.h,
6362         * device/lib/_itoa.c,
6363         * device/lib/_ltoa.c,
6364         * device/lib/ser_ir_cts_rts.c,
6365         * sim/ucsim/xa.src/glob.cc,
6366         * sim/ucsim/xa.src/inst_gen.cc,
6367         * sim/ucsim/xa.src/xa_bit.cc,
6368         * sim/ucsim/xa.src/xa_sfr.cc,
6369         * sim/ucsim/z80.src/inst_dd.cc,
6370         * sim/ucsim/z80.src/inst_fdcb.cc,
6371         * support/scripts/keil2sdcc.pl,
6372         * src/pic16/pic16.dsp,
6373         * src/pic16/pic16a.dsp: corrected cvs line endings
6374         * device/lib/printf_large.c: fixed bug 1057979
6375         * src/pic16/gen.c: fixed non-C standard code
6376         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
6377         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
6378         * support/regression/ports/mcs51/support.c: reload T1 asap
6379         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
6380           pdata use and clear idata startup behaviour
6381         * support/regression/tests/bug1057979.c: added
6382
6383 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
6384
6385         * device/examples/ds390/ow390/ad26.h,
6386         * device/examples/ds390/ow390/cnt1d.h,
6387         * device/examples/ds390/ow390/crcutil.c,
6388         * device/examples/ds390/ow390/ownet.h,
6389         * device/examples/ds390/ow390/owsesu.c,
6390         * device/examples/ds390/ow390/swt12.h,
6391         * device/examples/ds390/ow390/swtoper.c,
6392         * device/examples/ds390/ow390/temp10.h,
6393         * device/examples/ds390/ow390/thermodl.c,
6394         * device/examples/ds390/tinitalk/tinitalk.dsp,
6395         * device/examples/ds390/tinitalk/tinitalk.dsw,
6396         * device/examples/mcs51/clock/hw.h,
6397         * device/examples/mcs51/simple2/go.bat,
6398         * device/examples/serialcomm/windows/serial.h,
6399         * device/examples/xa51/dummy.c,
6400         * device/examples/xa51/hello.c,
6401         * device/include/80c51xa.h,
6402         * device/include/at89x051.h: corrected cvs line endings
6403
6404 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
6405
6406         * src/pic16/main.c (options): added command line --gstack, to trace
6407         stack over/under flows,
6408         * added pragma 'wparam' to allow passing first byte of function
6409         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
6410         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
6411         call to __gstack_test function and sets up the symbol as extern,
6412         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
6413         * popaop): added call to pic16_testStackOverflow,
6414         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
6415         wparamList list,
6416         * (genCall, genPcall): now all parameters are passed via stack
6417         except in functions that are pass to wparam pragma in which WREG is
6418         used too,
6419         * (genPcall): REENTRANT flag is checked to see if variable prototype
6420         contains reentrant keyword, don't call a non-reentrant function, via
6421         a reentrant function pointer or vice versa, functions are never
6422         passed via WREG,
6423         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
6424         D.Winkler,
6425         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
6426         SIGSEGV when accessing a NULL register stucture,
6427         * (pic16_printGPointerType): modified to handle UPPER modifier for
6428         function initializers, changed prototype of function to simpler one,
6429         * (pic16_printIvalFuncPtr): check to see if function is already
6430         added in externs list,
6431         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
6432         optimized a move from W to SFR with a move to the same register
6433         later after a CALL,
6434         * device/lib/pic16/debug: NEW directory, contains debug features
6435         which are enabled when linking with libdebug.lib, currently command
6436         line option --gstack enables stack pointer tracing for over/under
6437         flow, corresponding sources are in debug/gstack
6438
6439 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
6440
6441         * doc/sdccman.lyx: updated SDCC version,
6442         * (PIC16 port): update list of command line options,
6443         * src/pic16/device.h (structure pic16_options_t): added field gstack
6444         to enable stack overflow tracing on push/pops,
6445         * src/pic16/device.c (statistics structure): added statistics
6446         structure,
6447         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
6448         pic16_dump_int_registers): increase statistics counters for each
6449         * variable which is encountered
6450         * (pic16_dump_usection): emit each .udata variable to its own udata
6451         section,
6452         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
6453         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
6454         parameters via stack, otherwise use old scheme,
6455         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
6456         assembler output file,
6457         * src/pic16/main.c: added command line options --gstack to enable
6458         push/pop tracing for stack overflow,
6459         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
6460         instructions): added size of each instruction,
6461         * (pic16_countInstruction): estimate size of instructions in
6462         the_pFile list, inline assembly blocks are not counted,
6463         * (pic16_FixRegisterBanking): trace previous register usage, when
6464         banksel optimizations is greater than 0, don't emit a redudant
6465         banksel directive,
6466
6467 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
6468
6469         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
6470         * src/pic16/ralloc.c : applied same fix for pic16.
6471         * src/pic/gen.c : tidied it up a little.
6472
6473 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6474
6475         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
6476         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
6477
6478 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6479
6480         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
6481
6482 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6483
6484         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
6485         non-reentrant function __modsint in the interrupt function (thus
6486         corrupting math operations during serial I/O)
6487         * device/lib/ser_ir.c: as above, changed buffersize
6488         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
6489         256.c,d for zeroing
6490         * doc/Makefile: added option -t for rsync
6491
6492 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6493
6494         * src/SDCCast.h (struct ast),
6495         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
6496
6497 2004-10-20 Borut Razem <borut.razem AT siol.net>
6498
6499         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
6500         package
6501
6502 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
6503
6504         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
6505         makefile targets,
6506         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
6507         support functions to replace long sequences of MOVFF's from access
6508         bank registers to stack and vice versa,
6509         * src/pic16/device.h: added new field opt_flags, where optimization
6510         flags can be set to enable certain features,
6511         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
6512         * pBlock, (genFunction, genEndFunction): surroung loop for
6513         saving/loading used registers in stack with PC_INFO pCodes,
6514         INF_LREGS. Code in between can then be optimized by pCode optimizer
6515         to support function calls,
6516         * (genDataPointerSet): fixed bug which loaded float fields in
6517         structures with corrupt data,
6518         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
6519         in a standard way debug info on stderr. Feature used for developing
6520         and debugging only,
6521         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
6522         obsolete chunks of code,
6523         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
6524         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
6525         * pic16/src/pcode.c (pic16_newpCodeInfo,
6526         * (pic16_newpCodeOpLocalRegs),
6527         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
6528         feature,
6529         * (pic16_pCodeConstString): printing of the initial value of a
6530         symbol as a comment is inhibited since parsing was already done by
6531         copyStr and output is corrupt,
6532         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
6533
6534 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6535
6536         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
6537
6538 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
6539
6540         * as/mcs51/lkarea.c: removed old K&R style,
6541           (lnksect): changed check on boundary error,
6542           (lnksect2): changed check on boundary error,
6543           (lnksect2): extend XSTK to end of page if size = 1
6544         * as/mcs51/lkmain.c: removed old K&R style,
6545           (Areas51): create l_IRAM symbol
6546         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
6547         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
6548           model-mcs51-stack-auto, added model-mcs51-xstack-auto
6549         * device/lib/_mullong.c: added version to be compiled with xstack
6550         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
6551         * device/lib/mcs51/crtxclear.asm: clear pdata as well
6552         * device/lib/mcs51/crtxstack.asm: fixed comment
6553         * src/SDCCglue.c: maxInterrupts defaults to 0,
6554           (emitMaps): added pdata,
6555           (createInterruptVect): (re)moved default,
6556           (glue): added pdata,
6557           (glue): moved __start__xstack to XSTK with default size 1
6558         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
6559           and options.float_rent when options.stackAuto is set,
6560           (linkEdit): only write XDATA_NAME if provided on command line
6561         * src/SDCCmem.h,
6562         * src/SDCCmem.c: added pdata
6563         * src/port.h: added pdata_name to PORT
6564         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
6565           (saveRegisters, unsaveRegisters): removed usage of B,
6566           (genMinus): fixed accumulator clash,
6567           (genJumpTab): added comment, this needs another look
6568         * src/mcs51/gen.c: added check for "B in use" paranoia,
6569           added pushB() and popB()
6570         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
6571           chance
6572         * src/avr/main.c,
6573         * src/ds390/main.c,
6574         * src/hc08/main.c,
6575         * src/mcs51/main.c,
6576         * src/pic/main.c,
6577         * src/pic16/main.c,
6578         * src/xa51/main.c,
6579         * src/z80/main.c: (reset_regparms) made void parameter explicit and
6580           added PSEG (PAG,XDATA) or NULL to port specifier
6581         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
6582         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
6583           (_mcs51_genInitStartup): removed __start__xstack equ,
6584           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
6585         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
6586         * src/z80/gen.c (_rleAppend): fixed warnings
6587         * support/regression/tests/zeropad.c: added pdata test
6588         * .version: bumped to 2.4.6
6589
6590 2004-10-17 Borut Razem <borut.razem AT siol.net>
6591
6592         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
6593         as a part of nightly build
6594
6595 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
6596
6597         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
6598         WREG holds the first byte function parameters,
6599         * (aopForSym): take special case for symbols which are in FARSPACE
6600         but in CODESPACE too,
6601         * (assignResultValue): modified to take into account _G.useWreg,
6602         * (genCall): don't use wreg for parameter passing when function is
6603         declared as reentrant, too, added optimization INCF to stack
6604         pointer when stack parameter count is 1,
6605         * (genFunction, genEndFunction): refurnished and fixed to not using
6606         wreg for passing parameters when function has varargs or is
6607         reentrant, fixed bug with symbol name compare for generating
6608         functions in absolute address,
6609         * (pic16_storeForReturn): refurnished,
6610         * (genCmp): began writing a new version of the function, not ready
6611         yet, therefore it is disabled,
6612         * (genAssign): do not read code memory when assigning a function to
6613         a pointer function,
6614         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
6615         array of characters, not pointer,
6616         * (pic16initialComments): in debug mode emit an .ident directive for
6617         the assembler,
6618         * (_process_pragma): emit a new warning type (internal to pic16)
6619         when setting stack to default length, emit a similar warning when
6620         placing a function at absolute address and address is not word aligned
6621         * (_pic16_parseOptions): added 'return TRUE' statement,
6622         * (_pic16_linkEdit): if compiling a source, then add the source's
6623         file object, first in the list of objects to link,
6624
6625 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
6626
6627         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
6628         * src/pic/main.c : removed VC warning.
6629         * src/pic/gen.c : changed comment.
6630
6631 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
6632
6633         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
6634         reference to a deprecated symbol _GPTRREG was causing failure to
6635         link. Thanks G. M. Gallant for the info.
6636
6637 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
6638
6639         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
6640         comments for Bugs item #954788.
6641
6642 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
6643
6644         * src/pic16/device.c (pic16_dump_gsection,
6645         * pic16_groupRegistersInSection): handle symbols declared to be in
6646         access bank differently,
6647         * src/pic16/gen.c (struct _G): added field resDirect,
6648         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
6649         send values read from stack directly to result and don't allocate
6650         temporary values,
6651         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
6652         same registers,
6653         * (pic16_sameRegsOfs): NEW,
6654         * (freeAsmop): if _G.resDirect is set then do not mark registers as
6655         free because they were not allocated from temporary pool,
6656         * pic16_popRegFromString): workaround to fix a problem with
6657         allocating variables twice or never,
6658         * (genGenPointerGet): using PRODL instead of FSR0H,
6659         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
6660         instead of FSR0H,
6661         * (genAssign): take advantage of the _G.resDirect flag,
6662         * (genCast): around line 11844, use mov2f instead of directly
6663         MOVFF'ing between operands to account for literal values,
6664         * src/pic16/genutils.c: some new debug functions for gpsim have been
6665         added,
6666         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
6667         float with integer part only,
6668         * src/pic16/main.c (_process_pragma): handle pragma udata access to
6669         place variables in access bank
6670         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
6671         updated sources to reflect recent changes in gen.c
6672
6673 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
6674
6675         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
6676         sources that searched for headers in installation path, now the
6677         device/include/pic16 is used,
6678         * src/pic16/glue.c (pic16glue),
6679         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
6680         .line directives if not in debug mode, this suppresses assembler's
6681         warnings for ignored directives
6682
6683 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6684
6685         * src/port.h: made reset_regparms prototype void parameter explicit.
6686         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
6687         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
6688         * doc/sdccman.lyx: documented warning disabling and how to use
6689           printf_large to make it print floats.
6690         * device/include/stdbool.h: NEW
6691         * device/lib/_atof.c,
6692         * device/lib/_divuint.c,
6693         * device/lib/_divulong.c,
6694         * device/lib/expf.c,
6695         * device/lib/printf_large.c,
6696         * device/lib/sincosf.c,
6697         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
6698         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
6699           a completely reentrant lib.
6700
6701 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
6702
6703         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
6704         * device/include/pic16/stdio.h: fixed bug with colon
6705
6706 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
6707
6708         * device/include/pic16/stdio.h,
6709         * device/include/pic16/stdlib.h,
6710         * device/include/pic16/math.h: NEW
6711         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
6712         declared as _naked to reduce overhead
6713         * device/lib/Makefile.in (target port-specific-objects-pic16):
6714         changed * to *.* so to ignore the CVS directory,
6715         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
6716         stacked variables back in stack,
6717         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
6718         corruption
6719
6720 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
6721
6722         * .version: bumped version number to 2.4.5
6723         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
6724         * support/Util/SDCCerr.c (messages structure): added entry for
6725         W_POSSBUG2
6726
6727         Large cumulative patch for pic16 port and libraries.
6728         * device/include/pic16/sdcc-lib.h,
6729         * device/include/pic16/stdarg.h,
6730         * device/include/asm/pic16/features.h,
6731         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
6732         * device/include/pic16/float.h: changes reentrant keyword with
6733         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
6734         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
6735         updated target build-libraries to include objects from gptr,
6736         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
6737         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
6738         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
6739         all function headings,
6740         * src/SDCCmain.c: added global parameter userIncDirsSet,
6741         * (parseCmdLine): when option -I is encountered add directory to
6742         userIncDirsSet too,
6743         * src/version.awk: added space between control and long,
6744         * src/pic16/NOTES: added some notes for the port,
6745         * src/pic16/gen.c: added prototype for mov2fp function,
6746         * (fReturnpic16[]): properly named return value registers,
6747         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
6748         * (aopForSym): added code to handle symbols with onStack flag set,
6749         symbols onStack are allocated PTRSIZE bytes,
6750         * (aopFreeAsmop): handles special case where asmops are stack objects,
6751         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
6752         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
6753         added argument lock to trace flaws in allocating temporary registers
6754         when developing port,
6755         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
6756         * (pic16_popRegFromString): reenabled allocating a direct register
6757         from string,
6758         * (assignResultValue): various beautifications,
6759         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
6760         referenced function argument,
6761         * (genIpush): reenabled to allow stacked arguments, handles only
6762         ic->parmPush iCodes,
6763         * (genCall, genPcall): major changes to allow for variable argument
6764         functions, fixed a bug with falsely restoring stack pointer after
6765         returning from call,
6766         * (genFunction): pending code for critical function,
6767         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
6768         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
6769         * (genNearPointerGet): fixed bug with indirect reading, was always
6770         reading from INDF0
6771         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
6772         pointers,
6773         * (genAddrOf): rewrote code to take address of a stacked function parameter
6774         * (genCast): fixed casting to generic pointer type,
6775         * src/pic16/gen.h: added AOP_STA,
6776         * (struct asmop): added field stk,
6777         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
6778         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
6779         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
6780         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
6781         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
6782         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
6783         generic pointers,
6784         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
6785         and library paths,
6786         * (pic16_port structure): generic pointer size is set to 3,
6787         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
6788         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
6789         compiler warning,
6790         * src/pic16/ralloc.c (allocReg): prevent allocating register when
6791         operand is an iTemp,
6792
6793 2004-09-24 Martin Helmling <mh AT octo-soft.de>
6794
6795         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
6796         * debugger/mcs51/simi.c: addapt new syntax of s51
6797
6798 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
6799
6800         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
6801         * src/pic16/pcode.c: commented out some calls to free() in order to
6802         fix bug #989576,
6803
6804 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6805
6806         * src/SDCCicode.h,
6807         * src/SDCCicode.c (isiCodeInFunctionCall),
6808         * src/avr/ralloc.c (selectSpil),
6809         * src/pic/ralloc.c (selectSpil),
6810         * src/pic16/ralloc.c (selectSpil),
6811         * src/ds390/ralloc.c (selectSpil),
6812         * src/hc08/ralloc.c (selectSpil),
6813         * src/xa51/ralloc.c (selectSpil),
6814         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
6815         stack in the middle of a function call sequence (fixes bug #1020268)
6816         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
6817         costs associated with the minimum switch case.
6818
6819 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6820
6821         * src/SDCC.lex: fixed bug #1030549
6822
6823 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6824
6825         * src/SDCCcse.h (struct cseDef),
6826         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
6827         over a function call if the CSE is derived from a symbol whose
6828         address has been taken (fixes bug #1029883)
6829         * support/regression/tests/bug-1029883: a new regression test for
6830         this bug
6831
6832 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6833
6834         * src/hc08/gen.c (emitinline): fixed bug #1029778
6835         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
6836         to a cast object is no longer a syntax error ("fixes" bug #1030006,
6837         and starts toward RFE #905167)
6838
6839 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
6840
6841         * src/pic16/gen.c (mov2f): New function to move an operand to
6842         another without considering if it is a literal or a register,
6843         * (pic16_sameRegs): don't check if they are both AOP_REG,
6844         * (AccRsh): removed andmask=0 lines,
6845         * (genLeftShift): duplicated to be improved in future versions,
6846         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
6847         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
6848         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
6849         * (pic16initMnemonics): added initialization for POC_INFSNZW,
6850         * (insertBankSwitch): fixed inserting banksel directives algorithm
6851         for instructions that follow a skip instruction, this fixes a report
6852         for broken subtraction code generation,
6853         * src/pic16/ralloc.c (deassignLRs): do not free register if current
6854         iCode is a left op, just in case result and right share the same
6855         registers
6856
6857 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6858
6859         * src/hc08/main.c,
6860         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
6861         preservation of HX
6862         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
6863         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
6864         on 2004-09-12; it was buggy
6865
6866 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
6867
6868         * src/SDCCsymt.h: removed RESULT_CHECK
6869         * src/SDCCast.c,
6870         * src/SDCCglue.c,
6871         * src/SDCCval.c,
6872         * src/pic/glue.c,
6873         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
6874
6875 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
6876
6877         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
6878         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
6879         configuration values no more rejected by compiler, they are assigned
6880         to configuration registers with a warning message instead,
6881         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
6882         the for-loop so last conf register is emitted too,
6883         * (_pic16_initPaths): link library libsdcc.lib by default,
6884         * (_hasNativeMulFor): modified test for multiplication according to
6885         Raphael Neider's remarks. Integer multiplication is also done with
6886         support functions,
6887         * device/include/pic16/pic18fregs.h: corrected type error in while
6888         testing and including 18f6720 header file
6889
6890 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
6891
6892         * src/pic16/device.h (pic16_options): removed field use_crt,
6893         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
6894         until an optimization to handle single bits is added,
6895         * (pic16_loadFSR0): moved before genUnpackBits,
6896         * (genAnd): some white lines removed,
6897         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
6898         leave_reset flags in pic16_options when using crt modules,
6899
6900 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
6901
6902         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
6903           for bugs 898889 & 979599. Also used some safer print instructions.
6904
6905 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
6906
6907         * src/pic16/device.h (pic16_options_t): added field use_crt,
6908         crt_name, no_crt,
6909         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
6910         catch a probable future bug,
6911         * src/pic16/gen.c: aopIdx function commented out,
6912         * (genAssign): commented out old code which used aopIdx,
6913         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
6914         code, added if conditionals to take into account the --use-crt
6915         command line options,
6916         * src/pic16/main.c (pic16_optionsTable): added new command line
6917         options, --use-crt= and --no-crt,
6918         * (_pic16_linkEdit): now the proper crt object is added in the
6919         linker command line except than when --no-crt is specified,
6920         * src/pic16/pcode.c,
6921         * src/pic16/pcode.h: added some structures and functions for a new
6922         optimization scheme to compansate for instruction overhead between
6923         same iCodes, this scheme is currently under development and is not
6924         working in any way,
6925         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
6926         to && operator,
6927         * device/lib/pic16/startup/crt0i.c,
6928         * device/lib/pic16/startup/crt0iz.c: added global char variable
6929         __uflags to force the generation of an idata section
6930
6931 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
6932
6933         * doc/Makefile,
6934         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
6935         * doc/sdccman.lyx: updated sdcc version to 2.4.4
6936
6937 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6938
6939         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
6940         Frieder) and clarified the default code optimization mode
6941
6942 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6943
6944         * src/SDCC.lex (doPragma, process_pragma),
6945         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
6946         "opt_code_size", and "opt_code_balanced"
6947         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
6948         regrouped options by category, added support for category headers
6949         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
6950         and "--opt-code-size"
6951         * doc/sdccman.lyx: documented these new options and pragmas
6952         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
6953         preference into account
6954
6955 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6956
6957         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
6958           geniCodePreDec): Fixed bug 904237 by generating a warning
6959         * src/SDCCerr.h,
6960         * src/SDCCerr.c: added warning W_SIZEOF_VOID
6961
6962 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
6963
6964         * src/pic/device.c : When no max ram set validate full memory range.
6965         * src/pic/pcode.c,
6966         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
6967
6968 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6969
6970         * device/lib/_gptrget.c,
6971         * device/lib/_gptrput.c: updated comment
6972         * device/lib/calloc.c,
6973         * device/lib/free.c,
6974         * device/lib/malloc.c,
6975         * device/lib/realloc.c: added LGPL, made them reentrant-safe
6976         * src/SDCCcse.c (cseBBlock),
6977         * src/SDCCicode.c (printOperand, geniCodeArray),
6978         * src/SDCCicode.h (struct operand): fixed bug 868103
6979         * support/regression/tests/bug-868103.c: added
6980         * src/SDCCast.c (searchLitOp),
6981         * src/SDCCcse.h (struct cseDef),
6982         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
6983         * src/SDCCicode.h (struct operand),
6984         * src/SDCCsymt.h (struct sym_link),
6985         * src/avr/gen.c (hasInc),
6986         * src/ds390/gen.c (hasInc),
6987         * src/hc08/gen.c (genPlusIncr, hasInc),
6988         * src/mcs51/gen.c (hasInc),
6989         * src/pic16/glue.c (pic16_printIvalChar),
6990         * src/pic16/ralloc.c (regWithIdx),
6991         * src/xa51/gen.c (hasInc) : removed warnings
6992         * src/SDCCast.c (createBlock): added comment ???
6993         * src/hc08/ralloc.c: updated comments
6994
6995 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6996
6997         * doc/sdccman.lyx: updated section on switch statements, added
6998         section about semaphore locking
6999         * doc/Makefile: added option -info for latex2html
7000         * device/lib/_gptrget.c,
7001         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
7002
7003 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7004
7005         * src/pic/device.h,
7006         * src/pic/device.c,
7007         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
7008          maxram is less than 0x100.
7009
7010 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7011
7012         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
7013
7014 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7015
7016         * src/port.h,
7017         * src/mcs51/main.c,
7018         * src/ds390/main.c,
7019         * src/z80/main.c,
7020         * src/hc08/main.c,
7021         * src/pic/main.c,
7022         * src/pic16/main.c,
7023         * src/avr/main.c,
7024         * src/xa51/main.c
7025         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
7026         a jump table is the best form for a switch statement, including
7027         automatic insertion of missing cases to make the case range
7028         continuous. Developed in collaboration with Frieder Ferlemann.
7029
7030 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7031
7032         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
7033         accumulator result if it needs sign extension
7034
7035 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7036
7037         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
7038
7039 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7040
7041         * device/lib/gbz80/printf.c,
7042         * device/lib/z80/printf.c: removed define for NULL
7043
7044 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7045
7046         * as/xa51/xa_link.c,
7047         * device/examples/ds390/ow390/ad26.c,
7048         * device/examples/ds390/ow390/cnt1d.c,
7049         * device/examples/ds390/ow390/counter.c,
7050         * device/examples/ds390/ow390/ds2480.h,
7051         * device/examples/ds390/ow390/ds2480ut.c,
7052         * device/examples/ds390/ow390/findtype.c,
7053         * device/examples/ds390/ow390/gethumd.c,
7054         * device/examples/ds390/ow390/owllu.c,
7055         * device/examples/ds390/ow390/ownetu.c,
7056         * device/examples/ds390/ow390/swt12.c,
7057         * device/examples/ds390/ow390/swtloop.c,
7058         * device/examples/ds390/ow390/temp.c,
7059         * device/examples/ds390/ow390/temp10.c,
7060         * device/examples/ds390/ow390/thermo21.c,
7061         * device/examples/ds390/ow390/tinilnk.c,
7062         * device/examples/ds390/ow390/tstfind.c,
7063         * device/examples/serialcomm/windows/serial.cpp,
7064         * device/examples/serialcomm/windows/test_serialcomm.cpp,
7065         * device/include/reg51.h: fixed line endings for cvs
7066
7067 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7068
7069         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
7070         packRegsForAccUse, packRegisters): new accumulator register
7071         packing algorithm
7072         * support/regression/ports/hc08/support.c (_putchar): suppress
7073         warning of unused variable
7074         * src/SDCCicode.c: added SWAP entry to codeTable
7075
7076 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
7077
7078         * device/lib/sprintf.c: forgot to add this file before previous commit
7079
7080 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
7081
7082         * src/pic16/gen.c (genPackBits): added operand right in function
7083         parameters, load result directly if p_type is POINTER (that is
7084         called by genNearPointerSet)
7085         * (genUnPackBits): added operand left in function parameters,
7086         * (genNearPointerGet, genNearPointerSet): prevent the loading of
7087         FSR0 if accessing bitfields,
7088
7089 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
7090
7091         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
7092           _print_format; updated printf, sprintf, vsprintf
7093         * device/include/asm/default/features.h: corrected comment/define
7094         * device/lib/Makefile.in: added sprintf.c
7095         * device/lib/libsdcc.lib: added sprintf module
7096         * device/lib/printf_large.c,
7097         * device/lib/vprintf.c,
7098         * device/lib/sprintf.c: totally refactored printf_large and vprintf
7099           into these 3 files
7100         * support/regression/Makefile: changed ALL_PORTS into a usefull default
7101         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
7102         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
7103           hc08 test
7104         * support/regression/tests/zeropad.c: define idata as data for hc08
7105
7106 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7107
7108         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
7109         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
7110         labels are referenced at least once (even if a reference is not found)
7111         * src/hc08/gen.c (emitcode): set isComment flag for comments
7112         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
7113         loads), rules 6a..6b (optimize jumps to return)
7114
7115 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7116
7117         * device/lib/acosf.c (acosf),
7118         * device/lib/asinf.c (asinf),
7119         * device/lib/atanf.c (atanf),
7120         * device/lib/ceilf.c (ceilf),
7121         * device/lib/cosf.c (cosf),
7122         * device/lib/coshf.c (coshf),
7123         * device/lib/cotf.c (cotf),
7124         * device/lib/fabsf.c (fabsf),
7125         * device/lib/floorf.c (floorf),
7126         * device/lib/log10f.c (log10f),
7127         * device/lib/logf.c (logf),
7128         * device/lib/sinf.c (sinf),
7129         * device/lib/sinhf.c (sinhf),
7130         * device/lib/sqrtf.c (sqrtf),
7131         * device/lib/tanf.c (tanf),
7132         * device/lib/tanhf.c (tanhf),
7133         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
7134         replaced all instances of "reentrant" in the library functions
7135         defined in math.h with this macro.
7136         * support/regression/tests/float_trans.c: reenabled test for hc08
7137
7138 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
7139
7140         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
7141         erroneously deleted
7142
7143 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7144
7145         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
7146         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
7147         multi-byte volatile operands are used
7148         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
7149         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
7150         initialization to area GSINIT0 so that it would always precede
7151         any static initializers in GSINIT
7152         * support/regression/tests/zeropad.c: fixed idata define for hc08
7153         * support/regression/tests/bug-927659.c,
7154         * support/regression/tests/float_trans.c: disabled tests for hc08
7155         pending missing library routines
7156         * .version: increased version number to 2.4.4 - hc08 port now passes
7157         regression tests
7158
7159
7160 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
7161
7162         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
7163         * Makefile.common.in,
7164         * as/Makefile,
7165         * as/hc08/Makefile.in,
7166         * as/mcs51/Makefile.in,
7167         * as/z80/Makefile.in,
7168         * debugger/mcs51/Makefile.in,
7169         * device/include/Makefile.in,
7170         * device/lib/Makefile.in,
7171         * doc/Makefile,
7172         * link/Makefile,
7173         * link/z80/Makefile.in,
7174         * packihx/Makefile.in,
7175         * sim/ucsim/main_in.mk,
7176         * sim/ucsim/avr.src/Makefile.in,
7177         * sim/ucsim/doc/Makefile.in,
7178         * sim/ucsim/gui.src/serio.src/Makefile.in,
7179         * sim/ucsim/hc08.src/Makefile.in,
7180         * sim/ucsim/s51.src/Makefile.in,
7181         * sim/ucsim/xa.src/Makefile.in,
7182         * sim/ucsim/z80.src/Makefile.in,
7183         * src/Makefile.in,
7184         * support/cpp2/Makefile.in,
7185         * support/librarian/Makefile,
7186         * support/makebin/Makefile: added DESTDIR to the install path proposed
7187         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
7188         * doc/sdccman.lyx: added DESTDIR documentation
7189
7190 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
7191
7192         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
7193         instruction for interrupt handlers, use fast returns when returning
7194         from high priority interrupts
7195
7196 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7197
7198         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
7199         code generation
7200         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
7201         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
7202         bugs, ported much of Bernhard's code from mcs51
7203         * src/mcs51/gen.c (genSend),
7204         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
7205         than one when calling a reentrant function
7206         * device/lib/_mullong.c: defined an alternate struct layout for big
7207         endian ports (hc08)
7208
7209 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7210
7211         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
7212         test
7213
7214 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7215
7216         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
7217         are sane and complete before asking the port its prefered parameter
7218         passing method (fixes bug #1017633)
7219         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
7220         and _ret3
7221
7222 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7223
7224         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
7225         problem in bitfields >= 8 bits.
7226
7227 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7228
7229         * src/SDCCsymt.c: undid changes that were not meant to be committed
7230
7231 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7232
7233         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
7234
7235 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7236
7237         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
7238           copied and wrong bit got inverted
7239
7240 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7241
7242         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
7243         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
7244         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
7245         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
7246         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
7247         assignments to bitfields at known addresses
7248         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
7249         reads from bitfields at known addresses
7250         * src/hc08/ralloc.c (packRegisters),
7251         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
7252         genhc08Code): optimize pointer get values used as conditionals
7253         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
7254         and branch
7255
7256 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7257
7258         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
7259         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
7260         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
7261         as conditionals
7262
7263 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7264
7265         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
7266
7267 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7268
7269         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
7270         related problems
7271
7272 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
7273
7274         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
7275
7276 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7277
7278         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
7279         mcs51 port
7280
7281 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7282
7283         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
7284
7285 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7286
7287         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
7288         cases use more compact code.
7289
7290 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
7291
7292         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
7293
7294 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7295
7296         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
7297
7298 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7299
7300         * src/SDCCsymt.h,
7301         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
7302         parameter of changePointer() from symbol* to sym_link*
7303         * src/SDCCast.c (decorateType): call changePointer() for CAST op
7304         * src/SDCCsymt.c (compareType): void* type is castable to other
7305         pointers, but not necesarily an exact match.
7306         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
7307         is no longer blindly treated as an exact match.
7308         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
7309
7310 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
7311
7312         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
7313
7314 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
7315
7316         * src/pic/gen.c,
7317         * src/pic/pcode.c,
7318         * src/pic/ralloc.h,
7319         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
7320
7321 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
7322
7323         * src/pic/device.c,
7324         * src/pic/device.h,
7325         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
7326
7327 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7328
7329         * src/mcs51/gen.c (emitcode): fixed bug #992819
7330
7331 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
7332
7333         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
7334           there's no need to make it worse
7335
7336 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7337
7338         * src/mcs51/ralloc.c (deassignLR),
7339         * src/ds390/ralloc.c (deassignLR),
7340         * src/hc08/ralloc.c (deassignLR),
7341         * src/z80/ralloc.c (deassignLR),
7342         * src/pic/ralloc.c (deassignLR),
7343         * src/pic16/ralloc.c (deassignLR),
7344         * src/avr/ralloc.c (deassignLR),
7345         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
7346         rlivePoint): fixed another part of bug #971834
7347
7348 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7349
7350         * src/z80/main.c: enabled "critical" keyword
7351         * src/z80/mappings.i,
7352         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
7353         functions (fixes bug #979646)
7354         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
7355
7356 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7357
7358         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
7359           such as c:\mydir.
7360
7361 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
7362
7363         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
7364           doesn't disable too much optimizations
7365
7366 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7367
7368         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
7369
7370 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
7371
7372         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
7373
7374 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7375
7376         * src/pic/gen.c tidied up tabs
7377         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
7378         * src/pic/main.c tidied up tabs
7379         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
7380         * src/pic/pcoderegs.c tidied up tabs
7381         * src/pic/ralloc.c tidied up tabs
7382
7383 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
7384
7385         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
7386         to S_FIXED for pic16 port and when symbol is not in level 0,
7387         allocate for S_REGISTER storage class and pic16 port, too,
7388         * src/pic16/device.h: prototype for checkSym,
7389         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
7390         * (pic16_assignConfigWordValue): test the value and the mask to
7391         validate that the value is suitable for the configuration word,
7392         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
7393         collect extern declared symbols, don't emit symbol twice, check
7394         first if symbol is in publics set first,
7395         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
7396         * added command line '--fstack' which enables an experimental
7397         feature for stack access, too buggy to be used yet...
7398         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
7399         * (pic16_allocDirReg): when register has storage class S_REGISTER
7400         allocate in pic16_dynAccessRegs,
7401         * device/include/pic16/pic18f????.h: modified configuration word
7402         naming convention, words started as CONFIG0H but should be CONFIG1H
7403
7404 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
7405
7406         * device/include/mcs51reg.h: fixed bug 970993
7407
7408 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
7409
7410         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
7411         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
7412         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
7413         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
7414         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
7415         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
7416           error/warning numbers,
7417           added function setWarningDisabled()
7418         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
7419         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
7420           _memcmp.c _memmove.c calloc.c realloc.c free.c
7421         * support/regression/tests/malloc.c: added tests for new functionality
7422         * support/regression/tests/zeropad.c: added tests for truncated initializers
7423           and initialized char arrays starting with '\x0'
7424         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
7425
7426 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
7427
7428         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
7429
7430 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7431
7432         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
7433         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
7434         peephole 177.e. Thanks to anonymous
7435
7436 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
7437
7438         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
7439         function isn't used in the source but referenced as a
7440         variable initializer then declare it as extern in .asm file
7441
7442 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
7443
7444         * .version: increased version number to 2.4.3
7445
7446         Adding version extension according to ChangeLog CVS revision
7447         * src/Makefile.in (target all): added dependency 'version.h'
7448         * (rule version.h): added rule to create version.h from ChangeLog,
7449         * (rule dep): added dependency version.h,
7450         * src/version.awk: AWK script to create version.h
7451         * src/SDCCdwarf2.c (dwWriteModule),
7452         * src/SDCCglue.c (initialComments),
7453         * src/SDCCmain.c (printVersionInfo): modified to write after
7454         version string the version extension number,
7455         * src/SDCCutil.c: included "version.h"
7456         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
7457         number,
7458         * src/SDCCutil.h: added prototype for getBuildNumber
7459
7460         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
7461         includeDirsSet, too,
7462         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
7463         const char [] is found in function prototype...
7464
7465         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
7466         moving to WREG with source is already in WREG,
7467         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
7468         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
7469         * (aopForSym): stack'ed symbols are partially supported, added
7470         if-clause to support symbols in FARSPACE,
7471         * (sameRegs): added test for AOP_ACC to see if registers are same,
7472         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
7473         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
7474         * (pic16_popRegFromString): will not allocate a new register if it
7475         doesn't find one by name, bug may have introduced...
7476         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
7477         * (genIpush): revived to use pic16 port's stack,
7478         * (genAddrOf): added incomplete case for stack'ed operand,
7479         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
7480         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
7481         can handle multibyte operands,
7482         * src/pic16/glue.c (pic16_printIval*): some debug info added,
7483         * (pic16initialComments): added message for MPLAB compatibility
7484         mode enabled,
7485         * src/pic16/main.h: prototype for pic16_mplab_comp,
7486         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
7487         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
7488         * (_pic16_linkEdit): NEW, handles link stage, transferred here
7489         because of increased complexity of procedure,
7490         * (_process_pragma): stack pragma changed to format 'stack pos len',
7491         emit symbol '_stack_end' to conform with gplink,
7492         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
7493         to search for register,
7494         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
7495         PO_GPR_REGISTER,
7496         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
7497         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
7498         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7499         case for PO_GPR_REGISTER,
7500         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
7501         dies, the new era is ahead !...
7502         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
7503         pic16_dynInternalRegs,
7504         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
7505         * (pic16_allocDirReg): minor optimizations and bug fixes,
7506         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
7507
7508         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
7509         load stack and frame pointer with address of 'stack_end' symbol
7510
7511 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
7512
7513         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
7514         without source code but only variable initializers
7515
7516 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
7517
7518         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
7519         external are not declared as extern to reduce overhead while linking
7520
7521 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
7522
7523         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
7524
7525 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
7526
7527         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
7528           Yee Keat for the patch
7529         * src/SDCCast.c (decorateType): fixed bug #979599
7530         * src/ds390/gen.h: removed local fReturnSizeDS390
7531         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
7532         * src/ds390/gen.c (genAnd, genOr, genXor),
7533         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
7534
7535 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
7536
7537         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
7538         add relFilesSet to $3, manipulate $2 to handle linking of object
7539         files without source files in command line,
7540         * device/include/pic16 (all headers): added ID location macros,
7541         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
7542         entries for ID location bytes,
7543         * (pic16_assignIdByteValue): NEW,
7544         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
7545         added field dumpcalltree to pic16_options_t,
7546         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
7547         is used instead of pic16_Gstack_base_addr, check if (ifx) before
7548         emitting rFalseIfx label after check_carry label,
7549         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
7550         pic16_emitDIRegs), NEW
7551         * (pic16glue): dump .calltree file when option --calltree found,
7552         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
7553         * (_pic16_genAssemblerPreamble): emit ID locations after
7554         configuration registers,
7555         * (pic16_linkCmd): modifications of the link command,
7556         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
7557         * (pic16_pCodeInitRegisters): don't init stack registers,
7558         * (pic16_findPrevInstruction): fixed bug,
7559         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
7560         bug with immediate registers,
7561         * (buildCallTree): traces stack push and pop,
7562         * (pct2): dump also stack usage for each function,
7563         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
7564         * (pic16_allocDirReg): various modifications,
7565         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
7566         fixed to 1,
7567
7568 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
7569
7570         * src/pic16/pcode.c: removed buggy double colon
7571
7572 2004-07-01 Borut Razem <borut.razem AT siol.net>
7573
7574         * support/scripts/sdcc.nsi: added include/pic16 to setup
7575
7576 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
7577
7578         * device/lib/Makefile.in: fixed bug in target objects-pic16,
7579         * device/lib/pic16/Makefile: prefixed with dash (-) command under
7580         target 'clean',
7581         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
7582         specific command line arguments. Also added sample lkr script
7583         for placing a variable at a specific memory bank.
7584         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
7585         at a specific memory bank,
7586         * (pic16_dump_isection): fixed bug which caused string literals to
7587         be omitted when dumping idata section,
7588         * (pic16_groupRegistersInSection): added code to handle registers
7589         in specific memory banks,
7590         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
7591         public, all references are renamed too,
7592         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
7593         AOP_DPTR2,
7594         * (pic16_storeForReturn): added case to handle when dest is WREG,
7595         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
7596         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
7597         pic16_rel_udata, check to see if that register is marked as being
7598         a member of a specific memory bank,
7599         * (pic16_printIvalCharPtr): added code to add string literals either
7600         to code or the idata sections,
7601         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
7602         also accept the 'udata' pragma,
7603         * src/pic16/main.h: new structure types sectName and sectSym
7604         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
7605         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
7606         * (pic16_findPrevInstruction): fixed, it returned nothing,
7607         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
7608         instruction combinations,
7609         * (pic16_FixRegisterBanking): heavily reorganised,
7610         * (pic16_AnalyzeBanking): if generating banksel directives is
7611         disabled, then don't call FixRegisterBanking at all,
7612         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
7613         completely removed,
7614         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
7615
7616 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
7617
7618         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
7619         Phuah Yee Keat <yk.phuah AT nestac.com>
7620
7621 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
7622
7623         * src/pic16/glue.c (pic16createInterruptVect): function now emits
7624         correctly the IVT even if it is relocated to some other location
7625
7626 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
7627
7628         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
7629         * device/include/pic16/pic18f2220.h: NEW,
7630         * device/lib/pic16/libdev/pic18f2220.c: NEW,
7631         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
7632         * src/pic16/device.c (struct Pics16): added info for 18f2220,
7633         * src/pic16/device.h (struct pic16_options): added ivt_loc and
7634         nodefaultlibs, ivt_loc is the location of the interrupt vector
7635         table, and nodefaultlibs signs that default libraries should not be
7636         linked in link stage,
7637         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
7638         according to --ivt-loc argument,
7639         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
7640         when pragma stack is found,
7641
7642 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7643
7644         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
7645         256 (range check), 257 (do while), 258.a-f (bit banging
7646         f.e. on 3-wire SPI bus)
7647
7648 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7649
7650         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
7651         variables used exclusively within a loop
7652
7653 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
7654
7655         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
7656
7657 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7658
7659         * src/SDCClrange.c (computeClash): fixed bug #971834
7660
7661 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7662
7663         * src/mcs51/gen.c (genCmp): fixed bug #975903
7664         * src/hc08/gen.c (operandsEqu),
7665         * src/ds390/gen.c (operandsEqu),
7666         * src/z80/gen.c (operandsEqu),
7667         * src/pic/gen.c (operandsEqu),
7668         * src/pic16/gen.c (operandsEqu),
7669         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
7670         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
7671
7672 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7673
7674         * src/SDCCcse.c (cseBBlock): fixed bug #966963
7675
7676 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
7677
7678         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
7679         default case in switch statement,
7680         * glue.c (pic16_initPointer): expr is initialised via decoarteType
7681         to eliminate problem with initialisation of pointers, but problem
7682         still exists,
7683         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
7684         * (emitStaticSegment): removed various lines emitting debug info,
7685         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
7686         added processor registers for utilizing EEPROM,
7687         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
7688         configurable and set 8
7689
7690 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
7691
7692         * .version: increased version number to 2.4.2,
7693
7694         Cumulative patch for pic16 port
7695         * src/pic16/device.c: changed scheme to dump initial values for
7696         variables in idata segment, all print_idata* functions were removed,
7697         now the pic16_printIval* will be called,
7698         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
7699         * _pic16_printPointerType, pic16_printPointerType,
7700         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
7701         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
7702         NEW, similar to the respective functions in SDCCglue.c,
7703         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
7704         way, emitting hex bytes,
7705         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
7706
7707 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7708
7709         * src/avr/ralloc.c (serialRegAssign),
7710         * src/xa51/ralloc.c (serialRegAssign),
7711         * src/pic/ralloc.c (serialRegAssign),
7712         * src/pic16/ralloc.c (serialRegAssign),
7713         * src/hc08/ralloc.c (serialRegAssign),
7714         * src/z80/ralloc.c (serialRegAssign),
7715         * src/ds390/ralloc.c (serialRegAssign),
7716         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
7717
7718 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7719
7720         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
7721         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
7722
7723 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
7724
7725         Cumulative patch for pic16 port:
7726         * src/pic16/device.h (typedef PIC16_device) modified fields for
7727         defining microcontrollers,
7728         * src/pic16/device.c: added new info for all devices in Pics16 array,
7729         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
7730         to be optimised out by the pCode optimiser,
7731         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
7732         specially, bug reported by G.M. Gallant,
7733         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
7734         as force'd so that cannot be optimised out by pCode optimiser,
7735         * src/pic16/pcode.c,
7736         * src/pic16/pcodepeeph.c,
7737         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
7738         they are disabled by default, but can be enabled explicit with
7739         command argument --denable-peeps, for testing,
7740         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
7741         --pomit-ivt in COMPILE_FLAGS
7742
7743 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7744
7745         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
7746           compilation on MSVC
7747
7748 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7749
7750         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
7751
7752 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7753
7754         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
7755         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
7756
7757 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
7758
7759         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
7760         would only assign 0x300001 register.
7761
7762 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
7763
7764         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
7765         in COMPILE_FLAGS. Thanks to G. Gallant for report.
7766
7767 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7768
7769         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
7770         for ds80c400
7771         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
7772         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
7773         added peephole 254 (left shift), 255 (jump table)
7774
7775 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
7776
7777         * device/lib/Makefile.in: removed comment line with model-pic16,
7778         * (target port-specific-objects-pic16): the libraries and objects
7779         are copied to the build directory form the device/lib/pic16/bin
7780         directory
7781
7782         Cumulative patch concerning pic16 port:
7783         * library directory has been re-organized,
7784         * added support for PIC18F1220,
7785         * added headers and library sources for chips 18f1220,18f6520,
7786         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
7787
7788         * configuration registers setting has changed, now each supported
7789         device has a complete description of the registers it uses,
7790         * all initialisations are moved to idata sections, these section
7791         can be absolute or relocatable,
7792         * fixed initialisation of codespace variables,
7793         * fixed warning about PCLATU and gpsim,
7794         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
7795         * (genAssign): use table reads when assigning from variables in codespace,
7796         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
7797         char/int variables placed in codespace,
7798         * (pic16_emitConfigRegs): NEW, emits a list with configuration
7799         registers set in .asm file, no need for --pomit-config-words anymore,
7800         * (pic16glue): some 8051 legacy segments are commented out
7801         (to be removed completely),
7802         * added support for alternative assembler and linker with --asm=
7803         and --link= command line arguments,
7804         * peepholes are disabled automatically in the port, no need to
7805         specify on command line,
7806         * port supports natively char/int/long multiplication, but converts
7807         all divisions to support functions,
7808         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
7809         to the file set in variable $2,
7810         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
7811         strings in ASCII format and not in hex,
7812         * ralloc.c (serialRegAssign): added a triplet of conditional calls
7813         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
7814         allocate proper register if iCodes aren't temporary,
7815
7816 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
7817
7818         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
7819
7820 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
7821
7822         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
7823         is commented out
7824
7825 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7826
7827         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
7828         computed address is reused
7829         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
7830         multi-byte bitfields
7831
7832 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7833
7834         * src/z80/gen.c: (genArrayInit): must check for pointers too
7835
7836 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7837
7838         * support/regression/tests/zeropad.c: never meant to commit the
7839           nestedstruct test: removed, added check for GCC version
7840
7841 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
7842
7843         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
7844         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
7845         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
7846           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
7847           bugs 928906 and 954082 half-empty initializers
7848         * src/SDCCsymt.h,
7849         * src/SDCCsymt.c (getAllocSize): added for above fix
7850         * src/z80/gen.c (genArrayInit): fixed bug 741044
7851         * support/regression/tests/zeropad.c: added tests
7852
7853 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
7854
7855         * src/pic16/device.c (pic16_dump_section): corrected bug which
7856         caused some symbols of the libraries to be misplaced
7857
7858 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7859
7860         * src/pic16/glue.c,
7861         * src/pic16/ralloc.h,
7862         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
7863         to fix conflict with pic port
7864
7865 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7866
7867         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
7868         externs configuration variables,
7869         * src/pic16/ralloc.h,
7870         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
7871         prototype in header, commented out some debug messages
7872
7873 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
7874
7875         * src/pic16/glue.c,
7876         * src/pic16/main.c,
7877         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
7878         for gpasm COFF object generation. Thanks to D. Hawkins for
7879         his patch info
7880
7881 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7882
7883         * src/ds390/main.c,
7884         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
7885         Brock for spotting this)
7886         * src/ds390/gen.c (genEndFunction),
7887         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
7888         interrupt handler and critical. Disable push/pop optimizations when
7889         peephole optimizations disabled.
7890
7891 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7892
7893         Updated pic16 library sources and headers.
7894         * device/lib/pic16/pic18f*/ ,
7895         * device/include/pic16/*.h: modified to handle structured SFR
7896         definitions
7897
7898 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7899
7900         * src/port.h (PORT structure): added hook initPaths, now each
7901         port can declare its own default search paths,
7902         which can been seen with the --print-search-dirs option,
7903         see pic16 port for example,
7904         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
7905         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
7906         * (doPrintSearchDirs): NEW, replaces in a central manner the
7907         printing of search dirs which was split in set*Paths functions,
7908         * (main): added call to port->initPaths and doPrintSearchDirs,
7909         * src/avr/main.c,
7910         * src/ds390/main.c,
7911         * src/hc08/main.c,
7912         * src/izt/i186.c,
7913         * src/izt/tlcs900h.c,
7914         * src/mcs51/main.c,
7915         * src/pic/main.c,
7916         * src/pic16/main.c: modified port structures to reflect addition of
7917         initPaths hook,
7918
7919         * src/pic16/device.c (regCompare): registers are finally sorted by name,
7920         * (pic16_dump_section): for registers in same address reserve memory once,
7921         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
7922         to no_banksel,
7923         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
7924         result is greater in size than right or left,
7925         * (pic16_genUMult8X8_8): there are some cases where the result can
7926         be 16 bits size, so handle these,
7927         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
7928         * (pic16_outBitC): modified to emit pcodes,
7929         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
7930         or not,
7931         * (genDivOneByte): implemented algorithm to divide 8-bits,
7932         * (genCmp): uncommented goto, but issues still exist,
7933         * (genAnd): fixed a bug with variables >8bits,
7934         * (genPackBits): optimization added that uses BCF/BSF to change a
7935         single bit,
7936         * (genAssign): fixed bug when assigning floating point literals,
7937         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
7938         __sdcc_gsinit_startup label,
7939         * src/pic16/main.c (_pic16_init): removed search directory
7940         initialisations,
7941         * (_pic16_initPaths): NEW, used to initialise search directories,
7942         * (_hasNativeMulFor): support functions for all except char/int
7943         multiplication, and char division,
7944         * (PIC16_port struct): modified entry for native mul support,
7945         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
7946         no_banksel option,
7947         * (buildCallTree): call to register_usage is ifdef'ed out,
7948
7949 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7950
7951         * device/include/string.h: applied Stas Sergeev's patch to make this
7952         header file compatible with the preprocessor -Wundef option
7953         * src/SDCCmain.c (main): abort compilation if preprocessor reports
7954         failure (fixes bug #941458)
7955
7956 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7957
7958         * src/SDCCopt.c (killDeadCode): fixed bug #907733
7959         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
7960         that the variable, not the function, should be static
7961         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
7962         to be consistent with non-literal case
7963
7964 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7965
7966         * src/SDCCast.c (isConformingBody): fixed bug #949967
7967         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
7968         convilong): fixed bug #952086
7969
7970 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7971
7972         * src/SDCCmem.c (allocVariables): fixed bug #955321
7973
7974 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7975
7976         * src/hc08/main.c (_hc08_genAssemblerEnd),
7977         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
7978         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
7979         completely eliminated the use of a temporary file
7980         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
7981         when more than one file linked
7982         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
7983
7984 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7985
7986         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
7987         which fixes bug #543481
7988         * support/regression/tests/bug-751703.c: fixed comments left from a
7989         cut and paste error
7990         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
7991         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
7992         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
7993         scopes
7994         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
7995         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
7996         are now changed to underscores in moduleName
7997
7998 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7999
8000         * as/mcs51/lkmem.c: better fix for bug #954173
8001
8002 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8003         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8004
8005         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
8006         * device/include/c8051f000.h,
8007         * device/include/c8051f120.h,
8008         * device/include/c8051f300.h,
8009         * device/include/c8051f310.h,
8010         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
8011         PWM16) and detab'ed
8012
8013 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8014
8015         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
8016         and mailing lists, doc'ed --no-peep-comments, removed reference
8017         to knoppix (newest version has no LyX/LaTeX), other minor changes
8018         * src/SDCCglue.c (glue): save 2 bytes stack space with
8019         option --main-return. The ljmp could probably be avoided too
8020
8021 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8022
8023         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
8024
8025 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8026
8027         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
8028         * src/SDCCopt.c (isLocalWithoutDef),
8029         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
8030         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
8031         (credit to Maarten Brock for patch #949363, on which this is based)
8032         * support/regression/tests/bug-751703.c: some test cases of extern used
8033         within inner scopes.
8034
8035 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8036
8037         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
8038         SPEC_STRUCT
8039         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
8040         struct definitions
8041         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
8042         dwWriteLabel): fix to create valid debugger symbols even when
8043         the module name has non-alphanumeric symbols in it
8044         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
8045         when a variable's allocation has been optimized away
8046
8047
8048 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8049
8050         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
8051         * src/hc08/main.c,
8052         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
8053         * src/mcs51/main.c,
8054         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
8055         * src/ds390/main.c,
8056         * src/z80/gen.c (z80_emitDebuggerSymbol),
8057         * src/z80/main.c,
8058         * src/pic/gen.c (pic14_emitDebuggerSymbol),
8059         * src/pic/main.c,
8060         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
8061         * src/pic16/main.c,
8062         * src/avr/gen.c (avr_emitDebuggerSymbol),
8063         * src/avr/main.c,
8064         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
8065         * src/xa51/main.c,
8066         * src/SDCCdebug.c (emitDebuggerSymbol),
8067         * src/SDCCdebug.h,
8068         * src/port.h: added a debugger struct to the port struct. Added a
8069         callback for defining debugger symbols
8070
8071         * src/SDCCast.c (createLabel),
8072         * src/SDCC.y (labeled_statement): mark all compiler generated labels
8073         with isitmp = 1
8074         * src/SDCCicode.h,
8075         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
8076         iCode back to the ast for the function
8077
8078         * src/hc08/ralloc.c (hc08_assignRegisters),
8079         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
8080         unneeded fields from the regs struct.
8081         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
8082         pushReg() & pullReg() functions instead of emitcode()
8083
8084         * src/hc08/gen.c (genLabel, genhc08Code),
8085         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
8086
8087         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
8088         debugger hooks
8089
8090         * src/hc08/gen.c (genEndFunction, genhc08Code),
8091         * src/hc08/gen.h,
8092         * src/mcs51/gen.c (genEndFunction, gen51Code),
8093         * src/mcs51/gen.h,
8094         * src/ds390/gen.c (genEndFunction, gen390Code),
8095         * src/ds390/gen.h,
8096         * src/z80/gen.c (genEndFunction, genZ80Code),
8097         * src/z80/gen.h,
8098         * src/z80/z80.h,
8099         * src/pic/gen.c (genEndFunction, genpic14Code),
8100         * src/pic/gen.h,
8101         * src/pic16/gen.c (genEndFunction, genpic16Code),
8102         * src/pic16/gen.h,
8103         * src/avr/gen.c (genEndFunction, genAVRCode),
8104         * src/avr/gen.h,
8105         * src/xa51/gen.c (genEndFunction, genXA51Code),
8106         * src/xa51/gen.h,
8107         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
8108         specific code to cdbFile.c and out of the backend code generators
8109
8110         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
8111         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
8112         starting address is now 0
8113
8114         * as/hc08/asm.h,
8115         * as/hc08/m08pst.c,
8116         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
8117         assembler directive for DWARF support
8118         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
8119
8120         * src/src.dsp,
8121         * src/Makefile.in,
8122         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
8123
8124 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8125
8126         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
8127         and inappropriate peephole optimization in jump tables
8128
8129 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8130
8131         * as/hc08/m08pst.c,
8132         * src/SDCCglue.c: sdccopt works for the hc08 port now
8133
8134 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
8135
8136         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
8137
8138 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8139
8140         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
8141
8142 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8143
8144         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
8145         rules
8146         * src/SDCCmain.c,
8147         * src/SDCCglobl.h,
8148         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
8149         comments from the peephole optimizer replacement rules
8150         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
8151         symbols
8152         * src/SDCCcse.c (updateSpillLocation),
8153         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
8154         equivalents
8155         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
8156         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
8157         objects far pointers
8158
8159 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8160
8161         * src/SDCCsymt.h: a missing part of my last change
8162         * src/pic/ralloc.c (regTypeNum),
8163         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
8164
8165 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8166
8167         * src/SDCCicode.h,
8168         * src/SDCCicode.c (aggrToPtrDclType),
8169         * src/SDCCptropt.h,
8170         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
8171         ptrPseudoSymConvert),
8172         * src/pic/ralloc.c (regTypeNum),
8173         * src/pic16/ralloc.c (regTypeNum),
8174         * src/hc08/ralloc.c (regTypeNum),
8175         * src/ds390/ralloc.c (regTypeNum),
8176         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
8177         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
8178
8179 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8180
8181         * link/z80/lkmain.c (afile),
8182         * as/hc08/lkmain.c (afile),
8183         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
8184         prevent a pointer problem when a filename has no directory and
8185         no extension specified.
8186
8187 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8188
8189         * link/z80/lkmain.c (afile): allow periods in directory names
8190         * link/z80/lkmain.c (afile),
8191         * as/mcs51/lkmain.c (afile),
8192         * as/hc08/lkmain.c (afile): allow linker script file to have an
8193         extension other than ".lnk"
8194         * link/z80/lklex.c (getfid),
8195         * link/z80/lkmain.c (parse),
8196         * as/mcs51/lklex.c (getfid),
8197         * as/mcs51/lkmain.c (parse),
8198         * as/hc08/lklex.c (getfid),
8199         * as/hc08/lkmain.c (parse): Support comments in the linker script
8200         file on lines by themselves and after filenames
8201
8202 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8203
8204         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
8205
8206 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8207
8208         * src/z80/peeph-z80.def: removed some peephole rules that don't
8209         work with multibyte arithmetic (fixed bug #937126)
8210         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
8211         to registers and not global variables
8212         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
8213         geniCodePreInc, geniCodePostDec, geniCodePreDec,
8214         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
8215         checking for assignments not internally generated (fixed bug #931895)
8216         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
8217         structure member (fixed bug #930072)
8218
8219 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8220
8221         * src/SDCCmain.c (linkEdit),
8222         * src/hc08/main.c (_hc08_parseOptions),
8223         * as/hc08/Makefile.in,
8224         * as/hc08/aslink.h,
8225         * as/hc08/asm.h,
8226         * as/hc08/m08pst.c,
8227         * as/hc08/lkrloc.c (relr, rele),
8228         * as/hc08/lkarea.c (lnkarea)
8229         * as/hc08/lkmain.c (afile, parse),
8230         * as/hc08/lkelf.c: support for ELF output
8231         * as/hc08/lks19.c (s19),
8232         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
8233
8234 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8235
8236         * as/mcs51/lkihx.c: Fixed bug #899105.
8237
8238 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8239
8240         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
8241         .dsp files from Unix to DOS.
8242
8243 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8244
8245         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
8246         function pointers; we have been compliant for several months now.
8247         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
8248         change that was accidently commented out
8249         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
8250         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
8251         bug #922319
8252
8253 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8254
8255         * src/hc08/gen.c: output of all of the internal debugging information
8256         is now controlled by the D() macro; it is disabled by default
8257
8258 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8259
8260         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
8261         harder to keep the same registers during a CAST iCode
8262         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
8263         long via int can be done in a single cast, if the signedness is
8264         correct.
8265         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
8266         putchar() in tinibios.c in ds390's library
8267
8268 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
8269
8270         * src/SDCCast.c (decorateType): fixed bug #898889,
8271         cast result of a literal complement too
8272         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
8273         fixed check for bitfields
8274
8275 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
8276
8277         * src/SDCCicode.c (geniCodeLogic): made it static,
8278         (geniCodeLogicAndOr): added in order to fix bug #905492,
8279         (ast2iCode): fixed bug #905492
8280         * support/regression/tests/bug-905492.c: added
8281         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
8282         (processParms): fixed bug #927659: don't copy parms, this will clear
8283         decorated flag
8284         * support/regression/tests/bug-927659.c: added
8285
8286 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
8287
8288         * src/SDCCast.c (addCast): don't cast float to char
8289         * device/lib/libsdcc.lib: added _memmove
8290
8291 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
8292
8293         * device/lib/large/Makefile: fixed parallel execution by
8294         replacing `make` by `$(MAKE)`
8295
8296 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8297
8298         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
8299         offsets (fixes bug #923936)
8300
8301 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
8302
8303         * device/lib/small/Makefile: fixed parallel execution by
8304         replacing `make` by `$(MAKE)`
8305
8306 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8307
8308         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
8309
8310 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
8311
8312         * src/pic/gen.c (genCpl): multi-byte complements were not working.
8313         * src/regression/Makefile: Regression test was not running.
8314
8315 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8316
8317         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
8318         complement if possible
8319         * src/SDCCval.c (valComplement),
8320         * src/SDCCicode.c (operandOperation): fixed complement of literal
8321         * support/regression/tests/onebyte.c (testComplement): added
8322
8323 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
8324
8325         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
8326         return an optimized tree; actually replace actParm with the new tree
8327         * src/SDCCast.h: added some parantheses to remove side effects
8328         * support/regression/tests/bug-920866.c
8329
8330 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
8331         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
8332         Bit operands were not being handled properly in the pic14 port.
8333         (now src/regression/add.c passes again).
8334
8335 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8336
8337         * src/SDCC.y (labeled_statement): case and default no longer require
8338         a following statement (RFE #893037)
8339
8340 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8341
8342         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
8343         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
8344         disabled (fixes bug #916294)
8345         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
8346         "mov a,acc"; patch provided by Lenny Story
8347         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
8348
8349 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8350
8351         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
8352         functions
8353         * src/ds390/gen.c (genFunction, genEndFunction),
8354         * src/ds390/ralloc.c (ds390_assignRegisters),
8355         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
8356         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
8357         pushed if there are parameters passed on the stack. Also, a cleaner
8358         way to decide if r0/r1 should be pushed/popped. (Together they fix
8359         bug #918693)
8360
8361 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8362
8363         * doc/sdccman.lyx,
8364         * device/lib/mcs51/crtpagesfr.asm,
8365         * device/lib/mcs51/crtxinit.asm,
8366         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
8367         to avoid confusion with Si Lab's SFRPAGE register.
8368
8369 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8370
8371         * src/SDCCglue.c (emitMaps): allow public sfr variables
8372         * src/SDCCglue.c (initialComments): include compiler build date
8373         with compiler version and put the timestamp of the generated
8374         assembly file on a serperate line to be less confusing.
8375         * src/port.h: added genInitStartup hook
8376         * src/avr/main.c,
8377         * src/ds390/main.c,
8378         * src/hc08/main.c,
8379         * src/pic/main.c,
8380         * src/pic16/main.c,
8381         * src/xa51/main.c,
8382         * src/z80/main.c: genInitStartup initialize as NULL (default to
8383         historical behaviour)
8384         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
8385         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
8386         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
8387         library instead of hard coding it into the compiler.
8388         * support/regression/ports/mcs51-stack-auto/spec.mk,
8389         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
8390         * device/lib/mcs51/Makefile,
8391         * device/lib/small/Makefile,
8392         * device/lib/large/Makefile,
8393         * device/lib/mcs51/crtpagesfr.asm,
8394         * device/lib/mcs51/crtstart.asm,
8395         * device/lib/mcs51/crtxclear.asm,
8396         * device/lib/mcs51/crtxinit.asm,
8397         * device/lib/mcs51/crtclear.asm,
8398         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
8399         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
8400         and into user configurable files.
8401         * device/lib/clean.mk: clean mcs51 directory too
8402         * support/regression/tests/longlit.c: added static to T1 declaration
8403         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
8404         accesses in the initialization code
8405
8406 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8407
8408         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
8409         OSCTRIMVAL as noted in bug #916008
8410
8411 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8412
8413         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
8414         in loops with multiple exits (reported as incorrect registers
8415         used by Martin Helmling in Sdcc-user list)
8416
8417 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8418
8419         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
8420         made ds390 register extensions look less like error messages
8421
8422 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8423
8424         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
8425         reported by Adam Wozniak in Sdcc-user list
8426
8427 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
8428
8429         * src/SDCCast.c (decorateType): fixed with bug and promotion in
8430         arithmetic optimizations, added debug output
8431
8432 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
8433
8434         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
8435         * sdcc.spec: updated and split sdcc into 3 rpms
8436         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
8437         needed for literals of LEFT_OP and '+'
8438         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
8439         introduced RESULT_TYPE_NOPROM
8440         (geniCodeMultiply): fixed logic for decision if mul is optimized to
8441         left shift
8442         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
8443         limited promotion to int only for '*'
8444         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
8445
8446 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
8447
8448         * src/pic16/gen.c (genSkip),
8449         (genc16bit2lit), (gencjneshort): commented out
8450         (is_LitOp): new helper function, checks operand type
8451         (genCmpEq): rewritten
8452
8453 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
8454
8455         * support/regression/tests/bug-908454.c: added
8456
8457 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
8458
8459         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
8460         * src/SDCCicode.c (usualBinaryConversions): op needs int type
8461         (geniCodeCast): cosmetic, don't preserve bit storage class
8462         (geniCodeLeftShift): added promotion
8463         (geniCodeLogic): fixed regression
8464         * src/SDCCsymt.c (computeTypeOr): accept bits too
8465         (compareType): 2nd part of fix for bug #908454, needed for bitfields
8466
8467 2004-03-07  Borut Razem <borut.razem AT siol.net>
8468
8469         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
8470
8471 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
8472
8473         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
8474         version of pic16_genPackRegisters which does not check if ic is a
8475         CAST operator,
8476         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
8477         function cause string1.c regression test fails
8478
8479 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
8480
8481         * sim/ucsim/configure.in,
8482         * sim/ucsim/configure,
8483         * sim/ucsim/doc/Makefile.in: use docdir
8484         * src/SDCC.y: fixed sbit atrributes
8485         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
8486         * src/SDCCast.c (decorateType): |^& need special promotion handling
8487         * src/SDCCast.h,
8488         * src/SDCCsymt.h: moved definition of RESULT_TYPE
8489         * src/SDCCsymt.h (computeType),
8490         * src/SDCCicode.c: computeType() needs op
8491         * src/SDCCsymt.c (checkTypeSanity),
8492         * doc/sddman.lyx: "plain" bitfields are unsigned
8493         * src/SDCCsymt.c (computeTypeOr): added
8494         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
8495         |^& ops
8496         * src/SDCCval.c (val*): computeType() needs op
8497         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
8498         * support/regression/tests/onebyte.c: added tests for |^&
8499
8500 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
8501
8502         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
8503         for writing icode into asm output.
8504
8505 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
8506
8507         * src/pic16/device.c: added some debug lines enabled
8508         with macro DEBUG_CHECK,
8509         * src/pic16/genarith.c: more debug in genPlus,
8510         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
8511         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
8512         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
8513         * (aopForSym): onStack symbols are re-placed in data memspace,
8514         and onStack flag is cleared,
8515         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
8516         copy temporary pcodeop,
8517         * (genPcall): added warning for not updating PCLATU,
8518         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
8519         always true for pic16 port,
8520         * (genMultOneWord): NEW, supports integer multiplication,
8521         * (genMult): modified to call genMultOneWord,
8522         * (ifxForOp): added warning when return NULL,
8523         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
8524         flag is set before call to operandFromSymbol for implicit
8525         added structures,
8526         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
8527         options.intlong_rent are set by default,
8528         * (_hasNativeMulFor): modified to allow port generation of integer
8529         multiplication,
8530         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
8531         set regtype to REG_SFR for all registers, restricting seting the
8532         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
8533
8534 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8535
8536         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
8537         more than 500 times in the regression tests
8538
8539 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8540
8541         * support/Util/SDCCerr.h,
8542         * support/Util/SDCCerr.c,
8543         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8544         enumerator_list),
8545         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
8546         for symbol conflicts.
8547         * support/valdiags/tests/enum.c,
8548         * support/valdiags/tests/tentdecl.c,
8549         * support/valdiags/tests/struct.c: expect possible error messages
8550         referring to original symbol definitions.
8551         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
8552         * src/SDCCsymt.h,
8553         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
8554
8555 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
8556
8557         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
8558
8559 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
8560
8561         * src/pic16/ralloc.c (newReg): fixed bug #908929
8562
8563 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8564
8565         * src/ds390/gen.c: added missing #include "main.h"
8566
8567 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
8568
8569         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
8570         checking if symbol is already in set,
8571         * src/pic16/device.h: prototype for checkAddSym,
8572         * src/pic16/gen.c: (_G): added entry interruptvector,
8573         * (assignResultValue): removed some commented out lines,
8574         * (genFunction): check for ISR via sym->type, absolute section for
8575         interrupt code is created via a new pBlock, the goto instruction is
8576         placed now correctly at the interrupt vector position, changed all
8577         references from ivec to _G.interruptvector,
8578         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
8579         is the interrupt is a high priority one, same for return from ISR,
8580         * src/pic16/glue.c: changed all calls of addSetHead for publics and
8581         externs to calls of checkAddSym,
8582         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
8583         pic16_pcode_verbose flag is set,
8584         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
8585         * src/pic16/pcoderegs.c: message about how many registers are saved
8586         will only be emitted if pic16_pcode_verbose flag is set,
8587
8588 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8589
8590         * src/ds390/ralloc.h,
8591         * src/ds390/ralloc.c (ds390_regWithIdx),
8592         * src/ds390/gen.c (emitcode),
8593         * src/ds390/main.h,
8594         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
8595         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8596         ds390operandCompare, getRegsRead, getRegsWritten,
8597         initializeAsmLineNode): customized instruction size calculation for
8598         ds390, started basis for some register optimizations
8599         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
8600         corresponding assembly output
8601         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
8602         missing push/pop of r0/r1. Optimized push/pops
8603
8604 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8605
8606         * src/mcs51/main.c (instructionSize): fixed ACALL size
8607         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
8608
8609 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
8610
8611         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
8612         the sorting of rlist with NULL elements
8613         * (print_idataType, print_idata): NEW to create idata sections
8614         * src/pic16/device.h: idataSymSet new variable
8615         * src/pic16/gen.c (genFunction): fixed some bugs in string
8616         comparing, improved the absolute section creation for ISRs,
8617         added FSR0L/FSR0H in registers that are saved in an ISR,
8618         * (genInline): fixed the processing of inline snippets,
8619         now they undergo no process by the peephole optimizer
8620         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
8621         are placed in idataSymSet,
8622         * (pic16emitStaticSeg): extern symbols are added in externs,
8623         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
8624         switching when aboslute variables are placed in access bank memory
8625         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
8626         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
8627         commented out with #if,
8628         * (pic16_packRegisters): reintroduce the check for CAST because some
8629         symbols are not correctly handled,
8630         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
8631         pCodeInstruction instead of pCode,
8632         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
8633         pCodeAsmDir definition,
8634         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
8635         directive, then the argument directive is emitted without the leading
8636         tab, hack for inline labels which must be in the first column,
8637         * (compareLabel,pic16_findNextInstruction),
8638         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
8639         * (insertBankSwitch): modified for the new pCodeAsmDir,
8640
8641 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8642         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
8643
8644         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
8645         instance,
8646         * (pushSide): commented out with #if,
8647         * (assignResultValue): fixed some typos in saving
8648         registers,
8649         * (genPcall): FIXED and sync'ed with genCall,
8650         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
8651         * (genNearPointerGet): fixed to handle some more cases,
8652         implementation scheme via table reads,
8653         * (genConstPointerGet): modified to access code memory correct,
8654         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
8655         and improved to handle some cases
8656         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
8657         instead of "RETLW" for init data
8658         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
8659         not IN_DIRSPACE, work around to reduce bank switching when aboslute
8660         variables are placed in access bank memory (<0x80 and >=0xf80),
8661         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
8662         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
8663         TBLWT_POSTDEC,TBLWT_PREINC
8664         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
8665         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
8666         directives
8667         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
8668         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
8669         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
8670         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
8671
8672 2004-02-29  Borut Razem <borut.razem AT siol.net>
8673
8674         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
8675         support/Util/findme.h, support/Util/system.h: enhance binary relative
8676         search for lib and include by using findProgramPath()
8677
8678 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8679
8680         * src/SDCCpeeph.h,
8681         * src/SDCCpeeph.c (pcDistance),
8682         * src/port.h,
8683         * src/mcs51/ralloc.h,
8684         * src/mcs51/ralloc.c (mcs51_regWithIdx),
8685         * src/mcs51/main.h,
8686         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
8687         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8688         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
8689         size calculation port specific, started basis for some register
8690         optimizations
8691         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
8692         missing push/pop of r0/r1. Optimized push/pops
8693         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
8694         * device/lib/_modsint.c (_modsint),
8695         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
8696         and stack version so regression tests pass
8697
8698 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
8699
8700         * src/Makefile.in (dep): include SLIBOBJS in dependency check
8701         * src/SDCCast.c (decorateType): catch another small optimization
8702         with '?' operator
8703         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
8704         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
8705         modified to finally use computeType() all over SDCC,
8706         see Feature Request #877103
8707         * src/SDCCval.h: cosmetic
8708         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
8709         valCompare(); regression tested in muldiv.c
8710         * support/regression/tests/muldiv.c (testMod): mod sign follows
8711         dividend only
8712
8713 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
8714
8715         * src/SDCCast.c (decorateType): fixed bug #902362
8716         * doc/INSTALL.txt: fixed install instructions for win32
8717
8718 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
8719
8720         * device/include/Makefile.in (install): fixed by replacing spaces
8721         by tabs
8722         * doc/README.txt,
8723         * doc/INSTALL.txt: updated for release
8724         * doc/sdccman.lyx: added warning for --xstack being buggy
8725
8726 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
8727
8728         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
8729         to eliminate build warnings.
8730         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
8731
8732 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
8733            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8734
8735         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
8736         removed -penable-stack, added comment for stack pragma, added
8737         warning for not initializing the stack/frame registers, removed
8738         comment at interrupts section
8739
8740         Stack is made permanent, there is no ability to disable stack usage.
8741         * src/pic16/device.h,
8742         * src/pic16/device.c: removed all references to USE_STACK macro,
8743         * src/pic16/device.c (pic16_dump_section): when no elements in
8744         rlist, free rlist before return,
8745         * (pic16_dump_int_registers): NEW, internal registers are a new set
8746         of general purpose registers reused by each function,
8747         * (checkAddReg): returns 1 if registers is added to set,
8748         * (pic16_groupRegistersInSection): when a registers is of type
8749         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
8750         * src/pic16/device.h: memRange and Assigned Memory are deleted,
8751         SRCASECMP macro is moved here from device.c
8752         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
8753         PO_PCLATU, PO_PRODL, PO_PRODH,
8754         * (pic16_pCodeOpType, genMinus,
8755         changed compares to "a" register, with AOP_ACC,
8756         * (pic16_genPlus): fixed some bugs and indented properly,
8757         * (pic16_addSign): changed size to size+offset in the MOVWF
8758         instruction,
8759         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
8760         multiply 8-bit operand by literal, result is 8-bit,
8761         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
8762         multiply 2 8-bit operand, result is 8-bit,
8763         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
8764         genUMult8X*_16,
8765         * src/pic16/gen.c: changed accUse to contain WREG only,
8766         * (pic16_emitcomment): renamed to pic16_emitpcomment,
8767         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
8768         true, do not use immediate addressing any more unless sym is a
8769         pointer in codespace,
8770         * (aopForRemat): do not use immediate addressing when symbol not in
8771         codespace and when symbol's address is requested,
8772         * (aopOp): for-loop in if(sym->accUse) is modified for the new
8773         accUse size (= 1),
8774         * (aopGet): added case for AOP_ACC and don't return "accumulator
8775         bug" but WREG instead,
8776         * (popGetTempReg): pushes contents of temporary register in stack,
8777         * (popReleaseTempReg): pops contents of temporary register from
8778         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
8779         * (pic16_popGet): separated case AOP_ACC to return register WREG
8780         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
8781         or PO_IMMEDIATE and initializes their instance/offset appropriately,
8782         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
8783         the use of immediate pointers to certain cases only.
8784
8785         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
8786         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
8787         * (assignResultValue, genCall, genRet): modified to use the new
8788         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
8789         genPcall is still broken,
8790         * (genFunction): added code to create 'A' type pBlocks when
8791         interrupt functions are generated, code not extensively tested yet,
8792         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
8793         * (genEndFunction): modified so ISRs pop stored registers from stack,
8794         * (genMultOneByte): cleanup,
8795         * (AccRsh): added flag andmask, to and result with appropriate mask,
8796         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
8797         * (genDataPointerGet): fixed and reenabled its use,
8798         * (genNearDataPointerGet): bugs fixed,
8799         * (genDataPointerSet): bugs fixed,
8800         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
8801         pic16_DumpSymbol, pic16_DumpOp,
8802         * src/pic16/genutils.h: function prototypes for the above functions,
8803         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
8804         pointers,
8805         * (pic16emitRegularMap): many many many improvements, but needs a
8806         major cleanup,
8807         * src/pic16/main.c: enable_stack in pic16_options is removed,
8808         * (_pic16_parseOptions): removed command line options -penable-stack,
8809         * (_process_pragma): emit stack symbol only when stack pragma is
8810         processed,
8811         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
8812         redirected to FSR0L/FSR0H pair,
8813         * (pic16_get_op, pic16_get_op2): modifications and improvements,
8814         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8815         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
8816         for immediates,
8817         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
8818         * (dumpPicOptype): NEW,
8819         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
8820         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
8821         with movff instruction,
8822         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
8823         added pic16_int_regs, some packRegsFor* functions are commented out,
8824         because produce errors,
8825         * src/pic16/NOTES: minor modifications
8826
8827 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8828
8829         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
8830         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
8831         --pack-iram.
8832         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
8833         * as/mcs51/lkaomf51.c: fixed bug #895763
8834
8835 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
8836
8837         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
8838
8839 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8840
8841         * doc/sdccman.lyx: added details about the HC08 storage classes and
8842         interrupts, fixed the register usage info for z80 & gbz80
8843
8844 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
8845
8846         * doc/sdccman.lyx: added more pic16 port documentation
8847         * device/include/pic16/: added header pic18fregs.h
8848
8849 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
8850
8851         * doc/sdccman.lyx: added Vangelis' contribution
8852
8853 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8854
8855         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
8856         extend to the next CALL or PCALL, not just to the next CALL.
8857
8858 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
8859
8860         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
8861
8862 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8863
8864         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
8865         bug #895752 and a better fix for bug #716790
8866
8867 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8868
8869         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
8870
8871 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8872
8873         * doc/sdccman.lyx: minor changes, minor changed
8874
8875 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
8876
8877         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
8878         which can't handle SDCC_NEWONEBYTEOPS,
8879         (geniCodeMultiply): removed conversion from mult to shift for pic14
8880         and pic16
8881
8882 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8883
8884         * src/hc08/gen.h,
8885         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
8886         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
8887         thus fixing bug #895406
8888
8889 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
8890
8891         * device/lib/_modsint.c,
8892         * device/lib/_modslong.c: sign follows divisor only
8893         * src/hc08/gen.c (genMultOneByte): if result size is 1,
8894         signs or signedness can be ignored
8895         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
8896         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
8897         added optimization for IFX,
8898         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
8899         arguments;
8900         reenabled optimization for IFX, which was removed on 2004-01-11
8901         * src/SDCCast.h: added return type IFX
8902         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
8903         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
8904         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
8905         SDCC_OLDONEBYTEOPS selects the old behaviour
8906         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
8907         changed again and commented promotion rule
8908         * src/SDCCval.c (valDiv): promotion no longer necessary
8909         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
8910         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
8911         rewritten
8912         * support/regression/tests/onebyte.c: added
8913
8914 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
8915
8916         * gen.c (genInline): reverted to old code for assemnling inline
8917         code because of bug reported James Chadd
8918
8919 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
8920
8921         * ralloc.h: missing declarations from previous patch,
8922         seems that patch for ralloc.h was never applied, fixed
8923
8924 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8925            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8926
8927         * pcode.c,
8928         * pcode.h,
8929         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
8930         indirect addressing. Marked FSR0 as deprecated
8931         * gen.c (pointerCode): commented out, not needed now
8932         (pic16_popGet2p): new MOVFF helper function
8933         (genGenPointerGet),
8934         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
8935         (shiftRLong): removed duplicate debugging info
8936
8937 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8938
8939         * src/ds390/gen.c (genNearPointerGet),
8940         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
8941         optimization with bits, but not bitfields.
8942         * src/ds390/ralloc.c (packRegisters),
8943         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
8944
8945 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
8946
8947         * src/SDCCcse.c (algebraicOpts): copy operands before modification
8948
8949 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8950
8951         * src/SDCCsymt.h,
8952         * src/SDCCicode.c (operandFromSymbol),
8953         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
8954         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
8955         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
8956         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
8957         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
8958         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
8959         bug #892038
8960         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
8961         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
8962         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
8963         * src/SDCCsymt.c (newSymbol),
8964         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8965         enumerator_list),
8966         * src/SDCCval.h,
8967         * src/SDCCval.c (newiList): fixed bug #885705
8968
8969 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8970
8971         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
8972         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
8973
8974 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8975
8976         * device/include/c8051f120.h,
8977         * device/include/c8051f300.h,
8978         * device/include/c8051f310.h: added/updated header files for Silicon
8979         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8980         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
8981         in new section Submitting patches
8982
8983 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8984
8985         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
8986         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8987         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8988         genGenPointerSet),
8989         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
8990         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8991         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8992         genGenPointerSet),
8993         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
8994         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8995         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8996         genGenPointerSet),
8997         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
8998         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8999         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9000         genGenPointerSet): fixed bug #892400
9001         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
9002         to eliminate build warnings.
9003         * src/SDCCast.c (processParms),
9004         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
9005         fixed bug 751859
9006         * support/valdiag/valdiag.py: added GCC to the list of defines active
9007         when compiling with gcc
9008
9009 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9010
9011         * support/Util/SDCCerr.h,
9012         * support/Util/SDCCerr.c,
9013         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
9014         with an incomplete type (fixed bug #883734)
9015         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
9016
9017 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9018
9019         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
9020
9021 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9022
9023         * src/SDCCast.c (decorateType),
9024         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
9025         function pointer implementation
9026         * support/regression/tests/funptrs.c: added tests to verify both forms
9027         of function pointers work correctly. Added tests to verify parameters
9028         are passed in the correct order.
9029
9030 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
9031
9032         * device.c (regCompare): registers are sorted by ascending
9033         address and increasing size,
9034         * main.c (_pic16_finaliseOptions): removed the declaration
9035         of compiler macro MCU. Now a macro of the format pic18fxxxx
9036         will be defined from the command line
9037
9038 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9039             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9040
9041         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
9042         PCOP_RLCF was overwritten!
9043         * gen.c (genSkip): commented out calls to pic16_emitcode,
9044         * (genCmpEQ): fixed "long" compares, only high word did get compared,
9045         * (genlshTwo),
9046         * (genRRC): added debugging info,
9047         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
9048         overwritten while shifting,
9049         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
9050         overwritten while shifting,
9051         * (AccLsh),
9052         * (AccRsh),
9053         * (shiftLLeftOrResult),
9054         * (shiftRLeftOrResult),
9055         * (shiftRLong),
9056         * (shiftLLong): Implemented with pic16_emitpcode
9057         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
9058         * (genLeftShift): Fixed bug, operand for shift by variable always
9059         was "and"ed with 0x0f,
9060         * (genLeftShiftLiteral),
9061         * (genrshTwo),
9062         * (genRightShiftLiteral): added debugging info,
9063         * (genrshFour): added comment,
9064         * (genRightShift): determined signedness from operand "left"
9065         instead of "result"
9066
9067 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9068
9069         * src/SDCCicode.c (geniCodeParms),
9070         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
9071         function pointers, fixed function pointer bugs #861242 and #861896
9072
9073 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9074
9075         * device/include/c8051f000.h,
9076         * device/include/c8051f120.h,
9077         * device/include/c8051f300.h: added header files for Silicon
9078         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9079
9080 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
9081
9082         * src/SDCCast.c (processParams): added new type flow and restructured
9083         (gatherAutoInit): added new type flow
9084         (addCast): cosmetic changes
9085         (getLeftResultType): added new type flow for array indices, patch
9086         provided by Stas, see FR #877103
9087         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
9088         array index patch by Stas
9089         * src/SDCCast.h: added prototype getResultTypeFromType()
9090         * src/SDCCval.h,
9091         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
9092         * src/pic/glue.c (pic14emitStaticSeg),
9093         * src/pic16/glue.c (pic16emitStaticSeg),
9094         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
9095         for initialization of symbols
9096         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
9097         * support/Util/SDCCerr.h:
9098         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
9099         * .version: bumped version number to 2.3.8
9100         * device/include/Makefile.in (install),
9101         * doc/Makefile (install): changed to 'rm `find ...`' construct to
9102         avoid warnings
9103
9104 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
9105
9106         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
9107         Slade Rich fixed an optimization bug
9108         * src/pic/pcodepeep.c,
9109         * src/pic/pcoderegs.c
9110         * doc/Makefile (install): added test for directory
9111
9112 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9113
9114         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
9115         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
9116         * src/pic/ralloc.c (getRegPtr, getRegGpr),
9117         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
9118         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
9119         * as/mcs51/asexpr.c (term),
9120         * as/hc08/asexpr.c (term): fixed bug #887146
9121
9122 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9123
9124         * src/z80/gen.c (genMult): handle single byte result product
9125         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
9126         DUMMY_READ_VOLATILE (fixed bug #886367)
9127
9128 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9129
9130         * support/regression/tests/libmullong.c: fixed logic, on little endian
9131         hosts we ended without a mullong_wrapper()
9132
9133 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9134
9135         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
9136         virus/worm forged address usage.
9137
9138 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9139
9140         Fixed promotion, it should be done on AST level:
9141         * src/SDCCast.c (addCast): added promotion to int
9142         (decorateType): updated call to upCast()
9143         * src/SDCCicode.c (geniCodeLeftShift): removed call to
9144         usualUnaryConversions()
9145
9146 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
9147
9148         * support/regression/tests/literalop.c (mulWrapper): Added a
9149         wrapper to remove integer overflow warnings.
9150
9151         * support/regression/tests/float_trans.c: Made work on host.
9152
9153         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
9154         location of sz80.
9155
9156         * support/regression/generate-cases.py (main): Changed from inline
9157         to a main method.
9158
9159         * doc/Makefile (install): Changed to depth first to get rid of
9160         missing directory install warning.
9161
9162         * as/Makefile (install-doc): Made work on Mac.
9163
9164 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
9165
9166         * src/SDCCast.c: added an additional type flow in decorateType() of
9167         opposite direction, see feature request #860006; it's enabled at runtime
9168         by setting the environment variable SDCC_NEWTYPEFLOW
9169         * src/SDCCast.h: changed prototype of decorateType()
9170         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
9171         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
9172         'char' to 'int' can be omitted, if both operands are 'unsigned char';
9173         see feature request #877103
9174         * src/SDCCval.c: updated call of decorateType()
9175         (valBitwise): fixed bug #882876
9176         (valMinus): added promotion
9177         (valLogicAndOr): result is unsigned
9178         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
9179         * src/SDCCsymt.c (computeType),
9180         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
9181         must not cause an unsigned operation
9182         * src/pic/glue (pic14emitRegularMap),
9183         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
9184
9185 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
9186
9187         * src/pic/pcode.c (PCodeID): commented out left over debug code
9188
9189 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
9190
9191         * support/valdiag/tests/overflow.c: added shift tests
9192         * src/pic/device.c,
9193         * src/pic/gen.c,
9194         * src/pic/gen.h,
9195         * src/pic/glue.c,
9196         * src/pic/main.c,
9197         * src/pic/pcode.c,
9198         * src/pic/pcode.h,
9199         * src/pic/pcodepeep.c,
9200         * src/pic/pcoderegs.c,
9201         * src/pic/ralloc.c,
9202         * src/pic/ralloc.h: applied patch from Slade Rich;
9203         added support for multiple code pages and multiple RAM banks on the
9204         PIC 14 port. The ASM files now no longer simply assume all the
9205         code / RAM are in the same page / bank. This means the linker can
9206         safely allocate code/RAM of separate ASM files to different pages/banks.
9207         * doc/sdccman.lyx: added Slade's tips
9208         * src/mcs51/peeph.def: fixed bug #880768
9209
9210 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9211
9212         * src/hc08/ralloc.c (rematStr): fixed bug #879282
9213         * src/SDCCast.c (decorateType): fixed bug #880197
9214
9215 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
9216
9217         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
9218         getopt.h.
9219
9220         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
9221         strtof is not part of C89 and isn't included with Mac OS X.
9222
9223 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9224
9225         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
9226         shiftL2Left2Result): fixed bug #879326
9227         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
9228         (genMultOneByte): fixed bug in signed vs unsigned multiplication
9229         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
9230         address fetch for clr instruction
9231         * device/lib/hc08/_mulint.c: created optimized assembly version
9232         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
9233
9234 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
9235
9236         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
9237         proposed in FR #877103
9238
9239 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
9240
9241         * src/SDCCval.c (cheapestVal): added missing checks
9242         * src/SDCCicode.c (usualBinaryConversions): fixed condition
9243         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
9244
9245 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
9246
9247         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
9248         equal operands
9249
9250 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
9251
9252         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
9253         loaded with the linker search paths (-L arguments) and the libraries
9254         to be linked with the current source (-l arguments). Changes
9255         currently will affect only the pic16 port.
9256         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
9257         include path the port specific paths and port specific libraries,
9258         * gplink command now contains the $3 argument,
9259         * src/pic16/device.h,
9260         * src/pic16/device.c,: structure PIC_device is made public and
9261         renamed to PIC16_device, the same for variable Pics which is renamed
9262         to Pics16. Updated all references to them.
9263         * src/pic16/glue.c (pic16glue): corrected bug with code
9264         initialization which bypassed the variable initializations block.
9265
9266         * device/lib/pic16/Makefile.rules: removed --penable-stack from
9267         COMPILE_FLAGS and added the --nostdinc option
9268
9269 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9270
9271         * device/include/mc68hc908jb8.h: Register defs for another member
9272         of the hc08 family. Contributed by Bjorn Bringert - thanks!
9273
9274 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
9275
9276         Documenting changes from previous commits.
9277         * configure.in (version 1.56),
9278         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
9279         when generating output files to configure the pic16 library,
9280         but now I've commented it out, since gputils aren't installed in the
9281         SF compile farm, so library won't compile
9282
9283         * device/lib/Makefile.in (version 1.56): initially I've added in
9284         target 'all' the prerequestive 'model-pic16' so it compiled the
9285         pic16 library, but now I've commented it out for the same reasons
9286         above,
9287         * added targets 'model-pic16' and 'objects-pic16' to compile the
9288         library
9289         * added target 'port-specific-objects-pic16' to handle the
9290         generated libraries and copy them into the build/ directory
9291         * added target 'clean-intermediate-pic16' to clean intermediate
9292         files into pic16 directory
9293         * in target 'installdirs' added line to create directory pic16 in
9294         the installation path
9295
9296         * device/include/Makefile.in (version 1.11): in target 'install'
9297         added lines to copy all header files to installation path,
9298         * in target 'installdirs' added line create directory for pic16
9299         headers in the installation path
9300
9301 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
9302
9303         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
9304          a function call
9305
9306 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
9307
9308         * configure,
9309         * device/lib/configure.in,
9310         * device/lib/configure: fixed for autoconf 2.57
9311
9312 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9313
9314         * src/z80/main.c (_parseOptions): fixed the portmode= command line
9315         option so that it actually works. Made it specific to the z80, since
9316         the gbz80 doesn't have these kinds of I/O ports.
9317
9318 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9319
9320         * device/include/z180.h,
9321         * device/lib/_memcpy.c,
9322         * device/lib/_memmove.c,
9323         * device/lib/_mulint.c,
9324         * device/lib/ser_ir.c,
9325         * device/lib/ser_ir_cts_rts.c,
9326         * device/lib/_strcmp.c,
9327         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
9328         * src/z80/main.c (_process_pragma): add support for pragmas bank and
9329         portmode; added deprecation warning for bank= and protmode= forms.
9330         Also, guard against buffer overflow.
9331         * src/z80/gen.c (aopGet): generate better code for sfr banked read
9332
9333 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9334
9335         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
9336         changed interrupt vector table generation to only emit declared vectors.
9337         * device/include/Makefile.in: added missing backslash
9338         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
9339
9340 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9341
9342         Mainly changes to support compilation of the device libraries
9343         * src/pic16/device.c: stack is allocated via symbol and not
9344         via literal number. The symbol is placed in the corresponding
9345         position of the data ram
9346         * (pic16_dump_section): relocatable and absolute uninitialized
9347         data are now emitted in sorted order to reduce section naming,
9348         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
9349         weren't marked as being in the access bank,
9350
9351 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9352
9353         Added portion of GNU PIC Library under the directory
9354         device/include/pic16 and device/lib/pic16. These files
9355         contain the declarations of SFRs for the PIC18Fxx2 devices.
9356         The directory is initialized via configure from toplevel.
9357
9358 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
9359
9360         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
9361         the spilllocations to be compared correctly
9362
9363 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9364
9365         * src/SDCCast.c (decorateType): fixed bug introduced today
9366
9367 2004-01-12  Borut Razem <borut.razem AT siol.net>
9368
9369         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
9370         doc/sdccman.lyx: upper case pragmas are deprecated
9371
9372 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9373
9374         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
9375         in simpler and even better code
9376
9377 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
9378
9379         * src/SDCCicode.c (operandOperation): fixed bug #874819
9380         * src/SDCCast.c (decorateType): fixed
9381         char foo (unsigned long ul) { return ul > 0; }
9382
9383 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9384
9385         * doc/sdccman.lyx: Moved and added some sections, small changes
9386         all over. Telling LaTeX to be less strict with word spacing
9387         to better keep the right margin. Changed some notes about
9388         maintainance of the ports in section 3.2.1 - is it OK like this?
9389
9390 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
9391
9392         SDCC source changes:
9393         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
9394         convilong): modified to inform the pic16 port that builtin functions
9395         are external
9396
9397         PIC16 PORT specific changes:
9398         * src/pic16/device.c pic16_dump_equates() added,
9399         processor registers declared internally by the port are emitted in
9400         the translation as equates,
9401         * src/pic16/gen.c: inline code is passed unprocessed to the
9402         translation,
9403         * (pic16_popGetLit2): fnuction modified to take second operand as
9404         pCodeOp pointer and not as literal,
9405         * (popRegFromIdx): prefixed with pic16_,
9406         * (pic16_popCombine2): modified to receive already allocated pCode
9407         operands,
9408         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
9409         * (genFunction): initializes local stack frame and pushes on stack
9410         all the registers used by this function,
9411         * (genEndFunction): restores all registers from stack and restores
9412         stack frame,
9413         * src/pic16/glue.c (pic16emitRegularMap): various changes and
9414         improvements,
9415         * (pic16glue): changed the program startup sequence,
9416         * added new dbName code 'A' for functions placed in absolute section
9417         * src/pic16/main.c: added function attribute _naked,
9418         * added pragma 'code' to place a fnuction at an absolute address,
9419         * added command line arguments --debug-ralloc and --pcode-verbose,
9420         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
9421         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
9422         * (pic16_newpCodeOpLit2): modified to take the second operand as
9423         pCodeOp pointer,
9424         * (pic16_printpBlock): modified to emit each function in a separate
9425         section,
9426         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
9427         UPPER for immediate operands,
9428         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
9429         instruction,
9430         * src/pic16/peeph.def: all peepholes with movff are commented out,
9431         because there is a problem in the pcode peep optimizer,
9432         * src/pic16/ralloc.c: the register allocator can now reuse local
9433         function symbols for another function. This saves register usage.
9434         * src/pic16/ralloc.h: added flag isLocal in structure regs,
9435
9436         Added file src/pic16/NOTES with information about program writing on
9437         the current port version.
9438
9439 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9440
9441         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
9442         and peephole 252 (array access)
9443
9444 2004-01-09  Borut Razem <borut.razem AT siol.net>
9445
9446         * src/SDCCmain.c : fixed #872250: -l command line defined library
9447           files are scanned before standard library files
9448
9449 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9450
9451         * src/SDCCast.c (decorateType): fixed bug #874046
9452
9453 2004-01-09  Borut Razem <borut.razem AT siol.net>
9454
9455         * support/scripts/sdcc.nsi: remove previous installation
9456
9457 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9458
9459         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
9460         bytes for last interrupt vector (mcs51)
9461         * sdcc.spec: fixed typo
9462
9463 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9464
9465         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
9466         gen51Code): more efficient parameter receive for --model-large
9467         ("bug" #845294)
9468
9469 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9470
9471         * src/ds390/main.c,
9472         * src/z80/main.c: added missed needLinkerScript flags (more than
9473         one port structure defined in these file)
9474         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
9475         bug #795325
9476
9477 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
9478
9479         * src/SDCCmain.c: removed various references to DEFAULT_PORT
9480         * src/port.h: added flag needLinkerScript in port->linker
9481         structure to inform whether to create a .lnk file or not,
9482         * src/avr/main.c,
9483         * src/ds390/main.c,
9484         * src/hc08/main.c,
9485         * src/mcs51/main.c,
9486         * src/pic/main.c,
9487         * src/pic16/main.c,
9488         * src/xa51/main.c,
9489         * src/z80/main.c: changed appropriately to configure
9490         needLinkerScript flag
9491         * src/pic/gen.c,
9492         * src/pic16/gen.c (genAddrOf): fixed bug #863624
9493         * src/pic/glue.c: added variable udata_section_name to
9494         override default uninitialized data segment definition for
9495         devices only with SHAREBANK memory (reported from Erik Epetrich)
9496         * (pic14emitOverlay): modified to emit a commented overlay segment
9497         directive when no overlay data exist
9498         * (picglue): modified to emit uninitialized data segment
9499         according to udata_section_name
9500         * src/pic/main.c (_pic14_parseOptions): added command line
9501         options --udata-section-name=[name] to override default
9502         udata definition name
9503         * modified _linkCmd and _asmCmd to include compiler passed
9504         arguments via -W option
9505         * src/pic16/main.c: added $l in _asmCmd, changed extension for
9506         object file from '.rel' to '.o' in port->linker structure,
9507         changed size of fptr from 2 to 3 in port structure
9508
9509 2004-01-07  Borut Razem <borut.razem AT siol.net>
9510
9511         * support/scripts/sdcc.nsi: update PATH
9512         * support/scripts/sdcc.ico: craeted
9513
9514 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
9515
9516         * device/include/Makefile.in: fix install
9517         * doc/Makefile: fix install
9518
9519 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9520
9521         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
9522         in bug #860505
9523         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
9524         how the function variable allocation summary is displayed; also
9525         include information about variables allocated to the overlay
9526         segment
9527
9528 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9529
9530         * as/mcs51/lkmain.c: Help about -Y option
9531         * as/mcs51/lkarea.c: Fixed gcc warnings
9532
9533 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
9534
9535         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
9536         fixed warning
9537         * support/valdiag/tests/overflow.c: added
9538         * src/SDCCast.c (decorateType),
9539         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
9540         LEFT_OP (left shift)
9541
9542 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9543
9544         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
9545         (default behaviour).
9546
9547 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9548
9549         A python script to validate compiler diagnostic messages. It can be
9550         used to verify that sdcc complains about bad c source code and
9551         gives a good location of the error.
9552         * support/valdiag/Makefile,
9553         * support/valdiag/valdiag.py,
9554         * support/valdiag/tests/*
9555
9556 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9557
9558         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
9559         * src/SDCCsymt.c (newEnumType),
9560         * src/SDCCsymt.h
9561         * support/Util/SDCCerr.c,
9562         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
9563         enum related bugs.
9564         * support/regression/tests/enum.c: added test for enum values that
9565         require at least 2 bytes of storage.
9566
9567 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
9568
9569         * src/common.h: added ifndef/define/endif macros
9570         around the header file.
9571         Bug reported from Jesus Calvino-Fraga
9572
9573 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
9574
9575         * sdcc.spec: updated
9576         * device/include/Makefile.in: don't install CVS directories
9577         * device/lib/Makefile.in: added removal of CVS directories after install
9578         * doc/Makefile: fixed install, added local_icons
9579         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
9580         * src/mcs51/gen.c (genRightShift): fixed bug #870788
9581         * src/ds390/gen.c (genRightShift): fixed bug #870788
9582         * src/SDCCast.c (decorateType): fixed bug #870781
9583
9584 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
9585
9586         PIC16 port related changes:
9587         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
9588         added variable stackPos,
9589
9590         * gen.c: genCall, assignResultValue: added support for
9591         pushing/retrieving function parameters to/from stack,
9592         genFunction,genEndFunction: setup stack frame for the
9593         generated function,
9594         genAddrOf: will be changed according to bug 863624
9595
9596         * added files genutils.c and genutils.h which contain gen*
9597         debugged and optimised functions extracted from gen.c
9598
9599         * glue.c: added variable 'externs' which holds extern symbols,
9600         pic16emitRegularMap: is modified to properly handle relocatable
9601          symbols under the new scheme,
9602         pic16createInterruptVect: is modified
9603         pic16printPublics: is modified to emit 'global' assembler directives,
9604         added pic16_printExterns to print extern symbols,
9605         pic16glue: initializes stack/frame pointer in the beginning of
9606         the assembly output. Temporary hack, will be corrected later,
9607         because gplink yet does not support stack and SDCC does not
9608         yet support a type of crt0.o object to create the final binary.
9609
9610         * Removed many lines that contain 8051 legacy code.
9611         * The code is finally placed under a 'code' directive.
9612         * Added port specific options.
9613
9614         * _process_pragma: simplified since now we do not need *special*
9615         include file to define SFR registers. But a separate header
9616         will be needed. This will be developed later.
9617         * _pic16_parseOptions: added, parses port specific options:
9618         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
9619         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
9620         --preplace-udata-with=
9621
9622         * _pic16_setDefaultOptions: modified to initialize section names,
9623         but hack is temporarly out of order since it needs improvement.
9624         * _pic16_genAssemblerPreamble: configuration words are emitted by
9625         their address instead of their name. This part is incomplete and
9626         supports only the 18Fxx2 devices. Other devices will emit an error
9627         during assembly since they do not contain the same set of config
9628         registers
9629         * _pic16_genIVT: is modified,
9630
9631         * pcode.c: added definitions for some hardware registers that are needed
9632         for stack support
9633         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
9634         All PCI entries are updated. Now LFSR is supported.
9635         * Removed pic16_pciTRIS is mentioned by mdubuc in source
9636         * added pic16_newpCodeOpLit2 to support instructions with
9637         two literal arguments
9638         * pic16_pCode2str: corrected code that emits assembler instructions
9639         with two literal operands and those that have an access bit modifier
9640         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
9641         this fixes a bug which caused some labels to be lost, when an
9642         assembler directive was added, i.e. banksel,
9643         * pic16_FixRegisterBanking: improved logic that causes the insertion
9644         of bank switching,
9645         * InlineFunction: functions that are called once, are not any more
9646         inlined. This can be a port option in the future,
9647
9648         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
9649
9650         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
9651         hold the corresponding uninitialized symbols,
9652         * pic16_allocProcessorRegister: registers have explicit marked the
9653         accessBank field,
9654         * pic16_allocInternalRegister: registers are explicit marked as
9655         not used,
9656         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
9657         processing list, so bit registers were lost,
9658         *
9659
9660         * ralloc.h: added field 'accessBank' and original symbol operand
9661         in register definition,
9662         * removed the field isMapped from register definition,
9663
9664         ** Several functions have been removed from various sources:
9665         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
9666         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
9667         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
9668         pic16_assignRelocatableRegisters
9669
9670         ** others have been introduced:
9671         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
9672         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
9673
9674 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
9675
9676         * support/scripts/inc2h.pl: changed definition of BIT_AT
9677         to emit 'sbit at' instead of 'bit at'. This was a request.
9678
9679         PIC16 port related preliminary changes:
9680         * gen.c: prefixed function popRegFromString with
9681         pic16_ and all references to it corrected
9682         * pcode.c: all pic16_pc_* hardware registers prefixed
9683         with underscore (_),
9684         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
9685         * ralloc.c: newReg(): when register is REG_SFR then
9686         set address to rIdx,
9687         pic16_allocProcessorRegister(): marks register wasUsed=0
9688         pic16_writeUsedRegs(): added a call to assign processor
9689         registers via pic16_assignFixedRegisters
9690
9691 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9692
9693         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
9694         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
9695         variables in unused register banks.  Also the SSEG is placed
9696         wherever there is enough space for it, and IDATA can be anywhere
9697         in internal RAM.  For now compile using -Wl-Y[stack_size].
9698         The mem file is different for this option as well, since it
9699         makes no sense of talking about DSEG lenght.
9700
9701 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
9702
9703         * src/SDCClrange.c: fixed bug 869095 that caused segfault
9704         in certain cases, e.g. when ROM assignment, patch provided
9705         from Albert den Haan.
9706
9707 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
9708
9709         Many signedness and type propagation fixes:
9710         * src/SDCCicode.c: made geniCodeCast() static
9711         replaced SPEC_ by IS_ (cosmetic)
9712         (operandOperation): fixed div and mod operation
9713         (usualBinaryConversions): added support for promotion of char
9714         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
9715         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
9716         (geniCodeAdd): an array index will stay unsigned, even if promoted
9717         from char to int
9718         (geniCodeArray): ditto
9719         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
9720         * src/SDCCsymt.c (computeType): added more support for char;
9721         promotion of char is selectable by promoteCharToInt, fixed signedness
9722         for all cases
9723         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9724         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9725         * src/SDCCval (val*): replaced signedness calculation by
9726         computeType()
9727         rearranged if-branches (cosmetic)
9728         (valShift): added warning W_SHIFT_CHANGED
9729         (valCompare): fixed problem with different types
9730         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
9731         * support/regression/tests/literalop.c: added many cases
9732         * support/regression/tests/ast_constant_folding.c: changed finally to
9733         'unsigned int'
9734         * .version: new year, new version: 2.3.7
9735         * src/SDCCmain.c (main): applied patch #866468
9736         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
9737         provided by Scott Bronson
9738         * doc/sdccman.lyx: updated documentation for sdcdb
9739         updated and added chapter tips
9740
9741 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9742
9743         * src/SDCCsymt.h: missing from yesterday's commits
9744
9745 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9746
9747         * src/SDCC.y (struct_or_union_specifier),
9748         * support/Util/SDCCerr.c,
9749         * support/Util/SDCCerr.h: verify that struct & union tags are used
9750         as declared.
9751
9752 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9753
9754         * src/SDCCglobl.h: missing from yesterday's commits
9755
9756 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9757
9758         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
9759         sft_attributes, struct_declaration, parameter_declaration,
9760         type_name, start_block, declaration_list),
9761         * src/SDCC.lex (check_type): support redefinition of typedef names
9762
9763 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9764
9765         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
9766         aligned xdata arrays. Erik helped me with the if clause.
9767
9768 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9769
9770         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
9771         warning
9772
9773 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9774
9775         * src/SDCCast.h,
9776         * src/SDCCast.c (newAst_),
9777         * src/SDCCicode.h,
9778         * src/SDCCicode.c (ast2iCode, newiCode),
9779         * src/SDCCglobl.h,
9780         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
9781         expr, statement, expression_statement, selection_statement,
9782         iteration_statement, expr_opt, jump_statement): foundation for tracking
9783         sequence points
9784         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
9785         point code too)
9786
9787 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9788
9789         * support/Util/SDCCerr.c,
9790         * src/SDCCast.h,
9791         * src/SDCCast.c (createCase, createDefault, decorateType),
9792         * src/SDCClabel.c (labelUnreach),
9793         * src/SDCC.y (labeled_statement, jump_statement): More improvements
9794         to error messages.
9795         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
9796         (with thanks to Stas Sergeev)
9797         * device/include/time.h,
9798         * device/lib/time.c (CheckTime): suppress unreachable code warning
9799
9800 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9801
9802         * src/SDCCast.c (createIvalCharPtr),
9803         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
9804         bug #753752)
9805         * support/regression/tests/nullstring.c: tests for these two bugs
9806
9807 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9808
9809         * support/Util/SDCCerr.h,
9810         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
9811         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
9812         about storage class and 'at' used inside struct or union
9813         * src/SDCCBBlock.c (iCodeFromeBBlock),
9814         * src/SDCCcse.c (ifxOptimize),
9815         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
9816         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
9817         printIval, emitStaticSeg, emitOverlay),
9818         * src/SDCClabel.c (deleteIfx),
9819         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
9820         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
9821         gatherAutoInit, processParms),
9822         * support/Util/SDCCerr.h,
9823         * support/Util/SDCCerr.c (werrorfl): Support for better error location
9824         reporting for post-parse errors.
9825
9826 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9827
9828         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
9829         implicit casts via union; they don't work on big endian systems
9830         (possible fix for bug #861138)
9831
9832 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9833
9834         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
9835         * src/mcs51/main.c: fixed the fix for bug #737001
9836
9837 2003-12-15  Borut Razem <borut.razem AT siol.net>
9838
9839         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
9840
9841 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9842
9843         * support/makebin/makebin.c: put output in binary mode
9844
9845 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9846
9847         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
9848         xdata and data memory on startup. Set the environment variable
9849         SDCC_NOGENRAMCLEAR to disable this.
9850         * src/mcs51/peephole.def,
9851         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
9852         (allows non-interrupt and interrupt code to safely compete for a resource
9853         without the non-interrupt code having to disable interrupts)
9854
9855 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9856
9857         * src/SDCCicode.c (geniCodeAdd),
9858         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
9859         with valFromType if type might be a pointer and host is big endian).
9860         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
9861         types, not just integer types.
9862         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
9863         multiply defined with mismatching "at" address.
9864
9865 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9866
9867         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
9868         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
9869         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
9870         with embedded nulls (fixed bug #753752)
9871
9872 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9873
9874         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
9875         Apparently this did not see much testing (endless loop)
9876
9877 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9878
9879         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
9880
9881 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9882
9883         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
9884         gracefully handle NULL memmap pointers
9885
9886 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9887
9888         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
9889         instead of deleting the iCode when an operand is volatile
9890         * src/z80/gen.c (genDummyRead),
9891         * src/mcs51/gen.c (genDummyRead),
9892         * src/ds390/gen.c (genDummyRead),
9893         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
9894         not just IC_RIGHT
9895         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
9896         * src/SDCC.y: fixed bug #850420
9897
9898 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9899
9900         Applied z80 i/o port patch from Peter Townson and fixed some operators
9901         to better handle operands in A register.
9902         * device/include/z180.h
9903         * src/SDCC.y
9904         * src/SDCCglue.c
9905         * src/z80/gen.c
9906         * src/z80/gen.h
9907         * src/z80/main.c
9908         * src/z80/peeph-z80.def
9909         * src/z80/peeph.def
9910         * src/z80/z80.h
9911
9912 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9913
9914         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
9915
9916 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9917
9918         * device/lib/hc08/_mullong.c: Removed extra #endif
9919
9920 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9921
9922         * sim/ucsim/hc08.src/inst.cc,
9923         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
9924         carries from x to h
9925         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
9926         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
9927         * device/include/stdarg.h: fixed varargs for hc08
9928         * device/lib/Makefile.in,
9929         * device/lib/hc08/Makefile,
9930         * device/lib/hc08/_mulint.c,
9931         * device/lib/hc08/_mullong.c: fixed some endian problems
9932
9933 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9934
9935         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
9936         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
9937         * device/lib/_gptrget.c,
9938         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
9939
9940 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9941
9942         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
9943         * src/SDCCast.c (astErrors): fixed bug #846007
9944         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
9945
9946 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9947
9948         * src/SDCCast.c (decorateType): disabled a transformation I added in
9949         revision 1.188 (access to fields of a structure at an absolute address);
9950         it breaks with bitfields, extern declarations, and gcse analysis.
9951         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
9952         could be assigned through a pointer, so don't complain.
9953         * src/SDCCast.c (astErrors),
9954         * src/SDCCast.h,
9955         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
9956
9957 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
9958
9959         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
9960         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
9961         output of __config directives, since gpasm now supports them
9962         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
9963         pre-processor macro, i.e. -DMCU=p18f452
9964         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
9965         and modified to handle 'cast' icode similarly to '=' icode
9966         * src/pic16/device.h (typedef struct PIC_device): added field
9967         'extMIface' to indicate that chip has external memory interface
9968         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
9969         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
9970         18F8720
9971
9972 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9973
9974         * src/SDCC.y (pointer): fixed bug #846006
9975         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
9976         * src/SDCCast.c (decorateType): fixed bug #846009
9977         * src/ds390/peeph.def,
9978         * src/ds390/gen.c (genAnd, genOr),
9979         * src/mcs51/peeph.def,
9980         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
9981
9982 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9983
9984         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
9985         * src/SDCCdflow.c
9986         * src/SDCCcse.c
9987         * src/SDCCcse.h
9988         * src/SDCCBBlock.h
9989         * src/SDCCBBlock.c
9990
9991 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
9992
9993         fixed bug #845089
9994         * src/SDCCbitv.h,
9995         * src/SDCCbitv.c: added function to free a bitvector
9996         * src/SDCClrange.h,
9997         * src/SDCClrange.c: added function to recompute the liveranges
9998         * src/avr/ralloc.c,
9999         * src/ds390/ralloc.c,
10000         * src/hc08/ralloc.c,
10001         * src/mcs51/ralloc.c,
10002         * src/pic/ralloc.c,
10003         * src/pic16/ralloc.c,
10004         * src/xa51/ralloc.c,
10005         * src/z80/ralloc.c: recompute the liveranges after register packing
10006
10007 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
10008
10009         * src/SDCCloop.c (newInduction): fixed bug #845630
10010
10011 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10012
10013         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
10014         inadvertantly left behind from my 2003-11-12 change
10015
10016 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10017
10018         Updated headers I neglected to commit yesterday.
10019         * src/SDCClrange.h,
10020         * src/SDCCicode.h
10021
10022 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10023
10024         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
10025         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
10026         * src/SDCCopt.c (eBBlockFromiCode),
10027         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
10028         the creation of the key hash table from the sequencing so it can be used
10029         earlier (for some GCSE bug fixes still pending)
10030
10031 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10032
10033         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
10034         * support/regression/tests/addsub.c: testing genPlus shortcut
10035
10036 2003-11-15  Borut Razem <borut.razem AT siol.net>
10037
10038         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
10039
10040 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10041
10042         * src/SDCCcse.c (cseBBlock): fixed bug #527779
10043         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
10044         ordering is immaterial.
10045         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
10046
10047 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10048
10049         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
10050         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
10051         (SIGSEV) of bug #840381
10052         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
10053         unlink new file before rename if new and old filenames are the same)
10054
10055 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10056
10057         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
10058         uninitialized variables) for the mcs51. Set environment variable
10059         SDCC_GENRAMCLEAR to test.
10060         xdata initialization slightly shorter
10061
10062 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10063
10064         * src/SDCCsymt.h,
10065         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
10066         #838241 & 780691 (basicly the same bug)
10067         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
10068         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
10069
10070 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
10071
10072         * src/SDCCmain.c (linkEdit): "fix" #834252
10073
10074 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10075
10076         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
10077         * src/SDCCast.h,
10078         * src/SDCC.y: fixed bug #819403
10079
10080 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10081
10082         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
10083         the reentrant attribute.
10084         * src/hc08/gen.c (genPackBits): added missing stack readjustment
10085         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
10086         simulation
10087         * src/SDCCast.c (decorateType): fixed bug with storage class not being
10088         updated during pointer dereference; f.e. ~(((char *)1)*) was being
10089         erroneously reduced to a literal.
10090         * src/hc08/ralloc.c (packRegisters, rematStr),
10091         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
10092         some cases
10093
10094 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10095
10096         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
10097         * doc/sdccman.lyx: changed from 'article' to 'book'
10098         * doc/Makefile: readded test_suite_spec and cdbfileformat
10099
10100 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
10101
10102         * device/include/stdlib.h: include malloc.h to comply with ANSI
10103         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
10104
10105 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10106
10107         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
10108         * doc/clean.mk: also remove *.out files
10109         * doc/sdccman.lyx: some additions, larger top/bottom margins
10110
10111 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10112
10113         * src/SDCC.y: fixed bug #837365
10114         * support/regression/tests/bitopcse.c
10115         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
10116         a symbol (might be valop instead)
10117         * device/lib/Makefile.in: added errno.c to HC08SOURCES
10118         * device/lib/clean.mk: added hc08 to the cleaning list
10119
10120 2003-11-04  Borut Razem <borut.razem AT siol.net>
10121
10122         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
10123           made 2003-11-04
10124         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10125           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
10126           malloc is declared in standard stdlib.h
10127
10128 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10129
10130         * device/lib/hc08/Makefile: need to clean .rel not .o files
10131         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
10132
10133 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10134
10135         * src/port.h,
10136         * src/hc08/main.c,
10137         * src/mcs51/main.c,
10138         * src/ds390/main.c,
10139         * src/z80/main.c,
10140         * src/avr/main.c,
10141         * src/pic/main.c,
10142         * src/pic16/main.c,
10143         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
10144         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
10145         tests (which uses the port's oclsExpense function)
10146         * src/SDCC.y,
10147         * src/SDCCast.c,
10148         * src/SDCCicode.c,
10149         * src/hc08/gen.c,
10150         * src/ds390/gen.c,
10151         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
10152
10153 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10154
10155         * src/SDCCcse.c (ifxOptimize),
10156         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
10157         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
10158         deleting the IFX iCode.
10159         * src/hc08/ralloc.c: reduced unneeded slocs
10160         * src/hc08/gen.c: fixed bug in asmopToBoolean
10161
10162 2003-11-04  Borut Razem <borut.razem AT siol.net>
10163
10164         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
10165           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10166           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
10167           transferred to configure
10168
10169 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
10170
10171         Use headers defined in the C[++] standards:
10172         * sim/ucsim/gui.src/serio.src/fileio.cc
10173         * sim/ucsim/gui.src/serio.src/frontend.cc
10174         * sim/ucsim/gui.src/serio.src/main.cc
10175         * sim/ucsim/gui.src/serio.src/posix_signal.cc
10176         * support/Util/NewAlloc.c
10177         * as/hc08/lklibr.c
10178         * as/mcs51/lklibr.c
10179         * as/z80/aslist.c
10180         * as/z80/assym.c
10181
10182 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10183
10184         * Added MSVC projects for hc08 assembler and linker:
10185         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
10186         /as/hc08/link_hc08.dsp
10187
10188 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
10189
10190         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
10191
10192 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
10193
10194         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
10195
10196 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10197
10198         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
10199
10200 2003-10-31  Borut Razem <borut.razem AT siol.net>
10201
10202         * support/cpp2/cpplib.h,
10203           support/cpp2/cpplib.c,
10204           support/cpp2/cpplex.c,
10205           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
10206           to switch _asm block preprocessing on / off. Default is
10207           #pragma preproc_asm +
10208
10209 2003-10-31  Borut Razem <borut.razem AT siol.net>
10210
10211         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
10212           when outputting comment blocks (when executed with -C option) and
10213           _asm (SDCPP specific) blocks
10214
10215 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10216
10217         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
10218
10219 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
10220
10221         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
10222
10223 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
10224
10225         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
10226         * src/SDCCast.c (decorateType): fixed bug #832664
10227
10228 2003-10-31  Borut Razem <borut.razem AT siol.net>
10229
10230         * support/cpp2/cpplex.c: fixed for SDCPP:
10231           comments(when executed with -C option) and _asm blocks
10232           were included even if they where in skipped #if block.
10233           Applied solution from GCC cpp 3.3.2
10234
10235 2003-10-31  Borut Razem <borut.razem AT siol.net>
10236
10237         * src/SDCC.lex: sdcc now understands both formats:
10238           '# <line_number> <file_name>' and
10239           '#line <line_number> <file_name>'
10240         * support/cpp2/cppmain.c: sdcpp now generates the standard
10241           '# <line_number> <file_name>' instead of former
10242           '#line <line_number> <file_name>'
10243
10244 2003-10-30  Borut Razem <borut.razem AT siol.net>
10245
10246         * support/cpp2/cpphash.h,
10247         * support/cpp2/cpplib.h
10248         * support/cpp2/cpplex.c,
10249         * support/cpp2/cppmain.c,
10250         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
10251
10252 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10253
10254         Fixed a number of problems revealed by bug #827883.
10255         * src/SDCCloop.c (loopInvariants): Spill location of the
10256         result operand should be recomputed if extracted from
10257         a loop. Also, don't extract assignments of an iTemp
10258         from a literal.
10259         * src/SDCCast.c (isConformingBody): loop reversal should
10260         not occur if the control variable is involved with a
10261         relational operator.
10262
10263 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
10264
10265         * .version: bumped to 2.3.6 to reflect the big improvements
10266         made by Erik and Klaus. Thanks!
10267
10268 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
10269
10270         Replaced the livrange code.
10271         * src/SDCClrange.c: added new LR code
10272         * src/SDCCloop.c,
10273         * src/SDCCBBlock.h: removed remainig parts from old LR code
10274         * src/ds390/ralloc.c,
10275         * src/ds390/gen.c: minor fixes to make it work with new code
10276
10277 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10278
10279         * as/hc08/asm.h,
10280         * as/hc08/lkrloc.c,
10281         * src/hc08/gen.c,
10282         * src/hc08/ralloc.c: Fix various warnings related to the hc08
10283         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
10284         (tweaked fix for bug #818696)
10285
10286 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10287
10288         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
10289
10290 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10291
10292         * src/SDCCmain.c,
10293         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
10294         * src/mcs51/gen.c (gencjneshort),
10295         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
10296         more efficient (per Scott Bronson's suggestion)
10297
10298 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10299
10300         Extended the semantics of the critical keyword to include
10301         individual statements. See RFE #827755 and #799831
10302         * src/SDCC.y
10303         * src/SDCCicode.c
10304         * src/SDCCopt.c
10305         * src/SDCCast.c
10306         * support/Util/SDCCerr.c
10307         * support/Util/SDCCerr.h
10308         * src/mcs51/gen.c
10309         * src/ds390/gen.c
10310         * src/hc08/gen.c
10311
10312 2003-10-19  Borut Razem <borut.razem AT siol.net>
10313
10314         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
10315
10316 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10317
10318         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
10319         Fixed bug #818696
10320         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
10321         and predecrement operand is displayed
10322
10323 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10324
10325         * src/SDCCval.c (valMinus): fixed bug #826041
10326
10327 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10328
10329         Some hc08 related updates that I missed earlier
10330         * sim/ucsim/stypes.h
10331         * support/regression/ports/hc08/spec.mk
10332
10333 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10334
10335         New target "hc08" for the Motorola 68hc08 family of micros
10336
10337         * configure
10338         * configure.in
10339         * Makefile
10340         * src/hc08/*
10341         * src/SDCCmain.c
10342         * src/port.h
10343         * sim/ucsim/hc08.src/*
10344         * sim/ucsim/configure.in
10345         * src/ucsim/configure
10346         * sim/ucsim/packages_in.mk
10347         * as/hc08/*
10348         * as/Makefile
10349         * device/include/mc68hc908qy.h
10350         * device/lib/hc08/*
10351         * device/lib/Makefile.in
10352         * support/regression/ports/hc08/*
10353         * support/regression/Makefile
10354
10355 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10356
10357         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
10358         regression test
10359         * src/ds390/gen.c (genCast): fixed bug #821957
10360
10361 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10362
10363         * device/lib/logf.c: "fixed" overlay bug
10364         * support/regression/ports/host/spec.mk: added m library
10365         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
10366         * support/regression/tests/float_trans: added (for Eric)
10367
10368 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
10369
10370         * src/mcs51/gen.c (genCpl): fixed bug
10371         http://sf.net/mailarchive/message.php?msg_id=6263915
10372
10373 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
10374
10375         * src/SDCCast.c (decorateType): added extended constant folding
10376         * src/SDCCsymt.c (computeType): cleanup
10377         * src/SDCCval.c (valShift): minor optimization
10378         * support/regression/tests/ast_constant_folding.c: added
10379
10380 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10381
10382         * src/SDCCmain.c: removed some unintended changes
10383
10384 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10385
10386         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
10387         * src/z80/gen.c: fixed part of bug #817589
10388         * src/SDCCsymt.c (checkFunction): fixed bug #817895
10389
10390 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
10391
10392         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
10393         * src/SDCCcflow.c
10394         * src/SDCCcse.c
10395         * src/SDCCdflow.c
10396         * src/SDCClabel.c
10397         * src/SDCClrange.c
10398         * src/SDCCmem.c
10399         * src/SDCCopt.c
10400         * src/SDCCpeeph.c
10401         * src/SDCCset.c
10402         * src/avr/ralloc.c
10403         * src/ds390/ralloc.c
10404         * src/izt/ralloc.c
10405         * src/mcs51/ralloc.c
10406         * src/pic/ralloc.c
10407         * src/pic16/ralloc.c
10408         * src/xa51/ralloc.c
10409         * src/z80/ralloc.c
10410         * src/z80/gen.c: removed unused label "release:"
10411
10412 2003-10-06  Borut Razem <borut.razem AT siol.net>
10413
10414         * src/SDCC.lex: removed definition of unused variables
10415           save_optimize and save_options
10416
10417 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
10418
10419         * clean.mk: removed '=' in "-maxdepth=1"
10420         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
10421         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
10422
10423 2003-10-06  Borut Razem <borut.razem AT siol.net>
10424
10425         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
10426           my_unput() replaced by unput()
10427
10428 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
10429
10430         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
10431         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
10432         type-punned pointer will break strict-aliasing rules"
10433         Old LR behaviour is again default; Klaus' LR can be choosen by
10434         defining the environment variable LRKLAUS
10435         * src/SDCCBBlock.h
10436         * src/SDCCloop.c
10437         * src/SDCClrange.c
10438         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
10439         * clean.mk: fixed removal of files in bin/CVS/
10440         * device/lib/clean.mk: fixed removal of directories small and large
10441         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
10442         * src/SDCCicode.c,
10443         * src/SDCCval.c: removed superflous test for pedantic
10444
10445 2003-10-05  Borut Razem <borut.razem AT siol.net>
10446
10447         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
10448           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
10449           message "unmatched #pragma SAVE and #pragma RESTORE"
10450
10451 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10452
10453         * doc/sdccman.lyx: various additions and updates (interrupts, inline
10454           assembly, critical functions, atomic, nojtbound)
10455
10456 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
10457
10458         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
10459         * src/SDCCBBlock.h
10460         * src/SDCCloop.c
10461         * src/SDCCloop.h
10462         * src/SDCClrange.c
10463
10464 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10465
10466         * src/z80/gen.h,
10467         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10468         * src/mcs51/gen.h
10469         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10470         * src/ds390/gen.h
10471         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10472         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
10473         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
10474
10475 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10476
10477         * src/z80/gen.c (genRet): fixed bug #524753
10478         * src/z80/gen.c (genCast): fixed internal error on cast from
10479         pointer to long
10480         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
10481         fix for bug #477835 to the z80
10482         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
10483         for tracking iCodes in the peephole optimizer for z80
10484
10485 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10486
10487         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
10488         the other part of bug #814548
10489         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
10490
10491 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
10492
10493         * src/SDCCcse.c: fixed part of bug #814548
10494
10495 2003-09-28  Borut Razem <borut.razem AT siol.net>
10496
10497         * src/asm.c: rewrite of printILine() to use temporary file instead
10498           a pipe
10499         * src/xa51/main.c: commented out declaration of int rewinds
10500
10501 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10502
10503         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
10504
10505 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10506
10507         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
10508         * src/asm.c (printILine): Fixed bug #811015
10509
10510 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10511
10512         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
10513         freeing.
10514
10515 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10516
10517         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
10518         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
10519         to correctly handle general case of AOP_PAIRPTR
10520         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
10521
10522 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10523
10524         * src/mcs51/ralloc.c (fillGaps),
10525         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
10526         register positioning bug)
10527
10528 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
10529
10530         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
10531
10532 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10533
10534         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
10535         genCodePointerGet, genGenPointerGet, genFarPointerSet,
10536         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
10537         (ralloc doesn't intentionally do this now, but perhaps later)
10538         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
10539         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
10540         register positioning bugs (Fixed bug #762602 and #795325)
10541         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
10542         (Fixed bug #808779)
10543         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
10544         lines that --i-code-in-asm generates
10545
10546 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10547
10548         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
10549         trying to fclose a FILE* that was already closed.
10550
10551 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10552
10553         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
10554         of const struct should be treated as if const themselves)
10555
10556 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
10557
10558         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
10559
10560 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10561
10562         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
10563         Unix (/n) and DOS (/r/n) line terminations.
10564
10565 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10566
10567         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
10568         bug #613775
10569
10570 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10571
10572         * src/mcs51/gen.c (genFunction, genEndFunction),
10573         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
10574         and restore of EA so that stack offsets to parameters are
10575         correct when using both critical and reentrant/stack-auto.
10576         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
10577         size (can be triggered in error if sloc is shared between
10578         different sized objects)
10579         * device/include/float.h: fixed macros to explicitly use
10580         unsigned long where needed
10581
10582 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
10583
10584         Feature req. 799831: added code to allow nesting of critical functions
10585         * src/mcs51/gen.c (genFunction, genEndFunction)
10586         * src/ds390/gen.c (genFunction, genEndFunction)
10587
10588 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10589
10590         * src/SDCCsymt.c (sclsFromPtr),
10591         * src/SDCCsymt.h,
10592         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
10593         support for standard C idiom of memory mapped variables; for
10594         example, *((xdata int*)0x1234) = 1 is now internally equivalent
10595         to xdata int at 0x1234 tempvar = 1.
10596         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
10597         provided by Akiya ISHIDA
10598
10599 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
10600
10601         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
10602         * src/SDCCval.c (constVal): added reduction from int to char
10603         * src/SDCCval.c (valMult, valDiv): fixed sign handling
10604         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
10605         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
10606         to ignore the sign
10607         * support/regression/tests/shifts.c: fixed
10608
10609 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10610
10611         * src/z80/gen.c (genXor): Fixed bug #805445
10612
10613 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10614
10615         Fixed bug #621531 (const & volatile confusion in the type chain).
10616         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
10617         refer to the const or volatile state of the pointer itself.
10618
10619         * src/SDCCast.c
10620         * src/SDCCglue.c
10621         * src/SDCCicode.c
10622         * src/SDCCsymt.c
10623         * src/SDCCval.c
10624         * src/SDCC.y
10625         * src/SDCCsymt.h
10626         * src/pic/gen.c
10627         * src/pic/ralloc.c
10628         * src/pic16/gen.c
10629         * src/pic16/ralloc.c
10630         * support/regression/tests/const.c
10631
10632 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10633
10634         When checking for duplicated modules, use absolute paths
10635         instead of relative paths.  Files changed:
10636
10637         * as/mcs51/lklib.c
10638         * link/z80/lklib.c
10639
10640 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10641
10642         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
10643
10644 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10645
10646         * device/include/string.h: added size_t typedef, changed
10647         prototypes to use size_t, eliminated separate reentrant and
10648         non-reentrant declarations, added _memmove declaration
10649         * device/lib/_memcpy.c: changed to use size_t instead of int,
10650         changed /4 to >>2 to avoid division library call
10651         * device/lib/_memcmp.c,
10652         * device/lib/_memset.c,
10653         * device/lib/_strncat.c,
10654         * device/lib/_strncpy.c,
10655         * device/lib/_strncmp.c: changed to use size_t instead of int
10656         * device/lib/_memmove.c: new file (fixed bug #772294)
10657         * device/lib/Makefile.in: added _memmove.c
10658         * device/lib/z80/asm_strings.s: fixed bug #772290
10659         * support/regression/tests/bitfields.c: attempt to fix host assertion
10660         failure on amd64-unknown-linux2.2
10661
10662 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10663
10664         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
10665         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
10666         * as/z80/asmain.c (main): fixed bug #801766
10667
10668 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
10669
10670         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
10671         compilers
10672
10673 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10674
10675         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
10676         reported in bug #800609
10677
10678 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
10679
10680         * Top header beautifications in src/pic16 directory:
10681           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
10682           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
10683           pcoderegs.h, ralloc.c, ralloc.h
10684         * main.c: added top header and GPL license notice
10685         * pcode.c: fixed the if-conditional warning
10686
10687 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
10688
10689         * device/lib/_mullong.c: replaced int by short for gcc
10690
10691 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10692
10693         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
10694         and JUMPTABLE iCodes properly now (worked by accident before)
10695         * src/mcs51/gen.c (leftRightUseAcc),
10696         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
10697         iCode properly now. Use getSize instead of nRegs since a & b
10698         aren't part of the nRegs tally.
10699
10700 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
10701
10702         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
10703         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
10704           before instructions that use the _STATUS register
10705
10706 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
10707
10708         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
10709         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
10710         fetching of the pointer
10711         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
10712         copied from genNearPointerSet()
10713         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
10714         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
10715         If they pop r0/r1 they must be called in the opposite order than aopOp().
10716         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
10717         (resp. --stack-auto), prepared for --xstack
10718
10719 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10720
10721         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
10722
10723 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10724
10725         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
10726         these ports have their own __sdcc_external_start()
10727
10728 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
10729
10730         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10731         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
10732         type for bits was changed. It resulted in bit variables becoming
10733         global, which is not permitted in PIC 14 assembly output.
10734
10735 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10736
10737         * doc/sdccman.lyx: various additions and updates. Rearranged sections
10738
10739 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10740
10741         Z80 and MCS51 linkers complaint if a public symbol is defined
10742         in more than one library module:
10743
10744         * as/mcs51/lklib.c
10745         * link/z80/lklib.c
10746         * as/mcs51/Makefile.in
10747
10748 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10749
10750         A few small changes that speed up the peephole optimizer.
10751
10752         * src/SDCCpeeph.c
10753
10754 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10755
10756         Try to make the peephole optimizer smarter by maintaining
10757         an association between the assembly source code and the
10758         iCodes that originated them. Put this information to use
10759         with a new peephole rule condition "notVolatile" so that
10760         the rules can be aggressive yet still safe.
10761
10762         * src/SDCCpeeph.c
10763         * src/SDCCpeeph.h
10764         * src/mcs51/gen.c
10765         * src/mcs51/peeph.def
10766
10767 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10768
10769         Fixed bug #741761
10770
10771         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
10772         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
10773         if the left or right operand symbols have the accuse flag set.
10774
10775 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10776
10777         Changed the type of the result of the ! (NOT) operator to char;
10778         previously it returned the same type as the source. This allows
10779         us to eliminate all the genFloatNot functions (all of its target
10780         implementations were very buggy) since !float can use the same
10781         code as !long now.
10782
10783         * src/SDCCicode.c (ast2iCode): ! returns char
10784         * src/mcs51/gen.c (genNot, genNotFloat),
10785         * src/ds390/gen.c (genNot, genNotFloat),
10786         * src/z80/gen.c (genNot, genNotFloat),
10787         * src/pic/gen.c (genNot, genNotFloat),
10788         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
10789
10790 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
10791
10792         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10793         1. Interrupt would not compile properly. Ensure PCLATH register is saved
10794            during interrupts. Ensure WSAVE is located at a shared bank address.
10795         2. Fixed page selection in some places
10796         3. Fixed BTFSS/C to where necessary use registers directly and not simply
10797            the registers name strings.
10798         4. Fixed "signed / unsigned compare" compiler warnings.
10799         5. The PIC port manages its own allocation of the general purpose
10800            registers, but makes no attempt to reuse them. As a result when
10801            compiling it soon runs out of general purpose registers. Some
10802            additional code was added to the files pcode.c and device.c to walk
10803            through the function call tree and rename the registers so that they
10804            get reused.
10805
10806         * src/pic/device.c
10807         * src/pic/gen.c
10808         * src/pic/glue.c
10809         * src/pic/pcode.c
10810         * src/pic/pcode.h
10811         * src/pic/ralloc.c
10812         * src/pic/ralloc.h
10813         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
10814         genPlus() & genMinus() when the result is the same as left or right
10815
10816 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10817
10818         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
10819
10820 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10821
10822         Made bitfield a distinct type from bit so that bitfields
10823         convert as per ANSI C and bits retain their traditional
10824         boolean style behaviour. Implemented bitfield support in
10825         the z80 port.
10826
10827         * src/SDCCsymt.h,
10828         * src/SDCCsymt.c,
10829         * src/SDCCast.c,
10830         * src/cdbFile.c,
10831         * src/mcs51/gen.c,
10832         * src/ds390/gen.c: bit v bitfield split
10833         * src/z80/gen.c: New support for bitfields
10834         * support/regression/tests/bitfields.c: reenabled z80,
10835         added more tests
10836
10837 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10838
10839         Rules 246.x, 247.x relate to bitfields, the others speed up
10840         access to xdata mapped I/O devices.
10841
10842         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
10843
10844 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10845
10846         Cleaned up genPackBits and genUnpackBits and added two helper
10847         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
10848         for literal assignments in genPackBits (thanks to Frieder for
10849         reminding me).
10850
10851         * src/mcs51/gen.c
10852         * src/ds390/gen.c
10853
10854 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10855
10856         Fixed bug #748310 (pointer to function type mishandled when the
10857         function name is omitted). Also fixed a SIGSEGV when a function
10858         attribute (reentrant, etc) is used on a non-function or on a
10859         function but misplaced before the parameter list.
10860
10861         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
10862         bug #748310
10863         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
10864         * support/Util/SDCCerr.h,
10865         * support/Util/SDCCerr.c: Added func attr misuse error msg
10866
10867 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10868
10869         Fixed bug #787649 by anonymous
10870         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
10871         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
10872
10873 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10874
10875         Fixed numerous bitfield problems.
10876
10877         * src/SDCC.y: More bitfield related error checking
10878         * src/SDCCsymt.h,
10879         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
10880         * support/Util/SDCCerr.h,
10881         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
10882         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10883         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10884         * support/regression/tests/bitfields.c: tests added
10885
10886 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10887
10888         Made the constant following the "interrupt" keyword optional. If
10889         omitted, the function will not automatically be given an entry
10890         in the interrupt vector table (similar to #pragma NOIV, but
10891         less syntacticly kludgy). The interrupt number is also now
10892         range checked. Also fixed a bug in the high order bit example
10893         in the manual.
10894
10895         * src/SDCC.y
10896         * src/SDCCmem.c
10897         * src/SDCCglue.c
10898         * src/SDCCsymt.h
10899         * support/Util/SDCCerr.c
10900         * support/Util/SDCCerr.h
10901         * doc/sdccman.lyx
10902
10903 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10904
10905         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
10906         * src/SDCCicode.c (operandOperation): rewritten some ops
10907         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
10908         * src/SDCCsymt.c (computeType): literals are handled the same way as any
10909         other type
10910         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
10911         be re-activated by defining REDUCE_LITERALS)
10912         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
10913         unsigned, but are signed by default
10914         * src/SDCCval.c (constVal): rearranged
10915         * src/SDCCval.c (valMod): preliminary fix
10916         * src/SDCCval.c (valCastLiteral): use TYPE_* types
10917         * support/regression/literalop.c: added, work in progress
10918
10919 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10920
10921         Generate warnings for useless declarations like "char data;"
10922         that don't do what new users expect.
10923
10924         * src/SDCC.y
10925         * support/Util/SDCCerr.h
10926         * support/Util/SDCCerr.c
10927
10928 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
10929
10930         * src/SDCCval.c (valMult): fix overflow detection of negative int
10931
10932 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10933
10934         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
10935
10936         Changes to support big endian targets:
10937
10938         * src/ports.h
10939         * src/SDCCglue.c
10940         * src/avr/main.c
10941         * src/ds390/main.c
10942         * src/izt/i186.c
10943         * src/mcs51/main.c
10944         * src/pic/main.c
10945         * src/pic16/main.c
10946         * src/xa51/main.c
10947         * src/z80/main.c
10948
10949 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
10950
10951         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
10952         * device/lib/time.c: fixed warning "integer overflow in expression"
10953
10954 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
10955
10956         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
10957         * src/SDCCval.c (constVal): changed default to signed; hex and octal
10958         constants are unsigned; added recognition of "u" flag for unsigned
10959         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
10960         * src/SDCCval.c (valDiv, valMod): fixed signdness
10961         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
10962         signedness of modulo, left and right shift
10963         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
10964         * support/Util/SDCCerr.h: added warning W_INT_OVL
10965         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
10966         * src/SDCCast.c (ast_print): improved output of constants
10967
10968 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10969
10970         Fixed some warnings when building with MSVC:
10971
10972         * as/mcs51/asdata.c
10973         * as/z80/asdata.c
10974         * as/mcs51/asm.h
10975         * as/z80/asm.h
10976         * link/z80/aslink.h
10977         * link/z80/lkdata.c
10978         * link/z80/lkeval.c
10979         * link/z80/lkgb.c
10980         * link/z80/lkihx.c
10981         * link/z80/lks19.c
10982         * link/z80/lksym.c
10983         * support/cpp2/cpplib.c
10984         * src/ds390/gen.c
10985         * src/mcs51/gen.c
10986
10987 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
10988
10989         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
10990
10991 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10992
10993         * support/librarian/clean.mk: Do not remove Makefile.
10994         * support/librarian/Makefile: added.
10995
10996 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10997
10998         Added librarian to MSVC build:
10999         * all.dsp
11000         * sdcc.dsw
11001         * support/librarian/librarian.dsp
11002
11003         'configure' not needed for librarian, removed:
11004         * support/librarian/configure
11005         * support/librarian/configure.in
11006         * support/librarian/config_in.h
11007         * support/librarian/Makefile.in
11008
11009         Hopefully these ones built the librarian and the rest of sdcc properly:
11010         * Makefile
11011         * Makefile.common.in
11012
11013         Messed up 'configure', so revert to previous version:
11014         * configure
11015         * configure.in
11016
11017 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
11018
11019         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
11020         there, while the mantissa of a double is "only" 53 bits wide.
11021
11022 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11023
11024         Adding sdcclib to the build.  MSVC project coming soon.
11025         Files added/changed:
11026
11027         * support/librarian/clean.mk
11028         * support/librarian/configure
11029         * support/librarian/configure.in
11030         * support/librarian/config_in.h
11031         * support/librarian/Makefile.bcc
11032         * support/librarian/Makefile.in
11033         * support/librarian/sdcclib.c
11034         * Makefile.bcc
11035         * Makefile
11036         * Makefile.common.in
11037         * configure
11038         * configure.in
11039
11040 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11041
11042         Linker now complaints if linked modules have conflicting options, for
11043         example, one compiled using --model-large and another one compiled with
11044         --model-small.  The following files were modified:
11045
11046         * as/mcs51/asdata.c
11047         * as/mcs51/aslink.h
11048         * as/mcs51/asm.h
11049         * as/mcs51/asmain.c
11050         * as/mcs51/asout.c
11051         * as/mcs51/i51pst.c
11052         * as/mcs51/lkdata.c
11053         * as/mcs51/lklibr.c
11054         * as/mcs51/lkmain.c
11055         * as/z80/asdata.c
11056         * as/z80/asm.h
11057         * as/z80/asmain.c
11058         * as/z80/asout.c
11059         * as/z80/z80pst.c
11060         * link/z80/aslink.h
11061         * link/z80/lkdata.c
11062         * link/z80/lklibr.c
11063         * link/z80/lkmain.c
11064         * src/SDCCglue.c
11065
11066 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11067
11068         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
11069         as/mcs51/lklibr.c: Generate a warning when a library is not found.
11070
11071 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
11072
11073         * src/z80/mappings.i: fix _mul[us][int,long] entries
11074
11075 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11076
11077         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
11078
11079 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11080
11081         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
11082         * support/regression/tests/bitopcse.c: added
11083         fixed warning:
11084         * src/avr/gen.c:
11085         * src/pic/gen.c:
11086         * src/pic16/gen.c:
11087         * src/z80/gen.c:
11088         * src/xa51/gen.c:
11089
11090 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11091
11092         added support for new library format to z80, gbz80 linkers:
11093         *link/z80/aslink.h
11094         *link/z80/lklex.c
11095         *link/z80/lklib.c
11096         *link/z80/lklist.c
11097
11098 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11099
11100         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
11101         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
11102
11103 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
11104
11105         added DUMMY_READ_VOLATILE:
11106         * src/SDCC.y:
11107         * src/avr/gen.c:
11108         * src/xa51/gen.c:
11109         * src/z80/gen.c:
11110         * src/pic/gen.c:
11111         * src/pic16/gen.c:
11112         * src/mcs51/gen.c:
11113         * src/ds390/gen.c:
11114         * src/SDCCcse.c (algebraicOpts): many improvements
11115         * src/SDCCcse.h: removed algebraicOpts()
11116         * src/SDCCicode.c (picDummyRead): added
11117
11118 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11119
11120         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
11121         "Insufficient space in data memory".
11122
11123 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11124
11125         * src/mcs51/gen.c: fixed bug #771358
11126         * src/z80/gen.c: fixed bug #759087
11127
11128 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
11129
11130         * src/pic16/glue.c: minor cleanup by Vangelis
11131
11132 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11133
11134         * device/include/regc515c.h: fixed #758477
11135         * device/lib/_gptrget.c: saving some cycles in generic pointer get
11136         * device/lib/_gptrput.c: saved a few bytes
11137         * my tab spacing is 8, yours too?)
11138         * device/lib/_ser.c: process RX bytes earlier than TX bytes
11139         * device/lib/serial.c: process RX bytes earlier than TX bytes
11140         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
11141
11142 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11143
11144         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
11145
11146 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11147
11148     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
11149
11150 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
11151
11152         * device/lib/Makefile.in: bad fix, reverted to 1.43
11153
11154 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
11155
11156         * device/lib/Makefile.in: added missing z80 object files
11157
11158 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
11159
11160         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
11161         pic16 progress by Vangelis:
11162         * src/SDCCglobl.h:
11163         * src/SDCCmain.c:
11164         * src/pic/Makefile:
11165         * src/pic:
11166         * pic/Makefile:
11167         * pic16/device.c:
11168         * pic16/device.h:
11169         * pic16/gen.c:
11170         * pic16/gen.h:
11171         * pic16/genarith.c:
11172         * pic16/glue.c:
11173         * pic16/main.c:
11174         * pic16/pcode.c:
11175         * pic16/pcode.h:
11176         * pic16/pcodepeep.c:
11177         * pic16/peeph.def:
11178
11179 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11180
11181     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
11182
11183 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11184
11185     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
11186     added gbz80 build to MSVC project.
11187     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
11188     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
11189     from 8051 stuff and setup so it links using a .lnk file.
11190
11191 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11192
11193     * support/librarian/sdcclib.c: sdcc librarian.
11194     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
11195     with sdcclib.
11196
11197 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11198
11199     * as/mcs51/lkmain.c: properly handle extensions in function afile.
11200
11201 2003-07-02  Borut Razem <borut.razem AT siol.net>
11202
11203         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
11204         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
11205         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
11206         src/xa51/main.c, src/z80/main.c:
11207         virtualization of glue() function: each port has it's own glue function,
11208         which is accessed by do_glue function pointer in PORT.general structure
11209
11210 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
11211
11212         * DS800C400 fun, improved ROM interface and tinibios.
11213
11214 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
11215
11216         * More support for DS80C400. Now includes beginning of interface to ROM.
11217
11218 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
11219
11220         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
11221
11222 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11223
11224         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
11225
11226 2003-06-19  Borut Razem <borut.razem AT siol.net>
11227
11228         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
11229
11230 2003-06-19  Borut Razem <borut.razem AT siol.net>
11231
11232         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
11233         fixed Z80 port - crt0.o: cannot open.
11234
11235 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
11236
11237         * support/Util/MySystem.c (merge_command): revert bad fix
11238
11239 2003-06-18  Borut Razem <borut.razem AT siol.net>
11240
11241         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
11242
11243 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11244
11245         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11246         option --use-stdout sends errors to stdout instead of stderr.
11247
11248 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
11249
11250         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
11251
11252 2003-06-15  Borut Razem <borut.razem AT siol.net>
11253
11254         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
11255         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
11256         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
11257         fixed width array of pointers replaced with sets;
11258         multiple include and lib paths ared transferred to preprocessor and linker
11259         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
11260         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
11261         fixed width array of pointers
11262         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
11263         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
11264         fixupPath(), getPathDifference()
11265         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
11266         fixed width array of pointers
11267
11268 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
11269
11270         * src/pic16/ralloc.c: fix warnings
11271         * src/pic16/pcode.c: fix warning
11272
11273 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
11274
11275          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
11276         know all the details, but essentially this set of changes enable
11277         the pic16 port to generate movff instructions and generate assembler
11278         directives,
11279         * src/SDCCmain.c:
11280         * src/pic16/gen.c:
11281         * src/pic16/glue.c:
11282         * src/pic16/pcode.c:
11283         * src/pic16/device.c:
11284         * src/pic16/main.c:
11285         * src/pic16/pcode.h:
11286         * src/pic16/pcoderegs.c:
11287         * src/pic16/ralloc.c:
11288         * src/pic16/ralloc.h:
11289
11290 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11291
11292         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11293         added option --vc, so sdcc errors and warnings are compatible with
11294         Microsoft Visual Studio.
11295
11296 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11297
11298         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
11299           device/lib/libfloat.lib: added atof function.
11300
11301 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
11302
11303         * doc/sdccman.lyx: updated to Lyx 1.3
11304         * doc/cdbfileformat.lyx: updated to Lyx 1.3
11305         * doc/test_suite_spec.lyx: updated to Lyx 1.3
11306         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
11307
11308 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
11309
11310         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
11311
11312 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11313
11314         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
11315           additions to the "related tools/documentation" section
11316
11317 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
11318
11319         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
11320
11321 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
11322
11323         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
11324         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
11325
11326 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
11327
11328         * doc/sdccman.lyx: fix double dash and other minor things
11329         * doc/Makefile: fix double dash
11330
11331 2003-05-28  Karl Bongers(patches from Martin Helmling)
11332         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
11333           condition and ignore commands.
11334
11335 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11336
11337         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
11338           is in parts still quite out of date, I did changes as far as I felt makes sense
11339           for a non-native english speaker.
11340           Please feel free to add to the manual or to correct my changes.
11341         * doc/Makefile: undid touching the date of intermediate tex files.
11342
11343 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11344
11345         * doc/sdccman.lyx: Manual has an index now
11346
11347 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
11348
11349         Finalize muluint/mulsint and mululong/mulslong merging:
11350         * device/lib/_mulint.c
11351         * device/lib/_mullong.c
11352         * device/lib/gbz80/mul.s
11353         * device/lib/gbz80/stubs.s
11354         * device/lib/z80/mul.s
11355         * device/lib/z80/stubs.s
11356         * src/SDCCsymt.c (initCSupport)
11357
11358 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11359
11360         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
11361         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
11362           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
11363           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
11364           instead of /Zm500.
11365
11366 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11367
11368         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
11369           the regression tests I'm not brave enough to enable 245.b, 245.c
11370         * doc/sdccman.lyx: added latex preamble for hyperref package.
11371           Using pdflatex this will give you a hyperlinked pdf file with
11372           bookmarks. (prepend '%' before /usepackage if this breaks something)
11373
11374 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11375
11376          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
11377
11378 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
11379
11380         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
11381
11382 2003-05-21    <johan AT balder>
11383
11384         * src/SDCCglue.c (printIval): fixed bug #739934
11385
11386 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11387
11388         Applied patch from bug 737905 (renamed yylineo to mylineno):
11389         * src/altlex.c
11390         * src/SDCCast.c
11391         * src/SDCglobl.h
11392         * src/SDCC.lex
11393         * src/SDCCsymt.c
11394         * src/SDCCval.c
11395         * src/pic16/pcode.c: Cleaned warnings
11396         * src/pic16/pcodeflow.c: Cleaned warnings
11397         * src/pic16/pcoderegs.c: Cleaned warnings
11398
11399 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
11400
11401         * src/pic16/pcode.c: Cleaned warnings
11402         * src/pic16/pcodepeep.c: Cleaned warnings
11403         * src/pic16/ralloc.c: Cleaned warnings
11404
11405 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11406
11407         * doc/sdccman.lyx: fixed bug 739745
11408         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
11409
11410 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
11411
11412         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
11413         it can be defined with CFLAGS when running configure
11414         * src/SDCCmain.c: fixed compiling + linking with object files
11415
11416 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
11417
11418         * configure.in: configure for pic16 port,
11419             added --disable-pic16-port
11420         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
11421         * src/SDCCmain.c: linkOptions is changed to set *,
11422             added if/endif conditional macros to remove options help
11423             messages from optionsTable when a port is not configured, added
11424             support for the PIc16 port in the ports table, when executing
11425             the compiler with no port specified on command line, a default
11426             port is selected with the new macro DEFAULT_PORT which is
11427             defined in port.h, in setDefaultOptions() linkOptions is removed
11428             from initialization assignment, since now it is a set,
11429             parseCmdLine uses setParseWithComma for linkOptions, in
11430             linkEdit() linkOptions are accessed with new function indexSet()
11431             which returns the i'th item of a set variable. See SDCCset.c, in
11432             linkEdit() when calling buildCmdLine(), added linkOptions as
11433             last argument. Now users can pass arguments to gplink via the
11434             -Wl option, main() uses pic16glue() to glue up pic16 programs
11435         * src/SDCCpeeph.c: various changes to support pic16
11436         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
11437             return the i'th item of the set
11438         * src/SDCCset.h: added function prototype for indexSet()
11439         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
11440         * src/clean.mk: added pic16 in CLEANALLPORTS variable
11441         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
11442             added macro DEFAULT_PORT
11443         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
11444         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
11445             generated
11446         * src/pic16/glue.c: commented out some error producing lines
11447         * src/pic16/main.c: __config directives are commented out to stop
11448             gpasm complaining and test the linkage with gplink, _linkCmd and
11449             _asmCmd changed to be more gplink and gpasm friendly
11450         * src/pic16/peeph.def: peep rule 3 is commented out, since it
11451             produced an error when parsed, peep rule 12 is added to utilize
11452             movff, but it is commented out since the pCode does not support
11453             yet a command with 2 address arguments
11454
11455 2003-05-18    <johan AT balder>
11456
11457         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
11458         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
11459 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
11460
11461         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
11462   Added feature to script commands from file.
11463
11464 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
11465
11466         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
11467         * src/SDCCutil.c: include ctype.h for win32
11468
11469 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
11470
11471         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
11472
11473 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
11474
11475         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
11476   Fixed so you can set breakpoints prior to run, run does not stop
11477   on entry now.  Add tbreak.  Other enhancements and fixes for use
11478   with ddd.
11479
11480 2003-05-12  Borut Razem <borut.razem AT siol.net>
11481
11482         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
11483
11484 2003-05-11  Borut Razem <borut.razem AT siol.net>
11485
11486         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
11487         the path of bin directory, so that PATH is the only env. variable, which has to be set
11488         in case of standard installation.
11489         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
11490         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
11491         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
11492
11493 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
11494
11495         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
11496         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
11497         temp files are in the port dir; clean the gen/test directory when
11498         generating new test.c
11499         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
11500         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
11501         * support/regression/tests/zeropad.c: added
11502
11503 2003-05-09    <johan AT balder>
11504
11505         * src/SDCCglue.c: fixed bug #597940
11506
11507 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
11508
11509         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
11510   cache sfr, optimize next,step, fix off by one sourceline,
11511   support ddd list function.
11512         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
11513
11514 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
11515
11516         * support/regression/HTMLgen.py: added compare_s2f()
11517         * support/regression/Makefile: redo 1.27
11518         * support/regression/generate-cases.py: redo 1.5
11519
11520 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
11521
11522         * support/regression/tests/float.c: workaround 33 bit hex constant
11523         * support/regression/tests/simplefloat.c: fix division for host
11524
11525 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
11526
11527         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
11528         that tame's the PIC's over-aggressive optimizer.
11529
11530 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11531
11532          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
11533          support for MSVC.
11534
11535 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
11536
11537         Initial support for DS80C400. "Hello world" runs on TINIm400
11538         (with polled I/O).
11539
11540 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
11541
11542          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
11543          * Some notes on ddd usage added in debugger/README
11544          Martin Helmling adding more features and fixes for ddd GUI debugger.
11545          Code added for nexti, stepi, up, down, and other adjustments.
11546
11547 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
11548
11549         * src/pic/pCodepeep.c non-wildcard asmops are now handled
11550         * src/pic/peeph.def Added two rules to optimize carry manipulation
11551         * src/pic/* removed debug printfs
11552
11553 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
11554
11555         * debugger/mcs51/cmd.c: added header newalloc.h
11556
11557 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
11558
11559         * as/Makefile: new EXEEXT
11560         * as/z80/Makefile: remove trailing slash of BUILDIR
11561         * as/z80/clean.mk: new EXEEXT
11562         * Makefile.common.in: add to CFLAGS (and others), don't replace it
11563         * support/cpp2/Makefile.in: new EXEEXT
11564         * src/pic/glue.c (pic14emitRegularMap): fixed warning
11565
11566 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
11567
11568         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
11569         EXEEXT was introduced to fix all related problems with targets
11570         "clean", "install" and "uninstall"; a couple of further flaws
11571         especially with "clean" have been fixed too
11572         * as/mcs51/Makefile.in
11573         * as/mcs51/clean.mk
11574         * as/z80/Makefile
11575         * Makefile
11576         * clean.mk
11577         * debugger/mcs51/Makefile.in
11578         * debugger/mcs51/clean.mk
11579         * link/z80/Makefile
11580         * link/z80/Makefile.in
11581         * link/z80/clean.mk
11582         * link/Makefile
11583         * packihx/Makefile.in
11584         * packihx/clean.mk
11585         * sim/ucsim/Makefile
11586         * sim/ucsim/clean.mk
11587         * sim/ucsim/avr.src/Makefile.in
11588         * sim/ucsim/avr.src/clean.mk
11589         * sim/ucsim/s51.src/Makefile.in
11590         * sim/ucsim/s51.src/clean.mk
11591         * sim/ucsim/xa.src/Makefile.in
11592         * sim/ucsim/xa.src/clean.mk
11593         * sim/ucsim/z80.src/Makefile.in
11594         * sim/ucsim/z80.src/clean.mk
11595         * sim/ucsim/main_in.mk
11596         * sim/ucsim/packages_in.mk
11597         * sim/ucsim/gui.src/Makefile.in
11598         * sim/ucsim/gui.src/serio.src/Makefile.in
11599         * sim/ucsim/gui.src/serio.src/clean.mk
11600         * src/Makefile.in
11601         * src/clean.mk
11602         * support/cpp2/Makefile.in
11603         * support/cpp2/clean.mk
11604         * support/makebin/Makefile
11605         * support/makebin/clean.mk
11606         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
11607         * doc/sdccman.lyx: --program-suffix no longer needed
11608
11609 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
11610
11611          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
11612          Martin Helmling added support for ddd GUI debugger.
11613          Code added to display assembly, set variables, and other commands
11614          to interface to ddd.
11615
11616 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
11617
11618         * as/Makefile: fix target clean
11619         * as/clean.mk: fix target clean
11620         * as/z80/clean.mk: fix target clean
11621
11622 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
11623
11624         * Makefile.common.in: added  AT EXEEXT AT
11625         * configure.in: removed all mingw32 stuff
11626         * configure: rebuilt from configure.in
11627         * doc/sdccman.lyx: updated section "installation"
11628         * support/scripts/sdcc_mingw32: adapted to configure
11629         * support/scripts/sdcc_cygwin_mingw32: added
11630
11631 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
11632
11633         * src/pic Added object file support for the PIC port
11634         * src/pic Applied patch from Craig Franklin (this started the object file support)
11635         * src/regression Updated the PIC regression tests for object files
11636
11637 2003-04-20  Borut Razem <borut.razem AT siol.net>
11638
11639         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
11640           lklex.c: In function `getfid':
11641           lklex.c:203: warning: array subscript has type `char'
11642         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
11643           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
11644         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
11645           stack handling macros
11646
11647 2003-04-19  Borut Razem <borut.razem AT siol.net>
11648
11649         * "handling space characters in file path" task:
11650         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
11651         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
11652         * support/Util/MySystem.h: make it self-sufficient
11653         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
11654           src/z80/main.c, sdcc/as/mcs51/lklex.c:
11655           handling space characters in file path
11656         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
11657           (it will be used by assemblers, which have their own includes, e.g. gpasm)
11658         * support/Util/MySystem.c: handling space characters in executable's path
11659
11660 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
11661
11662         * as/z80/Makefile: fix permanent rebuild of z80
11663         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
11664         * support/regression/tests/bitfields.c: added Johan's bitfields.c
11665
11666 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
11667
11668         * src/SDCCopt.c: add special case optimization to replace modulo by
11669           a power of two with a bitwise AND.
11670
11671 2003-04-18    <johan AT balder>
11672
11673         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
11674
11675 2003-04-17    <johan AT balder>
11676
11677         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
11678         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
11679
11680 2003-04-13  Borut Razem <borut.razem AT siol.net>
11681
11682         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
11683         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
11684           fixed mingw problem in adl_NORMALIZE_PATH
11685
11686 2003-04-12  Borut Razem <borut.razem AT siol.net>
11687
11688         * fixed "#pragma SAVE/RESTORE can not be nested":
11689         * src/SDCC.lex: reworked pragma handling functions
11690         * sdcc/src/SDCCglobl.h: reworked stack handling macros
11691         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
11692
11693 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11694
11695         * src/SDCCutil.c (pathEquivalent): defined but not used
11696         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
11697         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
11698         * configure: rebuilt from configure.in
11699         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11700         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11701         * device/include/Makefile.in: replace sdcc_datadir
11702         * device/lib/Makefile.in: replace sdcc_datadir
11703         * Makefile.common.in: add LDFLAGS from configure
11704         * packihx/Makefile.in: use LDFLAGS
11705         * src/Makefile.in: use LDFLAGS
11706         * support/cpp2/Makefile.in: add LDFLAGS from configure
11707         * support/makebin/Makefile: use LDFLAGS
11708         * .version: bumped version number to 2.3.5
11709
11710 2003-04-12  Borut Razem <borut.razem AT siol.net>
11711
11712         * completed "different paths" task:
11713         * src/SDCCmacro.c: fixed bug in handling quotes
11714         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
11715         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
11716
11717 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11718
11719         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
11720
11721 2003-04-11 kevin Vigor <kevin AT vigor.nu>
11722
11723         * ds390/gen.c ds390/peeph.def: fix bug 706781
11724
11725 2003-04-11  Borut Razem <borut.razem AT siol.net>
11726
11727         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
11728
11729 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
11730
11731         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
11732         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
11733          set - this bit used to not be set...).
11734         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
11735           bad code in PIC Port
11736         * src/regression/and2.c added to test bug 609268
11737         * src/regression/Makefile added and2.c to regression test
11738
11739
11740 2003-04-08    <johan AT CP255758-A>
11741
11742         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
11743         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
11744         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
11745
11746 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
11747
11748         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
11749         fix bug #487815
11750         * support/cpp2/Makefile.in: fix bug #487815
11751         * configure: rebuilt from configure.in
11752         * Makefile.common.in: docdir changed, new path suffixes
11753         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11754         * sdcc_vc_in.h: reflect changes from sdccconf.h
11755         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
11756         * src/SDCCutil.h: remove BINDIR hack
11757         * doc/sdccman.lyx: update new path hierarchy
11758
11759 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11760
11761         * src/SDCCpeeph.c: added okToRemoveSLOC test
11762
11763 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11764
11765         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
11766
11767 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11768
11769         * src/SDCCpeeph.c: added labelIsReturnOnly test
11770         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
11771
11772 2003-04-05    <johan AT balder>
11773
11774         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
11775         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
11776         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
11777         * src/SDCCast.c: fixed a warning
11778         * src/SDCCast.h: fixed a warning
11779         * src/SDCCicode.c (operandFromAst): fixed a warning
11780
11781 2003-04-04    <johan AT balder>
11782
11783         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
11784         * src/SDCCast.c (decorateType): fixed bug #715076
11785         * src/SDCC.y: fixed bug #702907
11786
11787 2003-04-03    <johan AT balder>
11788
11789         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
11790         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
11791         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
11792         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
11793         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
11794
11795 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
11796
11797         * _decdptr.c: fix return values
11798         * _gptrget.c: fix return values
11799         * _gptrgetc.c: fix return values
11800         * _gptrput.c: fix return values
11801         * _mulint.c: fix return values
11802         * as/z80/Makefile: fix 'make -j' problem
11803
11804 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
11805
11806         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
11807         * configure.in: big cleanup, updated to autoconf 2.5x
11808         * configure: rebuilt from configure.in
11809         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11810         * sdcc_vc_in.h: reflect changes from sdccconf.h
11811         * doc/Makefile: fixed a flaw in "make install"
11812
11813 2003-04-02    <johan AT balder>
11814
11815         * src/ds390/gen.c (genCmp): no comments
11816         * src/mcs51/gen.c (genCmp): no comments
11817         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
11818         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
11819
11820 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
11821
11822         * support/regression/generate-cases.py: place generated file in given sub directory
11823         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
11824         * support/regression/Makefile: improvements for 'make -j';
11825         side effect: it's simpler and faster now
11826
11827 2003-03-31  Borut Razem <borut.razem AT siol.net>
11828
11829         * src/z80/main.c: link-{port} and as-{port} defined without path
11830         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
11831
11832 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
11833
11834         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
11835
11836 2003-03-30  Borut Razem <borut.razem AT siol.net>
11837
11838         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
11839           changed type of list parameter to set
11840         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
11841         * src/port.h: changed type of do_assemble() parameter to set
11842         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
11843           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
11844           definition of "cppoutfilename" macro with NULL value in preProcess()
11845         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
11846         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
11847         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
11848           replaced with set *binPathSet
11849         * shash_add() deallocates the item, if allready exsists, before adding the new one
11850         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
11851
11852 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
11853
11854         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
11855           a nested for loop bug in the PIC port
11856         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
11857           for loops
11858
11859 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
11860
11861         * support/Util/dbuf.h: remove C++ stuff to make it portable
11862
11863 2003-03-28  Borut Razem <borut.razem AT siol.net>
11864
11865         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
11866           literal strings in stringLiteral()
11867         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
11868         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
11869           to the project
11870
11871 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
11872
11873         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
11874
11875 2003-03-26    <johan AT balder>
11876
11877         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
11878         * src/ds390/gen.c (saveRegisters): catched symbol abuse
11879         * src/SDCCast.c (decorateType): fixed " -v < 3"
11880
11881 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
11882
11883         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
11884         Added Lenny Story's debug infrastructure changes:
11885         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
11886         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
11887         * src/cdbFile.c: added
11888         * src/SDCCdebug.c: added
11889         * src/SDCCdebug.h: added
11890         * src/SDCCast.c (createFunction)
11891         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
11892         * src/SDCCmain.c (parseCmdLine, main)
11893         * src/SDCCmem.c (redoStackOffsets)
11894         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
11895         * src/SDCCsymt.h
11896         * src/common.h
11897         * src/avr/gen.c (genAVRCode)
11898         * src/ds390/gen.c (gen390Code)
11899         * src/mcs51/gen.c (gen51Code)
11900         * src/pic/gen.c (genpic14Code)
11901         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
11902         * src/xa51/gen.c (genXA51Code)
11903         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
11904
11905 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11906
11907         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
11908         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
11909
11910 2003-03-22    <johan AT balder>
11911
11912         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
11913
11914 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
11915
11916         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
11917         * doc/cdbfileformat.lyx: added, written by Lenny Story
11918         * doc/Makefile: added cdbfileformat.lyx
11919         * doc/clean.mk: added cdbfileformat.lyx
11920
11921 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
11922
11923         * src/mcs51/peeph.def: fix bug #705773
11924
11925 2003-03-20    <johan AT balder>
11926
11927         An sfr/sbit can have an "at #" AND an initializer
11928         * src/SDCCsymt.c (checkSClass):
11929         * src/SDCCmem.c (allocGlobal):
11930         * src/SDCCmem.c (allocLocal):
11931         * src/SDCCast.c (createBlock):
11932
11933 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
11934
11935         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
11936
11937 2003-03-16    <johan AT balder>
11938
11939         Undid the hackup of const and volatile, the problem is much bigger
11940         * src/SDCC.y:1.65
11941         * src/SDCCast.c:1.171
11942         * src/SDCCglue.c:1.138
11943         * src/SDCCicode.c:1.146
11944         * src/SDCCsymt.c:1.150
11945         * src/SDCCval.c:1.65
11946
11947 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
11948
11949         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
11950         * src/ds390/gen.c (genAddrOf): fixed bug #704087
11951
11952 2003-03-13    <johan AT balder>
11953
11954         Hackup const and volatile modifiers in type chains a bit:
11955         * src/SDCC.y:1.63
11956         * src/SDCCast.c:1.169
11957         * src/SDCCglue.c:1.136
11958         * src/SDCCicode.c:1.143
11959         * src/SDCCsymt.c1.146
11960         * src/SDCCsymt.h1.59
11961         * src/SDCCval.c:1.63
11962
11963 2003-03-12    <johan AT balder>
11964
11965         * src/SDCCBBlock.h: more LRH debugging junk
11966         * src/SDCCcflow.h: more LRH debugging junk
11967         * src/SDCCloop.c: more LRH debugging junk
11968         * src/SDCC.y (struct_declaration): fixed bug #697590
11969         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
11970         * src/ds390/gen.c (aopForRemat): fixed bug #700031
11971         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
11972
11973 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11974         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
11975         test function names must now match exactly).
11976         * src/SDCCcse.c: added special case in findCheaperOp to allow
11977         extending a short integer. Makes less awful code for bug 700121 test case.
11978
11979 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11980
11981         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
11982         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
11983
11984 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11985
11986         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
11987         actually called (operandsNotEqual() was called for all
11988         operandsNotEqualX tests).
11989
11990 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11991
11992         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
11993         with shorter literals. Fixes bug 700121.
11994
11995 2003-03-11    <johan AT balder>
11996
11997         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
11998
11999 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
12000
12001         * src/SDCCloop.c (mergeRegions): an evil beast is dead
12002         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
12003
12004 2003-03-10  Borut Razem <borut.razem AT siol.net>
12005
12006         * src/SDCCmain.c: pipe preprocessor's output
12007         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12008         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12009         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12010         which closes all pipes in pipeSet set
12011         * src/SDCCset.c: free deleted item in function deleteSetItem()
12012         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12013         moved from z80 to src subproject
12014         * .version: increased version number to 2.3.4
12015
12016 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
12017
12018         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
12019         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
12020         * support/regression/ports/xa51/spec.mk: fix typo
12021
12022 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
12023
12024         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
12025
12026 2003-03-09  Borut Razem <borut.razem AT siol.net>
12027
12028         * src/SDCCmain.c: pipe preprocessor's output
12029         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12030         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12031         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12032         which closes all pipes in pipeSet set
12033         * src/SDCCset.c: free deleted item in function deleteSetItem()
12034         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12035         moved from z80 to src subproject
12036
12037 2003-03-09  Borut Razem <borut.razem AT siol.net>
12038
12039         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
12040         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
12041         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
12042         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
12043         * src/SDCCglobl.h: unification of WIN32 native definitions
12044
12045 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12046
12047         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
12048
12049 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12050
12051         * src/configure.in:   check for endianess (even while cross-compiling)
12052         * src/configure:      check for endianess (even while cross-compiling)
12053         * src/configure_in.h: check for endianess (even while cross-compiling)
12054         * src/avr/gen.c:        remove old endianess stuff
12055         * src/mcs51/gen.c:      remove old endianess stuff
12056         * src/ds390/gen.c:      remove old endianess stuff
12057         * src/pic/gen.c:        remove old endianess stuff
12058         * src/pic/genarith.c:   remove old endianess stuff
12059         * src/pic/glue.c:       fix endianess check
12060         * src/pic16/gen.c:      remove old endianess stuff
12061         * src/pic16/genarith.c: remove old endianess stuff
12062         * src/pic16/glue.c:     fix endianess check
12063         * src/xa51/gen.c:       remove old endianess stuff
12064         * src/z80/gen.c:        fix endianess check
12065         * src/SDCCglue.c:       fix endianess check
12066         * src/ds390/peeph.def: fix bug 700036
12067
12068 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12069
12070         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
12071         * src/configure: find appropriate data-types on host for SDCC's int and long
12072         * src/configure.in: find appropriate data-types on host for SDCC's int and long
12073         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
12074         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
12075
12076 2003-03-07    <johan AT balder>
12077
12078         Just a big NOOP:
12079                 some minor cleanups before the big shot
12080                 OP_DEFS and OP_USES now use Kevin's protection
12081                 new option --nolabelopt
12082
12083         * src/SDCCBBlock.c:
12084         * src/SDCCast.c,:
12085         * src/SDCCcflow.c:
12086         * src/SDCCcse.c:
12087         * src/SDCCicode.c:
12088         * src/SDCCicode.h:
12089         * src/SDCClabel.c:
12090         * src/SDCCloop.c:
12091         * src/SDCCmain.c:
12092         * src/ds390/ralloc.c:
12093         * src/mcs51/ralloc.c:
12094         * src/pic/ralloc.c:
12095         * src/xa51/ralloc.c:
12096         * src/z80/ralloc.c:
12097
12098 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
12099
12100         * src/pic/pcode.c (get_op): fix 64 bit warnings
12101         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
12102         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
12103         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
12104         * support/regression/tests/malloc.c: fix 64 bit warnings
12105
12106 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
12107
12108         * src/mcs51/gen.c (genMinus): fixed bug 696436
12109
12110 2003-03-02  Borut Razem <borut.razem AT siol.net>
12111
12112         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
12113
12114 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
12115
12116         * configure.in: test for mkstemp
12117         * sdccconf_in.h: add HAVE_MKSTEMP
12118
12119 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
12120
12121         * device/include/ctype.h: removed warning while using --stack-auto
12122         * device/include/malloc.h: removed warning while using --stack-auto
12123         * device/include/string.h: removed warning while using --stack-auto
12124
12125 2003-02-23  Borut Razem <borut.razem AT siol.net>
12126
12127         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
12128         because NDEBUG is defined (see man assert)
12129         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
12130
12131 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12132
12133         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
12134         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
12135
12136 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12137
12138         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
12139         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
12140
12141 2003-02-18    <johan AT balder>
12142
12143         * as/mcs51/asmain.c (asmbl): module can start with a digit
12144         * as/z80/asmain.c (asmbl): module can start with a digit
12145
12146 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
12147
12148         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
12149         * src/asm.c: fix pipe() for Mingw32
12150
12151 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
12152
12153         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
12154         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
12155         make -V work again; --c1mode reads now from stdin
12156         * doc/sdccman.lyx: added --c1mode
12157         * support/Util/SDCCerr.c: new messages for c1 mode
12158         * support/Util/SDCCerr.h: new messages for c1 mode
12159         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
12160
12161 2003-02-15    <johan AT balder>
12162
12163         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
12164
12165 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
12166
12167         * doc/sdccman.lyx: Environment variables, -o and other minor things
12168
12169 2003-02-14    <johan AT balder>
12170
12171         * src/xa51/main.c: before anyone really tries to use it :)
12172
12173         * Install doc's in share/sdcc/doc
12174         * removed some obsolete files
12175         * Do a proper make distclean and uninstall
12176         M Makefile.common.in
12177         R sdccbuild.sh
12178         M as/Makefile
12179         M device/include/Makefile.in
12180         M device/lib/Makefile.in
12181         M doc/sdccman.lyx
12182         M link/Makefile
12183         M sim/ucsim/doc/Makefile.in
12184         M src/clean.mk
12185         R src/avr/peeph.rul
12186         R src/xa51/peeph.rul
12187         M support/cpp2/Makefile.in
12188         M support/makebin/Makefile
12189
12190
12191 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
12192
12193         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
12194
12195 2003-02-10  Borut Razem <borut.razem AT siol.net>
12196
12197         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
12198         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
12199         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
12200         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
12201         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
12202         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
12203         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
12204         src/z80/Makefile.bcc: Borland Makefile cleanup
12205         * as/z80/Makefile.bcc: Added Borland Makefile
12206         * support/cpp2/borland.h: Removed
12207
12208 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
12209
12210         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
12211         * src/SDCC.lex: new pragma NOIV
12212         * src/SDCCglobl.h: new pragma NOIV
12213         * src/SDCCmem.c: new pragma NOIV
12214
12215 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12216
12217         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
12218
12219 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12220
12221         * src/SDCCmain.c: signal handling is switched off by --debug
12222         * doc/Makefile: small fix for install; use clean.mk again
12223         * doc/clean.mk: clean *.pdf and *.html too
12224
12225 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
12226
12227         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
12228         * device/lib/printfl.c: fix a ds390 bug by making it portable
12229         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
12230         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
12231         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
12232         * debugger/mcs51/cmd.c: converted multi-line string literals
12233         * sim/ucsim/globals.cc: converted multi-line string literals
12234         * src/SDCCmain.c: introduced signal handler to remove temp files
12235         * doc/Makefile: small tweaks, implement clean
12236         * doc: removed generated files
12237
12238 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12239
12240         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
12241         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
12242         Address Record is not correctly generated for DS390."
12243
12244 2003-02-02  Borut Razem <borut.razem AT siol.net>
12245
12246         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
12247         * as/mcs51/asm.h: fixed compilation with Borland C
12248         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
12249         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
12250         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
12251         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
12252         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
12253         src/z80/Makefile.bcc: delete $(LIB) only if exist
12254         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
12255
12256 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
12257
12258         * device/include/malloc.h: introduced NULL
12259         * device/include/string.h: introduced NULL
12260         * device/include/stdlib.h: introduced NULL
12261         * device/lib/_memcpy.c: removed NULL
12262         * device/lib/_strcat.c: removed NULL
12263         * device/lib/_strchr.c: removed NULL
12264         * device/lib/_strcmp.c: removed NULL
12265         * device/lib/_strcpy.c: removed NULL
12266         * device/lib/_strcspn.c: removed NULL
12267         * device/lib/_strlen.c: removed NULL
12268         * device/lib/_strncat.c: removed NULL
12269         * device/lib/_strncmp.c: removed NULL
12270         * device/lib/_strncpy.c: removed NULL
12271         * device/lib/_strpbrk.c: removed NULL
12272         * device/lib/_strrchr.c: removed NULL
12273         * device/lib/_strspn.c: removed NULL
12274         * device/lib/_strstr.c: removed NULL
12275         * device/lib/_strtok.c: removed NULL
12276         * device/lib/malloc.c: removed NULL, include own header
12277
12278 2003-02-02    <johan AT balder>
12279
12280         * 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
12281         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
12282         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
12283         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
12284         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
12285         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
12286
12287 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12288
12289         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
12290         area 'DATA'"
12291
12292 2003-02-01    <johan AT balder>
12293
12294         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
12295
12296 2003-01-31    <johan AT CP255758-A>
12297
12298         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
12299
12300 2003-01-30    <johan AT balder>
12301
12302         * src/SDCCBBlock.c: automatic bug detection
12303         * src/SDCCicode.c: automatic bug detection
12304
12305 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12306
12307         * src/SDCCglobl.h:   now --xram-size 0 works
12308         * src/SDCCmain.c:    now --xram-size 0 works
12309
12310 2003-01-29    <johan AT balder>
12311
12312         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
12313
12314 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12315
12316         * as/mcs51/aslink.h: Added options --xram-size and --code-size
12317         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
12318         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
12319         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
12320         * src/SDCCglobl.h:   Added options --xram-size and --code-size
12321         * src/SDCCmain.c:    Added options --xram-size and --code-size
12322
12323 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
12324
12325         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
12326         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
12327
12328 2003-01-27    <johan AT balder>
12329
12330         * src/SDCC.y: fixed bug #613764
12331
12332 2003-01-26    <johan AT balder>
12333
12334         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
12335         * src/SDCCsymt.h: fixed bug #673374
12336         * src/SDCCglue.c: fixed bug #661910
12337         * src/SDCCast.c: fixed bug #458099 and 673374
12338
12339 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
12340
12341         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
12342         * as/mcs51/strcmpi.h: added
12343         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
12344         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
12345         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
12346         * as/mcs51/assym.c: strcmpi -> as_strcmpi
12347         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
12348         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
12349         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
12350         * as/mcs51/Makefile.aslink: new module strcmpi
12351         * as/mcs51/Makefile.asx8051: new module strcmpi
12352         * as/mcs51/Makefil.bcc: new module strcmpi
12353         * as/mcs51/Makefile.in: new module strcmpi
12354         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
12355
12356 2003-01-26    <johan AT balder>
12357
12358         * src/SDCCglue.c: reverted back to 1.124
12359         * src/SDCCast.c: reverted back to 1.156
12360         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
12361
12362 2003-01-25    <johan AT balder>
12363
12364         * src/SDCCglue.c: A better fix for bug #661910
12365         * src/SDCCast.c: A better fix for bug #661910
12366         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
12367
12368 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12369
12370         * src/Makefile.in: remove spawn.o
12371         * src/SDCCmain.c: remove spawn.h
12372         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
12373         * src/spawn.c: removed
12374         * src/spawn.h: removed
12375         * support/regression/ports/ds390/spec.mk: link with -r
12376
12377 2003-01-24    <johan AT CP255758-A>
12378
12379         * src/ds390/gen.c (aopOp): fixed bug #667458
12380         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
12381         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
12382         (createIvalCharPtr): an ival doesn't always have a storage class anymore
12383
12384 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12385
12386         * src/mcs51/peeph.def: better assembler identation by Frieder
12387         * src/mcs51/gen.c: better assembler identation by Frieder
12388
12389 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
12390
12391         * as/z80/string.h: removed for gcc 3.2
12392         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
12393         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
12394
12395 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12396
12397         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
12398         * src/SDCCpeeph.c (replaceRule): fix bug #663503
12399         * support/regression/Makefile: separate temp files for ports
12400         * support/regression/generate-cases.py: separate temp files for ports
12401         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
12402         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
12403
12404 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12405
12406         * moved tinitalk to device/examples/ds390
12407
12408 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
12409
12410         * as/mcs51/lkmem.c: rflag is for DS390
12411         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
12412         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
12413                          (linkEdit): move mem- and map-files the same way as ihx-files
12414         * src/z80/main.c (_setDefaultOptions): removed --generic
12415         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
12416         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
12417         * src/pic/glue.c (picglue): --c1mode works again
12418         * src/pic16/glue.c (pic16glue): --c1mode works again
12419         * src/asm.c (printCLine): fix #660034
12420
12421 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
12422
12423         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
12424         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
12425         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
12426         * as/mcs51/lkmem (summary): better fix for sp problem
12427         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
12428         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
12429         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
12430                                               remove --stack-after-data
12431
12432 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
12433
12434         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
12435         * src/SDCCutil.c (join): ugly bug: missing '\0'
12436         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
12437
12438 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
12439
12440         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
12441         * src/port.h: typo
12442         * src/pic/main.c (_asmCmd): gpasm supports -o
12443         * src/z80/main.c: more general macros
12444         * device/lib/Makefile.in: remove intermediate files
12445
12446 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
12447
12448         * .version: Bumped version number to 2.3.3
12449         * src/SDCCBBlock.c: new option -o
12450         * src/SDCCglobl.h: new option -o
12451         * src/SDCCglue.c: new option -o
12452         * src/SDCCmain.c: new option -o
12453         * src/asm.c: new option -o
12454         * src/ds390/main.c: new option -o
12455         * src/pic/glue.c: new option -o
12456         * src/pic/pcode.c: new option -o
12457         * src/pic/ralloc.c: new option -o
12458         * src/pic16/glue.c: new option -o
12459         * src/pic16/pcode.c: new option -o
12460         * src/pic16/ralloc.c: new option -o
12461         * src/z80/main.c: new option -o
12462         * device/lib/Makefile.in: use -o
12463         * support/regression/ports/ds390/spec.mk: use -o
12464         * support/regression/ports/gbz80/spec.mk: use -o
12465         * support/regression/ports/mcs51/spec.mk: use -o
12466         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
12467         * support/regression/ports/z80/spec.mk: use -o
12468         * support/regression/ports/ucz80/spec.mk: use -o
12469         * support/regression/ports/xa51/spec.mk: use -o
12470         * support/regression/fwk/lib/timeout.c: fix usage string
12471
12472 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
12473         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
12474
12475 2003-01-07    <johan AT balder>
12476
12477         * src/SDCCast.c (decorateType): fixed bug #600035
12478
12479 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
12480         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
12481         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
12482         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
12483         * src/pic/pcode.c: outcommented unused variable to remove warnings
12484         * src/pic/ralloc.c: outcommented unused variable to remove warnings
12485
12486 2003-01-06    <karl AT turbobit.com>
12487         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
12488    regression tests.
12489
12490 2003-01-06    <johan AT balder>
12491
12492         * src/SDCCicode.c: fixed array add
12493
12494 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
12495         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
12496         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
12497
12498 2003-01-04    <johan AT balder>
12499
12500         * src/SDCCval.c (getNelements): fixed the initialized array of structures
12501
12502 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12503         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
12504
12505 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
12506         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
12507         * support/regression/tests/bug-524697.c: fit mem usage into 8032
12508
12509 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
12510         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
12511
12512 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
12513         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
12514
12515 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
12516         * src/mcs51/main.c: removed {bindir}{sep} from aslink
12517
12518 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12519
12520     * in /sdcc/as/mcs51/ changed these files in order to create an
12521     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
12522     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
12523     following files to include the previous two files: aslink.dsp,
12524     Makefile.aslink, Makefile.bcc, and Makefile.in.
12525
12526     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
12527     .adb instead of .cdb
12528
12529 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12530
12531         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
12532         value from option --iram-size.
12533
12534 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12535
12536         * /sdcc/as/mcs51/lklist.c: added boundary check before using
12537         dram[] array.
12538
12539 2002-09-18    <wiml AT hhhh.org>
12540
12541         * SDCClrange.h: exposed setFromRange() and setToRange()
12542         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
12543           packRegsForAccUse() (bug 542397)
12544         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
12545           multiple times and emitting the fetch operations more than once
12546           added aopGetUsesAcc() function to allow binary operators to
12547           fetch their operands in the correct order; made genMinus() emit
12548           compact code for X = LITERAL - Y
12549
12550 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12551         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
12552         sprintf() in line 1267.
12553
12554 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12555         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
12556         like ports.
12557
12558 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12559         Changes to aslink (All the changes are marked with 'JCF'):
12560
12561         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
12562         summary().
12563
12564         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
12565         area BSEG.  Also moves, if possible, the DATA area down into the internal
12566         ram so more space is available.
12567
12568         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
12569         sflag.
12570
12571         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
12572         not bytes.  Function summary() which creates a memory usage summary
12573         file with extension .mem.  Reports of overlaping stack and small stack
12574         size.  If the space for the stack is less than 16 bytes aslink trows a
12575         warning.
12576
12577         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
12578         the 8051.  Option 'y' for memory summary output file.
12579
12580         Changes to sdcc (All the changes are marked with 'JCF'):
12581
12582         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
12583
12584         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
12585         overlaying area for it (uses RegBankUsed[4]).
12586
12587         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
12588         bank zero as used by default.  By default aslink locates the stack
12589         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
12590         the creation of the .mem file.  Delegates the allocation of data area
12591         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
12592         the begining of the stack area to aslink.
12593
12594         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
12595         glue() in SDCCglue.c creates an area for it.
12596
12597 2002-09-03  Borut Razem <borut.razem AT siol.net>
12598         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
12599         sdcc/src/pic/glue.c:
12600         introduced atexit() handler for teporay files removal in case of
12601         errors, assertions, ...
12602
12603 2002-08-29  Borut Razem <borut.razem AT siol.net>
12604         * sdcc/support/cpp2/auto-host_vc_in.h:
12605         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
12606         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
12607         Maybe there is a similar problem with BORLANDC? It should be checked!
12608
12609         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
12610         corrected improper use of assert: the assignment to clr variable was done inside the assert.
12611         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
12612         was not executed, and the compiler (cl) launched a warning:
12613         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
12614
12615 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12616         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
12617
12618 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
12619         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
12620
12621         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12622           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
12623           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
12624           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12625           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
12626           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
12627           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
12628         - added Release configuration in VS projects
12629         - review of compiler an linker options
12630         - VC .exe files are generated in bin_vc directory, not to interfere
12631           with binaries generated from other projects (cygwin, mingw, bcc ...)
12632
12633         * sdcc/src/yacc.dsp: added
12634
12635         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
12636         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
12637         and insert the version number definitions from .version
12638
12639         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
12640
12641         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
12642         added - genarate auto-host.h using auto-host_vc_in.h as template
12643
12644         * sdcc/sdcc_vc.h,
12645         removed from CVS, generated automatically
12646
12647 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
12648         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
12649
12650 2002-08-11  Borut Razem <borut.razem AT siol.net>
12651         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
12652
12653 2002-08-10  Borut Razem <borut.razem AT siol.net>
12654         * src/SDCCmain.c (main):
12655         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
12656         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
12657         The consequence was that some temporary files were not removed.
12658
12659         * src/SDCCglue.c:
12660         unification of code in functions tempfilename() and tempfile():
12661         function tempnam() is defined in Visual Studio 6.0 and .NET
12662
12663         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
12664
12665         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12666           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
12667         - removed compiler command line option /WX: Treats all warnings as errors
12668         - update a list of source files, included into the project
12669
12670         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12671           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
12672         changed project type to Generic Project so that can be correcly converted to VS.NET project
12673
12674         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
12675
12676         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
12677
12678         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
12679
12680         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
12681         added return 0 statements after assert() to make compiler happy
12682
12683         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
12684         added newline in the def file to keep MSC compiler satisfied
12685
12686         * sdcc/src/z80/gen.c:
12687         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
12688           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
12689         - solved MSC error in function aopDump()
12690
12691         * sdcc_vc.h: define PREFIX as "\\sdcc"
12692
12693 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
12694         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
12695
12696 2002-06-22  Scott Dattalo <scott AT dattalo.com>
12697         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
12698         - Rewrote the register banking algorithm.
12699         - Added pCode live-range analysis to registers (for now, only non-used and
12700         singly-used registers optimized away)
12701
12702         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
12703
12704         * 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.
12705
12706 2002-05-10  Scott Dattalo <scott AT dattalo.com>
12707         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
12708
12709 2002-04-22  Michael Hope  <michaelh AT vroom>
12710
12711         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
12712
12713         * configure.in (DD_COPT): Added include support required for gbdk.
12714
12715         * .version: Bumped version number just to increase it.
12716
12717         * src/SDCCmain.c: Added -nostdinc to the default options.
12718
12719 2002-04-15  Michael Hope  <michaelh AT vroom>
12720
12721         * device/lib/z80/printf.c (sprintf): Added.
12722
12723         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
12724
12725         * src/z80/peeph.def: Added transpose redundent load rule.
12726
12727         * src/z80/main.c: Added force callee saves for jaune.
12728
12729         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
12730
12731         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
12732
12733 2002-03-28  Johan Knol  <johan AT balder>
12734
12735         * src/SDCCval.c: fixed bug #532436
12736
12737 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12738         * /src/port.h:
12739         Added "char *Processor" field to the port structure.
12740
12741         * /src/SDCCmain.c:
12742         Added -p option. Allows port dependent processor to be specified.
12743
12744         * all ports:
12745         Initialized the new field char *Processor field to NULL in all ports
12746
12747         * /src/pic/*:
12748         Compiler generated registers for interrupt context saving
12749         were not getting allocated.
12750
12751 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
12752
12753         * /src/SDCCast.c:
12754         Fixed left shift. Will promote the left side of a left shift
12755         if a) left shifting more than size of operand or b) when assigned
12756         to something size > size of left side
12757
12758 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12759         * src/pic/*
12760         tons of changes. Register allocation has been
12761         rewritten. Added customization for the various PICs. Flow
12762         analysis is restructured. ...
12763
12764         * src/pic/device.h:
12765         Added
12766
12767         * src/pic/device.c:
12768         Added. device.c is a PIC port hack to accomodate variations
12769         in PIC devices.
12770
12771 2002-03-13  Michael Hope  <michaelh AT vroom>
12772
12773         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
12774
12775 2002-03-04  johanknol  <johanknol AT manik>
12776
12777         * /src/SDCCval.c: fixed
12778
12779         const unsigned char arr[][2] = { { 0, 1 } };
12780         t18.c:1: error: Initializer element is not constant
12781
12782 2002-03-04  bela  <bela AT manik>
12783
12784         * /device/include/mcs51reg.h:
12785         ds89c420 register definition update
12786
12787 2002-03-03    <johan AT FRIJA>
12788
12789         * support/Util/SDCCerr.c: did something, but don't no why anymore
12790
12791         * support/regression/tests/bug-524691.c: made it a little less shy
12792
12793         * src/SDCCast.c (decorateType): fixed bug #524697
12794
12795         * src/SDCCast.c: made some lineno improvements
12796
12797         * src/SDCCval.c (getNelements): changed warning to error
12798
12799         * src/SDCCglue.c (printIvalArray): changed warning to error
12800
12801         * src/SDCCicode.c: fixed a warning for mingw
12802
12803         * src/SDCCast.c (decorateType): fixed the << promotion for ops
12804
12805         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
12806
12807 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
12808
12809         * src/ds390/peeph.def:
12810         Added some more peephole rules
12811
12812         * src/ds390/gen.c: Various fixes & enhancements
12813
12814         * src/SDCClrange.c, src/SDCClrange.h:
12815         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
12816
12817         * src/ds390/ralloc.c:
12818         various fixes & enhancements (ds390) specific
12819
12820         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
12821         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
12822         from rallocs.
12823
12824         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
12825
12826 2002-03-02    <johan AT FRIJA>
12827
12828         * src/SDCCast.c (decorateType): fixed bug #524708
12829
12830         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
12831
12832         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
12833
12834 2002-03-01  Michael Hope  <michaelh AT vroom>
12835
12836         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
12837
12838         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
12839
12840 2002-03-01    <johan AT FRIJA>
12841
12842         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
12843
12844         * src/SDCCast.c (decorateType): fixed bug #524209
12845
12846         * src/SDCCval.c (valNot): fixed bug #524195
12847
12848 2002-02-26    <johan AT balder>
12849
12850         * src/xa51/gen.c: fixed a warning
12851
12852         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
12853
12854         * src/SDCCast.c (decorateType): fixed bug #522534
12855
12856 2002-02-23    <johan AT balder>
12857
12858         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
12859
12860 2002-02-22    <johan AT balder>
12861
12862         * src/SDCCast.c: fixed bug #514865
12863
12864         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
12865
12866 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
12867
12868         * sdcc/src/SDCCloop.c:
12869         Previous fix was not good. basic blocks that have "break" or "return" are
12870         not really partof a loop , but live ranges used in these blocks should
12871         be live thru the entire loop, so set partOfLoop but don't add them to
12872         loop region
12873
12874 2002-02-21    <johan AT FRIJA>
12875
12876         * src/SDCCcse.c: fixed bug #514308
12877
12878 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
12879
12880         * src/SDCCloop.c:
12881         Fixed BUG #519583. If a conditional block ended in a return/break
12882         statement inside a loop, it was not being considered part of the loop.
12883
12884         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
12885
12886 2002-02-10  Karl Bongers <karl AT turbobit.com>
12887
12888         * debugger/*:
12889         Fixed up SDCDB debugger somewhat.  Updated debugger/README
12890         with lots of comments and notes.
12891
12892         * device/examples/test2.c:
12893         Fix bug, "red" variable not being initialized(compiler complained).
12894
12895         * device/examples/Makefile, examples/test3.c:
12896         Add Makefile in device/examples folder, compiles test3.c
12897         for use as a multiple module SDCDB test case.
12898
12899         * sim/ucsim/cmd.src/cmdset.cc:
12900         Took out debug printfs in ucsim "next" command.
12901
12902         * sim/ucsim/xa.src:
12903         Karl and Johan start ucsim XA support.  Most dissassembly working,
12904         about 75% emulation done(plenty of work remaining).
12905
12906         * sim/ucsim/z80.src:
12907         Add Z80 support to ucsim, add test-ucz80 regression test,
12908         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
12909         Notice z80 compiler fails on examples/test3.c/crc code.
12910
12911 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
12912
12913         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
12914         Added support for --parms-in-bank1
12915
12916         * src/ds390/peeph.def:
12917         added a few more peephole optimzations
12918
12919         * src/ds390/main.c:
12920         1) added __builtin_inp & __builtin_outp used to read in data of given length
12921            from a memory mapped port
12922         2) added __builtin_memcmp
12923         3) added __builtin_swapw swap bytes of a short
12924
12925         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
12926         1) handle multiple send & receives from register bank1
12927         2) ralloc can now allocate DPTR1 to some liveRanges
12928
12929         * src/SDCCsymt.c, src/SDCCsymt.h:
12930         changes to handle multiple sends & receives
12931
12932         * src/SDCCptropt.h:
12933         added some pointer arithmetic optimization
12934
12935         * src/SDCCptropt.c:
12936         added some pointer arithmetic optimizations but not stable yet so not
12937         called from anywhere (will get this working shortly)
12938
12939         * src/SDCCopt.c: fixed for multiple sends & receives
12940
12941         * src/SDCCmain.c:
12942         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
12943         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
12944            set preprocessor defines (depending on options)
12945
12946         * src/SDCCicode.c, src/SDCCicode.h:
12947         changes made to handle multiple sends & receives
12948
12949         * src/SDCCglobl.h:
12950         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
12951
12952         * src/SDCCcse.c, src/SDCCcse.h:
12953         added function findbackward def (to be used in upcoming optimization)
12954
12955         * src/SDCCcflow.c, src/SDCCcflow.h:
12956         added function returnAtEnd - to determine if a basic block terminates with
12957         a RETURN iCode
12958
12959         * src/SDCCast.c, src/SDCCast.h:
12960         added option parms-in-bank1
12961
12962         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
12963         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
12964         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
12965         adjusted for --parms-in-bank1 option
12966
12967         * device/include/string.h:
12968         donot redefine "reentrant" keyword
12969
12970         * device/include/ds80c390.h: Added some more SFRs
12971
12972 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
12973
12974         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
12975
12976 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
12977
12978         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
12979
12980 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
12981
12982         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
12983
12984 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
12985
12986         * Added --xram-movc option
12987
12988 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
12989
12990         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
12991
12992 2002-01-11  Johan Knol
12993
12994         * Added math lib of Jesus Calvino-Fraga
12995
12996 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
12997
12998         * src/SDCCmain.c (processFile): fix processing of ../../src.c
12999         * support/regression/Makefile: new target test-mcs51-stack-auto
13000         * support/regression/ports/mcs51-stack-auto/spec.mk: added
13001
13002 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13003
13004         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
13005
13006 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13007
13008         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
13009
13010 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
13011
13012         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
13013
13014         * src/SDCCglue.h: add definition for printIvalChar()
13015
13016 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13017
13018         * src/SDCCast.c: fix #498138 by Johan
13019
13020         * src/SDCCglue.c: fix #498138 by Johan
13021
13022 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13023
13024         * support/regression/Makefile: fix clean
13025
13026         * support/regression/ports/ds390/support.c: fix transmission of last character
13027
13028 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
13029
13030         * /sdcc/src/ds390/gen.c:
13031         a) improved computing address of stack variable
13032         b) took out some #if 0 code
13033         c) improved parmBytes adjustment
13034         d) improved genPlusIncr & genMinusIncr
13035         e) genCmp could generate bad code (when left assigned to DPTR)
13036         f) Fixed bug in hasInc
13037
13038         * /sdcc/src/ds390/ralloc.c:
13039         a) packRegsForSupport could mess up live information (Fixed)
13040         b) packRegsDPTRuse could be incorrect for left & right shift
13041
13042         * /sdcc/src/mcs51/ralloc.c:
13043         packRegsForSupport could mess up the live information (Fixed)
13044
13045         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
13046
13047         * /sdcc/src/SDCCast.c:
13048         can reverse a loop even if function call is present as long
13049         as the loop control variable is local & is not passed as parameter
13050
13051 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13052
13053         * /sdcc/ChangeLog: *** empty log message ***
13054
13055         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
13056         More builtin function additions for TININative
13057
13058         * /sdcc/src/ds390/ralloc.c:
13059         Had broken the regression testsuite
13060
13061         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
13062
13063         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
13064         Added funcattr hasStackParms will be set for reentrant functions when there
13065         are paramteres on the stack, this helps in minimizing frame pointer generation
13066         typeFromStr can handle function pointers now
13067
13068         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
13069         *** empty log message ***
13070
13071 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13072
13073         * /src/ds390/gen.c, /src/ds390/main.c:
13074         More builtin function additions for TININative
13075
13076         * /src/ds390/ralloc.c:
13077         Had broken the regression testsuite
13078
13079         * /src/SDCCast.c: Fixed a bug in dumptree
13080
13081         * /src/SDCCsymt.c, /src/SDCCsymt.h:
13082         Added funcattr hasStackParms will be set for reentrant functions when there
13083         are paramteres on the stack, this helps in minimizing frame pointer generation
13084         typeFromStr can handle function pointers now
13085
13086         * /doc/builtins.txt, /doc/TININative.txt:
13087         *** empty log message ***
13088
13089
13090 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13091
13092         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
13093         ALPHA version for -mTININative
13094
13095         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
13096         updated to reflect changes in the port structure
13097
13098         * /src/port.h:
13099         added function do_assemble (similar to do_link) if non-null this function
13100         will be called to do assembly (-mTININative) requires a multi command
13101         assembly
13102         added function genAssemblerEnd will be called to generate assembler Epilogue
13103
13104         * /src/SDCCsymt.c:
13105         added _JavaNative to debug info printing
13106
13107         * /src/SDCCmain.c: added option --tini-libid
13108         added port->do_assemble function (-mTININative) has a multi command assemble
13109
13110         * /src/SDCCglue.c: Disabled "constExpr" check
13111         added port->genAssemblerEnd function
13112
13113         * /src/SDCCglobl.h: Added option --tini-libid value
13114
13115         * /src/SDCCast.h:
13116         tookout optimizeCompare from the header (has no external references)
13117
13118         * /src/SDCCast.c: made one more function "static"
13119
13120 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
13121
13122         * src/z80/mappings.i: Added z80asm support.
13123
13124         * src/z80/main.c: Added z80asm support on --asm=z80asm
13125
13126         * src/z80/gen.c: Fixed asm portability issues.
13127
13128         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
13129
13130         * src/SDCCglue.c (printExterns): Added global/extern split.
13131
13132 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
13133
13134         * support/regression/Makefile: added test for mcs51 model large
13135
13136         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
13137
13138         * support/regression/ports/gbz80/spec.mk: added -mgbz80
13139
13140 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
13141
13142         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
13143
13144 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
13145
13146         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
13147
13148         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
13149
13150 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
13151
13152         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
13153
13154         * support/regression/tests/simplefloat.c: Port to mcs51.
13155
13156 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
13157         * support/regression/tests/bug-485362.c: Added.
13158
13159         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
13160
13161         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
13162
13163         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
13164
13165         * src/z80/gen.c (aopDump): Added a dump function.
13166
13167 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
13168         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
13169
13170         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
13171
13172         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
13173
13174         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
13175
13176         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
13177
13178         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
13179
13180         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
13181
13182         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
13183
13184         * support/regression/ports/ds390/support.c: Use tinibios.
13185
13186         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
13187
13188 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
13189
13190         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
13191         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
13192
13193         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
13194
13195         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
13196
13197 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
13198
13199         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
13200
13201         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
13202         (packRegsForIYUse): Created and optimised.
13203
13204 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13205
13206         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
13207 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
13208
13209         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
13210
13211         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
13212
13213         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
13214
13215 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13216
13217         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
13218
13219         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
13220
13221 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13222
13223         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
13224
13225         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
13226
13227         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
13228
13229 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13230
13231         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
13232         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
13233         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
13234
13235         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
13236
13237         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
13238         (genNotFloat): Added.
13239         (genUminusFloat): Added.
13240
13241         * device/lib/z80/Makefile: Added floating pt stubs.
13242
13243         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
13244
13245         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
13246
13247         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
13248
13249 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13250
13251         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
13252
13253         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
13254
13255         * sdcc/support/regression/Makefile: Add port ds390.
13256
13257         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
13258
13259         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
13260
13261         * sdcc/support/regression/ports/ds390/spec.mk: Added.
13262
13263         * sdcc/support/regression/ports/ds390/support.c: Added.
13264
13265         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
13266
13267         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
13268
13269         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
13270
13271 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13272
13273         * device/include/malloc.h: Added z80 and gbz80 support.
13274
13275         * device/lib/gbz80/heap.s: Added.
13276
13277         * device/lib/z80/heap.s: Added.
13278
13279         * device/lib/malloc.c: Added z80 and gbz80 support.
13280
13281         * support/regression/tests/malloc.c (testMalloc): Added.
13282
13283         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
13284
13285         * support/regression/tests/bug-478094.c: Added.
13286
13287         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
13288
13289 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
13290
13291         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
13292
13293         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
13294
13295         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
13296
13297         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
13298
13299         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
13300
13301 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13302
13303         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
13304
13305 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
13306
13307         * support/regression/tests/bug-477927.c: Added.
13308
13309         * src/z80/peeph.def: Added minor rules.
13310
13311         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
13312
13313         * src/z80/peeph.def: Added jump optimisation modification.
13314
13315 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
13316
13317         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
13318
13319 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
13320
13321         * support/regression/tests/funptrs.c: Added.
13322
13323 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
13324
13325         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
13326
13327 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
13328
13329         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
13330
13331         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
13332
13333         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
13334         (movLeft2ResultLong): Created.
13335
13336         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
13337         (joinPushes): Added.  Joins two char pushes into a word push.
13338
13339 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
13340
13341         * support/cpp2/Makefile.in (install): Added creation of dest dir.
13342
13343         * support/makebin/Makefile (install): Added creation of dest dir.
13344
13345 2001-10-24 Karl Bongers <karl AT turbobit.com>
13346
13347         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
13348
13349 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
13350
13351         * src/z80/ralloc.c: Turned off faulty pack for one use.
13352
13353         * src/z80/peeph-gbz80.def: Removed redundent restart options.
13354
13355         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
13356
13357 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
13358
13359         * support/regression/Makefile: Improved clean
13360
13361         * support/regression/ports/gbz80/spec.mk: Added clean
13362
13363         * support/regression/ports/host/spec.mk: Added clean
13364
13365         * support/regression/ports/z80/spec.mk: Added clean
13366
13367         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
13368
13369         * support/regression/ports/mcs51/timeout.c: little improvements
13370
13371 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
13372
13373         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
13374
13375         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
13376
13377         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
13378
13379 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
13380
13381         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
13382
13383         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
13384
13385 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
13386         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
13387
13388         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
13389
13390         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
13391
13392         * src/mcs51/main.c (_linkCmd): Added bin path to command.
13393
13394         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
13395
13396         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
13397
13398         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
13399
13400         * support/regression/tests/longor.c: Added.
13401
13402 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
13403
13404         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
13405
13406         * as/mcs51/aslink.h: define PATH_MAX
13407
13408         * as/mcs51/asm.h: define PATH_MAX
13409
13410         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
13411
13412         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
13413
13414         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
13415
13416         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
13417
13418         * src/SDCCglobl.h: define PATH_MAX
13419
13420         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
13421
13422         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
13423
13424 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
13425
13426         * src/z80/gen.c (gencjneshort): Fixed
13427
13428         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
13429
13430 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
13431
13432         * support/regression/tests/bug-469671.c: Added.
13433
13434         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
13435
13436 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
13437
13438         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
13439
13440         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
13441
13442 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
13443
13444         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
13445
13446         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
13447
13448         * src/device/lib/_mullong.c : removed hint: nooverlay bug
13449
13450         * src/device/lib/_divuint.c : removed hint: nooverlay bug
13451
13452         * src/device/lib/_divulong.c: removed hint: nooverlay bug
13453
13454         * src/device/lib/_moduint.c : removed hint: nooverlay bug
13455
13456         * src/device/lib/_modulong.c: removed hint: nooverlay bug
13457
13458 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
13459
13460         * 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.
13461
13462         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
13463
13464         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
13465
13466 2001-10-07    <johan AT FRIJA>
13467
13468         * device/lib/gets.c (gets): fixed the return value.
13469
13470 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
13471         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
13472
13473         * 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.
13474
13475         * 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.
13476
13477         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
13478
13479         * src/pic/gen.c: Removed Safe_strdup.
13480
13481         * configure.in: Added option to enable libgc support.
13482
13483         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
13484         (bitVectUnion): Optimised.
13485         (bitVectIntersect): Optimised.
13486         (bitVectBitsInCommon): Optimised.
13487         (bitVectCplAnd): Optimised.
13488
13489         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
13490
13491 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13492
13493         * src/SDCCmain.c: distinguish between assembler debug and plain options
13494
13495         * src/avr/main.c:   remove standard assembler options
13496
13497         * src/ds390/main.c: remove standard assembler options
13498
13499         * src/mcs51/main.c: remove standard assembler options
13500
13501         * src/port.h: removed "PENDING" comment
13502
13503 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13504
13505         * src/device/lib/_mulint.c  : new, with assember functions
13506
13507         * src/device/lib/_mullong.c : new, with assember functions
13508
13509         * src/device/lib/_divuint.c : with assember functions
13510
13511         * src/device/lib/_divsint.c : with assember functions
13512
13513         * src/device/lib/_divulong.c: with assember functions
13514
13515         * src/device/lib/_divslong.c: with assember functions
13516
13517         * src/device/lib/_moduint.c : with assember functions
13518
13519         * src/device/lib/_modsint.c : with assember functions
13520
13521         * src/device/lib/_modulong.c: with assember functions
13522
13523         * src/device/lib/_modslong.c: with assember functions
13524
13525         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
13526
13527         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
13528
13529         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
13530                                       replaced _mululong.c and _mulslong.c by _mullong.c
13531
13532 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13533
13534         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
13535
13536 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
13537
13538         * src/SDCCglue.c: test, if win32api is available for MINGW
13539
13540 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
13541
13542         * src/SDCCsymt.c: no more _modifier in printTypeChain()
13543         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
13544         * support/regression/ports/gbz80/spec.mk: removed GENERIC
13545         * support/regression/ports/host/spec.mk: removed GENERIC
13546         * support/regression/ports/mcs51/spec.mk: removed GENERIC
13547         * support/regression/ports/z80/spec.mk: removed GENERIC
13548
13549 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
13550
13551         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
13552
13553         * support/regression/tests/bug-467035.c: Created.
13554
13555 2001-10-01    <johan AT FRIJA>
13556
13557         * src/SDCC.y: fixed bug #466586 part 1
13558
13559 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
13560
13561         * SDCCicode.c: z80 has no generic pointers
13562         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
13563
13564 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
13565
13566         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
13567
13568 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
13569
13570         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
13571
13572         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
13573
13574 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
13575
13576         * configure.in: Fixed up so that ucsim is only configured once.
13577
13578         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
13579
13580         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
13581         (getPathDifference): As above.
13582
13583         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
13584
13585         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
13586
13587 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
13588         * .version: Updated to 2.3.1
13589
13590         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
13591         Added copyright header.
13592
13593         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
13594         (assemble): Added support for macro based assembler commands.
13595         (linkEdit): Added support for macro based linker commands.
13596         (preProcess): Changed the pre-processor to use macros.
13597         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
13598         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
13599
13600         * device/lib/z80/crt0.s: Added module name for debugging.
13601
13602 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
13603
13604         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
13605
13606         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
13607
13608         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
13609
13610         * src/Makefile.in: Added SDCCmacro and SDCCutil
13611
13612 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
13613
13614         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
13615
13616 2001-09-16    <johan AT FRIJA>
13617
13618         * 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.
13619
13620 2001-09-15    <johan AT FRIJA>
13621
13622         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
13623         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
13624
13625 2001-09-11    <johan AT FRIJA>
13626
13627         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
13628
13629 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
13630
13631         * support/regression/tests/bug-460444.c: Added test case.
13632
13633         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
13634         (genCast): Added justification for all of the asserts.
13635
13636 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
13637
13638         * support/regression/support.c: _xdata replaced by xdata
13639
13640         * support/regression/spec.mk: removed _generic
13641
13642 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
13643
13644         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
13645
13646         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
13647         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
13648
13649         * src/z80/peeph.def: Added a rule to optimise shift then compare.
13650
13651         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
13652
13653         * support/regression/tests/bug-460010.c: Added test case.
13654
13655         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
13656
13657 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
13658
13659         * support/regression/Makefile: inter-port-clean adjusted for mcs51
13660
13661         * support/regression/testfwk.c: removed workaround for bug #436344
13662
13663         * support/regression/tests/bp.c: use less memory with mcs51
13664
13665         * support/regression/tests/bug-441448.c: use less memory
13666
13667         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
13668
13669         * support/regression/collate-results.py: typo
13670
13671 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
13672
13673         * support/regression/tests/fetchoverlap.c: Added new test case.
13674
13675         * support/regression/tests/bp.c: Added new test case.
13676
13677         * support/regression/tests/bug-448984.c: Added new test case.
13678
13679         * support/regression/tests/pow2shifts.c: Added new test case.
13680
13681         * src/z80/gen.c: Turned off the noise it normally generates for the release.
13682         (genlshTwo): Fixed right shift for count > 8.
13683
13684         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
13685
13686 2001-09-08    <johan AT FRIJA>
13687
13688         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
13689
13690 2001-09-07    <johan AT FRIJA>
13691
13692         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
13693
13694         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
13695
13696 2001-09-06    <johan AT FRIJA>
13697
13698         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
13699         * bernhard noted me at this: "() equals to (void)" (1.38)
13700
13701 2001-09-05    <johan AT FRIJA>
13702
13703         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
13704
13705 2001-09-04    <johan AT FRIJA>
13706
13707         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
13708
13709
13710 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
13711
13712         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
13713
13714 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
13715
13716         * link/z80/aslink.h: Fixed path for PATH_MAX
13717
13718 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
13719
13720         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
13721
13722         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
13723
13724         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
13725
13726         * 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.
13727
13728 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
13729
13730         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
13731         (genCmp): Fixed up genCmp for the GB with longs.
13732
13733         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
13734
13735         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
13736
13737         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
13738
13739         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
13740
13741 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
13742
13743         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
13744
13745 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
13746
13747         * 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.
13748
13749         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
13750
13751 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
13752
13753         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
13754
13755         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
13756
13757 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
13758
13759   * sim/ucsim/configure:    little improvement of Cygwin-detection
13760   * sim/ucsim/configure.in: little improvement of Cygwin-detection
13761   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
13762   * support/regression/tests/bug-221100.c: small changes for mcs51
13763   * support/regression/tests/bug-221168.c: small changes for mcs51
13764   * support/regression/tests/bug-227710.c: small changes for mcs51
13765   * support/regression/tests/staticinit.c: small changes for mcs51
13766   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
13767   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13768   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13769
13770 $Revision$