added printf benchmarks to manual
[fw/sdcc] / ChangeLog
1 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2
3         * doc/sdccman.lyx: add printf benchmarks
4
5 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
6
7         * device/lib/printf_fast.c: fix %c, char promoted to int
8         * device/lib/printf_tiny.c: fix %c, char promoted to int
9
10 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
11
12         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
13
14 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15
16         * support/regression/tests/swap.c: 64 bit hosts failed
17         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
18
19 2007-01-25 Raphael Neider <rneider AT web.de>
20
21         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
22           based on absolute register address, patch by Alex Blond
23
24 2007-01-22 Raphael Neider <rneider AT web.de>
25
26         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
27           emitted, do not emit them again...
28
29 2007-01-22 Raphael Neider <rneider AT web.de>
30
31         * src/regression/bank1.c, src/regression/compare6.c,
32           src/regression/add.c: cosmetic changes
33         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
34         * src/pic/gen.c: fixed global zero and one,
35           (aopForSym): removed unued code,
36           (aopGet): assert aop is defined, check and use `index' of
37             pCodeImmd operands (fixes #1630908),
38         * src/pic/pcode.c (get_op): added output of generic pointer tag,
39           (register_reassign): prevent accidental register unification,
40           (ReuseReg): cosmetic changes (also above)
41         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
42           pic14emitStaticSeg): do not emit initialized data,
43           (printIval*): replaced with working versions,
44           (pic14createInterruptVect,picglue): use idata for initialized data,
45             now init data should work in all modules (not only main()),
46         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
47
48 2007-01-21 Borut Razem <borut.razem AT siol.net>
49
50         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
51           use -fPIC or -fpic if they are supported and not ignored
52         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
53         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
54
55 2007-01-20 Borut Razem <borut.razem AT siol.net>
56
57         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
58           implemented RFE #1470316: allow "$" in variable names
59
60 2007-01-20 Raphael Neider <rneider AT web.de>
61
62         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
63
64 2007-01-20 Raphael Neider <rneider AT web.de>
65
66         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
67         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
68         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
69         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
70           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
71         * device/lib/pic/libdev/pic*.c,
72         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
73         * device/lib/pic/libdev/Makefile.in: show progress
74
75 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
76
77         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
78         * support/scripts/sdcc_cygwin_mingw32,
79         * support/scripts/sdcc_mingw32,
80         * support/scripts/build.mak: replaced --datadir by --datarootdir for
81         conformance with autoconf 2.6
82
83 2007-01-19 Raphael Neider <rneider AT web.de>
84
85         * src/pic/device.c (register_map): fixed list construction
86         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
87           (genMod): removed case for genModbits,
88           (genModbits): removed as now unused/unimplemented
89         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
90
91 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
92
93         * support/regression/tests/swap.c: added in response to #1638622
94         * doc/sdccman.lyx: synced version, minor changes
95
96 2007-01-18 Borut Razem <borut.razem AT siol.net>
97
98         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
99           thanks to Gunther Jehle
100         * src/asm.c: don't die if the file drfined in #line couldn't be opened
101         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
102           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
103           use filename in lineno instead.
104         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
105           print the file name in ast_print()
106
107 2007-01-18 Borut Razem <borut.razem AT siol.net>
108
109         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
110           defined in MSVC
111         * src/SDCC.lex: stringLiteral() returns const char pointer,
112           EOF detection in stringLiteral(), fixed asmbuf memory leak,
113           fixed column counting
114         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
115           accept const char pointer as parameter
116         * src/SDCCdwarf2.c: corrected buffer size
117
118 2007-01-17 Borut Razem <borut.razem AT siol.net>
119
120         * support/Util/dbuf_string.c: fixed for amd64
121
122 2007-01-15 Borut Razem <borut.razem AT siol.net>
123
124         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
125           removed terminal symbol ELIPSIS, since it was never generated by the
126           lexer and it was wrongly used in parameter_identifier_list rule
127
128 2007-01-15 Raphael Neider <rneider AT web.de>
129
130         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
131             code page and data banking description
132         * src/pic/genarith.c,
133         * src/pic/gen.h: removed bit arithmetic functions,
134             updated exit(1) to exit(EXIT_FAILURE)
135         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
136         * device/include/pic16/pic18f2455.h,
137         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
138             TRISD and TRISE, fixed/added some bit names
139         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
140         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
141             updated pic18f2455.{c,h} instead of duplicating them
142
143 2007-01-14 Borut Razem <borut.razem AT siol.net>
144
145         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
146           Cannot debug files that contain spaces in the path name
147           by converting spaces in asm file name to underscores
148
149 2007-01-13 Borut Razem <borut.razem AT siol.net>
150
151         * doc/sdccman.lyx: fixed format errors
152
153 2007-01-10 Borut Razem <borut.razem AT siol.net>
154
155         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
156           codeseg/constseg #pragma fail
157         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
158         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
159           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
160           suppoprt/cpp2/sdcpp.[ch]: house cleaning
161
162 2007-01-09 Borut Razem <borut.razem AT siol.net>
163
164         * get rid of diagnistic.[ch], pretty-print.[ch],
165           c-pretty-print.[ch], ... used just for error, warning, ...
166           message formatting
167         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
168           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
169           suppoprt/cpp2/pretty-print.[ch]:
170           removed
171         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
172           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
173           suppoprt/cpp2/sdcpp.dsp:
174           changed
175
176 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
177
178         * device/lib/printf_large.c (output_float): removed recursion,
179           use smaller buffer on stack for mcs51,
180           fixed bug printing 1.96
181         * support/regression/tests/snprintf.c: added test
182
183 2007-01-07 Borut Razem <borut.razem AT siol.net>
184
185         * use dynamic memory buffers instead temporary files
186         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
187           added
188         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
189           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
190           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
191           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
192           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
193           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
194           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
195           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
196           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
197           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
198           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
199           support/Util/dbuf.c, support/Util/dbuf.h:
200           modified
201         * .version, sdcc.spec: bumped version to 2.6.4
202
203 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
204
205         * src/port.h: added TARGET_Z80_LIKE macro
206         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
207           output PSEG location if --xram-loc or --xstack-loc was used
208         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
209
210 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
211
212         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
213         * as/as_z80.dsp,   as/z80/as_z80.dsp,
214         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
215         * sdcc.dsw: moved project files into subdir
216         * as/hc08/as_hc08.dsp,
217         * as/hc08/Makefile.bcc,
218         * as/hc08/Makefile.in,
219         * as/mcs51/Makefile.bcc,
220         * as/mcs51/Makefile.in,
221         * as/z80/Makefile.bcc,
222         * as/z80/Makefile.in,
223         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
224         * as/hc08/asm.h,
225         * as/mcs51/asm.h,
226         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
227         * as/hc08/asmain.c,
228         * as/hc08/assym.c,
229         * as/mcs51/asmain.c,
230         * as/mcs51/assym.c,
231         * as/z80/assym.c: removed include "strcmpi.h"
232         * as/hc08/strcmpi.c,
233         * as/hc08/strcmpi.h,
234         * as/mcs51/strcmpi.c,
235         * as/mcs51/strcmpi.h,
236         * support/Util/strcmpi.c,
237         * support/Util/strcmpi.h: removed files
238         * as/strcmpi.c: added as_strncmpi()
239
240 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
241
242         * sdcc.dsw: Added some dependencies on project config.dsp
243
244 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
245
246         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
247           with [di]ram_start to fix a regresion
248
249 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
250
251         * configure.in: added missing mcs51 in status output
252         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
253         directory
254         * debugger/mcs51/clean.mk (distclean): remove config.h
255         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
256         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
257         options.h, s-options-h and options.c
258         * support/cpp2/clean.mk: unused, removed
259         * Makefile.common.in,
260         * main_in.mk,
261         * as/Makefile.in,
262         * as/hc08/Makefile.in,
263         * as/hc08/clean.mk,
264         * as/mcs51/Makefile.in,
265         * as/mcs51/clean.mk,
266         * as/z80/clean.mk,
267         * as/z80/conf.mk,
268         * as/z80/Makefile.in,
269         * as/z80/clean.mk,
270         * as/link/Makefile.in,
271         * as/link/hc08/Makefile.in,
272         * as/link/hc08/clean.mk,
273         * as/link/mcs51/Makefile.in,
274         * as/link/mcs51/clean.mk,
275         * as/link/z80/Makefile.in,
276         * as/link/z80/clean.mk,
277         * as/link/z80/conf.mk,
278         * debugger/mcs51/Makefile.in,
279         * debugger/mcs51/clean.mk,
280         * device/include/Makefile.in,
281         * device/lib/Makefile.in,
282         * device/lib/mcs51/Makefile.in,
283         * device/lib/pic/Makefile.in,
284         * device/lib/pic/Makefile.common.in,
285         * device/lib/pic/Makefile.subdir,
286         * device/lib/pic/Makefile.rules,
287         * device/lib/pic16/libio/Makefile.in,
288         * device/lib/pic16/Makefile.subdir,
289         * device/lib/pic16/libdev/Makefile.in,
290         * device/lib/pic16/Makefile.rules,
291         * device/lib/pic16/Makefile.common.in,
292         * sim/ucsim/avr.src/Makefile.in,
293         * sim/ucsim/main_in.mk,
294         * sim/ucsim/cmd.src/Makefile.in,
295         * sim/ucsim/doc/Makefile.in,
296         * sim/ucsim/gui.src/Makefile.in,
297         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
298         * sim/ucsim/gui.src/serio.src/Makefile.in,
299         * sim/ucsim/hc08.src/Makefile.in,
300         * sim/ucsim/libltdl/Makefile.in,
301         * sim/ucsim/s51.src/Makefile.in,
302         * sim/ucsim/sim.src/Makefile.in,
303         * sim/ucsim/sim.src/conf.mk,
304         * sim/ucsim/xa.src/Makefile.in,
305         * sim/ucsim/z80.src/Makefile.in,
306         * src/Makefile.in,
307         * src/clean.mk,
308         * src/port.mk,
309         * support/cpp2/Makefile.in,
310         * support/librarian/Makefile.in,
311         * support/librarian/clean.mk,
312         * support/makebin/Makefile.in,
313         * support/makebin/clean.mk,
314         * support/packihx/Makefile.in,
315         * support/regression/Makefile.in,
316         * support/regression/ports/ds390/spec.mk,
317         * support/regression/ports/gbz80/spec.mk,
318         * support/regression/ports/hc08/spec.mk,
319         * support/regression/ports/mcs51/spec.mk,
320         * support/regression/ports/mcs51-large/spec.mk,
321         * support/regression/ports/mcs51-medium/spec.mk,
322         * support/regression/ports/mcs51-xstack-auto/spec.mk,
323         * support/regression/ports/pic14/spec.mk,
324         * support/regression/ports/pic16/spec.mk,
325         * support/regression/ports/mcs51-stack-auto/spec.mk,
326         * support/regression/ports/ucz80/spec.mk,
327         * support/regression/ports/xa51/spec.mk,
328         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
329         adding a slash after $(top_builddir) and/or adding @datarootdir@
330         * configure.in,
331         * debugger/mcs51/configure.in,
332         * device/lib/pic/configure.in,
333         * device/lib/pic16/configure.in,
334         * sim/ucsim/configure.in,
335         * support/cpp2/configure.in,
336         * support/packihx/configure.in: changed AC_PREREQ to 2.60
337         * configure,
338         * debugger/mcs51/configure,
339         * device/lib/pic/configure,
340         * device/lib/pic16/configure,
341         * sim/ucsim/configure,
342         * support/cpp2/configure,
343         * support/packihx/configure: generated with autoconf 2.60
344
345 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
346
347         * as/link/hc08/lkihx.c (newArea),
348         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
349
350 2007-01-02 Borut Razem <borut.razem AT siol.net>
351
352         * doc/sdccman.lyx: documented #pragma sdcc_hash
353         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
354           initialized to 0
355         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
356
357 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
358
359         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
360         empty 'while'-loop to work correctly, see regression test 'while.c'
361         * support/regression/tests/while.c: added
362
363 2007-01-01 Borut Razem <borut.razem AT siol.net>
364
365         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
366           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
367           support/cpp2/libcpp/sdcpp.c:
368           sdcpp specific pragma/directive/option handling moved to sdcpp.c
369         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
370         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
371
372 2006-12-31 Borut Razem <borut.razem AT siol.net>
373
374         * SDCPP synchronized with GCC CPP release version 4.1.1,
375           currently the latest release:
376         * support/cpp2/libcpp, support/cpp2/libcpp/include,
377           support/cpp2/libcpp/include/cpp-id-data.h
378           support/cpp2/libiberty/fopen_unlocked.c
379           support/cpp2/libiberty/md5.c
380           support/cpp2/md5.h
381           support/cpp2/opt-functions.awk
382           support/cpp2/opt-gather.awk
383           support/cpp2/optc-gen.awk
384           support/cpp2/opth-gen.awk:
385           added
386         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
387           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
388           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
389           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
390           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
391           support/cpp2/diagnostic.h, support/cpp2/except.h,
392           support/cpp2/hwint.h, support/cpp2/input.h,
393           support/cpp2/intl.h, support/cpp2/move-if-change,
394           support/cpp2/opts.c, support/cpp2/opts.h,
395           support/cpp2/output.h, support/cpp2/prefix.c,
396           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
397           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
398           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
399           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
400           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
401           support/cpp2/version.c:
402           modified
403         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
404           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
405           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
406           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
407           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
408           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
409           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
410           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
411           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
412           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
413           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
414           moved
415         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
416           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
417           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
418           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
419           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
420           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
421           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
422           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
423           support/cpp2/hashtable.h, support/cpp2/line-map.c,
424           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
425           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
426           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
427           support/cpp2/system.h:
428           deleted / moved
429
430 2006-12-31 Borut Razem <borut.razem AT siol.net>
431
432         * configure.in, configure: fixed bug #1538756: configure dies if bison
433           and flex are not installed, 2nd try
434
435 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
436
437         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
438         400.x for better code in RFE 899102
439
440 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
441
442         * src/SDCCpeeph.c (deadMove),
443         * src/port.h,
444         * src/mcs51/peep.h: renamed 'op' by 'reg'
445         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
446         (scan4op): small change for removeDeadMove(), added support for
447         'callee saves' and/or PACLL function calls,
448         (removeDeadMove): added, removes superflous 'mov r%1,%2',
449         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
450         left in new dispatcher mcs51DeadMove()
451         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
452         removeDeadMove()
453         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
454
455 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
456
457         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
458           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
459
460 2006-12-30 Borut Razem <borut.razem AT siol.net>
461
462         * support/cpp2/spacs.h: deleted from svn
463         * configure.in, configure: fixed bug #1538756: configure dies if bison
464           and flex are not installed
465
466 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
467
468         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
469           with this z80 passes printf float test when enabled
470         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
471
472 2006-12-28 Borut Razem <borut.razem AT siol.net>
473
474         * support/cpp2/config.in, support/cpp2/configure.in,
475           support/cpp2/configure, support/cpp2/Makefile.in:
476           fix for the solaris build
477
478 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
479
480         * src/SDCC.y (type_specifier2, pointer),
481         * src/SDCCsymt.h,
482         * src/SDCCsymt.c (mergeSpec, checkSClass),
483         * support/Util/SDCCerr.c,
484         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
485         * support/valdiag/valdiag.py: Allow test cases to specify
486           required language standard
487         * support/valdiag/tests/restrict.c: New file to test restrict keyword
488         * support/valdiag/tests/tentdecl.c: Supress empty source file error
489
490 2006-12-27 Borut Razem <borut.razem AT siol.net>
491
492         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
493         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
494           mbchar removed
495         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
496           fixed for borland C
497         * support/cpp2/libiberty/Makefile.bcc: updated
498         * src/pic16/main.c: fixed #pragma udata handling
499         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
500
501 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
502
503         * src/SDCCpeeph.c: made labelHashEntry global,
504         made pcDistance, FBYNAME static,
505         (pcDistance): made static, use isComment and isLabel,
506         (deadMove): added,
507         (getLabelRef): added, extracted from labelRefCount(),
508         (labelRefCount): use new getLabelRef(),
509         (callFuncByName): made static, added deadMove,
510         use isComment and isLabel,
511         (newPeepRule): made static, set isLabel,
512         (isLabelDefinition): added parameter isPeepRule to allow '%' in
513         labels from peephole rules,
514         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
515         when isComment or isLabel is set
516         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
517         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
518         to make them global
519         * src/mcs51/peep.h: added
520         * src/mcs51/peep.c: added, implements mcs51DeadMove()
521         * src/port.h: added peep->deadMove to port structure
522         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
523         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
524         deadMove, finally removed no. 1 and 2
525         * src/mcs51/gen.c,
526         * src/pic/gen.c,
527         * src/z80/gen.c,
528         * src/z80/ralloc.c,
529         * src/pic16/gen.c,
530         * src/ds390/gen.c,
531         * src/hc08/gen.c: mark lines with isComment or isLabel
532         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
533         * .version,
534         * sdcc.spec: bumped version to 2.6.3
535
536 2006-12-26 Borut Razem <borut.razem AT siol.net>
537
538         * support/cpp2/Makefile.in: added dependency on options.h
539         * configure: regenerated
540         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
541         * support/cpp2/Makefile.in: added vasprintf.c
542
543 2006-12-25 Borut Razem <borut.razem AT siol.net>
544
545         * SDCPP synchronized with GCC CPP release version 3.4.6,
546           the latest release before 4.x:
547         * support/cpp2/Makefile.in, support/cpp2/config.h,
548           support/cpp2/configure, support/cpp2/configure.in,
549           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
550           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
551           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
552           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
553           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
554           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
555           support/cpp2/cpptrad.c, support/cpp2/except.h,
556           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
557           support/cpp2/hwint.h, support/cpp2/intl.h,
558           support/cpp2/line-map.c, support/cpp2/line-map.h,
559           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
560           support/cpp2/output.h, support/cpp2/prefix.c,
561           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
562           support/cpp2/system.h, support/cpp2/version.c:
563           modified
564         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
565           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
566           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
567           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
568           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
569           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
570           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
571           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
572           support/cpp2/move-if-change, support/cpp2/opts.c,
573           support/cpp2/opts.h, support/cpp2/opts.sh,
574           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
575           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
576           support/cpp2/win32, support/cpp2/win32/dirent.c,
577           support/cpp2/win32/dirent.h:
578           added
579         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
580         * support/cpp2/sdcpp.h: renamed from sdcc.h
581         * sdcppinit.c: deleted
582
583 2006-12-23 Borut Razem <borut.razem AT siol.net>
584
585         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
586           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
587           preproc.c: an other try to fix bug #982435: introduced
588           -pedantic-parse-number command line option and pedantic_parse_number
589           pragma
590
591 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
592
593         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
594            BSEG handling,
595           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
596            corrected overlayed areax addresses, warn about memory overlaps
597         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
598         * src/avr/main.c,
599         * src/ds390/main.c,
600         * src/hc08/main.c,
601         * src/mcs51/main.c,
602         * src/pic16/main.c,
603         * src/pic/main.c,
604         * src/xa51/main.c,
605         * src/z80/main.c,
606         * src/port.h: added xabs_name and iabs_name
607         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
608           (glue, emitMaps): create and emit maps d_abs and i_abs
609         * src/SDCCglue.h: cosmetic changes
610         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
611         * src/SDCCmem.h,
612         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
613           (allocDefault): put absolute, initialized globals in them
614         * support/regression/tests/absolute.c: added absolute bdata test
615         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
616
617 2006-12-20 Borut Razem <borut.razem AT siol.net>
618
619         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
620         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
621           added regression test for bug #982435
622
623 2006-12-18 Borut Razem <borut.razem AT siol.net>
624
625         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
626         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
627           small cosmetic changes
628         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
629         * support/regression/tests/bug-1351710.c: added regression test
630
631 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
632
633         * doc/sdccman.lyx: added the long missed iCode table
634           "<where is figure II?>", added links to wiki
635
636 2006-12-17 Borut Razem <borut.razem AT siol.net>
637
638         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
639           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
640           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
641           unified table driven pragma handling, pragma argument type checking
642         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
643           current one - version 1.1.3
644         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
645
646 2006-12-13 Raphael Neider <rneider AT web.de>
647
648         * src/pic/device.h: removed AssignedMemory structure and macros
649         * src/pic/device.c: removed global finalMapping (linker assigns
650             memory locations),
651           (register_map): add SFRs to remembered memRanges
652           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
653           assignFixedRegisters,assignRelocatableRegisters): removed,
654           (setMaxRAM,validAddress): adapted accordingly,
655           (pic14_hasSharebank,pic14_getSharedStack): only report and use
656             reasonably sized sharebanks,
657         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
658           (allDefsOutOfRange): removed unused code,
659         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
660             handling
661         * src/pic/pcode.c (register_reassign): removed recursion warning,
662             fired far too often,
663         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
664             to use existing pic14_stringInSet() to avoid duplicate symbols,
665             tidied up the code a bit,
666           (pic14printLocals): added in symmetry to printExterns, replaces
667             writeUsedRegs more or less,
668           (picglue): call new pic14_printLocals(),
669         * device/include/pic/pic*.h: removed #pragma memmap directives,
670             information gathered from include/pic/pic14devices.txt
671         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
672
673 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
674
675         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
676
677 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
678
679         * device/include/mcs51/cc2430.h: fixed missing ';'
680
681 2006-12-10 Raphael Neider <rneider AT web.de>
682
683         * device/lib/pic16/libc/stdio/vfprintf.c,
684         * device/lib/pic16/libc/stdio/printf_small.c,
685         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
686           char arguments, as char varargs are cast to int by the caller,
687           hopefully fixes #1604915 (other device libraries are still affected)
688
689 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
690
691         * src/mcs51/ralloc.c (packRegsForAssign),
692         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
693
694 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
695
696         * device/include/malloc.h: removed init_dynamic_memory
697         * device/lib/malloc.c: made init_dynamic_memory static and automatically
698           call it once from malloc. Also use _sdcc_heap[] from _heap.c
699         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
700         * device/lib/libsdcc.lib,
701         * device/lib/Makefile.in,
702         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
703         * doc/sdccman.lyx: documented use of new _heap.c
704         * support/regression/tests/malloc.c: removed init_dynamic_memory
705         * src/cdbFile.c(spacesToUnderscores): new function,
706           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
707           1068030
708         * device/include/tinibios.h: removed defines for putchar and getchar
709         * device/lib/ds390/Makefile.in: added putchar.c
710         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
711
712 2006-12-09 Borut Razem <borut.razem AT siol.net>
713
714         * support/cpp2/sdcc.h: prevent multiple inclusion
715         * support/cpp2/options.h: deleted
716
717 2006-12-08 Borut Razem <borut.razem AT siol.net>
718
719         * support/cpp2/sdcc.h: removed x*alloc() macros
720         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
721         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
722           support/cpp2/sdcpp.sdc: x*alloc files added to the project
723         * support/cpp2/system.h: moved #include "sdcc.h"
724         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
725           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
726           added
727         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
728           -funsigned-char options
729         * support/cpp2/sdcppmain.c: fixed bug 1611411
730
731 2006-12-07 Borut Razem <borut.razem AT siol.net>
732
733         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
734           directive
735
736 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
737
738         * src/SDCCsymt.c (addDecl): fixed bug 1609244
739         * src/SDCCmain.c (linkEdit): fixed bug 1609279
740         * doc/sdccman.lyx,
741         * .version: bumped to 2.6.2 because a) it's been a while
742           b) the linker sources have moved c) the preprocessor is upgraded
743
744 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
745
746         * support/regression/tests/snprintf.c: some checks
747         * lib/src/printf_large.c: %bc: read char instead of int from stack
748
749 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
750
751         * device/include/mcs51/cc2430.h: inserted _XPAGE
752
753 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
754
755         * device/include/mcs51/cc2430.h: added
756
757 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
758
759         * device/include/asm/default/features.h,
760         * device/include/asm/ds390/features.h,
761         * device/include/mcs51/at89s53.h,
762         * device/include/ser.h,
763         * device/include/ser_ir.h,
764         * device/include/serial.h: changed keywords to double underscore variants,
765           fixes bug 1590261 some more, thanks Steven Borley
766
767 2006-12-01 Raphael Neider <rneider AT web.de>
768
769         * src/pic/pcode.c (register_reassign): do not crash on recursive code
770           but emit warning (recursion is not supported for pic14)
771
772 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
773
774         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
775         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
776
777 2006-11-30 Raphael Neider <rneider AT web.de>
778
779         * src/pic/device.c (dump_sfr): always emit symbols
780         * src/pic/glue.c (pic14printPublics): fixed typo
781
782 2006-11-30 Raphael Neider <rneider AT web.de>
783
784         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
785           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
786           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
787            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
788            a sharebank, use a non-shared bank for the stack if none available
789         * src/pic/device.h (struct memRange): added linked list next field,
790           added prototypes for above functions
791         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
792           (typeRegWithIdx): accept fixed and unfixed stack registers
793         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
794           the stack, handle shared and banked stack (except for WSAVE),
795           (insertBankSel): removed useless optimization (will never fire),
796           (FixRegisterBanking): added optimization for devices with only one
797           possibly aliased bank of memory, like 16f84
798         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
799           devices have no SHAREBANK in the linker script
800         * device/include/pic/pic14devices.txt: documented memmap
801         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
802
803 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
804
805         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
806           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
807           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
808           genhc08Code): switched most of the D (debug) macros to DD (detailed
809           debug) macros to better control clutter in the generated .asm file.
810         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
811           genRightShift): fixed bug with non-constant bit shift stored to
812           a volatile result (SF Open Discussion forum thread #1616749).
813           Single byte case is not yet optimized.
814
815 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
816
817         * device/include/asm/mcs51/features.h,
818         * device/include/malloc.h,
819         * device/include/stdio.h: changed keywords to double underscore variants,
820           fixes bug 1590261
821
822 2006-11-27 Borut Razem <borut.razem AT siol.net>
823
824         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
825           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
826           support/cpp2/output.h, support/cpp2/cppinit.c,
827           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
828           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
829           support/cpp2/cppdefault.c, support/cpp2/system.h,
830           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
831           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
832           support/cpp2/prefix.c, support/cpp2/except.h,
833           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
834           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
835           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
836           support/cpp2/version.c, support/cpp2/cppmain.c,
837           support/cpp2/version.h, support/cpp2/hashtable.c,
838           support/cpp2/cpperror.c:
839           synchronized with GCC CPP release version 3.3.6,
840           the latest where cppmain.c still exists.
841         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
842           support/cpp2/sdcppinit.c: added
843
844 2006-11-27 Borut Razem <borut.razem AT siol.net>
845
846         * support/cpp2/cpplex.c:
847           fixed _asm ... _endasm handling bug, introduce with GCC CPP
848           synchronization
849         * support/cpp2/cpplib.c: removed definitions of unused variables
850
851 2006-11-26 Borut Razem <borut.razem AT siol.net>
852
853         * support/cpp2/libiberty.h: commented out x*alloc() declarations
854           since they are redefined by macros in support/cpp2/sdcc.h
855         * support/cpp2/sdcc.h: x*alloc macro redefinition
856
857 2006-11-25 Borut Razem <borut.razem AT siol.net>
858
859         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
860           support/cpp2/configure, support/cpp2/Makefile.in,
861           support/cpp2/cppfiles.c, support/cpp2/output.h,
862           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
863           support/cpp2/config.h, support/cpp2/cpplib.h,
864           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
865           support/cpp2/cppdefault.c, support/cpp2/config.in,
866           support/cpp2/system.h, support/cpp2/cpplex.c,
867           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
868           support/cpp2/cppdefault.h, support/cpp2/prefix.c
869           support/cpp2/hwint.h, support/cpp2/mbchar.h,
870           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
871           support/cpp2/configure.in, support/cpp2/intl.h,
872           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
873           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
874           support/cpp2/version.c, support/cpp2/cppmain.c,
875           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
876           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
877           support/cpp2/cpperror.c,
878           support/cpp2/libiberty/safe-ctype.c,
879           support/cpp2/libiberty/safe-ctype.h,
880           support/cpp2/libiberty/splay-tree.c,
881           support/cpp2/libiberty/obstack.c,
882           support/cpp2/libiberty/lbasename.c,
883           support/cpp2/libiberty/splay-tree.h,
884           support/cpp2/libiberty/obstack.h:
885           synchronized with GCC CPP release version 3.2.3,
886           the latest before integration of cpp into gcc
887         * support/cpp2/except.h, support/cpp2/line-map.c,
888           support/cpp2/line-map.h,
889           support/cpp2/libiberty/hex.c,
890           support/cpp2/libiberty/concat.c,
891           support/cpp2/libiberty/filenames.h: added
892         * support/cpp2/intl.c: deleted
893
894 2006-11-24 Borut Razem <borut.razem AT siol.net>
895
896         * src/SDCC.y: enabled compilation of empty source file
897         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
898           "ISO C forbids an empty source file"
899         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
900           if all the code is ifdefed out.
901
902 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
903
904         * src/hc08/gen.c (genPcall): fix for bug #1601032
905
906 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
907
908         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
909         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
910         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
911         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
912         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
913         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
914         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
915         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
916         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
917         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
918         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
919         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
920         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
921         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
922         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
923           Renamed to all upper case as per the standard set by SiLabs
924
925 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
926
927         * device/include/mcs51/C8051F520.h: new, added
928         * device/include/mcs51/compiler.h: added link about predefined macros
929
930 2006-11-23 Raphael Neider <rneider AT web.de>
931
932         * src/regression/Makefile: add -L path to fresh library
933         * src/regression/simulate: emphasize FAILED output
934         * src/regression/create_stc: output _failures from gpsim
935         * src/regression/compare4.c,
936         * src/regression/rotate6.c: fixed char literals,
937           all compile, all run =8-D
938
939         * src/pic/pcode.h: added isPCASMDIR macro
940         * src/pic/gen.c (genAnd): fixed bit offset
941         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
942           packBits): unified register numbering schemes,
943           (newReg): do not insert stack registers into hash table,
944           (initStack): unpinned pseudo stack, simplified,
945           (typeRegWithIdx): fixed retrieval of stack registers,
946         * src/pic/pcode.c (addpCodeComment,sameBank): added,
947           (pCodeReplace): removed invalid assertion,
948           (insertPCodeInstruction): fixed newly added labels,
949           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
950           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
951           DumpFlow): removed unsed (broken?) code,
952           (insertBankSel): prevent STATUS from being BANKSELed,
953           (FixRegisterBanking): rewritten from scratch, implemented generic
954             optimizations (suppress BANKSELs to same register and to registers
955             present in all banks),
956           (AnalyzeBanking): update flow after BANKSELection
957
958         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
959             sharebank, let linker place it, mark STKxx symbols as emitted
960
961 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
962
963         * src/regression/arrays.c,
964         * src/regression/bank1.c,
965         * src/regression/bool2.c,
966         * src/regression/compare7.c,
967         * src/regression/compare8.c,
968         * src/regression/compare9.c,
969         * src/regression/compare10.c,
970         * src/regression/configword.c,
971         * src/regression/for.c,
972         * src/regression/mult1.c,
973         * src/regression/pointer1.c,
974         * src/regression/rotate6.c,
975         * src/regression/string1.c,
976         * src/regression/struct1.c,
977         * src/regression/Makefile: make PIC14 regression tests run again
978           (3 fail, 6 won't compile)
979
980 2006-11-21 Raphael Neider <rneider AT web.de>
981
982         * device/include/pic16/pic18f4550.h,
983         * device/include/pic16/pic18f4455.h,
984         * device/lib/pic16/libdev/pic18f4550.c,
985         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
986         * configure.in: removed superfluous closing bracket
987
988 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
989
990         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
991           always positive.
992
993 2006-11-21 Raphael Neider <rneider AT web.de>
994
995         * src/pic/device.{c,h}: added pic14_getPIC()
996         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
997           (genAnd): added PIC code for one case, fixes #1597044
998         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
999           SFRs that are present in all banks (e.g., STATUS)
1000
1001 2006-11-20 Raphael Neider <rneider AT web.de>
1002
1003         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
1004           INCFSZ/INCFSZW and declared them as changing Z bit,
1005           (insertPCodeInstruction): correctly invert the above instructions,
1006           fixes #1599333,
1007           (DoBankSelect): don't panic on po_immediates
1008
1009 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1010
1011         * as/link/aslink.h,
1012         * as/link/mcs51/lkihx.c (newArea),
1013         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
1014         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
1015
1016 2006-11-11 Raphael Neider <rneider AT web.de>
1017
1018         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
1019           bitfield symbols, fixes #1579535 (once more...).
1020
1021 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1022
1023         * support/regression/generate-cases.py,
1024         * support/regression/fwk/include/testfwk.h,
1025         * support/regression/fwk/lib/testfwk.c: used code pointers,
1026           (about 50kByte less code generated for mcs51)
1027
1028 2006-11-06 Borut Razem <borut.razem AT siol.net>
1029
1030         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1031           debugger/mcs51/configure: fixed failed check because the function
1032           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
1033           who submitted the patch for gpsim.
1034         * debugger/mcs51/configure.in: removed the result message
1035         * debugger/mcs51/Makefile.in: fixed the config.status warning
1036           "... seems to ignore the --datarootdir setting"
1037
1038 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1039
1040         * device/include/mcs51/c8051f020.h,
1041         * device/include/mcs51/c8051f040.h,
1042         * device/include/mcs51/c8051f060.h,
1043         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
1044         * src/z80/gen.c (gencjneshort),
1045         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
1046
1047 2006-10-31 Borut Razem <borut.razem AT siol.net>
1048
1049         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1050           debugger/mcs51/configure: get readline version
1051
1052 2006-10-30 Borut Razem <borut.razem AT siol.net>
1053
1054         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
1055         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1056           debugger/mcs51/configure: locate readline even when cross compiling
1057         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
1058
1059 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1060
1061         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
1062           serial port.
1063
1064 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1065
1066         * device/include/malloc.h,
1067         * device/lib/calloc.c,
1068         * device/lib/free.c,
1069         * device/lib/malloc.c,
1070         * device/lib/realloc.c: moved definition of struct into sources
1071         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
1072
1073 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1074
1075         * as/asx8051.dsp: corrected output directories
1076         * as/link/hc08: new directory for hc08 linker
1077         * as/hc08/aslink.h,             as/link/aslink.h,
1078         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
1079         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
1080         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
1081         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
1082         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
1083         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
1084         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
1085         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
1086         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
1087         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
1088         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
1089         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
1090         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
1091         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
1092         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
1093         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
1094         * as/link/hc08/conf.mk,
1095         * configure,
1096         * configure.in,
1097         * Makefile.in,
1098         * sdcc.dsw: moved hc08 linker to as/link/hc08
1099         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
1100         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
1101         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
1102         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
1103         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
1104         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
1105         * as/link/mcs51/aslink.dsp,
1106         * as/link/mcs51/Makefile.in: factored out the common files
1107         * as/hc08/lkstore.c: deleted, use the one already in as/link/
1108         * as/clean.mk: extra cleaning common files
1109         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
1110         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
1111         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
1112
1113 2006-10-29 Raphael Neider <rneider AT web.de>
1114
1115         * src/pic/ralloc.c (newReg): create aliases for registers with
1116           multiple names to fix #1579535 and #1584001,
1117           (regWithIdx,dirregWithName): resolve aliases on lookup
1118         * src/pic/pcode.c (DoBankSelect): die with error message on failing
1119           bankselect
1120         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
1121           to prevent build errors on small devices
1122
1123 2006-10-28 Raphael Neider <rneider AT web.de>
1124
1125         * src/pic/gen.c (genFunction,genCall): drop "same code page"
1126           assumption within interrupt handlers, fixes #1584940
1127         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
1128           "emitted" to avoid emitting them again in udata
1129
1130 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1131
1132         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1133         Removed.
1134
1135 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1136
1137         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1138         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
1139         on/off CR to CRLF conversion.
1140
1141 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1142
1143         * doc/sdccman.lyx: updated IRQ section
1144
1145 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1146
1147         * device/lib/serial_io.c: removed
1148         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
1149         replacements for serial_io.c
1150
1151 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
1152
1153         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
1154
1155 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1156
1157         * device/lib/serial_io.c: Default putchar() and getchar() for
1158           mcs51 uses serial port.
1159
1160 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
1161
1162         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
1163
1164 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1165
1166         * support/regression/ports/mcs51/support.c: smaller
1167         _sdcc_external_startup()
1168         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
1169
1170 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
1171
1172         * device/lib/gbz80/crt0.s,
1173         * device/lib/gbz80/crt0_rle.s,
1174         * device/lib/gbz80/div.s,
1175         * device/lib/gbz80/fstubs.s,
1176         * device/lib/gbz80/heap.s,
1177         * device/lib/gbz80/mul.s,
1178         * device/lib/gbz80/putchar.s,
1179         * device/lib/gbz80/stubs.s,
1180         * device/lib/z80/crt0.s,
1181         * device/lib/z80/crt0_rle.s,
1182         * device/lib/z80/div.s,
1183         * device/lib/z80/fstubs.s,
1184         * device/lib/z80/heap.s,
1185         * device/lib/z80/mul.s,
1186         * device/lib/z80/putchar.s,
1187         * device/lib/z80/stubs.s: reverted, I was mistaken
1188
1189 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1190
1191         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
1192         * support/regression/ports/mcs51/support.c: removed race
1193         condition on TI in _putchar allowing to use serial port mode 0
1194
1195 2006-10-20 Borut Razem <borut.razem AT siol.net>
1196
1197         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
1198
1199 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
1200
1201         * device/lib/gbz80/crt0.s,
1202         * device/lib/gbz80/crt0_rle.s,
1203         * device/lib/gbz80/div.s,
1204         * device/lib/gbz80/fstubs.s,
1205         * device/lib/gbz80/heap.s,
1206         * device/lib/gbz80/mul.s,
1207         * device/lib/gbz80/putchar.s,
1208         * device/lib/gbz80/stubs.s,
1209         * device/lib/z80/crt0.s,
1210         * device/lib/z80/crt0_rle.s,
1211         * device/lib/z80/div.s,
1212         * device/lib/z80/fstubs.s,
1213         * device/lib/z80/heap.s,
1214         * device/lib/z80/mul.s,
1215         * device/lib/z80/putchar.s,
1216         * device/lib/z80/stubs.s: removed all leading underscores from area names
1217
1218 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
1219
1220         * support/regression/ports/mcs51/support.c: use highest baudrate so the
1221           regression tests are not waiting in the simulator for simulated
1222           transmission of debug output
1223
1224 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1225
1226         * device/lib/printf_large.c: slightly smaller
1227         * doc/sdccman.lyx: do not use spaces within html links
1228
1229 2006-10-16 Borut Razem <borut.razem AT siol.net>
1230
1231         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
1232           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
1233           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
1234           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
1235           debugger/mcs51/configure:
1236           [ 1185668 ] add gnu readline support to sdcdb - enabled
1237
1238 2006-10-16 Raphael Neider <rneider AT web.de>
1239
1240         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
1241           fixes #1577882, removes close to all banking optimizations
1242
1243 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
1244
1245         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
1246           variables in code memory
1247         * support/regression/tests/absolute.c: added test for this
1248
1249 2006-10-15 Raphael Neider <rneider AT web.de>
1250
1251         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
1252           devices,
1253           (BankSelect): emit BANKSEL before touching linker-placed regs,
1254           fixes #1570934
1255
1256 2006-10-10 Raphael Neider <rneider AT web.de>
1257
1258         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
1259         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
1260         * src/pic/main.c (_pic14_parseOptions),
1261         * src/pic/main.h: mostly reverted to previous state, now use results
1262             from SDCCmain.c's argument parsing
1263
1264 2006-10-10 Borut Razem <borut.razem AT siol.net>
1265
1266         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
1267           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
1268           [ 1185668 ] add gnu readline support to sdcdb -
1269           prepared for READLINE, not enabled yet,
1270           thanks to <tal.bav AT gmail.com>
1271
1272 2006-10-10 Raphael Neider <rneider AT web.de>
1273
1274         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
1275         * src/pic16/devices.inc,
1276         * device/include/pic16 (pic18f[24]620.h),
1277         * device/include/pic18fregs.h,
1278         * device/lib/pic16/pics.all,
1279         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
1280             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
1281             Gary Plumbridge and Anton Strobl
1282
1283 2006-10-10 Raphael Neider <rneider AT web.de>
1284
1285         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
1286           --stack-siz=NUM options to configure the argument passing stack
1287         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
1288         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
1289           (pic14_getSharebankSize): obey --stack-siz=NUM,
1290           (pic14_getSharebankAddress): obey --stack-loc=NUM
1291
1292 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1293
1294         * doc/sdccman.lyx: added to the manual
1295         * doc/figures/ddd_example.png: added (neither pdflatex nor
1296         most browsers seem to like the .eps file)
1297
1298 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
1299
1300         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
1301         to /tmp and /var/tmp acc. LSB
1302         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
1303         RESULT_TYPE_IFX
1304         * support/regression/tests/onebyte.c: added test
1305
1306 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1307
1308         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
1309
1310 2006-10-05 Borut Razem <borut.razem AT siol.net>
1311
1312         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
1313           thanks to dfulab:
1314           - sdcc.dsw: changed property eol-style to CRLF
1315           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
1316
1317 2006-10-04 Raphael Neider <rneider AT web.de>
1318
1319         * device/include/pic/{pic16f84.h,pic16f84a.h},
1320         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
1321           from patch #1522504, thanks to Robas Teodor
1322
1323 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
1324
1325         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
1326           fixes bug 1566015
1327
1328 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
1329
1330         * src/pic16/glue.c (pic16emitMaps),
1331         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
1332         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
1333         * device/lib/pic16/libc/string/memcpypgm2ram.c,
1334         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
1335           Philipp Krause
1336         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
1337         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
1338
1339 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1340
1341         * support/librarian/sdcclib.c: Added option -l.
1342         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
1343           usage totals.
1344         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
1345           using Windows command prompt.
1346
1347 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1348
1349         * device/lib/libsdcc.lib: added module rand
1350         * src/ds390/ralloc.c (rematStr),
1351         * src/hc08/ralloc.c (rematStr),
1352         * src/mcs51/ralloc.c (rematStr),
1353         * src/z80/ralloc.c (rematStr): made output more consistent
1354         * src/mcs51/gen.c: cosmetic changes
1355
1356 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1357
1358         * src/port.h: added mem.cabs_name to PORT
1359         * src/ds390/main.c,
1360         * src/hc08/main.c,
1361         * src/mcs51/main.c,
1362         * src/pic16/main.c,
1363         * src/pic/main.c,
1364         * src/xa51/main.c,
1365         * src/z80/main.c: added cabs_name initializers
1366         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
1367           constants
1368           (emitMaps): emit absolutes in code memory into cabs_name
1369         * src/SDCCmem.c,
1370         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
1371         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
1372         * support/regression/fwk/include/testfwk.h: added define for at
1373         * support/regression/tests/absolute.c: added, new
1374
1375 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
1376
1377         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
1378           optimizations, see also patch 887161 by Stas Sergeev
1379         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
1380           to be necessary anymore,
1381           (102, 103, 104, 127): renamed all occurances of bp to _bp
1382
1383 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
1384
1385         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
1386           thanks Weston T. Schmidt for patch 1555221
1387         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
1388         * src/SDCCicode.c(geniCodeMultiply): small optimization
1389
1390 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1391
1392         * device/include/stdlib.h: added rand prototypes
1393         * device/lib/rand.c: new, added
1394         * device/lib/Makefile.in: added rand.c
1395         * src/z80/peeph.def,
1396         * src/z80/peeph-gbz80.def,
1397         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
1398
1399 2006-09-20 Raphael Neider <rneider AT web.de>
1400
1401         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
1402
1403 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
1404
1405         * as/link/aslink.h: cosmetic changes
1406         * as/link/mcs51/Makefile.in,
1407         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
1408
1409 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
1410
1411         * as/link/aslink.h,
1412         * as/link/mcs51/aslink.h,
1413         * as/link/z80/aslink.h: merged and moved to as/link/
1414         * as/link/lkstore.c,
1415         * as/link/mcs51/lkstore.c: moved to as/link/
1416         * as/link/clean.mk: remove *.o
1417         * as/link/mcs51/alloc.h: deleted
1418         * as/link/mcs51/lkarea.c: added lnksect prototype
1419         * as/link/mcs51/lkdata.c,
1420         * as/link/mcs51/lklex.c,
1421         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
1422         * as/link/mcs51/lkmem.c,
1423         * as/link/mcs51/lknoice.c: removed include strcmpi.h
1424         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
1425         * as/link/mcs51/aslink.dsp,
1426         * as/link/mcs51/Makefile.aslink,
1427         * as/link/mcs51/Makefile.bcc,
1428         * as/link/mcs51/Makefile.in: updated for moved files
1429         * as/link/z80/lkarea.c,
1430         * as/link/z80/lkhead.c,
1431         * as/link/z80/lklex.c,
1432         * as/link/z80/lklibr.c,
1433         * as/link/z80/lklist.c,
1434         * as/link/z80/lkmain.c,
1435         * as/link/z80/lkrloc.c,
1436         * as/link/z80/lksym.c: synced with mcs51
1437         * as/link/z80/lkdata.c,
1438         * as/link/z80/lkeval.c,
1439         * as/link/z80/lkihx.c,
1440         * as/link/z80/lks19.c: cosmetic changes
1441         * as/link/z80/Makefile.in,
1442         * as/link/z80/linkgbz80.dsp,
1443         * as/link/z80/linkz80.dsp: updated for moved files
1444
1445 2006-09-16 Borut Razem <borut.razem AT siol.net>
1446
1447         * debugger/mcs51/sdcdb.c: partially fixed
1448           [ 1203664 ] sdcdb fails to open files w. two "." periods
1449         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
1450           debugger/mcs51/symtab.h: fixed indenting
1451         * configure.in, configure: up to date with latest Maarten's changes
1452
1453 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
1454
1455         as/link/mcs51
1456         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
1457         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
1458         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
1459         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
1460         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
1461         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
1462         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
1463         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
1464         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
1465         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
1466         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
1467         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
1468         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
1469         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
1470         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
1471         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
1472         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
1473         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
1474         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
1475         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
1476         as/link/mcs51/alloc.h,
1477         as/link/mcs51/clean.mk,
1478         as/link/mcs51/conf.mk,
1479         as/link/mcs51/Makefile.bcc,
1480         as/link/mcs51/Makefile.in,
1481         as/link/mcs51/readme.390,
1482         as/link/mcs51/strcmpi.c,
1483         as/link/mcs51/strcmpi.h,
1484         as/mcs51/clean.mk,
1485         as/mcs51/Makefile.bcc,
1486         as/mcs51/Makefile.in,
1487         configure,
1488         Makefile.in,
1489         sdcc.dsw: moved mcs51 linker to as/link/mcs51
1490
1491 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
1492
1493         * as/link,
1494         * as/link/Makefile.in,
1495         * as/link/z80/linkgbz80.dsp,
1496         * as/link/z80/linkz80.dsp,
1497         * configure,
1498         * link,
1499         * link/clean.mk,
1500         * link/Makefile.in,
1501         * link/README,
1502         * link/z80,
1503         * link/z80/aslink.h,
1504         * link/z80/clean.mk,
1505         * link/z80/conf.mk,
1506         * link/z80/linkgbz80.dsp,
1507         * link/z80/linkz80.dsp,
1508         * link/z80/lkarea.c,
1509         * link/z80/lkdata.c,
1510         * link/z80/lkeval.c,
1511         * link/z80/lkgb.c,
1512         * link/z80/lkgg.c,
1513         * link/z80/lkhead.c,
1514         * link/z80/lkihx.c,
1515         * link/z80/lklex.c,
1516         * link/z80/lklibr.c,
1517         * link/z80/lklist.c,
1518         * link/z80/lkmain.c,
1519         * link/z80/lkrloc.c,
1520         * link/z80/lks19.c,
1521         * link/z80/lksym.c,
1522         * link/z80/Makefile.in,
1523         * Makefile.in,
1524         * sdcc.dsw: moved link/ to as/link/
1525
1526 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
1527
1528         * as/mcs51/i51mch.c (machine): fixed warning
1529
1530 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1531
1532         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
1533
1534 2006-09-09 Borut Razem <borut.razem AT siol.net>
1535
1536         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
1537           sdcdb WIN32 native port
1538         * src/clean.mk: fixed
1539
1540 2006-09-08 Borut Razem <borut.razem AT siol.net>
1541
1542         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
1543
1544 2006-09-08 Raphael Neider <rneider AT web.de>
1545
1546         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
1547         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
1548             to gplink to disable processor mismatch warning and to allow
1549             the use of devices with only aliased (shared) memory banks,
1550           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
1551
1552 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1553
1554         * doc/sdccman.lyx: Some re-formating plus example on using
1555           #pragma preproc_asm +/-
1556
1557 2006-09-07 Borut Razem <borut.razem AT siol.net>
1558
1559         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
1560           section
1561
1562 2006-09-06 Borut Razem <borut.razem AT siol.net>
1563
1564         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
1565           line at sdcc.nsi:153
1566         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
1567
1568 2006-09-05 Borut Razem <borut.razem AT siol.net>
1569
1570         * configure.in, configure: support for winsock2
1571         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
1572           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
1573           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
1574           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
1575           debugger/mcs51/symtab.h: sdcdb WIN32 native port
1576
1577 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
1578
1579         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
1580           and OP_DEFS
1581         * support/regression/tests/bug1551947.c: new, added
1582         * src/SDCCsymt.h: strings are char* not byte*
1583
1584 2006-09-05 Raphael Neider <rneider AT web.de>
1585
1586         * device/lib/pic16/libdev/pic18f4550.c,
1587           device/include/pic16/pic18f4550.h: added PORTD/TRISD
1588             declarations/definitions from patch #1520949
1589
1590 2006-09-05 Raphael Neider <rneider AT web.de>
1591
1592         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
1593           byte-aligned bitfields, fixes #1539278
1594
1595 2006-09-05 Raphael Neider <rneider AT web.de>
1596
1597         * src/pic/gen.c (genReceive): skip unreferenced arguments,
1598           fixes #1544120
1599
1600 2006-09-04 Borut Razem <borut.razem AT siol.net>
1601
1602         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
1603         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
1604           -mno-cygwin is a part of the compiler name
1605         * support/scripts/sdcc_mingw32: don't disable ucsim
1606
1607 2006-09-03 Borut Razem <borut.razem AT siol.net>
1608
1609         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
1610         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
1611
1612 2006-09-03 Raphael Neider <rneider AT web.de>
1613
1614         * src/pic/ralloc.c,
1615         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
1616           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
1617           fixes #1550049
1618
1619 2006-09-01 Borut Razem <borut.razem AT siol.net>
1620
1621         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
1622           to make ppc-osx happy
1623
1624 2006-08-31 Borut Razem <borut.razem AT siol.net>
1625
1626         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
1627         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1628         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1629         * support/regression/ports/ds390/spec.mk,
1630           support/regression/ports/mcs51/spec.mk,
1631           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
1632           To run regression tests in mingw environment:
1633           make DEV_NULL=NUL CC=gcc
1634
1635 2006-08-30 Borut Razem <borut.razem AT siol.net>
1636
1637         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
1638           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
1639           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
1640           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
1641           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
1642           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
1643           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
1644           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
1645           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
1646           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
1647           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
1648           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
1649           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
1650           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
1651           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
1652           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
1653           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
1654           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
1655           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
1656           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
1657           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
1658           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
1659           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
1660           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
1661           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
1662           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
1663           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
1664           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
1665           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
1666           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
1667           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
1668           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
1669           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
1670           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
1671           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
1672           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
1673           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1674           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
1675           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
1676           ucsim WIN32 native port
1677
1678 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1679
1680         * doc/sdccman.lyx: added note on dynamic memory heap initialization
1681
1682 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
1683
1684         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
1685         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
1686
1687 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
1688
1689         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
1690         * support/regression/tests/bug1546986.c: new, added
1691         * as/mcs51/.cvsignore,
1692         * debugger/mcs51/.cvsignore,
1693         * src/.cvsignore: deleted
1694
1695 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1696
1697         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
1698           definitions)
1699
1700 2006-08-20 Borut Razem <borut.razem AT siol.net>
1701
1702         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
1703           removed cl_listen_console::match(), cl_console::match(),
1704           restructured cl_commander::proc_input()
1705
1706 2006-08-16 Borut Razem <borut.razem AT siol.net>
1707
1708         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
1709           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
1710           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
1711
1712 2006-08-14 Borut Razem <borut.razem AT siol.net>
1713
1714         * support/regression/Makefile.in,
1715           support/regression/ports/pic14/gpsim.cmd,
1716           support/regression/ports/pic14/spec.mk,
1717           support/regression/ports/pic14/support.c:
1718           added pic14 regression test
1719
1720 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
1721
1722         * as/doc/asxhtm.html: documented changed ABS behaviour
1723         * as/doc/README: fixed some typos
1724
1725 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
1726
1727         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
1728           not defined on host
1729
1730 2006-08-12 Borut Razem <borut.razem AT siol.net>
1731
1732         * support/regression/fwk/include/testfwk.h,
1733           support/regression/fwk/lib/testfwk.c,
1734           support/regression/generate-cases.py,
1735           support/regression/Makefile.in:
1736           regression test framework does not depend on function pointers and
1737           variable arguments
1738
1739 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1740
1741         * device/include/stddef.h: c temporary hack to fix bug 1518273
1742
1743 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1744
1745         * device/include/mcs51/cc2510fx.h: added
1746         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
1747           to projects.
1748
1749 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1750
1751         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
1752         * as/z80/Makefile.in: added strcmpi.c
1753         * as/z80/z80adr.c: added upper case registers and lower case conditionals
1754         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
1755
1756 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
1757
1758         * device/lib/gbz80/asm_strings.s,
1759         * device/lib/gbz80/crt0_rle.s,
1760         * device/lib/gbz80/div.s,
1761         * device/lib/gbz80/mul.s,
1762         * device/lib/gbz80/shift.s,
1763         * device/lib/z80/asm_strings.s,
1764         * device/lib/z80/crt0_rle.s,
1765         * device/lib/z80/div.s,
1766         * device/lib/z80/mul.s,
1767         * device/lib/z80/shift.s: changed to all lower case menmonics except the
1768           flags which are all upper case
1769
1770 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1771
1772         * as/z80/asm.h: made CASE_SENSITIVE 1
1773         * link/z80/aslink.h: made CASE_SENSITIVE 1
1774         * src/z80/gen.c (throughout): made all conditionals upper case
1775         * support/regression/tests/bug1503067.c: new
1776
1777 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1778
1779         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
1780           (shiftIntoPair): added case 2 for PAIR_IY,
1781           (setupToPreserveCarry): replaced parameters with iCode and check if
1782            PAIR_DE is in use to fix bug 1399290,
1783           (genPlus, genMinus): updated call to setupToPreserveCarry
1784         * support/regression/tests/bug1399290.c: new
1785
1786 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
1787
1788         * device/lib/Makefile.in (Z80SOURCES): enabled float support
1789         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
1790         * src/ds390/gen.c (shiftRLong),
1791         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
1792         * src/mcs51/gen.c (sameReg): changed to sameByte,
1793           (xch_a_aopGet): new,
1794           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
1795            shiftRLong): fixed bug 1533966
1796         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
1797           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
1798         * support/regression/Makefile.in: disabled z80, enabled ucz80
1799         * support/regression/tests/float_trans.c: enabled test for z80 and host
1800         * support/regression/tests/shifts2.c: new, for testing bug 1533966
1801
1802 2006-08-01 Borut Razem <borut.razem AT siol.net>
1803
1804         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
1805           comparison is always false due to limited range of data type
1806           on PPC64 machine (openpower-linux1) where "char = unsigned char"
1807
1808 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
1809
1810         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
1811         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
1812         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
1813         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
1814
1815 2006-07-31 Borut Razem <borut.razem AT siol.net>
1816
1817         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
1818           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
1819           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
1820           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
1821           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
1822           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
1823           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
1824           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
1825           enable ucsim mingw compilation. Serial port is disabled,
1826           since it uses termios.h API, which is not available on native
1827           WIN32
1828
1829 2006-07-31 Borut Razem <borut.razem AT siol.net>
1830
1831         * Small Device C Compiler 2.6.0 released
1832         * support/scripts/sdcc.nsi: added FULL_DOC option
1833         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
1834
1835 2006-07-28 Borut Razem <borut.razem AT siol.net>
1836
1837         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
1838         * doc/INSTALL.txt: updated
1839
1840 2006-07-27 Borut Razem <borut.razem AT siol.net>
1841
1842         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
1843           device/lib/pic/libdev/Makefile.in: fixed bug
1844           [ 1438354 ] pic libsdcc: distclean doesn't work
1845         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
1846           device/lib/pic16/libio/Makefile.in: fixed bug
1847           [ 1438344 ] pic16 lib: clean doesn't work properly
1848         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
1849
1850 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
1851
1852         * device/lib/pic/libsdcc/fsdiv.c,
1853         * device/lib/pic/libsdcc/fsmul.c,
1854         * device/lib/pic16/libsdcc/float/fsdiv.c,
1855         * device/lib/pic16/libsdcc/float/fsmul.c,
1856         * device/lib/_fsdiv.c,
1857         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
1858         * support/regression/tests/bug1520966.c: added
1859         * doc/knownbugs.html: removed [ 1520966 ] from the list
1860
1861 2006-07-25 Borut Razem <borut.razem AT siol.net>
1862
1863         * configure.in, configure, sdccconf_in.h: fixed bug
1864           [ 1519095 ] regression test onebyte.c fails on ppc64 host
1865         * doc/knownbugs.html: removed [ 1519095 ] from the list
1866
1867 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
1868
1869         * doc/knownbugs.html: added, contains list of known bugs at release
1870         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
1871
1872 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1873
1874         * device/include/mcs51/compiler.h: added SFRX for xdata based special
1875           function registers and corrected defaults with additional warning
1876         * device/lib/malloc.c: cosmetic changes
1877         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
1878         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
1879           (fillGaps): and used it
1880
1881 2006-07-20 Raphael Neider <rneider AT web.de>
1882
1883         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
1884           output unless SDCCPICDEBUG is set
1885         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
1886           output if SILENT is set
1887
1888 2006-07-11 Borut Razem <borut.razem AT siol.net>
1889
1890         * doc/README.txt: updated
1891
1892 2006-07-10 Borut Razem <borut.razem AT siol.net>
1893
1894         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
1895           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
1896           in WIN32 installation
1897         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
1898           release candidate 1
1899
1900 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
1901
1902         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
1903         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
1904
1905 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
1906
1907         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
1908
1909 2006-07-06 Borut Razem <borut.razem AT siol.net>
1910
1911         * support/regression/tests/bitfields.c:
1912           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
1913         * support/regression/tests/constantRange.c:
1914           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
1915
1916 2006-07-04 Borut Razem <borut.razem AT siol.net>
1917
1918         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
1919           src/port.mk,
1920           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1921           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1922           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1923           reverted changes from 2006-07-03
1924         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
1925         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
1926           added CPPFLAGS, used by the host port
1927
1928 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
1929
1930         * support/regression/valdiag/tests/switch.c,
1931         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
1932         * support/regression/tests/libmullong.c: fixed for host
1933         * support/regression/ports/host/spec.mk: disable all warnings for host,
1934         SDCC runs with --less-pedantic too
1935
1936 2006-07-03 Borut Razem <borut.razem AT siol.net>
1937
1938         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
1939           defined CPPFLAGS
1940         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
1941         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1942           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1943           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1944           include ../port.mk
1945         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
1946           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1947           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1948           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
1949
1950 2006-07-02 Raphael Neider <rneider AT web.de>
1951
1952         * src/pic16/devices.inc,
1953         * device/include/pic16/pic18fregs.h,
1954         * device/include/pic16/pic18f4550.h,
1955         * device/lib/pic16/pics.all,
1956         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
1957
1958 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
1959
1960         * as/hc08/lkaomf51.c (OutputName),
1961         * as/mcs51/lkaomf51.c (OutputName),
1962         * as/z80/asmain.c (asmbl),
1963         * src/ds390/main.c (asmLineNodeFromLineNode),
1964         * src/hc08/ralloc.c (hc08_assignRegisters),
1965         * src/mcs51/main.c (asmLineNodeFromLineNode),
1966         * src/xa51/ralloc.c (checkRegMask),
1967         * src/xa51/gen.c (emitcode),
1968         * src/z80/gen.c (_emit2),
1969         * src/SDCCast.c (searchLitOp),
1970         * src/SDCCglobl.h,
1971         * support/packihx/packihx.c,
1972         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
1973         * src/ds390/gen.c (aopPutUsesAcc),
1974         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
1975         * support/regression/tests/libmullong.c (mullong_wrapper),
1976         * src/SDCCsymt.c (powof2),
1977         * src/SDCCast.c,
1978         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
1979         * src/SDCCsymt.h: added TYPE_TARGET_*
1980         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
1981         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
1982         SDCCast because 1) header problems 2) this is the right place
1983         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
1984         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
1985         prototype
1986
1987 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
1988
1989         * src/SDCCicode.h: removed buggy semicolon in unused macro
1990         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
1991         search for previous definiton of auto symbols too,
1992         (findPrevUse): fixed logic of emitWarnings
1993
1994 2006-06-26 Raphael Neider <rneider AT web.de>
1995
1996         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
1997           PCLATH and PCLATU on interrupts, potentially fixes #1505141
1998
1999 2006-06-25 Raphael Neider <rneider AT web.de>
2000
2001         * device/lib/pic/libm: NEW, added math library functions
2002         * device/lib/pic/libsdcc: NEW; added float support functions
2003         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
2004         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
2005           NEW, added math related headers
2006         * device/include/asm/pic/features.h: NEW
2007         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
2008           (popGet): allow larger offsets for AOP_PCODE,
2009           (genDataPointerSet): handle literals explicitly, more debug output,
2010           (genAssign): fixed for float using aopLiteral ;-)
2011         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
2012           GOTO initialisation routine
2013         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
2014           flag on registers, fixes #1469043 (local variables do not work)
2015         * src/pic/main.c (_pic14_do_link),
2016         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
2017           available
2018
2019 2006-06-25 Borut Razem <borut.razem AT siol.net>
2020
2021         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
2022           characters printed (not including the trailing '\0' used to end
2023           output to strings). Problem detected in regression test bug-927659.c.
2024           NOTE: printf() family functions should return int instead
2025           unsigned int!
2026         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
2027           specifier are printed as themselves
2028         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
2029           support flags, width and precision specifiers
2030
2031 2006-06-24 Borut Razem <borut.razem AT siol.net>
2032
2033         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
2034           to the list of sdcc tagrets not supporting bit type
2035         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
2036           testfor pic16 due to bug:
2037           [ 1511794 ] pic16: regression test bug-895992.c fails
2038
2039 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
2040
2041         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
2042         * src/SDCCglue.c (initPointer), fixed bug 1496419
2043         * support/regression/tests/bug1496419.c: new, added
2044
2045 2006-06-22 Borut Razem <borut.razem AT siol.net>
2046
2047         * support/regression/ports/pic16/support.c: use gpsim usart module from
2048           libgpsim_modules library
2049
2050 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2051
2052         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
2053         IP0H to IPH0.
2054
2055 2006-06-19 Raphael Neider <rneider AT web.de>
2056
2057         * src/pic/glue.h,src/pic16/glue.h: added prototypes
2058         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
2059           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
2060           (pic14printExterns,pic14printPublics,pic16printPublics,
2061           pic16_printExterns): use new functions to emit symbols
2062           (picglue,pic16glue): emit publics before emitting externs
2063         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
2064           locally defined functions to avoid bug #1443651
2065         * support/regression/tests/bug-716242.c: removed pic16 workaround
2066         * support/regression/ports/pic16/spec.mk: ignore errors during build
2067
2068 2006-06-19 Raphael Neider <rneider AT web.de>
2069
2070         * src/pic/glue.h: added pic14aopLiteral prototype
2071         * src/pic/glue.c (pic14aopLiteral): return unsigned int
2072         * src/pic/gen.c: removed stdint.h dependency
2073           (aopGet): use Safe_strdup()
2074           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
2075           (genDataPointerSet): use pic14aopLiteral()
2076         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
2077           for pic16; thanks to Bernhard and Maarten
2078
2079 2006-06-18 Borut Razem <borut.razem AT siol.net>
2080
2081         * support/regression/tests/structflexarray.c: flexible array members
2082           not supported by gcc < 3
2083         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
2084           GUI tool by default
2085         * src/pic/gen.c: don't include [p]strdin.h on solaris
2086         * support/Util/pstdint.h: addad svn attributes
2087         * support/regression/tests/constantRange.c,
2088           support/regression/tests/rotate.c: include inttypes.h instead
2089           stdint.h on solaris, addad svn attributes
2090
2091 2006-06-18 Raphael Neider <rneider AT web.de>
2092
2093         * src/SDCCsymt.c (initCSupport): change return type of divschar to
2094           int for PIC16
2095         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
2096           (pic16_genMinusBits): simplified sign-extension
2097           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
2098             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
2099             adjusted to correctly handle mixed-signed operands, disabled
2100             now unused multiplciation routines
2101         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
2102           (assignResultValue): added argument denoting the size of the result
2103             as returned by the function (fixes upcasts in assigning from
2104             function calls: char foo(); int i = foo();)
2105           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
2106             function result to assignResultValue
2107           (genMult): disabled inlined multiplication code
2108           (genDiv): augmented to also handle the modulus operator, fixed to
2109             handle mixed-signed operands correctly
2110           (genMod): simply call genDiv, disabled unused code
2111           (genAssign): fixed missing (sign-)extension on result
2112         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
2113             valid char operands, allow signed operands for native code, added
2114             division and modulo operator handling
2115         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
2116
2117         As a consequence, onebyte.c (if split into two files) and muldiv.c
2118         pass regression tests.
2119
2120 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2121
2122         * doc/Makefile.in: two runs of makeindex seem needed to get
2123         correct page references in the index of sdccman.pdf
2124         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
2125
2126 2006-06-17 Borut Razem <borut.razem AT siol.net>
2127
2128         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
2129
2130 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2131
2132         * doc/sdccman.lyx: updated, added (porting source code, debugging),
2133         mentioned ec2drv and paulmon
2134
2135 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2136
2137         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
2138           consecutive abs areas
2139           (find_empty_space, allocate_space): added map to handle codemap or
2140            xdatamap,
2141           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
2142            absolute idata and xdata
2143         * as/mcs51/lkmem.c (summary2): updated legend
2144
2145 2006-06-16 Raphael Neider <rneider AT web.de>
2146
2147         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
2148
2149 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
2150
2151         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
2152           1208515
2153         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
2154
2155 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
2156
2157         * src/port.h (struct PORT): added field gp_tags, to hold the tag
2158         value of generic pointers,
2159         * src/avr/main.c,
2160           src/ds390/main.c,
2161           src/hc08/main.c,
2162           src/izt/i186.c,
2163           src/izt/tlcs900h.c,
2164           src/mcs51/main.c,
2165           src/pic/main.c,
2166           src/pic16/main.c,
2167           src/xa51/main.c,
2168           src/z80/main.c: PORT structure, added elements for gp_tags field,
2169         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
2170         fields in the PORT structure of each port,
2171         * src/SDCCast.c (decorateType): allow processing of generic pointers
2172         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
2173         S_FIXED symbols
2174
2175 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
2176
2177         * link/z80/lkgb.c,
2178         * link/z80/lkgg.c,
2179         * src/pic16/gen.c,
2180         * src/pic16/main.c,
2181         * src/pic16/pcode.c,
2182         * src/pic/main.c,
2183         * src/pic/pcoderegs.c,
2184         * src/SDCCicode.c,
2185         * src/SDCCmain.c,
2186         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
2187           bug 1504689 on minGW
2188
2189 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2190
2191         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
2192
2193 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
2194
2195         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
2196
2197 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
2198
2199         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
2200           for optimization
2201
2202 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
2203
2204         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
2205         to a char variable. Fixed bug #1504211
2206         * device/include/pic16/adc.h,
2207         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
2208         and fixed bug #1364390
2209
2210 2006-06-10 Borut Razem <borut.razem AT siol.net>
2211
2212         * CVSROOT: removed the CVS left-over
2213
2214 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2215
2216         * as/hc08/asmain.c (asexit),
2217         * as/hc08/lkmain.c (lkexit),
2218         * as/mcs51/asmain.c (asexit),
2219         * as/mcs51/lkmain.c (lkexit),
2220         * src/SDCCglue.c (DEFSETFUNC),
2221         * src/SDCCmain.c (linkEdit, assemble),
2222         * support/librarian/sdcclib.c (AddRel),
2223           replaced unlink() by standard C remove()
2224         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
2225         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
2226           gatherImplicitVariables): new, added to fix bug 608752,
2227           (createFunction): added gatherImplicitVariables()
2228         * src/SDCCast.h: added createRMW prototype
2229         * src/SDCCsymt.h (struct symbol): added infertype
2230         * support/regression/tests/bug608752.c: new, added
2231
2232 2006-06-10 Raphael Neider <rneider AT web.de>
2233
2234         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
2235           multibyte dummy reads (fixes #1503234)
2236
2237 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2238
2239         * device/include/mcs51/compiler.h: new, added header file to enable
2240           creating common sfr definition header files for different compilers
2241
2242 2006-06-05 Raphael Neider <rneider AT web.de>
2243
2244         * src/pic16/{pcode.h,genarith.c}:
2245           introduced pCodeOp combining any two pCodeOps (previously only
2246           two register operands could be combined), removed pcop2 from
2247           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
2248         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
2249         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
2250           rewritten to use new PO_TWO_OPS
2251         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
2252         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
2253           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
2254           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
2255           (pic16_get_op): embraced return arg to allow #define return(x),
2256             added new case for combined opcodes
2257           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
2258           (pic16_pCode2str,pic16_getRegFrompCodeOp,
2259            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
2260
2261 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
2262
2263         * src/SDCCval.c (checkConstantRange): added
2264         * src/SDCCval.h: added checkConstantRange
2265         * support/Util/SDCCerr.c,
2266         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
2267         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
2268         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
2269         * src/SDCCast.c (decorateType): added checkConstantRange,
2270         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
2271         can be emitted with the correct always true/false warning,
2272         added optimization for double '!';
2273         result of decorateType() must be assigned back to the tree, because
2274         decorateType() can change the tree
2275         * src/SDCCicode.c (geniCodeLogic),
2276         (geniCodeAssign): replaced new checkConstantRange, added warnings,
2277         (checkConstantRange): removed, it was only a fragment which never
2278         emitted a warning
2279         * src/SDCCsymt.c (computeType): fixed promotion for
2280         "-1 < (unsigned bit) b"
2281         * src/pic/ralloc.c (packRegsForAssign),
2282         * src/pic16/ralloc.c (packRegsForAssign),
2283         * src/hc08/ralloc.c (packRegsForAssign),
2284         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
2285         from mcs51
2286         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
2287         * support/regression/tests/constantRange.c: added
2288         * support/valdiag/tests/constantRange.c: added
2289         * support/valdiag/valdiag.py: added -DPORT_HOST=1
2290
2291 2006-06-02 Borut Razem <borut.razem AT siol.net>
2292
2293         * support/regression/ports/pic16/support.c: increase stack size
2294           to 255 bytes
2295         * support/regression/Makefile.in: sort tests by name so that the
2296           resutlts can be compared on different machines / platforms
2297
2298 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2299
2300         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
2301         * src/ds390/gen.c (emitLabel): new, added,
2302           (genDjnz): fixed stack overflow bug,
2303           (throughout): cosmetic changes to sync with mcs51/gen.c,
2304           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
2305         * src/mcs51/gen.c (genEndFunction): small optimization,
2306           (throughout): cosmetic changes to sync with ds390/gen.c
2307
2308 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2309
2310         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
2311           (_print_format): fixed printing pointers
2312         * src/mcs51/gen.c (emitLabel, movb): new, added,
2313           (genAssign): small optimization,
2314           (genDjnz): fixed stack overflow bug,
2315           (throughout): replaced sprintf with SNPRINTF,
2316           replaced mcs51_regWithIdx with REG_WITH_INDEX,
2317           replaced emitcode("mov", "b,...") with MOVB(...),
2318           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
2319           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2320         * src/mcs51/peeph.def: added rules 140 and 264
2321         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
2322           so they may get optimized into registers
2323
2324 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
2325
2326         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
2327           immediately when encountered,
2328           (printUsage): always use stderr even on windows
2329
2330 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
2331
2332         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
2333         (processParms): fixed bug #1247551
2334         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
2335         parseCmdLine, main): print '--version' to stdout,
2336         print 'help' to stdout if --help is given,
2337         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
2338         arguments are given; fixed --help
2339
2340 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
2341
2342         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
2343         * support/regression/tests/bug-1493710.c: added
2344
2345 2006-05-27 Borut Razem <borut.razem AT siol.net>
2346
2347         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
2348           static instead auto
2349         * support/regression/ports/pic16/support.c: increase stack size
2350           from default 64 bytes to 128 bytes
2351         * support/regression/tests/staticinit.c,
2352           support/regression/tests/float.c: regression tests fully enabled
2353           for pic16 port by putting the initialized data arrays into the code
2354           section
2355         * support/regression/ports/pic16/spec.mk: don't link default libraries.
2356           This was changed by mistake in the previous version.
2357
2358 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
2359
2360         * src/pic16/gen.c (genFunction, genEndFunction): some
2361         beautifications, fixed bug with falsely restoring FSR2 in large
2362         stack model, thanks to Beau E. Cox for reporting the bug
2363
2364 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2365
2366         * debugger/mcs51/break.c,
2367         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
2368           use %p to print pointers, made address variables unsigned
2369         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
2370         * debugger/mcs51/symtab.c (parseSymbol): must return something
2371         * src/mcs51/gen.c (aopForSym): small optimization,
2372            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
2373           (freeAsmop): added missing break,
2374           (aopPut): removed parameter bvolatile, determine it inside the function,
2375           (saveRegisters, unsaveRegisters): small optimization,
2376           (genIpush): removed pointless check,
2377           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
2378           replaced sprintf with SNPRINTF,
2379           replaced strcpy with strncpyz,
2380           updated aopPut calls,
2381           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2382         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
2383
2384 2006-05-24 Borut Razem <borut.razem AT siol.net>
2385
2386         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
2387           modification of test for the pic16 port, put the array to the code
2388           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
2389
2390 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2391
2392         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
2393         * support/Util/pstdint.h: added
2394
2395 2006-05-22 Borut Razem <borut.razem AT siol.net>
2396
2397         * src/regression/Makefile: removed bool2.c test, added -q linker option
2398         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
2399           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
2400           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
2401           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
2402           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
2403           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
2404           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
2405           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
2406           define SUPPORT_BIT_TYPES 0, removed unused bit variables
2407
2408 2006-05-22 Raphael Neider <rneider AT web.de>
2409
2410         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
2411           bug #1492360 (problematic due to generic pointers, see code)
2412
2413 2006-05-22 Borut Razem <borut.razem AT siol.net>
2414
2415         * support/regression/ports/pic16/specs.mk: removed stack size linker
2416           directive
2417         * support/regression/tests/array.c,
2418           support/regression/tests/bitopcse.c,
2419           support/regression/tests/bug-908454.c,
2420           support/regression/tests/malloc.c: modified for pic16 regression test
2421         * support/regression/tests/bitfields.c:
2422           pic16 - excluded bitfileds of size > 8
2423         * support/regression/tests/bp.c: pic16 - reduced data size
2424         * support/regression/tests/bug-221100.c: pic16 - reduced data size
2425         * support/regression/tests/bug-460010.c:
2426           pic16 - used the absolute address the fits in memory
2427         * support/regression/tests/bug-716242.c:
2428           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
2429         * support/regression/tests/float.c:
2430           pic16 - excluded - data size too big
2431         * support/regression/tests/onebyte.c:
2432           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
2433         * support/regression/tests/shifts.c:
2434           pic16 - function names probably have to differ in first X characters
2435           (gpasm limitation?)
2436         * support/regression/tests/staticinit.c:
2437           pic16 - excluded some tests due error: no target memory available for
2438           section ".idata"
2439
2440 2006-05-22 Borut Razem <borut.razem AT siol.net>
2441
2442         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2443           second try. Thanks Stas Sergeev once more.
2444
2445 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2446
2447         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
2448           (genLeftShift, genRightShift): fixed bug 1491627
2449         * src/hc08/peeph.def (rules 7, 8.x): added
2450         * support/regression/tests/shifts.c (ShiftLeftByParam,
2451           ShiftRightByParam, testShiftByParam): added to test variable shifting
2452
2453 2006-05-20 Raphael Neider <rneider AT web.de>
2454
2455         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
2456         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
2457           (allocReg): add only new registers to dynAllocRegs,
2458           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
2459             #1489055, #1445850, and probably #1483693
2460
2461 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
2462
2463         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
2464         bug in for-loop that didn't emit the last of CONFIG and ID registers
2465
2466 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
2467
2468         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
2469           with offset
2470         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
2471           1489016, 1434401 and 1490124
2472         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
2473           1489016, 1434401 and 1490124
2474
2475 2006-05-17 Borut Razem <borut.razem AT siol.net>
2476
2477         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2478           thanks Stas Sergeev
2479
2480 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2481
2482         * device/include/mcs51/P89c51RD2.h,
2483         * device/include/mcs51/P89LPC901.h,
2484         * device/include/mcs51/P89LPC922.h,
2485         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
2486
2487 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2488
2489         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
2490         to fix missing stack pragma in compiled binary object file,
2491
2492 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
2493
2494         * support/packihx/configure.in,
2495         * support/packihx/configure: removed warning, autoconf >= 2.5x can
2496         determine sizeof basic types even while cross compiling
2497
2498 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
2499
2500         * src/avr/gen.c (aopop),
2501         * src/ds390/gen.c (aopOp),
2502         * src/hc08/gen.c (aopOp),
2503         * src/mcs51/gen.c (aopop),
2504         * src/pic16/gen.c (pic16_aopOp),
2505         * src/pic/gen.c (aopOp),
2506         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
2507         if size of operand is smaller than spill location
2508
2509 2006-05-12 Borut Razem <borut.razem AT siol.net>
2510
2511         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
2512           have to have CR/LF line endings even if they are checked out on *nix
2513           or on WIN32 in cygwin binmode
2514
2515 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
2516
2517         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
2518         * device/include/ds80c390.h: added sfr16 definitions
2519         * src/ds390/gen.c,
2520         * src/ds390/gen.h,
2521         * src/ds390/main.c,
2522         * src/ds390/ralloc.c,
2523         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
2524           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
2525           bit returning functions
2526         * support/regression/tests/sfr16.c: enabled test on ds390
2527
2528 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2529
2530         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
2531         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
2532
2533 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
2534
2535         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
2536         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
2537           (cl_address_space constructor): removed expensive initialization,
2538           (cl_address_space::get_cell): extended for late initialization,
2539           (cl_address_space::*): use late initialization,
2540           (cl_address_decoder::activate): removed expensive initialization,
2541           This reduced regression test running time by 25%
2542
2543 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
2544
2545         * packihx/,
2546         * configure.in,
2547         * configure,
2548         * sdcc.dsw,
2549         * Makefile.bcc,
2550         * Makefile.in,
2551         * support/packihx/Makefile.in,
2552         * support/packihx/clean.mk,
2553         * support/packihx/Makefile.bcc,
2554         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
2555
2556 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2557
2558         * src/SDCCval.c (valNot): fix for regression test failure
2559           of not.c on big endian hosts
2560
2561 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
2562
2563         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
2564
2565 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2566
2567         * device/lib/mcs51/Makefile.in: changed string comparison operator
2568           to = for POSIX compliance; == is bash extension
2569
2570 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
2571
2572         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
2573           kosmonaut_pirx
2574
2575 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
2576
2577         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
2578         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
2579         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
2580         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
2581         bug report #1478657,
2582
2583 2006-05-05 Borut Razem <borut.razem AT siol.net>
2584
2585         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
2586           making the html
2587
2588 2006-05-02 Borut Razem <borut.razem AT siol.net>
2589
2590         * doc/Makefile.in: removed *.ind dependency since there is no rule to
2591           create *.ind, which made make to fail if invoked with -j 2
2592
2593 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
2594
2595         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
2596           Hubert Sack for patch 1479782
2597
2598 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
2599
2600         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
2601
2602 2006-05-01 Raphael Neider <rneider AT web.de>
2603
2604         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
2605           (create_pic): store only prefix-free device name,
2606           (init_pic): check for device names with "16" prefix,
2607           (list_valid_pics),
2608         * src/pic/device.h (struct PIC_device),
2609         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
2610             stored device name,
2611         * device/include/pic/pic12f{635,675,629,683}.h,
2612         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
2613         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
2614         * device/include/pic/pic16f505.h,
2615         * device/lib/pic/libdev/pic16f505.c: removed
2616         * device/include/pic/pic14devices.txt: added support for pic12f
2617             devices, removed unsupported non 16-bit devices
2618             [above changes provided by patch from Zik Saleeba]
2619         * src/pic/*, src/pic16/*, device/include/pic16/*,
2620           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
2621
2622 2006-05-01 Borut Razem <borut.razem AT siol.net>
2623
2624         * configure.in, configure, doc/Makefile.in:
2625           sync with nightly build makefile - latex, dvipdf and dvips
2626           not needed any more
2627
2628 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
2629
2630         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
2631         in the library source
2632
2633 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
2634
2635         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
2636
2637 2006-04-28 Raphael Neider <rneider AT web.de>
2638
2639         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
2640         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
2641           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
2642         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
2643
2644 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
2645
2646         * device/lib/pic/libdev/Makefile.in,
2647         * device/lib/hc08/Makefile.in,
2648         * device/lib/gbz80/Makefile.in,
2649         * device/lib/z80/Makefile.in,
2650         * device/lib/ds390/Makefile.in,
2651         * device/lib/ds400/Makefile.in: added srcdir to include search path,
2652         thanks to Borut for the bug report
2653         * configure.in,
2654         * configure: always create doc/Makefile independent from --enable-doc
2655         * Makefile.in: always install from directory doc independent from
2656         --enable-doc
2657         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
2658         removed
2659         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
2660         * doc/Makefile.in: install *.txt if present
2661         * device/include/Makefile.in (install): added installation of pic/*.inc
2662         and pic/*.txt files again, they were erroneously removed
2663
2664 2006-04-28 Raphael Neider <rneider AT web.de>
2665
2666         * src/pic/{gen.c,main.h,pcode.c},
2667         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
2668             concerning signedness with casts
2669
2670 2006-04-28 Raphael Neider <rneider AT web.de>
2671
2672         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
2673             definition of an interrupt handler,
2674         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
2675             interrupt handler stuff from picglue() to separate routine,
2676           (picglue): enabled definition of intr handlers in files w/o main()
2677
2678 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2679
2680         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
2681           compilation with MSVC 2005 Express Edition (VC8)
2682
2683 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
2684
2685         * device/lib/Makefile: fixed build of gbz80 lib
2686
2687 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2688
2689         * support/regression/tests/bug-460010.c,
2690         * support/regression/tests/bug-524691.c,
2691         * support/regression/tests/bug-716242.c: removed conditional defines
2692           that are already in testfwk.h
2693
2694 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2695
2696         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
2697           (AccAXRsh1): added, shift right by 1,
2698           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
2699            AccAXLrl1
2700         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
2701
2702 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
2703
2704         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
2705         remove cast to same type
2706         * src/SDCCast.c (decorateType): fix for RFE 1475742,
2707         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
2708         * as/z80/Makefile,
2709         * link/z80/Makefile: removed, they have moved to
2710         Makefile.in files
2711         * configure,
2712         * configure.in: replaced duplicate message about ucsim by missing sdcpp
2713         * install-sh: fix bug #1204398 by setting umask 0022
2714         * device/lib/Makefile: separate build of z80 and gbz80 lib
2715
2716 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
2717
2718         Enabled VPATH feature: changed nearly all Makefiles (149 files).
2719         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
2720
2721         One basic decision: e.g. src/clean.mk includes further files. In order
2722         to make this work there are two solutions:
2723         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
2724           run configure on them. This way they can use
2725           'include $(srcdir)/port-clean.mk'
2726         - always include clean.mk by the Makefile at the same level. To avoid
2727           that `make clean` tries to include and build Makefile.dep the
2728           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
2729           implemented, because now even `make uninstall` doesn't create
2730           Makefile.in. clean.mk could be eliminated by pasting it in
2731           Makefile.in.
2732
2733         * debugger/mcs51/Makefile.in: build own objects from library sources
2734         (SLIB, SDCC) in current directory
2735
2736         * configure, configure.in: renamed --disable-device-lib-build in
2737         --disable-device-lib; added --enable-doc, the required tools are
2738         searched by configure; added result message; the toolchain for the
2739         belonging ports are now only built, if the port is enabled.
2740
2741         * support/regression/*: all output is written in directory gen, because
2742         the fwk and ports directories don't livet in the build tree using vpath
2743
2744         * doc/sdccman.lyx: renamed --disable-device-lib-build to
2745         --disable-device-lib, added --enable-doc, added section VPATH
2746
2747         * sim/ucsim/configure.in,
2748         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
2749         z80 are enabled by default
2750
2751 2006-04-24 Raphael Neider <rneider AT web.de>
2752
2753         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
2754             to config word, "pic14_"-prefixed some extern functions
2755           (pic14_emitConfigWord): emit __config directive(s) if assignment to
2756             config word has been found
2757         * src/pic/device.h: added prototypes
2758         * src/pic/pcode.c: added "pic14_"-prefix where needed
2759         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
2760             fixup
2761         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
2762             words,
2763           (pic14emitRegularMap): ignore config words,
2764           (pic14createInterruptVect): moved generating __config directives away
2765           (picglue): have __config directives emitted
2766
2767 2006-04-24 Borut Razem <borut.razem AT siol.net>
2768
2769         * doc/Makefile: sync with nightly build makefile
2770
2771 2006-04-24 Raphael Neider <rneider AT web.de>
2772
2773         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
2774             registers that have not been assigned proper liveranges,
2775             fixes #1469504 and #1474602,
2776           (pCodeRegOptimizeRegUsage): fixed typo in comment
2777
2778 2006-04-24 Borut Razem <borut.razem AT siol.net>
2779
2780         * device/examples/main8051.c: deleted - it was removed from CVS
2781           24.mar.2000 and after that modified 18.feb.2001, so it reappered
2782           after the transition to Subversion
2783         * src/SDCCalloc.h: deleted - it was removed  from CVS
2784           3.feb.2001 and after that modified 18.feb.2001, so it reappered
2785           after the transition to Subversion
2786         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
2787           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
2788           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
2789           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
2790
2791 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
2792
2793         * as/asx8051.dsp: added mcs51/strcmpi.h
2794         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
2795         * as/hc08/aslink.h: updated lnksect prototype
2796         * as/hc08/asm.h,
2797         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
2798         * as/hc08/asmain.c,
2799         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
2800           (newdot): handle A_ABS
2801         * as/hc08/asout.c,
2802         * as/mcs51/asout.c (outarea): output address
2803         * as/hc08/lkaomf51.c,
2804         * as/mcs51/lkaomf51.c: disabled unused array UsageType
2805         * as/hc08/m08pst.c,
2806         * as/mcs51/i51pst.c,
2807         * as/z80/z80pst.c: "ABS" is not A_OVR
2808         * as/hc08/lkarea.c (newarea): read a_addr,
2809           (lnkarea): added codemap array, sort absolute areas to the front,
2810            combine all GSINITx/GSFINAL,
2811           (find_empty_space, allocate_space): new functions,
2812           (lnksect): return next address, handle absolute sections
2813         * as/mcs51/lkarea.c (newarea): read a_addr,
2814           lnksect2 prototype changed,
2815           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
2816           (find_empty_space, allocate_space): new, factored out of lnksect2,
2817           (lnksect2): return next address, handle absolute sections
2818         * as/hc08/lkhead.c,
2819         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
2820         * as/hc08/lklibr.c (addfile, fndsym),
2821         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
2822           index out of range and detect both '\' and '/'
2823         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
2824         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
2825           regression tests (ds390 cannot return bool yet)
2826         * doc/sdccman.lyx: changed version number, document changed --no-peep,
2827           document critical interrupts on z80, document changed SDCC define
2828         * src/asm.c (_asxxxx_mapping): fixed .org directive,
2829           (_a390_mapping): added .org directive
2830         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
2831           (genMultOneByte): fixed warnings
2832         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
2833           ones
2834         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
2835         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
2836           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
2837         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
2838         * src/pic16/main.c: removed newReg prototype
2839         * src/pic16/pcode.c,
2840         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
2841           warnings
2842         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
2843           ones
2844         * src/pic16/ralloc.c
2845         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
2846           to fix warnings
2847         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
2848           from short to PIC_OPTYPE
2849         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
2850         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
2851           optype from short to PIC_OPTYPE
2852         * src/port.h: made int_size unsigned to fix warnings
2853         * src/SDCC.y: fixed warning on MSVC
2854         * src/SDCCicode.c (getArraySizePtr): return unsigned int
2855         * src/SDCCopt.c (convertToFcall): fixed warnings
2856         * src/SDCCsymt.h: removed double prototype for genSymName
2857         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
2858           offset int to fix warnings
2859
2860 2006-04-22 Borut Razem <borut.razem AT siol.net>
2861
2862         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2863           references to CVS replaced with Subversion
2864
2865 2006-04-21 Borut Razem <borut.razem AT siol.net>
2866
2867         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2868           references to CVS replaced with Subversion
2869
2870 2006-04-19 Borut Razem <borut.razem AT siol.net>
2871
2872         * src/version.awk: adapted for svn
2873         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
2874           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
2875           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
2876           /binutils-avr/etc/*.vi, *.jin: removed all properties
2877           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
2878
2879 2006-04-19 Borut Razem <borut.razem AT siol.net>
2880
2881         * CVS to Subversion migration completed
2882
2883 2006-04-18 Borut Razem <borut.razem AT siol.net>
2884
2885         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
2886           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
2887
2888 2006-04-17 Borut Razem <borut.razem AT siol.net>
2889
2890         * device/include/Makefile.in: added pic/*.inc to the installation
2891
2892 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
2893
2894         * support/regression/collate-results.py: fixed output in case of
2895         a valdiag error
2896         * support/regression/generate-cases.py: fixed splitting of pathnames
2897         with dots
2898         * as/hc08/lklibr.c (addfile),
2899         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
2900
2901 2006-04-11 Raphael Neider <rneider AT web.de>
2902
2903         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
2904         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
2905         * src/pic16/pcode.c (assignValnums): fixed #1460578
2906
2907 2006-04-11 Raphael Neider <rneider AT web.de>
2908
2909         * device/lib/pic/libdev/*.c,
2910         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
2911           fixes #1468739, enables compilation in --std-c99 mode
2912         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
2913
2914 2006-04-11 Raphael Neider <rneider AT web.de>
2915
2916         * src/pic/device.c (find_device): removed debug output
2917           (list_valid_pics): enabled verbose listing of supported devices
2918         * device/include/stdbool.h: define bool as char for pic14/16 as well
2919
2920 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2921
2922         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
2923
2924 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2925
2926         * .version: bumped version to 2.5.6
2927         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
2928
2929 2006-04-06 Raphael Neider <rneider AT web.de>
2930
2931         * .version: bumped version to 2.5.6 (pic14 ABI changed)
2932         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
2933         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
2934           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
2935             pic14_constructAbsMap
2936           (pic14printPublics): declare absolute global symbols as global
2937           (pic14createInterruptVect),
2938         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
2939           (newReg): assume new registers unused, use correct name in
2940             hashtable (reg->name instead of name), more debugLog output
2941         * src/pic/device.h (PIC_device): added fields for verbose output
2942         * src/pic/device.c: moved device definition to pic14devices.txt,
2943             added routines for runtime parsing of pic14devices.txt,
2944             added support for second config word
2945         * src/pic/main.c (_process_pragma): removed #pragma maxram,
2946           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
2947           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
2948           (_pic14_parseOptions): moved pCodeInitRegisters here
2949           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
2950         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
2951           (pCodeInitRegisters): rewrapped comments, perpared new approach to
2952             handling the pseudo stack
2953         * device/lib/Makefile.in: ignore failures in objects-pic16,
2954         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
2955         * device/lib/pic/NEWS: document new dependency on picXXX.lib
2956         * device/lib/pic/Makefile.subdir,
2957         * device/lib/pic16/Makefile.subdir: improved clean rules
2958         * device/lib/pic/libdev/: NEW, pic14 device libraries
2959         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
2960         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
2961         * device/include/Makefile.in: create subdir and install pic14 headers
2962         * device/include/pic/p16f_common.inc: removed unused declarations
2963         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
2964             PICs from inc2h.pl v1.6,
2965             replaced BIT_AT macros with struct declarations
2966         * device/include/pic/pic14devices.txt: definition of supported devices,
2967             all above improvements contributed by Zik Saleeba, thanks
2968         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
2969         * support/scripts/sdcc.nsi: also install pic14 device libraries and
2970             headers
2971
2972 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2973
2974         * device/include/mcs51/c8051f410.h: added interrupt numbers,
2975         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
2976           thanks to Charles Olds
2977
2978 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2979
2980         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
2981
2982 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2983
2984         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
2985         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
2986         * support/regression/bug1464657.c: added, new test
2987
2988 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2989
2990         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
2991           version number
2992
2993 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2994
2995         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
2996           --no-peep and --peep-file <file> are used don't use default rules but
2997           do use the <file>
2998
2999 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3000
3001         * src/mcs51/gen.c (genCall): fixed bug 1457608
3002
3003 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3004
3005         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
3006         changes seem to cause (trigger?) problems with the build system.
3007
3008 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
3009
3010         * src/SDCCpeeph.c (operandsLiteral): new, added,
3011           (callFuncByName): inserted operandsLiteral
3012         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
3013
3014 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3015
3016         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
3017         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
3018
3019 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3020
3021         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
3022           implemented patch 1120823 Thanks to Willy De la Court (normal
3023           interrupts need an interrupt number now if they are made critical),
3024           and enabled nesting of critical functions though not for gbz80
3025           (genCritical, genEndCritical): added functions
3026           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
3027         * src/z80/mappings.i: added "ei" to all mappings
3028
3029 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3030
3031         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
3032         submitted by the Debian SDCC maintainer Aurelien Jarno:
3033         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
3034         archive with gcc 4.1 on mips and wrote the patch"
3035
3036 2006-03-16 Raphael Neider <rneider AT web.de>
3037
3038         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
3039           the left operand is shorter than the result (c* = lit-c* + int),
3040           fixes bug #1450796
3041         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
3042           OP_SYMBOL
3043
3044 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3045
3046         * src/.version: increased version number to 2.5.5
3047         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
3048         linking is done manually in pic16 port's _linkEdit,
3049         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
3050         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
3051         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
3052         allocate asmop as AOP_ACC,
3053         (aopForRemat): added parameter 'bool result' in function declaration,
3054         (pic16_aopGet): return AOP_ACC when accessing WREG,
3055         (pic16_popGetTempReg): minor modification,
3056         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
3057         'pic16_allocWithIdx',
3058         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
3059         calling function in absolute addresses,
3060         (genAssign): take into account AOP_ACC asmop,
3061         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
3062         * src/pic16/pcoderegs.c: some debug functions and lines added,
3063         * src/pic16/ralloc.c (decodeRegType): added but commented out,
3064         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
3065         register too,
3066         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
3067         call to allocReg, not by manually allocating a new one,
3068         (pic16_assignRegisters): now before going through the register
3069         allocating functions mark all registers as free. This eliminates some
3070         side effects resulting from peephole parser done earlier in the backbone
3071
3072 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
3073
3074         * src/SDCCicode.c (geniCodeLogic),
3075         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
3076
3077 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
3078
3079         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
3080           (genSend): bugfix, do not allocate and free twice,
3081           (shiftRLong): handle partially overlapping aops
3082         * support/regression/tests/bitopcse.c: fixed warning redefined idata
3083
3084 2006-03-08 Borut Razem <borut.razem AT siol.net>
3085
3086         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
3087           for pic16
3088
3089 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
3090
3091         * support/regression/tests/bug1409955.c: new, added
3092         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
3093         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
3094           (aopForSym, aopOp): increment asmop.allocated if reused,
3095           (freeAsmop): decrement asmop.allocated and check for zero instead of
3096           using asmop.freed,
3097           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
3098           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
3099            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
3100            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
3101            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
3102            genSignedRightShift, genRightShift, genDataPointerGet,
3103            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
3104            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
3105             in reverse order from allocation,
3106           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
3107             added swappedLR to keep track
3108         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
3109           pdata & code for GCC, z80, gbz80 & hc08
3110         * support/regression/tests/zeropad.c: moved defines to testfwk.h
3111
3112 2006-03-08 Raphael Neider <rneider AT web.de>
3113
3114         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
3115
3116 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
3117
3118         * device/include/mcs51/c8051f410.h: new SiLabs mcu
3119         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
3120         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
3121
3122 2006-03-06 Borut Razem <borut.razem AT siol.net>
3123
3124         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
3125           made the linker quiet
3126
3127 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3128
3129         * src/pic16/gen.c (genPcall): fixed bug #1443644
3130         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
3131         which dumps before the function entry point a data byte which represents
3132         the number of the local variables used by the specified function, added
3133         'xinst' for initial support for Extended Instruction Support,
3134         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
3135         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
3136         port->fun_prefix anymore (may change later),
3137         (genFunction, genEndFunction): do not store/restore local registers for
3138         _main (this should take care the --main-return command line option in
3139         the future),
3140         (genOr): removed some legacy pic-port instructions,
3141         * src/pic16/genarith.c (genAddLit): re-enabled old code because
3142         performing operations with SFR's causes data to be written more than
3143         once to each SFR. Perhaps SFRs should be handled in special cases...
3144         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
3145         pcode.h
3146         * src/pic16/main.c (_process_pragma): stack bound checking did not take
3147         into account for stack starting position,
3148         (struct OPTIONS pic16_optionsTable): added command line argument
3149         --extended or -y for Extended Instruction Support,
3150         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
3151         (deassignLRs): *** perhaps the most important change, old 'for' code
3152         (commented out for reference), didn't account for some registers which
3153         were left marked 'not free' after a pointer operation. The change
3154         reduces register usage a lot in some cases
3155
3156 2006-03-04 Borut Razem <borut.razem AT siol.net>
3157
3158         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
3159           _clean
3160         * support/regression/tests/bug-524697.c: decreased array size for
3161           mcs51 to fit into the internal RAM
3162         * support/regression/Makefile.in: a little bit more verbose
3163
3164 2006-03-03 Borut Razem <borut.razem AT siol.net>
3165
3166         * support/regression/fwk/lib/testfwk.c,
3167           support/regression/fwk/include/testfwk.h: introduced function
3168           _prints(), nonrecursive _printn(), call _initEmu() from main()
3169         * support/regression/ports/gbz80/support.asm,
3170           support/regression/ports/ucz80/support.asm,
3171           support/regression/ports/z80/support.asm,
3172           support/regression/ports/ds390/support.c,
3173           support/regression/ports/hc08/support.c,
3174           support/regression/ports/host/support.c,
3175           support/regression/ports/mcs51/support.c,
3176           support/regression/ports/xa51/support.c: added empty _initEmu()
3177           function
3178         * support/regression/ports/pic16/gpsim.cmd,
3179           support/regression/ports/pic16/spec.mk,
3180           support/regression/ports/pic16/support.c,
3181           support/regression/Makefile.in: added pic16 regression test
3182
3183 2006-03-01 Raphael Neider <rneider AT web.de>
3184
3185         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
3186           genConstPointerGet): use safe way of generating MOVFF to cover
3187             literals as well as registers, fixes bug #1440527
3188         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
3189             dereference
3190           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
3191             more correctly, fixes bug #1232186
3192           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
3193         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
3194             gplink guess the correct processor in more cases, applied patch
3195             from Till Riedel attached to and fixing bug #1436552
3196
3197 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3198
3199         * support/regression/tests/array.c: added, contains check for #1434401
3200         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
3201
3202 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
3203
3204         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
3205         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
3206         * device/include/mcs51/c8051f326.h,
3207         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
3208         * device/include/mcs51/c8051f000.h,
3209         * device/include/mcs51/c8051f018.h,
3210         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
3211           PCON_IDLE,PCON_STOP and added sfr16 definitions
3212
3213 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3214
3215         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
3216           genGetWord): fixed bug 1409955
3217
3218 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3219
3220         * device/include/hc08/mc68hc908gp32.h,
3221         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
3222
3223 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
3224
3225         * src/SDCCast.c (constExprValue): return NULL if not a value
3226         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
3227         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
3228         * support/regression/tests/bitfields.c: enabled signed bitfield for all
3229
3230 2006-02-13 Borut Razem <borut.razem AT siol.net>
3231
3232         * src/regression/ptrarg.c: added, fails due to bug #1430967
3233         * src/regression/Makefile: ptrarg.c added, ...
3234
3235 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
3236
3237         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
3238         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
3239
3240 2006-02-11 Borut Razem <borut.razem AT siol.net>
3241
3242         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
3243           print "Processor: xxx" message to stdout only if --verbose
3244
3245 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3246
3247         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
3248         * support/regression/tests/bug1426356.c: added
3249         * support/regression/tests/bitfields.c: removed 2 tests
3250
3251 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3252
3253         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
3254         * device/include/mcs51/c8051f330.h,
3255         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
3256           PCON_IDLE,PCON_STOP and added sfr16 definitions
3257         * device/lib/_divsint.c,
3258         * device/lib/_divuint.c,
3259         * device/lib/_divulong.c,
3260         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
3261           register bank bug for small stackauto
3262
3263 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3264
3265         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
3266
3267 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
3268
3269         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
3270         * all.dsp: corrected several bin paths
3271         * device/include/mcs51/c8051f120.h,
3272         * device/include/mcs51/c8051f300.h,
3273         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
3274           to PCON_IDLE,PCON_STOP
3275         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
3276         * device/lib/printf_large.c (output_float): fixed bug 1388703
3277         * support/regression/tests/bug1057979.c: added test for bug 1388703
3278
3279 2006-02-08 Raphael Neider <rneider AT web.de>
3280
3281         * src/pic/pcode.c (pciTRIS): fixed typo,
3282           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
3283           (LinkFlow): fixed handling of flows that end in a call,
3284           (ReuseReg): perform safety check earlier
3285         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
3286             to work with flows at the beginning of a pBlock,
3287             fixes #1426557 (Symbol not previously defined),
3288           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
3289             usage information
3290           (RemoveUnusedRegisters): update register usage info
3291         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
3292             created, reuse existing ones instead
3293         * src/pic/gen.c (genPcall): fixed #1424719
3294
3295 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
3296
3297         * link/z80/lkmain.c,
3298         * link/z80/lklex.c,
3299         * link/z80/lkdata.c,
3300         * link/z80/aslink.h: fixed build on current cygwin:
3301         replaced getline() by lk_getline()
3302
3303 2006-02-01 Borut Razem <borut.razem AT siol.net>
3304
3305         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
3306           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
3307           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
3308           src/regression/bool1.c, src/regression/bool2.c,
3309           src/regression/bool3.c, src/regression/call1.c,
3310           src/regression/compare.c, src/regression/compare10.c,
3311           src/regression/compare2.c, src/regression/compare3.c,
3312           src/regression/compare4.c, src/regression/compare5.c,
3313           src/regression/compare6.c, src/regression/compare7.c,
3314           src/regression/compare8.c, src/regression/compare9.c,
3315           src/regression/configword.c, src/regression/for.c,
3316           src/regression/inline.c, src/regression/mult1.c,
3317           src/regression/nestfor.c, src/regression/or1.c,
3318           src/regression/pointer1.c, src/regression/ptrfunc.c,
3319           src/regression/rotate1.c, src/regression/rotate2.c,
3320           src/regression/rotate3.c, src/regression/rotate4.c,
3321           src/regression/rotate5.c, src/regression/rotate6.c,
3322           src/regression/rotate7.c, src/regression/string1.c,
3323           src/regression/struct1.c, src/regression/sub.c,
3324           src/regression/sub2.c, src/regression/switch1.c,
3325           src/regression/while.c, src/regression/xor.c,
3326           src/regression/create_stc, src/regression/simulate,
3327           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
3328           regression tests
3329         * src/regression/gpsim_assert.h: added
3330
3331 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
3332
3333         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
3334         ((void (code *) (void)) 0) ();
3335         * as/hc08/aslex.c,
3336         * as/hc08/aslink.h,
3337         * as/hc08/asm.h,
3338         * as/hc08/asmain.c,
3339         * as/hc08/lkdata.c,
3340         * as/hc08/lklex.c,
3341         * as/hc08/lkmain.c,
3342         * as/mcs51/aslex.c,
3343         * as/mcs51/aslink.h,
3344         * as/mcs51/asm.h,
3345         * as/mcs51/asmain.c,
3346         * as/mcs51/lkdata.c,
3347         * as/mcs51/lklex.c,
3348         * as/mcs51/lkmain.c,
3349         * as/z80/aslex.c,
3350         * as/z80/asm.h,
3351         * as/z80/asmain.c: fixed build on current cygwin:
3352         replaced getline() by as_getline()
3353
3354 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
3355
3356         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
3357         declarator in the symbol chain
3358         * src/SDCCsymt.h,
3359         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
3360         parameter list for function pointers
3361         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
3362         * support/regression/tests/bug-716242.c: added
3363
3364 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
3365
3366         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
3367         offset if possible
3368         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
3369
3370 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
3371
3372         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
3373         inifinitely recurseable, added static
3374         * support/regression/tests/bug-1408066.c: added
3375
3376 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
3377
3378         * src/SDCCicode.h,
3379         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
3380         renamed, added possibility to create "postLoopLbl"-labels
3381         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
3382         newiTempLoopHeaderLabel
3383         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
3384         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
3385         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
3386         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
3387         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
3388         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
3389         (basicInduction): fixed bug #136564, made static,
3390         (loopInduction): changed parameter of basicInduction, made static,
3391         (addPostLoopBlock): added
3392         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
3393         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
3394         findLoopEndSeq
3395         * support/regression/tests/bug-136564.c: added
3396         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
3397         --std-sdcc99 to LIBSDCCFLAGS
3398
3399 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
3400
3401         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
3402         while loop
3403         * support/regression/tests/bug-1406131.c: added
3404
3405 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
3406
3407         * src/SDCCast.c (decorateType): fix promotion of unary minus
3408         * src/SDCCsymt.c (computeType): beautified
3409         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
3410         (valUnaryPM, valComplement): fix sign and promotion,
3411         (valNot): ANSI: result type is int (SDCC: unsigned char)
3412         * support/regression/tests/uminus.c: speedup by removing superflous
3413         test case 'int'
3414         * support/regression/tests/onebyte.c: added promotion and signedness
3415         tests for unary minus
3416         * support/regressions/tests/bug-477927.c: disable warning about
3417         uninitialized variables
3418         * support/regression/tests/not.c: added
3419
3420 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
3421
3422         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
3423         * src/mcs51/gen.c (gen51Code): show final register usage after
3424         fillGaps in asm with --i-code-in-asm
3425         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
3426         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
3427         incUsed, rliveClear, adjustIChain): made static,
3428         (setFromRange): excluded because it's unused,
3429         (findPrevUseSym, markWholeLoop): added,
3430         (findPrevUse): rewritten; fixes bug 895992; now a complete search
3431         through all branches of predecessors enables sdcc to emit the warning
3432         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
3433         (rlivePoint): made static, added parameter emitWarnings which is only
3434         true during the first run out of two,
3435         (findRecursiveSucc, findRecursivePred): removed,
3436         (computeLiveRanges): made static, added parameter emitWarnings,
3437         (dumpIcRlive): added for debugging only
3438         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
3439         removed prototype of setFromRange()
3440         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
3441         in call of computeLiveRanges()
3442         * support/regression/tests/bug-895992.c: added
3443         * support/regression/tests/bug-971834.c: added
3444         * support/valdiag/tests/bug-895992.c: added
3445         * support/valdiag/tests/bug-971834.c: added
3446
3447 2005-12-18 Raphael Neider <rneider AT web.de>
3448
3449         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
3450           (genUnpackBits): improved code for direct operands,
3451           (genPackBits): improved code for literal assignment to bitfields
3452             and for direct destination operands (no FSR indirection),
3453             prevented redundant AND, fixes #1362800,
3454           (AccLsh): added parameter to disable masking of the result
3455         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
3456           skip instructions with side-effects (like incfsz),
3457           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
3458         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
3459         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
3460           fixes #1375263
3461
3462 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
3463
3464         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
3465         volatile variables as spill location
3466
3467 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
3468
3469         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
3470         replacing literals
3471         * support/regression/tests/bug-1376320.c: added
3472
3473 2005-12-08 Raphael Neider <rneider AT web.de>
3474
3475         * src/pic/device.c: renamed is_shared to pic14_is_shared
3476         * src/pic/gen.c (genIfx): re-enabled handling of sbits
3477         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
3478           (is_valid_identifier): added for above workaround
3479
3480 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
3481
3482         * device/lib/Makefile.in: fixed to enable port-specific-objects
3483         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
3484           char, thanks Hubert Sack
3485         * doc/sdccman.lyx: documented --xstack-loc,
3486           elaborated a bit more on interrupts and pitfalls,
3487           removed "setjmp/longjmp unsupported",
3488           documented some unsupported C99 features
3489         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
3490         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
3491           if, thanks Hubert Sack
3492         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
3493         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
3494           make make_library
3495         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
3496           regression tests can report resource usage (rfe 700441)
3497         * support/regression/collate-results.py: report resource usage
3498         * support/regression/ports/ds390/spec.mk,
3499         * support/regression/ports/hc08/spec.mk,
3500         * support/regression/ports/mcs51/spec.mk,
3501         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
3502         * support/regression/ports/ds390/uCsim.cmd,
3503         * support/regression/ports/hc08/uCsim.cmd,
3504         * support/regression/ports/mcs51/uCsim.cmd,
3505         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
3506         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
3507           library, use the default one
3508         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
3509           building the library
3510
3511 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
3512
3513         * config.dsp: added dependency on .version and configure_vc.awk
3514         * device/include/setjmp.h: updated for --stack-auto and --xstack
3515         * device/include/mcs51/at89c51snd1c.h: corrected line endings
3516         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
3517         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
3518         * device/lib/libsdcc.lib: added _setjmp
3519         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
3520           (decorateType): fixed bug 1372851,
3521           (optimizeGetHbit): fixed warning
3522         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
3523           array initialisation
3524         * support/regression/tests/bug1057979.c: added test for bug 1358192
3525         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
3526
3527 2005-12-03 Borut Razem <borut.razem AT siol.net>
3528
3529         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
3530           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
3531
3532 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
3533
3534         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
3535         createIval): implement symbol independant "flexible array member",
3536         (createIvalCharPtr): implemented flexible array initialisation with a
3537         string
3538         * src/SDCCsymt.c (copyStruct): removed,
3539         (getSize): fixed misleading comment,
3540         (getAllocSize): removed, the additional allocation size is now in
3541         sym->flexArrayLength,
3542         (checkStructFlexArray): new, syntax checks for flexible array members,
3543         (compStructSize): added syntax checks for "flexible array members"
3544         (copyStruct): removed,
3545         (copyLinkChain): removed inefficient fix for bug 770487
3546         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
3547         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
3548         symbol->flexArrayLength
3549         * src/SDCCerr.c,
3550         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
3551         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
3552         * support/regression/tests/structflexarray.c: added
3553         * support/valdiag/tests/structflexiblearray.c: added
3554
3555 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
3556
3557         * src/SDCCast.c (decorateType): fixed bug 1368489
3558         * support/Util/SDCCerr.c,
3559         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
3560
3561 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3562
3563         * device/include/mcs51/at89c51snd1c.h: added file submitted by
3564           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
3565
3566 2005-11-27 Borut Razem <borut.razem AT siol.net>
3567
3568         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
3569           support/cpp2/mkdeps.h: added command line option
3570           -obj-ext=<extension> to SDCPP to define object file externion, used
3571           for generation of make dependencies (-M)
3572         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
3573
3574 2005-11-26 Borut Razem <borut.razem AT siol.net>
3575
3576         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
3577           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
3578           added pic and pic16 libraries
3579
3580 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3581
3582         * device/include/float.h: Corrected typo in prototype of __fsgt
3583
3584 2005-11-25 Borut Razem <borut.razem AT siol.net>
3585
3586         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
3587           added creation of model-mcs51-stack-auto libraries
3588
3589 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
3590
3591         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
3592         and fields-list too
3593         * src/SDCCast.c (createIvalArray): removed obsolete comment
3594
3595 2005-11-24 Borut Razem <borut.razem AT siol.net>
3596
3597         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
3598           added missing device/lib/mcs51/crt*.asm sources
3599
3600 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
3601
3602         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
3603
3604 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
3605
3606         * device/lib/_fs2schar.c,
3607         * device/lib/_fs2sint.c,
3608         * device/lib/_fs2slong.c: optimized inline asm
3609
3610 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3611
3612         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3613           Better handling of floats between -1.0 and 0.0.
3614
3615 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3616
3617         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
3618           (the missing "if"s prohibited removal of redundant labels)
3619
3620 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3621
3622         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3623           Properly convert floats between -1.0 and 0.0 to long, int, and char
3624           types (max integer value of negative floats tends to zero).
3625         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3626           Removed changes made so to work properly with floats between
3627           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
3628           and _fs2char.c
3629
3630 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3631
3632         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
3633         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
3634         (genCast) cosmetic change
3635         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
3636         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
3637         from mcs51
3638         * support/regression/tests/bitfields (testSignedBitfields): added
3639
3640 2005-11-18 Borut Razem <borut.razem AT siol.net>
3641
3642         * sdcc/device/lib/Makefile.in: remove all unnecessary files
3643         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
3644           introduced SILENT option to make building of pic16 libraries less
3645
3646 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3647
3648         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3649           Now they work properly with floats between -1.0 and 0.0
3650         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
3651
3652 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
3653
3654         * src/SDCCicode.c (printOperand): added missing else
3655
3656 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3657
3658         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
3659         reformatted for better readability
3660         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
3661         signed bitfields
3662
3663 2005-11-17 Borut Razem <borut.razem AT siol.net>
3664
3665         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
3666           introduced SILENT option to make building of pic16 libraries less
3667           verbose - used for nightly snapshot build
3668         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
3669           available on Win32 platforms.
3670         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
3671           medium, large, pic and pic16
3672
3673 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3674
3675         * device/lib/printf_large.c: Temporary patch for bug 1358192:
3676           printf("%f"...) sets fraction to zero.
3677
3678 2005-11-16 Raphael Neider <rneider AT web.de>
3679
3680         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
3681           fixes #1357221
3682         * src/pic/gen.c (genIfx): implemented for CARRY bit
3683         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
3684           to generic pointers, fixes #1357332,
3685           (pic16_movLit2f): NEW,
3686           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
3687
3688 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3689
3690         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
3691
3692 2005-11-11 Raphael Neider <rneider AT web.de>
3693
3694         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
3695         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
3696           compute pointer's type from operand,
3697           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
3698           improved single bit reads, fixes bug #1353379
3699
3700 2005-11-09 Borut Razem <borut.razem AT siol.net>
3701
3702         * support/scripts/sdcc.nsi: added lib/pic to the package
3703
3704 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
3705
3706         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
3707
3708 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
3709
3710         * support/regression/tests/bug1348008.c: added
3711         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
3712         * support/regression/tests/bug1337835.c: updated comment
3713
3714 2005-11-06 Borut Razem <borut.razem AT siol.net>
3715
3716         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3717           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3718           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3719           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3720           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
3721           dynamic construction of cl_error_class and derivates - 2.nd try
3722
3723 2005-11-05 Borut Razem <borut.razem AT siol.net>
3724
3725         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
3726           bug, which caused Bus Errors on sparc solaris
3727
3728 2005-11-04 Borut Razem <borut.razem AT siol.net>
3729
3730         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3731           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3732           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3733           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3734           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
3735           and derivates to resolve the initialization problem on OSX
3736
3737 2005-11-02 Borut Razem <borut.razem AT siol.net>
3738
3739         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3740           corrected typo - #include <winsock2.h>
3741
3742 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
3743
3744         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
3745           (_asxxxx_mapping): added org directive for future enhancements
3746
3747 2005-11-01 Borut Razem <borut.razem AT siol.net>
3748
3749         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3750           enabled sockets on WIN32
3751         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
3752
3753 2005-10-31 Borut Razem <borut.razem AT siol.net>
3754
3755         * support/regression/generate-cases.py: escape backslashes in {testcase}:
3756           WIN32 backslash path delimiters should be escaped when used in C strings
3757         * support/regression/tests/bitfields.c: exclude failing assertions for
3758           __CYGWIN32__ and __MINGW32__ hosts
3759
3760 2005-10-30 Borut Razem <borut.razem AT siol.net>
3761
3762         * src/SDCCutil.c: corrected double comparison typo
3763
3764 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
3765
3766         * device/lib/medium/Makefile: added for new memory model medium
3767         * device/include/asm/mcs51/features.h: updated for medium/pdata
3768         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
3769           added Multiply & Accumulate sbit's and MAC0_PAGE define
3770         * device/include/mcs51/c8051f300.h: added sfr16 definitions
3771         * device/include/mcs51/c8051f310.h: added sfr16 definitions
3772         * device/lib/_mullong.c: update for medium model
3773         * device/lib/incl.mk: added medium model
3774         * doc/sdccman.lyx: documented medium model
3775         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
3776         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
3777         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
3778         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
3779           (allocParms): set SCLS and OCLS to pdata for medium model
3780         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
3781           for pdata,
3782           (powof2): return <0 if not power of 2
3783         * src/avr/gen.c (genBitWise): use updated powof2
3784         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
3785           (shiftR2Left2Result): small optimization in setup, save acc when storing,
3786           (shiftLLeftOrResult): use B if necessary
3787         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
3788         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
3789         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
3790         * support/regression/Makefile.in: added test-mcs51-medium
3791         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
3792
3793 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
3794
3795         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
3796         specifier unsigned
3797         * device/lib/time.c (mktime): fixed bug 1334315
3798
3799 2005-10-28 Raphael Neider <rneider AT web.de>
3800
3801         * device/include/pic/p16f_common.inc: added common declarations
3802         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
3803
3804 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3805
3806         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
3807           (aopPutUsesAcc): added to predict accumulator use,
3808           (assignResultValue): save acc if necessary,
3809           (genMinusDec): store result if indirectly addressed,
3810           (genDivOneByte):  save acc if necessary,
3811           (movLeft2Result): bugfix if left already in acc,
3812           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
3813             attention to accumulator use (esp. pdata),
3814           (genReceive): receive pdata correctly
3815         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
3816         * src/SDCCicode.h: added isOperandInPagedSpace prototype
3817
3818 2005-10-27 Raphael Neider <rneider AT web.de>
3819
3820         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
3821
3822 2005-10-27 Raphael Neider <rneider AT web.de>
3823
3824         * .version: changed version to 2.5.4
3825         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
3826         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
3827           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
3828             arithmetics support routines
3829         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
3830         * device/lib/Makefile.in: also create installdir for pic
3831
3832         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
3833           pic14 port as well
3834         * src/pic/device.c (dump_sfr): rewritten to delegate register
3835           placement to the linker (use `extern sym' rather than sym EQU addr),
3836           (validAddress): fixed to check last specified address
3837         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
3838           (popGetLit): truncate literal value to 8 bit,
3839           (popGet): moved assert to more appropriate place
3840           (popGetExternal): create pCode operand from and mark the according
3841             symbol as being `extern'
3842           (popGetAddr): added sanity check on immediate's offset, provide
3843             GPOINTER tag on demand
3844           (aopPut): fixed for immediates,
3845           (mov2w_op): move operand's address or contents to WREG (depending on
3846             operand type), safer variant of mov2w,
3847           (movwf,call_libraryfunc): NEW, handy abbreviations,
3848           (get_argument_pcop,get_return_val_pcop,pass_argument,
3849           get_returnvalue): interface for accessing function parameters and
3850             return values,
3851           (assignResultValuei,genRet): use new parameter/return value interface
3852           (pic14_getDataSize): back to old version handling generic pointers,
3853           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
3854             provided implementation and/or fixed old one,
3855           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
3856             calls, removed legacy 8051 reference code
3857           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
3858           (loadSignToC): NEW, move the operands sign bit to CARRY,
3859           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
3860             genRightShiftSigned, accepts negative shift counts,
3861           (setup_fsr): load FSR and adjust IRP (indirect memory access),
3862           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
3863             generic pointers, __data pointers and __code pointers,
3864           (genUnpackBits,genPackBits): rewritten to work with generic pointers
3865             and signed bitfields, limit bitfields to 8 bit,
3866           (genDataPointerGet): fixed number of bytes read,
3867           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
3868           (genPointerGet,genPointerSet): fixed handling of __code pointers,
3869             pointers to constant data are no longer assumed to point to __code
3870             space, removed invalid pointer types,
3871           (bitpatternFromVal): retrieve the PICs representation of an integer
3872             or float literal,
3873           (genDataPointerSet): fixed assigning to po_immediate operands,
3874           (genGenPointerSet): implemented as library call,
3875           (genIfx): fixed incorrect condition,
3876           (genAddrOf): limit generic pointers' addresses to 2 bytes,
3877             provide GPOINTER tag according to destination's storage class,
3878           (genCast): added code to handle casting to generic pointers, added
3879             sign-/zero extension of the result
3880           (aop_isLitLike,op_isLitLike): fixed handling of immediates
3881         * src/pic/gen.h: added macros to access IRP bit in STATUS register
3882         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
3883           extend the result
3884         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
3885           address/register resides in the shared banks
3886           (emitSymbolToFile): improved to handle global and `pinned' symbols,
3887             put all variables into separate sections (have the linker arrange
3888             them)
3889           (picglue): put init code and interrupt handlers in separate sections
3890         * src/pic/main.c: added port specific options table, modified to PORT
3891           structure to make GPOINTERs 3 byte, added pic14_options
3892           (_pic14_do_link): private linking routine (update paths to libraries,
3893             add libsdcc.lib by default)
3894         * src/pic/main.h: declare pic14_options
3895         * src/pic/pcode.c: fixed instructions i/o relations,
3896           (RegCond): reverted to correct version,
3897           (newpCodeOpLit): truncate literals to 8 bit,
3898           (genericPrint): added debug output,
3899           (getRegFromInstruction): fixed for various operand types, simplified
3900           (BuildFlow): fixed broken handling of isntructions with labels
3901           (LinkFlow): start at last instruction in flow (skip trailing comments),
3902             pass the flow on to the next instruction after CALL
3903           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
3904           (insertPCodeInstruction): fixed inserting after a skip instruction,
3905           (DoBankSelect): fixed for labeled instructions
3906           (OptimizepBlock): honor --nopeep switch
3907           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
3908         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
3909         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
3910           (pCodeOptime2pCodes): allow disabling this optimization via
3911             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
3912             but is still buggy), started implementation of a dataflow based
3913             pCode optimization (CSE + dead code elimination)
3914           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
3915         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
3916           names are independant of the stack location and therefore portable across
3917           devices
3918
3919 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3920
3921         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
3922           (selectSpil): fixed bug 1337835 by not spilling bit variables
3923         * support/regression/tests/bug1337835.c: added test for this bug
3924         * src/mcs51/peeph.def: restart after rule 3.c,
3925           addded rules 263.x to optimize loading constants
3926
3927 2005-10-26 Raphael Neider <rneider AT web.de>
3928
3929         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
3930         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
3931           (genAssign): emit warning when casting literals to generic pointer
3932             type, also applies when taking the address of a fixed variable,
3933           (genCast): improved casting to generic pointers
3934         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
3935           extern variables, added verbose error message
3936         * device/include/pic16/{string.h,errno.h}: added #pragma library c
3937
3938 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
3939
3940         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
3941         carry must be complemented too
3942         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
3943         could be emitted by genMinus
3944         * src/SDCCval.c (constVal): fixed bug 1305065
3945
3946 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
3947
3948         * src/SDCCast.c (addCast): added promotion for bit variables
3949         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
3950         promotion casts + optimisation
3951         (optimizeGetWord): fix warning 'i' might be used uninitialized
3952         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
3953         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
3954
3955 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
3956
3957         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
3958         all chars are promoted to int; promotion should be handled in SDCCast.c
3959
3960 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3961
3962         * device/lib/_strcmp.c: Fixed bug 1326457
3963
3964 2005-10-11 Raphael Neider <rneider AT web.de>
3965
3966         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
3967         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
3968
3969 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3970
3971         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
3972         * support/regression/tests/sfr16.c: added test for the sfr32 bug
3973
3974 2005-10-04 Raphael Neider <rneider AT web.de>
3975
3976         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
3977           device/lib/pic16/pics.all: added pic18f1320
3978         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
3979
3980 2005-09-30 Raphael Neider <rneider AT web.de>
3981
3982         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
3983         * src/pic16/devices.inc: NEW, provides device descriptions
3984         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
3985
3986 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
3987
3988         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
3989           GETHBIT
3990
3991 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
3992
3993         * doc/sdccman.lyx: updated Highest Order Bit documentation,
3994           documented Any Order Bit, Higher Order Byte and Higher Order Word
3995         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
3996         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
3997           (optimizeGetAbit): new, to get any bit, not only the high bit,
3998           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
3999           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
4000           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
4001           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
4002             RIGHT_OP: also try GETBYTE, GETWORD optimization,
4003             GETABIT, GETBYTE, GETWORD: decorate them,
4004           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
4005           (ast_print): added GETABIT, GETBYTE, GETWORD
4006         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
4007         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
4008           (geniCodeBinary): new generic binary icode,
4009           (ast2iCode): added GETABIT, GETBYTE, GETWORD
4010         * src/port.h: updated comment for PORT.hasExtBitOp
4011         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
4012           (genGetByte): new, to get a single byte,
4013           (genGetWord): new, to get a word from a long,
4014           (gen51Code): added GETABIT, GETBYTE, GETWORD
4015         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
4016
4017 2005-09-23 Raphael Neider <rneider AT web.de>
4018
4019         * configure.in, configure: have device/lib/pic configured
4020         * device/lib/Makefile.in: added model-pic14
4021         * device/lib/clean.mk: added pic/ to clean rule
4022         * device/lib/pic: added rudimentary pic14 library providing support
4023           functions for multiplication/division/generic pointer access
4024         * src/SDCCopt.c (convilong): mark support functions as extern
4025           for pic14 port as well
4026         * src/pic/gen.c (genMult): added assertions,
4027           (genpic14Code): emit warning on unhandled iCodes
4028         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
4029         * src/pic/pcode.c (pCodeOpCopy),
4030         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
4031           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
4032           SFR_REGISTER}), made safe for future extensions
4033         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
4034           instructions even if preceeded by SKIP instructions (also remove
4035           them); removed unused code
4036         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
4037           prevents leaving parts of the structure uninitialized after copying
4038
4039 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
4040
4041         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
4042           ago by me
4043         * support/regression/tests/addsub.c: added test for the bug
4044
4045 2005-09-21 Raphael Neider <rneider AT web.de>
4046
4047         * device/include/pic16/pic18f1220.h,
4048           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
4049         * device/lib/pic16/Makefile.rules: added missing opening paren
4050         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
4051           are provided in genutils.c,
4052           (genUminusFloat,genUminus,genCmpEq): added asserts on different
4053           operand/result sizes,
4054           (genCmp): assert on NULL pointers first, then check deref'ed values
4055         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
4056           result size
4057
4058 2005-09-18 Raphael Neider <rneider AT web.de>
4059
4060         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
4061           as these are now unused,
4062           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
4063         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
4064           local, avoids uninitialized pointer dereference on r->name
4065         * src/pic16/ralloc.c (newReg): fixed indentation
4066
4067 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
4068
4069         * src/SDCCval.c (constVal): fixed bug 730366
4070         * support/Util/SDCCerr.c,
4071         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
4072
4073 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4074
4075         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
4076
4077 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
4078
4079         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
4080
4081 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4082
4083         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
4084           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4085         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
4086           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4087         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
4088         * packihx/packihx.c (hexDigit): made c unsigned char
4089         * as/mcs51/lklibr.c (fndsym),
4090         * link/z80/lkgb.c (gb),
4091         * link/z80/lklibr.c (fndsym),
4092         * link/z80/lkrloc.c (relr),
4093         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
4094         * src/SDCC.lex (checkCurrFile, process_pragma),
4095         * src/SDCCglue.c (spacesToUnderscores),
4096         * src/SDCCmain.c (setParseWithComma, processFile),
4097         * src/asm.c (tvsprintf, printCLine),
4098         * src/avr/gen.c (emitcode, aopPut),
4099         * src/ds390/gen.c (emitcode),
4100         * src/hc08/gen.c (emitcode, emitinline),
4101         * src/mcs51/gen.c (emitcode, genInline),
4102         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4103           tokenizeLineNode),
4104         * src/pic/ralloc.c (debugLog),
4105         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4106           tokenizeLineNode),
4107         * src/pic16/ralloc.c (debugLog),
4108         * src/z80/main.c (_process_pragma):
4109            made all ctype.h function calls safe
4110         * src/SDCCopt.c: include math.h for fabs
4111         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
4112           and used them throughout the code to make ctype.h function calls safe
4113         * src/ds390/main.c (asmLineNodeFromLineNode),
4114         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
4115         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
4116            unsigned char*
4117         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
4118           (newpCodeAsmDir): made ctype.h function calls safe
4119         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
4120           pic16_emitcode):  made lbp unsigned char*
4121         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
4122           (pic16_newpCodeAsmDir): made ctype.h function calls safe
4123         * src/xa51/gen.c (emitcode),
4124         * src/z80/gen.c (_emit2): made lbp unsigned char*
4125         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
4126            char*
4127
4128 2005-09-05 Raphael Neider <rneider AT web.de>
4129
4130         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
4131           access bank splitpoint
4132
4133 2005-09-05 Raphael Neider <rneider AT web.de>
4134
4135         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
4136
4137 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
4138
4139         * .version: changed to version 2.5.3
4140         * doc/sdccman.lyx: changed version to 2.5.3,
4141           documented --codeseg and --constseg and pragma codeseg and constseg,
4142           documented bit parameters (reentrant) and bit returning
4143         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
4144            currFunc->recvSize, but is this ok for all ports?
4145           (ast2iCode): result of ~ on unsigned char must be cast to int for
4146            bool to work
4147         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
4148           function pointers in bit space
4149         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
4150           (processFuncArgs): call port.reg_parm() with reentrancy info
4151         * src/port.h,
4152         * src/avr/main.c,
4153         * src/ds390/main.c,
4154         * src/hc08/main.c,
4155         * src/pic/main.c,
4156         * src/pic16/main.c,
4157         * src/xa51/main.c,
4158         * src/z80/main.c: port.reg_parm prototype extended with
4159           "bool reentrant" parameter
4160         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
4161           options.stackAuto for allocating bit register parameters
4162         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
4163           (genSend): set BitBankUsed if it is,
4164           (selectRegBank): factored out of genCall for use in genPcall,
4165           (genCall): removed redundant dtype assignmen, use selectRegBank,
4166           (genPcall): handle returning in Carry properly, save in F0 if needed,
4167           (genReceive): handle bit register parameters
4168         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
4169           (mcs51_assignRegisters): enable bit registers for all reentrant
4170            functions and don't set BitBankUsed unconditionally
4171         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
4172         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
4173         * support/regression/tests/funptrs.c: added tests for BOOL and for return
4174
4175 2005-08-27 Borut Razem <borut.razem AT siol.net>
4176
4177         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
4178         ppc-osx (Darwin) does not support -u option. It seems that it is
4179         supported only on Linux - GNU cp
4180
4181 2005-08-25 Borut Razem <borut.razem AT siol.net>
4182
4183         * sim/ucsim/gui.src/serio.src/Makefile.in,
4184           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
4185           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4186           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
4187           install and strip, since the strip at /usr/ccs/bin should be used
4188           on solaris
4189
4190 2005-08-24 Borut Razem <borut.razem AT siol.net>
4191
4192         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
4193
4194 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
4195
4196         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
4197         ffffffffu
4198
4199 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
4200
4201         * as/mcs51/aslink.h: completed lkrloc.c prototypes
4202         * as/mcs51/lkmain.c (link_main): fixed warning
4203         * device/include/stdbool.h: ds390 has no advanced bit support yet
4204         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
4205         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
4206         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
4207           and updated their macros
4208         * src/SDCCval.c (constVal): updated comment for renamed b_long
4209
4210 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
4211
4212         * as/mcs51/asdata.c: changed ctype['['] to BINOP
4213         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
4214           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
4215           (oprio): set priority for '['
4216         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
4217            and adb_24_bit
4218         * as/mcs51/asm.h: added defines R_BIT and S_BIT
4219         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
4220         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
4221         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
4222           added overlayable BIT_BANK area
4223         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
4224           (summary2): explain 'T' in legenda
4225         * as/mcs51/lkrloc.c: replaced old K&R style,
4226           (relr): added R_BIT processing,
4227           (errmsg): added "Bit-addressable relocation error",
4228           (adb_bit): added for converting from byte- to bit-addressable space,
4229           (adb_24_bit): added for converting from byte- to bit-addressable space
4230         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
4231            used in reentrant functions now even as return value
4232         * device/lib/_gptrput.c (_gptrput): removed obsolete code
4233         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
4234           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
4235         * src/SDCCglobl.h: added indicator BitBankUsed
4236         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
4237            the bit registers b0-b7
4238         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
4239           (geniCodeCast): fixed bug 1263853,
4240           (geniCodeLogicAndOr): put result in bool or char,
4241           (geniCodeReceive): added parameter func for accessing the return type,
4242           (geniCodeFunctionBody): pass func to geniCodeReceive
4243         * src/SDCCmain.c: added indicator BitBankUsed
4244         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
4245         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
4246           (checkSClass): don't put automatic bool/bit on stack,
4247           (checkFunction): removed check on function cannot return bit
4248         * src/SDCCsymt.h: added newBoolLink prototype
4249         * src/mcs51/gen.c (rb1regs): added bit registers,
4250           (movc): created for assigning to carry,
4251           (pushReg, popReg): created for pushing registers,
4252           (sameRegs): check both AOP_REG and AOP_CRY types,
4253           (aopOp): handle bit registers,
4254           (aopPut): optimization no self-assign,
4255           (saveRegisters): push reg->base (bits) only once for bit registers,
4256            and use pushReg,
4257           (unsaveRegisters): pop reg->base only once and use popReg,
4258           (assignResultValue): added parameter func and return in carry for bits,
4259           (genIpush): optimization no reload in A if not changed,
4260           (genSend): bit parameters in reentrant functions are passed in bit
4261            registers by first assigning to bits in B, then save registers and
4262            copy B to bits,
4263           (genCall): handle returning in Carry properly, save it in F0 if needed,
4264           (genPcall): updated assignResultValue call, this is not safe yet for bit
4265            returning function !!!
4266           (genFunction): don't generate equ's for bit registers and use pushReg,
4267           (genEndFunction): take care of bit returning functions and use popReg,
4268           (genRet): return bit in Carry,
4269           (genIfx): optimize bit registers and other directly addressable bits,
4270           (genReceive): updated assignResultValue call
4271         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
4272           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
4273            registers when using stack-auto
4274         * src/mcs51/ralloc.c (_G): added allBitregs,
4275           (regs8051): added the bit registers,
4276           (createStackSpil): use macro IS_BIT,
4277           (getRegBit): added to allocate a bit register, else spill,
4278           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
4279           (updateRegUsage): factored out to ease stepping while debugging,
4280           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
4281            also allocate bit registers,
4282           (fillGaps): handle bit registers,
4283           (findAllBitregs): added to create bit vector with all bit registers,
4284           (mcs51_allBitregs): returns this bit vector,
4285           (mcs51_assignRegisters): when using stack-auto use bit registers for
4286            passing parameters and creating local variables
4287         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
4288
4289 2005-08-22 Borut Razem <borut.razem AT siol.net>
4290
4291         * device/lib/Makefile.in: replaced find option -or with -o
4292           to make it run on solaris
4293
4294 2005-08-22 Raphael Neider <rneider AT web.de>
4295
4296         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
4297           fixes #1265442 (crash on Solaris)
4298
4299 2005-08-20 Borut Razem <borut.razem AT siol.net>
4300
4301         * configure, configure.in: added tests for libsocket and libnsl libraries,
4302           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
4303           from support/regression/Makefile.in
4304         * support/regression/Makefile.in: added
4305         * device/lib/pic16/Makefile.common.in: force make to use bash shell
4306         * sim/ucsim/libtool: regenerated on sparc-solaris
4307         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4308           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
4309           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
4310           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
4311           sparc-solaris, which doesn't use GNU ld linker
4312         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
4313         * as/Makefile: find on sparc-solaris does not support -maxdepth option
4314
4315 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
4316
4317         * src/mcs51/peeph.def: updated comments
4318
4319 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4320
4321         * device/lib/_gptrget.c,
4322         * device/lib/_gptrput.c: slightly shorter
4323         * doc/sdccman.lyx: incremented version
4324         * src/mcs51/peeph.def: moved peephole comments to the line of first
4325           change to better keep line correlation, reanimated 186.e
4326         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
4327
4328 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4329
4330         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
4331           David Saxton with quotes around file name.
4332
4333 2005-08-15 Borut Razem <borut.razem AT siol.net>
4334
4335         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
4336           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
4337           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
4338           make tests run on x86_64 platform
4339
4340 2005-08-13 Raphael Neider <rneider AT web.de>
4341
4342         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
4343           as it might be executed DURING a build (parallel make is wonderful)
4344
4345 2005-08-13 Raphael Neider <rneider AT web.de>
4346
4347         * device/lib/Makefile.in (port-specific-objects-pic16):
4348           revert to cp $(PORT)/bin/*.* $(PORTDIR)
4349         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
4350           dependency
4351         * device/lib/pic16/Makefile.rules: build subdirs before creating
4352           the library, removed builddir rule, create $(builddir) early in
4353           recurse rule, use empty recurse rule for leaf directories
4354         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
4355           mkdir errors (race condition), removed duplicate suffix "hex"
4356           from clean rules
4357         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
4358         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
4359           prevents mkdir -p from aborting on Alpha
4360
4361 2005-08-12 Raphael Neider <rneider AT web.de>
4362
4363         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
4364           db-statements in order to allow for arrays of pointers in code
4365           sections to be placed without interspersed 0-padding, fixes
4366           bug #1256215
4367         * (emitStatistics): fixed division by zero for pic18f1220
4368         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
4369           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
4370         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
4371         * (pic16_pCodeConstString): keep track of already emitted string
4372           literals to prevent "duplicate definitions of symbol _str_NR"
4373         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
4374           debug message
4375         * device/lib/Makefile.in: ignore failing PIC16 library builds
4376         * device/lib/pic16/Makefile: do not build if gputils are missing
4377         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
4378
4379 2005-08-10 Raphael Neider <rneider AT web.de>
4380
4381         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
4382           my last commit)
4383
4384 2005-08-10 Raphael Neider <rneider AT web.de>
4385
4386         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
4387           Rokas' patch to add the new fixed point type "__fixed16x16"
4388         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
4389           functions for __fixed16x16 arithmetics
4390         * device/lib/pic16: reimplemented the build system to support
4391           a separate build directory, better handling of libio (create
4392           the library in a separate subdir for each architecture) and
4393           easier configuration (centralized in Makefile.common)
4394
4395 2005-08-07 Raphael Neider <rneider AT web.de>
4396
4397         * src/pic16/gen.c (genrshTwo): fixed sign extension
4398         * src/pic16/device.c: added pic18f2320, 4220 and 4320
4399         * device/include/pic16/pic18f2220.h: changed some bit definitions,
4400           added T0CONbits
4401         * device/include/pic16/pic18f4220.h: NEW, header for
4402           pic18f4220 and pic18f4320
4403         * device/include/pic16/pic18fregs.h: added new devices,
4404           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
4405         * device/include/pic16/signal.h: resolved name clashes
4406           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
4407           to also allow testing for interrupt enable bits, added
4408           comments on how to use the macros
4409         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
4410         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
4411           register definitions for the devices
4412         * device/lib/pic16/pics.all: added new devices
4413         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
4414           allocated memory
4415         * device/lib/pic16/libc/stdlib/memfree: do not count
4416           the block header as free memory
4417         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
4418           simplified and added missing end-of-blocklist-marker
4419           (reported by Peter Onion, fixes #1252814)
4420         * (_mergeHeapBlock): fixed loop condition
4421         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
4422           len==0, restructured code
4423         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
4424           up a bit, reduced bitfield accesses, prevent endless loops
4425           in case of heap corruption
4426         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
4427           "unreferenced arguments/must return a value" warnings
4428         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
4429           replaced BAUDREG with SPBRG
4430         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
4431           device/lib/pic16/debug/gstack/gstack.c: replaced
4432           _naked, _asm, _endasm with __naked, __asm, __endasm
4433
4434 2005-08-05 Raphael Neider <rneider AT web.de>
4435
4436         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
4437           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
4438
4439 2005-08-05 Borut Razem <borut.razem AT siol.net>
4440
4441         * device/lib/Makefile.in: added missing ';'
4442         * configure: removed ^M characters
4443
4444 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4445
4446         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
4447           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
4448           License
4449
4450 2005-08-04 Borut Razem <borut.razem AT siol.net>
4451
4452         * configure.in: pic16 libraries build 2nd try - enable running
4453           configure in device/lib/pic16
4454         * configure: regenerated from configure.in
4455         * device/lib/Makefile.in: create $(PORT)/bin directory
4456
4457 2005-08-03 Raphael Neider <rneider AT web.de>
4458
4459         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
4460           to get/set values via pointers
4461         * (genUnpackBits,genPackBits): changed detection of
4462           ptr->bitfield vs. sym.bitfield, fixed access via generic
4463           pointers, removed dead (wrong) code for multibyte bitfields
4464         * (genNearPointerGet, genGenPointerGet): removed useless code,
4465           fixed bitfield detection, fixes #1250594
4466         * (genNearPointerSet): removed useless code
4467         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
4468           and introduced macro pic16_emitpcode that conditionally emits
4469           the origin of the following pCode (useful for debugging SDCC)
4470         * src/pic16/pcode.c: changed (and disabled) some debug outputs
4471         * (createDefmap): fixed handling of LFSR for --optimize-df
4472
4473 2005-08-02 Borut Razem <borut.razem AT siol.net>
4474
4475         * device/lib/Makefile.in: pic16 libraries build enabled since
4476           gputils-0.13.2 are now localy installed at sourceforge's compile farm
4477
4478 2005-08-02 Raphael Neider <rneider AT web.de>
4479
4480         * src/pic16/gen.c (genPackBits): removed deprecated warning
4481         * (genGenPointerSet): fixed bitfield detection
4482
4483 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4484
4485         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
4486
4487 2005-07-31 Raphael Neider <rneider AT web.de>
4488
4489         * device/lib/pic16/libdev/pic18f458.c,
4490           device/include/pic16/pic18f458.h: added missing T0CONbits
4491
4492 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
4493
4494         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
4495
4496 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
4497
4498         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
4499
4500 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4501
4502         * device/include/mcs51/at89c51ed2.h: added.
4503
4504 2005-07-23 Raphael Neider <rneider AT web.de>
4505
4506         * src/pic/gen.h: added emitpcode macro for debugging
4507         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
4508           and replace by macro adding debug information on demand
4509         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
4510         * (gencjne): tried to fix; replaced with correct (slower) code
4511         * (gen{Unp,P}ackBits): fixed single bit access
4512         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
4513         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
4514           previous instruction
4515         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
4516           register has to be handled with care (forbidding movement
4517           of assignments/uses, removing assignments completely, ...)
4518         * (pCodeOptime2pCodes): make use of regIsSpecial
4519         * added lots of debugging output (commented out)
4520         * src/pic/rallloc.c (deassignLRs): prevent operand registers
4521           from being reused as result UNLESS it is known to work
4522
4523 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
4524
4525         * support/Util/dbuf.h: include <stddef.h> for size_t
4526         * .version: changed to version 2.5.2
4527
4528 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4529
4530         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
4531
4532 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4533
4534         * src/hc08/gen.c (genMinus): fixed bug #1241835,
4535           (genModOneByte): removed needless psha/pula
4536
4537 2005-07-22 Raphael Neider <rneider AT web.de>
4538
4539         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
4540           have PIC14 handled like PIC16, fixes broken pic14 linker calls
4541         * src/pic/gen.c (resolveIfx): do not "invent" labels
4542         * (genSkipc): changed to positive logic
4543         * (genSkipCond): removed as no longer needed
4544         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
4545           backport from PIC16
4546         * (genLeftShift): check operands are in different registers
4547         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
4548           INCF does not update CARRY...
4549         * src/pic/main.c: fixed _linkCmd
4550         * src/pic/pcode.c (unlinkpCode): added inactive code
4551         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
4552           alive (do not assign result and operand overlapping registers)
4553
4554 2005-07-22 Raphael Neider <rneider AT web.de>
4555
4556         * src/pic/device.c (dump_sfr): replaced register declaration with
4557           call to emitSymbolToFile() to avoid duplicate symbols
4558         * (assignRelocatableRegisters): do not declare external symbols
4559         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
4560           right (take size of type, not etype)
4561         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
4562         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
4563         * (packRegsForAccUse): disabled assignment of WREG as
4564           the result reg to prevent occurence of just fixed #1235003,
4565           fixes #1242954
4566         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
4567           symbols (avoids duplicate symbols in .asm file)
4568         * (pic14emitRegularMap): use emitSymbolToFile()
4569         * src/pic/gen.c (aopOp): fixed spillLocation handling
4570         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
4571         * (genDataPointerSet): removed unneccessary variables/output
4572
4573 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
4574
4575         * as/mcs51/lkarea.c: enlarged codemap for banked memory
4576         * device/lib/mcs51/crtbank.asm: added # to 0x0F
4577
4578 2005-07-21 Raphael Neider <rneider AT web.de>
4579
4580         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
4581           architecture cannot handle them efficiently, fixes bug #1235003
4582         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
4583           check for empty sets before using them (fixes bug #1232190)
4584
4585 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
4586
4587         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
4588           (lnksect2): generate warnings for memory overlap
4589         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
4590           constseg to set the name of these segments so you can instruct the linker
4591           to place them in banks
4592         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
4593         * src/SDCCglobl.h: added MODEL_HUGE to enum,
4594           added code_seg and const_seg to options
4595         * src/SDCCglue.c (emitMaps): use options.const_seg,
4596           (createInterruptVect): put interrupt vectors in segment HOME,
4597           (glue): put HOME before static segment and put the main glue in HOME,
4598           (glue): use options.code_seg
4599         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
4600         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
4601           these segments so you can instruct the linker to place them in banks
4602           (linkEdit): use code_loc for HOME segment which should be the first
4603           segment in code memory now
4604         * src/SDCCmem.c: fixed more stuff like bug 1238386
4605         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
4606           (changePointer): don't change function pointers to code pointers for
4607           banked functions,
4608           (compareType): added exceptional check for banked function pointers
4609         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
4610         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
4611           after static in code memory
4612         * src/mcs51/gen.c: added aopLiteralLong prototype,
4613           (aopForSym): use getSize for functions,
4614           (genCall): generate banked calls over one trampoline __sdcc_banked_call
4615           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
4616           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
4617           the segment,
4618           (genPcall): use call for literal function pointers and generate banked
4619           calls over the one trampoline so there's only one place for the user to
4620           modify according to his/hers hardware,
4621           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
4622           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
4623         * src/mcs51/main.c: added keyword banked,
4624           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
4625         * support/Util/SDCCerr.c,
4626         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
4627           needed for passing the bank and address to the trampoline
4628         * device/lib/mcs51/crtbank.asm: added for bankswitching
4629         * device/lib/mcs51/Makefile: added crtbank
4630
4631 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4632
4633         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
4634           for fields at offset 0 of a struct or union as reported
4635           on 2005-07-07 in the developer mailing list.
4636
4637 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
4638
4639         * src/SDCCmem.c: fixed bug 1238386
4640
4641 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4642
4643         * src/mcs51/peeph.def: added labelrefcounting for peepholes
4644           (patch #1144962), added peephole 300, enabled 259.x
4645         * doc/sdccman.lyx: removed screenshot and provided link instead
4646
4647 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4648
4649         * doc/sdccman.lyx: added section about debugging with ddd
4650         * doc/figures/ddd_example.eps: screenshot of debugging session
4651
4652 2005-07-04 Raphael Neider <rneider AT web.de>
4653
4654         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
4655           like CODE pointers, fixes #1115683
4656         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
4657           call, fixes bugs #1232211, #1228110,
4658           fixed wrong casts to pCodeFlow from pCodeInstructions
4659
4660 2005-07-04 Raphael Neider <rneider AT web.de>
4661
4662         * src/pic/gen.c (popGet): changed assert to allow for
4663           bit operands
4664         * (popGetAddr): changed signature to provide
4665           an additional index, patched all call sites
4666         * (genCmpEq): handle literal-like operands correctly
4667         * (genAddrOf): added sanity checks on __code/__data pointers
4668         * (genAssign): added handling of symbols from __code section
4669         * (gencjne): do not generate code for comparisons whose result
4670           is neither stored nor used, fixes bug #1171114
4671         * (AccLsh, AccRsh): operate on operand instead of WREG
4672         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
4673           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
4674           by known count
4675         * rewrote complete shift-by-literal logic, commented unused
4676           functions out
4677         * (genConstPointerGet): get multiple bytes (if result size > 1),
4678           fixed handling of non-immediate addresses
4679         * (genPointerGet): handle CODE pointers like CONST pointers
4680         * (genpic14Code): insert C-SRC lines as Cource-pCodes
4681         * ({aop,op}_isLitLike): NEW, single place to decide whether an
4682           operand is to be treated as a literal or not
4683         * (mov2w,genPcall,genCmpEq),
4684           src/pic/genarith.c: use aop_isLitLike() to decide between
4685           literal/register contents
4686         * (addSign): added missing offset
4687         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
4688           only emit comment in debug-mode,
4689           use {aop,op}_isLitLike throughout the file
4690         * src/pic/glue.c: fix initializers for pointers (work in progress)
4691         * src/pic/pcode.c (get_op): honor index on _const symbols
4692         * ({reset,dump}pCodeStatistics): NEW, estimate code size
4693         * (dumppBlock): added pCode size estimation
4694         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
4695           check for IS_SYMOP before OP_SYMBOL'ing
4696         * fixed indentation, compacted switch-statements
4697         * (allocReg): find free register and allocate it instead of
4698           allocating new registers all the time
4699         * (deassignLRs): prevent POINTER_GET's from being assigned the same
4700           registers as its operands (necessary only for multibyte GETs)
4701
4702 2005-07-01 Raphael Neider <rneider AT web.de>
4703
4704         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
4705           debugging .asm-output macros FENTRY + FEXIT
4706         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
4707           way... I wonder...
4708         * (emitpComment): NEW, printf to pCode
4709         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
4710           offset handling
4711         * (popGetAddr): NEW, variant of popGet to access an immediates
4712           high(er) bytes instead of the n'th byte of memory they reference,
4713           replaced popGet with popGetAddr where neccessary
4714         * (genDataPointerGet): reactivated and fixed implementation
4715         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
4716           accesses
4717         * (genDataPointerSet): fixed multibyte assignments
4718         * (genpic14Code): fixed --i-code-in-asm handling
4719         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
4720         * (genPlus): fixed index-out-of-bounds error
4721         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
4722         * src/pic/ralloc.c: added debugging output macro FENTRY2
4723         * (spillThis): fixed indentation, enbraced for-body for clarity
4724         * (rematStr): commented out as now unused
4725         * (regTypeNum): commented out special spill case (overwrites
4726           arbitrary values)
4727         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
4728
4729 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
4730
4731         * doc/sdccman.lyx: documented sfr16/sfr32,
4732           added example for using storage class with function pointers
4733         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
4734
4735 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
4736
4737         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
4738         * device/lib/_itoa.c,
4739         * device/lib/_ltoa.c: optimized codesize
4740         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
4741           but don't know how to suppress the double warning.
4742         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
4743         * support/Util/SDCCerr.c,
4744         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
4745
4746 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
4747
4748         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
4749           fixed old K&R prototypes
4750         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
4751         * device/lib/_gptrget.c,
4752         * device/lib/_gptrgetc.c,
4753         * device/lib/_gptrput.c: changed versions for new memory indicator values,
4754           also new versions for small generic pointers and banked generic pointers
4755         * src/port.h: added const_name
4756         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
4757         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
4758         * src/SDCCcse.c (findPrevIc): check all associative operators
4759         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
4760         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
4761         * src/SDCCmem.c: updated comments,
4762           set far-space to 0 for pdata, results in optimized code
4763         * src/SDCCmem.h: added macro CONST_NAME
4764         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
4765           moving the info into the highest bits, see also gptrget/gptrput
4766         * src/src.dsp: added sdcc.ico to project files
4767         * src/avr/gen.c (genCast): fixed bug 0x%d
4768         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
4769         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
4770           relation between ptr_type and DCL_TYPE,
4771           (genCast): fixed bug 0x%d
4772         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
4773           (CODE)" for const_name
4774         * src/hc08/gen.c (genCast): fixed bug 0x%d
4775         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
4776           (hc08_port): added "CONST (CODE)" for const_name
4777         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
4778           (aopForRemat, adjustArithmeticResult): disconnected direct relation
4779           between ptr_type and DCL_TYPE,
4780           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
4781           operand* and took AOP() inside function so sfr-ness can be checked,
4782           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
4783           new prototype,
4784           (genFunction, genEndFunction): optimized stack setup,
4785           (genMinus): optimized for literals with ending zeroes (in bytes),
4786           (genCast): fixed bug 0x%d
4787         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
4788           (mcs51_port): added "CONST (CODE)" for const_name
4789         * src/mcs51/peeph.def: made rule 226 more generic
4790         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
4791         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
4792         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
4793         * src/z80/main.c (z80_port): added NULL for const_name,
4794           (gbz80_port): added NULL for const_name
4795         * support/regression/tests/bug663539.c,
4796         * support/regression/tests/sfr16.c: new tests
4797
4798 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4799
4800         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
4801
4802 2005-06-24 Raphael Neider <rneider AT web.de>
4803
4804         * device/lib/pic16/libdev/pic18f[68][567]20.c:
4805           corrected typos...
4806         * device/include/pic16/signal.h: added USBIF
4807           and SIG_USB
4808
4809 2005-06-24 Raphael Neider <rneider AT web.de>
4810
4811         * device/lib/pic16/libdev/pic18f2455.c,
4812           device/include/pic16/pic18f2455.h: NEW
4813         * device/include/pic16/pic18fregs.h,
4814           device/lib/pic16/pics.all,
4815           src/pic16/device.c: added 18f2455
4816         * device/lib/pic16/libdev/pic18f[68][567]20.c,
4817           device/include/pic16/{pic18f[68][567].h,usart.h}:
4818           replaced MULTIPLE_USARTS define with more relaible
4819           compatibility sfrs (for USART access)
4820
4821 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
4822
4823         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
4824           and the output asm file line is printed on two lines.
4825
4826 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4827
4828         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
4829           BGT, BLE, BHI, and BLS instructions
4830         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
4831           genCmpEq): removed
4832         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
4833           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
4834           fixes bug #1216342
4835         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
4836
4837 2005-06-15 Raphael Neider <rneider AT web.de>
4838
4839         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
4840         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
4841         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
4842           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
4843           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
4844
4845 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4846
4847         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
4848           Marcel Telka in bug #1215704
4849
4850 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
4851
4852         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
4853           located in shared memory bank.
4854
4855 2005-05-31 Raphael Neider <rneider AT web.de>
4856
4857         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
4858           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
4859           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
4860
4861 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
4862
4863         * device/lib/_strncpy.c: fixed the fix
4864
4865 2005-05-26 Raphael Neider <rneider AT web.de>
4866
4867         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
4868           initializers with \0, bug #1208187
4869         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
4870           intializers with \0, bug #1208187
4871
4872 2005-05-26 Raphael Neider <rneider AT web.de>
4873
4874         * src/pic16/glue.c (pic16_printIvalChar): fixed string
4875           initializers with \0, bug #1208187
4876         * src/pic16/main.c (_process_pragma): added sanity checks
4877           for stack position and size, emit warnings when appropriate
4878
4879 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4880
4881         * device/lib/_strncpy.c: fixed not filling with \0
4882
4883 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4884
4885         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
4886           createFunction),
4887         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
4888           compound_statement),
4889         * src/SDCCsymt.h,
4890         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
4891
4892 2005-05-24 Raphael Neider <rneider AT web.de>
4893
4894         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
4895
4896 2005-05-24 Raphael Neider <rneider AT web.de>
4897
4898         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
4899           TRISE definitions, closes bug #1162453
4900
4901 2005-05-22 Raphael Neider <rneider AT web.de>
4902
4903         * src/pic16/main.c (_process_pragma): check for missing
4904           arguments to pragmas code and udata
4905         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
4906           consistency fixes to match other headers (thanks to Jim Paris)
4907         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
4908
4909 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4910
4911         * src/SDCCicode.c (isOperandEqual): fixed missing ;
4912
4913 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
4914
4915         * support/regression/tests/bug1198642.c: new test
4916         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
4917         * src/SDCCcse.c (findPrevIc): added comment, please have a look
4918         * support/scripts/resource.h,
4919         * support/scripts/resource.rc,
4920         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
4921         * support/scripts/sdcc.ico: added 32x32 icon
4922
4923 2005-05-18 Raphael Neider <rneider AT web.de>
4924
4925         * device/lib/pic16/libdev/pic18f*.c,
4926         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
4927           keywords to "__sfr" and "__at (X)"
4928         * device/include/pic16/pic18fregs.h: added pic18f4520
4929         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
4930           #1203088 (MPLAB compatibility)
4931
4932 2005-05-17 Raphael Neider <rneider AT web.de>
4933
4934         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
4935         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
4936         * device/lib/pic16/pics.all: added new devices
4937         * src/pic16/device.c: added support for pic18f4520
4938
4939 2005-05-16 Raphael Neider <rneider AT web.de>
4940         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
4941         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
4942         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
4943           convenience function for bit access
4944
4945 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4946
4947         * device/lib/printf_large.c: fixed bug 1193299
4948         * support/regression/tests/bug1057979.c: added test %3.3s
4949
4950 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4951
4952         * device/include/mcs51/8051.h,
4953         * device/include/mcs51/8052.h: made parseable with lint
4954         * device/include/mcs51/lint.h: added include file for (sp)lint
4955         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
4956         * doc/cdbfileformat.lyx,
4957         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
4958
4959 2005-05-14 Raphael Neider <rneider AT web.de>
4960
4961         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
4962         * device/lib/pic16/libc/stdlib/itoa.c (new)
4963         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
4964         * device/lib/pic16/libio/Makefile: exclude subdir according to
4965           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
4966         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
4967         * src/pic16/gen.c (genFunction): prevent annoying warning
4968         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
4969           nameclashes on BeOS
4970         * support/cpp2/cppmain.c (cpp_output_string): new
4971         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
4972           fixes bug 1116802
4973
4974 2005-05-13 Borut Razem <borut.razem AT siol.net>
4975
4976         * src/SDCCmain.c (linkEdit): fixed bug 1195202
4977
4978 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4979
4980         * .version: changed to version 2.5.1; back to bleeding edge development
4981
4982 2005-05-11 Borut Razem <borut.razem AT siol.net>
4983
4984         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
4985           generate PDF version 1.3 documents
4986
4987 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4988
4989         * .version: changed to version 2.5.0
4990
4991 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4992
4993         * doc/sdccman.lyx: updated weblinks, index and smaller updates
4994
4995 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4996
4997         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
4998         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
4999         well as many smaller updates.
5000         * .version: changed to version 2.5.0-pre1
5001
5002 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5003
5004         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
5005
5006 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5007
5008         * support/regression/tests/bug1185672.c: added
5009         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
5010           bug 1185672
5011         * src/mcs51/gen.c (genCall): added comments, made it look safer
5012         * src/mcs51/gen.c (genEndFunction): simplified
5013
5014 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5015
5016         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
5017
5018 2005-04-14 Borut Razem <borut.razem AT siol.net>
5019
5020         * fixed bug 1045046 - SIGSEGV with really simple code?:
5021           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
5022           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
5023
5024 2005-04-14 Borut Razem <borut.razem AT siol.net>
5025
5026         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
5027           src/pic16/device.h: temporarily disabled experimental #inline pragma
5028           for 2.5.0 release
5029
5030 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
5031
5032         * device/include/z80/stdio.h,
5033         * device/include/z80/string.h: removed these highly incomplete files so
5034           SDCC can use the default ones in device/include/
5035
5036 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5037
5038         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
5039         gcc warning.
5040         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
5041         fix sdcpp warnings.
5042
5043 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5044
5045         * device/include/malloc.h: removed redundant __reentrant prototypes
5046         * device/lib/_mullong.c: added working xstack variant in asm (C version
5047           doesn't pass regression tests)
5048         * device/lib/bpx.c: used __data and made bpx char for mcs51
5049         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
5050           (createFunction): fixed bug with xstackPtr
5051         * src/SDCCcse.c: corrected comments
5052         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
5053           (killDeadCode, eBBlockFromiCode): removed unused code
5054         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
5055           corrected comments
5056         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
5057           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
5058           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
5059           (genModOneByte): fixed warning in MSVC
5060         * src/mcs51/main.c (): added comments
5061         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
5062
5063 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5064
5065         * src/SDCCmain.c (linkEdit): oops, changed one line too many
5066
5067 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
5068
5069         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
5070
5071 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
5072
5073         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
5074         characters arrays of larger size than the declared one.
5075
5076 2005-04-10 Borut Razem <borut.razem AT siol.net>
5077
5078         * src/pic/gen.c (genInline),
5079           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
5080           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
5081           (findNextInstruction), (findPrevInstruction),
5082           (findInstructionUsingLabel),
5083           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
5084         * src/pic/pcode.c (findLabel): added missing '\n'
5085         * src/src.dsp: added SDCCdwarf2.c to the project
5086
5087 2005-04-09 Borut Razem <borut.razem AT siol.net>
5088
5089         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
5090
5091 2005-04-08 Raphael Neider <rneider AT web.de>
5092
5093         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
5094           into the chain after a given one) and mergeDefmapSymbols (combine
5095           defmap entries for each symbol per pcode)
5096         * (createDefmap): have defmap entries merged in the end
5097         * (defmapReplaceSymRef): split defmap entries covering two accesses to
5098           a symbol before replacing one access type's symbol, merge symbols in
5099           the end (replacement symbol might already have an entry)
5100         * (assignValnums): keep reference to written WREG intact
5101
5102 2005-04-08 Raphael Neider <rneider AT web.de>
5103
5104         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
5105           Alpha)
5106
5107 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
5108
5109         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
5110         bytes
5111
5112 2005-04-07 Raphael Neider <rneider AT web.de>
5113
5114         * device/include/pic16/usart.h: added compatibility defines for
5115           devices with more than one USART
5116         * device/include/pic16/pic18f[68][567]20.h: activated above defines
5117
5118 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5119
5120         * device/lib/Makefile.in: updated for port specific include
5121
5122 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5123
5124         * support/regression/ports/mcs51/spec.mk: added mcs51 include
5125
5126 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5127
5128         * device/include/8051.h,
5129         * device/include/8052.h,
5130         * device/include/at89S8252.h,
5131         * device/include/at89c55.h,
5132         * device/include/at89x051.h,
5133         * device/include/at89x51.h,
5134         * device/include/at89x52.h,
5135         * device/include/mcs51reg.h,
5136         * device/include/reg51.h,
5137         * device/include/reg764.h,
5138         * device/include/regc515c.h,
5139         * device/include/sab80515.h: (re)moved these 12 files
5140         * device/include/mcs51/8051.h,
5141         * device/include/mcs51/8052.h,
5142         * device/include/mcs51/at89S8252.h,
5143         * device/include/mcs51/at89c55.h,
5144         * device/include/mcs51/at89x051.h,
5145         * device/include/mcs51/at89x51.h,
5146         * device/include/mcs51/at89x52.h,
5147         * device/include/mcs51/mcs51reg.h,
5148         * device/include/mcs51/reg51.h,
5149         * device/include/mcs51/reg764.h,
5150         * device/include/mcs51/regc515c.h,
5151         * device/include/mcs51/sab80515.h: and added them here
5152
5153 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5154
5155         * device/include/stdarg.h: changed SDCC specific keywords to double
5156           underlined form.
5157         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
5158           mcs51 and ds390.
5159         * device/include/hc08/mc68hc908gp32.h,
5160         * device/include/hc08/mc68hc908jb8.h,
5161         * device/include/hc08/mc68hc908jkjl.h,
5162         * device/include/hc08/mc68hc908qy.h: fixed comments
5163         * device/include/mcs51/README: updated
5164         * device/include/mcs51/c8051f120.h: added PINRSF
5165         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
5166         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
5167           amidst code. Also inline is not supported.
5168
5169 2005-04-06 Raphael Neider <rneider AT web.de>
5170
5171         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
5172         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
5173           callers stack/frame pointers
5174
5175 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5176
5177         * device/include/pic16/usart.h: added, missing in previous commit,
5178         * device/include/pic16/adc.h: fixed typo,
5179         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
5180         commit,
5181         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
5182         <p18fxxx.inc>
5183         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
5184         uninitialized because a bug appears with gplink
5185         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
5186         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
5187         complains for unrecognised option
5188
5189 2005-04-05 Raphael Neider <rneider AT web.de>
5190
5191         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
5192           structs as well (using memcpy)
5193         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
5194           on ISRs (GOTO has no label)
5195         * src/pic16/device.h: added OF_OPTIMIZE_DF
5196         * src/pic16/main.c: added compiler switch --optimize-df to enable the
5197           new data flow analysis/optimization
5198         * src/pic16/pcode.c: added (prototypes for and implementation of)
5199           dataflow analysis functions, fixed pCodeInstructions' inCond and
5200           outCond values, made RCALL a branch instruction
5201         * (pic16_unlinkpCode): keep C line if possible
5202         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
5203           C line moved if possible
5204         * (pic16_getRegFrompCodeOp): NEW, improved version of...
5205         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
5206           to use new pic16_getRegFrompCodeOp (works for more SFRs)
5207         * (pic16_BuildFlow): fixed skip instructions with label (did not start
5208           new flow)
5209         * (pic16_getJumptabpCode): NEW, needed in...
5210         * (LinkFlow): fixed handling of jumptables, calls and conditional
5211           branches
5212         * (pic16_InsertCommentAfter): NEW
5213         * (pic16_pCodeReplace): made verbose and flow preserving
5214         * (AnalyzeFlow): added call to data flow analysis
5215         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
5216         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
5217         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
5218
5219 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5220
5221         * src/SDCCast.c (decorateType): fixed bug #1105626
5222
5223 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
5224
5225         * device/include/asm/pic16/features.h,
5226         * pic18f*.h headers,
5227         * device/include/pic16/adc.h,
5228         * device/include/pic16/delay.h,
5229         * device/include/pic16/i2c.h,
5230         * device/include/pic16/malloc.h,
5231         * device/include/pic16/stdio.h,
5232         * device/include/pic16/stdlib.h,
5233         * device/include/pic16/string.h,
5234         * device/lib/pic16/libc/stdio/printf_tiny.c,
5235         * device/lib/pic16/libc/stdio/printf_small.c,
5236         * device/lib/pic16/libc/stdio/strmgpsim.c,
5237         * device/lib/pic16/libc/stdio/strmmssp.c,
5238         * device/lib/pic16/libc/stdio/strmusart.c,
5239         * device/lib/pic16/libc/stdio/vfprintf.c,
5240         * device/lib/pic16/libc/stdlib/ltoa.c,
5241         * device/lib/pic16/libc/stdlib/putchar.c,
5242         * device/lib/pic16/libc/stdlib/x_ftoa.c,
5243         * device/lib/pic16/libc/stdlib/memchrpgm.c,
5244         * device/lib/pic16/libc/stdlib/memchrram.c,
5245         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
5246         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
5247         * device/lib/pic16/libio/adc/adcbusy.c,
5248         * device/lib/pic16/libio/adc/adcread.c,
5249         * device/lib/pic16/libio/adc/adcsetch.c,
5250         * device/lib/pic16/libio/usart/ubaud.c,
5251         * device/lib/pic16/libio/usart/ubusy.c,
5252         * device/lib/pic16/libio/usart/udrdy.c,
5253         * device/lib/pic16/libio/usart/uopen.c,
5254         * device/lib/pic16/libio/usart/uputc.c,
5255         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
5256         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
5257         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
5258         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
5259         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
5260         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
5261         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
5262         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
5263         specific keywords to double underlined form,
5264         * device/lib/pic16/libc/Makefile.rules,
5265         * device/lib/pic16/libsdcc/Makefile.rules,
5266         * device/lib/pic16/libm/Makefile,
5267         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
5268         to compile with C standard set in Makefile.common
5269         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
5270         rand.c and crc.c in compilation process,
5271         * device/lib/pic16/libsdcc/int/divuint.c,
5272         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
5273         `c' from signed to unsigned,
5274         * device/lib/pic16/startup/crt0.c,
5275         * device/lib/pic16/startup/crt0i.c,
5276         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
5277         keywords to double underlined form, bug fixes in _do_cinit function
5278         which prevented the correct initialization of the .idata segment,
5279         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
5280         core to enter a infinite loop
5281         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
5282
5283 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5284
5285         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
5286
5287 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5288
5289         * device/include/Makefile.in: add support for hc08 subdirectory
5290         * device/include/hc08/: new subdirectory
5291         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
5292         Lucas Loizaga, thanks!
5293         * device/include/hc08/mc68hc908qy.h,
5294         * device/include/hc08/mc68hc908gp32.h,
5295         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
5296         their own directory. Changed internal macro names to use the compiler
5297         reserved namespace. Changed SDCC specific keywords to double
5298         underlined form.
5299         * device/include/math.h,
5300         * device/include/malloc.h,
5301         * device/include/stdarg.h,
5302         * device/include/stdbool.h
5303         * device/include/string.h,
5304         * device/include/tinibios.h,
5305         * device/include/ds400rom.h,
5306         * device/include/8051.h,
5307         * device/include/8052.h,
5308         * device/include/80c51xa.h,
5309         * device/include/at89c55.h,
5310         * device/include/at89S8252.h,
5311         * device/include/at89x51.h,
5312         * device/include/at89x52.h,
5313         * device/include/ds80c390.h,
5314         * device/include/reg764.h,
5315         * device/include/regc515c.h,
5316         * device/include/sab80515.h,
5317         * device/include/mcs51/c8051f000.h,
5318         * device/include/mcs51/c8051f018.h,
5319         * device/include/mcs51/c8051f020.h,
5320         * device/include/mcs51/c8051f040.h,
5321         * device/include/mcs51/c8051f060.h,
5322         * device/include/mcs51/c8051f120.h,
5323         * device/include/mcs51/c8051f300.h,
5324         * device/include/mcs51/c8051f310.h,
5325         * device/include/mcs51/c8051f320.h,
5326         * device/include/mcs51/c8051f330.h,
5327         * device/include/mcs51/c8051f350.h,
5328         * device/include/z180.h: Changed SDCC specific keywords to double
5329         underlined form.
5330
5331 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
5332
5333         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
5334         18F4455,
5335         * (pic16_assignConfigWordValue): disable testing of configuration
5336         register value with config mask,
5337         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
5338         function with port->fun_prefix,
5339         * (genFunction): when generating a naked interrupt function never
5340         create an absolute segment placed in interrupt vector address, place
5341         the actual interrupt function at IVA instead, when an interrupt
5342         function is generated with unspecified interrupt then do not create
5343         the absolute section,
5344         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
5345         code for generating a call to generic pointer get/put function with
5346         a call to function pic16_callGenericPointer(),
5347         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
5348         the call to the generic pointer get/put functions with prefixing the
5349         function name with port->fun_prefix,
5350         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
5351         * src/pic16/main.c (_process_pragma): prefix function with
5352         port->fun_prefix,
5353         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
5354         calling assembler, old 18Fxxxx macro is deprecated,
5355         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
5356         PC_ASMDIR in while condition,
5357         * (findInstruction): add PC_ASMDIR in while condition,
5358         * (buildCallTree): prefix main with port->fun_prefix,
5359         * (pic16_pCode2str): fixed bug that didn't emit the memory access
5360         identifier for variable with banked access in instructions BTFSS,
5361         BTFSC, BCF, BSF, BTG
5362         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
5363         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
5364         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
5365         perform optimization when enviroment variable NO_REG_OPT is set,
5366         * (insideLRBlock): NEW, return 1 if register is inside an
5367         INF_LOCALREGS block,
5368         * (RemoveRegFromLRBlock): remove a register that is completely
5369         eliminated by register optimization, but it is still left in local
5370         register store/restore in/from stack block,
5371         * (Remove2pcodes): after removing register, check to see if it
5372         should be removed from local register store/restore in/from stack
5373         block,
5374         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
5375         DUMMY_READ_VOLATILE,
5376
5377         * device/include/pic16/adc.h: minor prototype modifications and
5378         update,
5379         * device/include/pic16/malloc.h: added GPL notice various
5380         modifications,
5381         * device/include/pic16/stdint.h: NEW, standard header for ints
5382         * device/include/pic16/delay.h: NEW, header for delay functions,
5383         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
5384         delay1mtcy,
5385         * device/include/pic16/signal.h: NEW, header providing helper macros
5386         for implementing signal handlers,
5387         * device/include/pic16/stdio.h: added prototypes for functions,
5388         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
5389         prototypes for stdin and stdout, added macro PUTCHAR to
5390         automatically implement putchar function prototype,
5391         * device/include/pic16/usart.h: modified and updated USART library,
5392         * device/lib/pic16/libio/adc/,
5393         * device/lib/pic16/libio/i2c: some modifications to improve library
5394         performance,
5395         * device/lib/pic16/libc/stdio/: modifications for the new printf*
5396         family of functions,
5397         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
5398         family of functions and other sources,
5399         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
5400         of the PIC18Fxx[28] devices,
5401         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
5402         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
5403         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
5404         _do_cinit function, because the previous failed when local variables
5405         where not placed in the same memory bank,
5406         * device/lib/pic16/libsdcc/char/: various modifications to improve
5407         library performance,
5408         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
5409         information on the new functions of the c library and more...
5410
5411 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5412
5413         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
5414
5415 2005-03-26 Raphael Neider <rneider AT web.de>
5416
5417         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
5418           if condition == CARRY)
5419         * (genCmp): adapted to new genSkipc semantics
5420         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
5421           on rIfx (genCmp was broken)
5422
5423 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5424
5425         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
5426         * src/z80/main.c (_keywords[]),
5427         * src/SDCCglobal.h (struct options),
5428         * src/SDCC.y,
5429         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
5430         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
5431         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
5432         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
5433         always available in leading double underscore form. The C99 support is
5434         mostly missing, but it's a start.
5435         * support/regression/tests/bug-227710.c: fixed nonconforming use of
5436         reserved identifier "__data".
5437
5438 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5439
5440         * src/mcs51/peeph.def: fixed bug 1170013
5441
5442 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
5443
5444         * device/include/mcs51reg.h: fixed bug 842007
5445
5446 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5447
5448         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
5449         last time.
5450
5451 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5452
5453         * src/port.h (struct PORT),
5454         * src/avr/ralloc.c (avr_assignRegisters),
5455         * src/avr/main.c,
5456         * src/ds390/ralloc.c (ds390_assignRegisters),
5457         * src/ds390/main.c,
5458         * src/hc08/ralloc.c (hc08_assignRegisters),
5459         * src/hc08/main.c,
5460         * src/mcs51/ralloc.c (mcs51_assignRegisters),
5461         * src/mcs51/main.c,
5462         * src/pic/ralloc.c (pic14_assignRegisters),
5463         * src/pic/main.c,
5464         * src/pic16/ralloc.c (pic16_assignRegisters),
5465         * src/pic16/main.c,
5466         * src/xa51/ralloc.c (xa51_assignRegisters),
5467         * src/xa51/main.c,
5468         * src/z80/ralloc.c (z80_assignRegisters),
5469         * src/z80/ralloc.h,
5470         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
5471         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
5472         * src/SDCCcse.h,
5473         * src/SDCCdflow.c (computeDataFlow),
5474         * src/SDCCdflow.h,
5475         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
5476         * src/SDCCloop.h,
5477         * src/SDCCcflow.c (*),
5478         * src/SDCCcflow.h,
5479         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
5480         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
5481         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
5482         immedDom() returning wrong block; probably fixes bug #1160833)
5483
5484 2005-03-20 Borut Razem <borut.razem AT siol.net>
5485
5486         * support/scripts/inc2h.pl: WIN32 port
5487
5488 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
5489
5490         * device/lib/makefile.in: added abs.c and labs.c
5491
5492 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
5493
5494         * device/include/stdint.h: added
5495         * device/lib/abs.c: added
5496         * device/lib/labs.c: added
5497         * device/include/stdlib.h: added abs() and labs() prototypes
5498         * device/lib/libsdcc.lib: added abs and labs
5499         * device/include/float.h,
5500         * device/lib/_fsmul.c,
5501         * device/lib/printf_fast.c,
5502         * device/lib/printf_tiny.c: updated comments
5503
5504 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5505
5506         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
5507         bug #1164313
5508
5509 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5510
5511         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
5512         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
5513
5514 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
5515
5516         * device/lib/printf_large.c: removed inline assembly for portability and
5517           readability. Use printf_fast if speed or size are more important.
5518         * src/pic16/gen.c: removed conditions around use of DEBUGpc
5519         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
5520
5521 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
5522
5523         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
5524         prevent compiler warning
5525
5526 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5527
5528         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
5529         moved to level 0 and declared as static. Also they are explicit
5530         placed in access bank. This was necessery because some times they
5531         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
5532         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
5533         optimizations. Currently only compare to unsigned char is implemented,
5534         * src/pic16/gen.c: added fReturnIdx array,
5535         * (struct resolvedIfx) is moved to gen.h and made public,
5536         * (struct _G): added sregsAlloc and sregsAllocSet fields,
5537         * (aopForSym): added an optimization to directly store in stack of
5538         the operand of a SEND iCode,
5539         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
5540         but as registers instead (AOP_REG) using the fReturnIdx array,
5541         * (pic16_freeAsmop): remove the freed register from the
5542         _G.sregsAlloc field,
5543         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
5544         a compare of 'WREG',
5545         * (pic16_popGetTempRegCond): changed function prototype, now
5546         function takes also a bitVector argument v which holds the current
5547         set of registers that are allocated for stack access by aopForSym,
5548         registers allocated in aopForSym for accessing stack symbols are not
5549         any more part of the functions usedRegs field,
5550         * (genCall): some times aopOp is called for a stack variable to be
5551         send, aopForSym might perform the push, if this is true make sure
5552         that genCall doesn't push the variable twice by testing _G.resDirect,
5553         * (genFunction): changed testing for unspecified interrupt number
5554         from 256 to INTNO_UNSPEC,
5555         * modified selection scheme of frame pointer generation. Previously
5556         if function did use local registers a frame pointer was generated,
5557         now a frame pointer is generated only if function has arguments
5558         (that need PLUSW2 register access), or has stack arguments, or the
5559         compiler is not instructed to omit the frame pointer,
5560         * (genEndFunction): before restoring local registers that were saved
5561         in the function preamble, also restore the registers that *might*
5562         have been allocated for stack access,
5563         * (genRet): removed some old comments,
5564         * (genCmp, the active (RN's) version): added a call to the
5565         pic16_genCmp_special function to perform the compare with a more
5566         robust and optimized way,
5567         * (genInline): a feature has been added in inline code generation,
5568         which allows a wildcard variable substitution when writing inline
5569         assembly. Code is incomplete and experimental therefore undocumented,
5570         * (genCast): changed order of aopOp for result and right to allow
5571         aopForSym to directly load the result if possible,
5572         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
5573         perform an optimized compare on some selected special occasions,
5574         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
5575         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
5576         generate an IVT any more,
5577         * src/pic16/main.c (pic16_optionsTable): added command line option
5578         --optimize-cmp,
5579         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
5580         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
5581         macros,
5582         * src/pic16/NOTES: Raphael Neider added in list of active developers
5583         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
5584         jumptable_end to prevent bug #,
5585         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
5586         inCond and outCond fields,
5587         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
5588         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
5589         turn off register spilling,
5590         * (packRegsForOneUse): synced with other ports' versions although it
5591         is not used currently,
5592         * (pic16_packRegisters): added an optimization while reading
5593         structure bitfields, some registers may be saved (malloc code is
5594         decreased by 80 bytes)
5595
5596 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
5597
5598         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
5599         left is a bitfield, if yes, then don't optimize assignment. Perhaps
5600         this can be optimized more?
5601
5602 2005-03-10 Raphael Neider <rneider AT web.de>
5603
5604         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
5605           genNearPointerGet): (hopefully) fixed access to bitfields via
5606           pointers (p->bitN = x; and x = p->bitN; failed)
5607
5608 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
5609
5610         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
5611
5612 2005-03-09 Raphael Neider <rneider AT web.de>
5613
5614         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
5615
5616 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
5617
5618         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
5619         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
5620           (regTypeNum): set REG_BIT type if necessary
5621         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
5622         * support/regression/tests/critical.c: check bug 1144613
5623
5624 2005-03-02 Raphael Neider <rneider AT web.de>
5625
5626         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
5627
5628 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5629
5630         * src/avr/ralloc.c (serialRegAssign),
5631         * src/ds390/ralloc.c (serialRegAssign),
5632         * src/hc08/ralloc.c (serialRegAssign),
5633         * src/mcs51/ralloc.c (serialRegAssign),
5634         * src/pic/ralloc.c (serialRegAssign),
5635         * src/pic16/ralloc.c (serialRegAssign),
5636         * src/xa51/ralloc.c (serialRegAssign),
5637         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
5638
5639 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
5640
5641         * src/SDCCast.c (decorateType): fixed bug 1124787
5642
5643 2005-02-20 Hubert Sack <sack AT digiplan.de>
5644         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5645
5646         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
5647         patch #1121755
5648
5649 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5650
5651         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
5652         to keep the correct label reference count when adding/removing references
5653         to labels. A peephole file using this is appended to patch #1144962.
5654
5655 2005-02-14 Raphael Neider <rneider AT web.de>
5656
5657         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
5658         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
5659         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
5660           retrievals of result operand's value on assignment
5661
5662 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
5663
5664         * device/include/pic16/string.h: modified prototype for memccpy()
5665         to memccpy(void *, void *, char, size_t)
5666         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
5667         check whether to omit frame pointer or not,
5668         * (genInline): convert all occurences of "\n" to LF in inline
5669         assembler blocks, this helps formatting the inline text,
5670         * (pic16_loadFSR0): modified prototype,
5671         * (genNearPointerGet, genNearPointerSet): reorganization of code,
5672         removed some 8051 legacy code,
5673         * (genPackBits): enabled handling bitfields exceeding one byte in size,
5674         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
5675         before allocating temporary registers in functions,
5676
5677 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
5678
5679         * support/regression/tests/bitvars.c: corrected the "fix"
5680
5681 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
5682
5683         * support/regression/tests/bitvars.c,
5684         * support/regression/tests/bitwise.c,
5685         * support/regression/tests/rotate.c: "fixed" problems on Alpha
5686
5687 2005-02-10 Raphael Neider <rneider AT web.de>
5688
5689         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
5690           different size for Alpha
5691         * src/pic16/gen.c (genCmpEq) : improved compare with 0
5692
5693 2005-02-09 Raphael Neider <rneider AT web.de>
5694
5695         * src/SDCC.lex(doPragma) : save and restore warning options as well
5696           (also added new stack plus clone- and copyAndFreeSDCCERRG())
5697         * have #pragma less_pedantic set the errorlevel to WARNING
5698           (fixes #1117001)
5699         * (cloneOptimize) : fixed wrong malloc's size
5700         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
5701           facilitate correct handling of #pragma (save|restore)
5702
5703 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
5704
5705         * src/mcs51/gen.c: removed non-standard C nameless struct/union
5706
5707 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
5708
5709         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
5710
5711 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
5712
5713         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
5714
5715 2005-02-02 Raphael Neider <rneider AT web.de>
5716
5717         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
5718         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
5719         * (pic16_storeForReturn): fixed to allow returning function pointers
5720         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
5721         * device/include/pic16/{stddef.h,stdbool.h}: added
5722
5723 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
5724
5725         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
5726
5727 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
5728
5729         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
5730         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
5731          appeared to be required
5732
5733 2005-01-31 Borut Razem <borut.razem AT siol.net>
5734
5735         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
5736           include/mcs51 and include/z80 directories to the package
5737
5738 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5739
5740         * src/hc08/gen.c (genFunction): fixed bug #1112752
5741
5742 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5743
5744         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
5745
5746 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5747
5748         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
5749
5750 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
5751
5752         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
5753
5754 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
5755
5756         * device/include/c8051fxxx.h: removed these 6 files
5757         * device/include/mcs51/c8051fxxx.h: added these 11 new files
5758
5759 2005-01-26 Raphael Neider <rneider AT web.de>
5760
5761         * src/pic16/gen.c (genAssign): fixed assignment from longs
5762           in codespace (were cut to three bytes)
5763         * (genDummyRead): implemented (except for CODESPACE...),
5764           fixed bug #1108575
5765         * src/pic16/glue.c (emitStatistics): beautified
5766         * device/lib/pic16/libm/Makefile: added include path
5767
5768 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5769
5770         * src/z80/gen.c (aopPut): fixed bug #1103902
5771
5772 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5773
5774         * device/lib/expf.c: fixed bug #1095792
5775
5776 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
5777
5778         * device/lib/pic16/libm: added Math library sources
5779
5780 2005-01-24 Raphael Neider <rneider AT web.de>
5781
5782         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
5783           to enable upcast to pCodeOpReg2 (there is no type tag to
5784           differenciate the two and pic16_popGet2p cast into PCOR2)
5785         * src/pic16/main.c (_process_pragma): fixed another malloc bug
5786           (sizeof(sectNames) changed to sizeof(sectName))
5787           Both patches fix segfaults under MinGW.
5788
5789 2005-01-23 Raphael Neider <rneider AT web.de>
5790
5791         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
5792           Safe_[mc]?alloc()'ed variables
5793         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
5794           of (byte sized) temporaries (assign them to WREG for now)
5795         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
5796           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
5797           this might fix SIGSEGVs on MinGW...
5798         * src/SDCCopt.c (killDeadCode): restored original behaviour
5799           (volatile operands might get thrown away though)
5800
5801 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
5802
5803         * src/pic16/gen.c: fixed bug #1106975,
5804         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
5805         pointer update, INTCON is saved, global interrupts are disabled and
5806         restored after updateing TOS.
5807         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
5808         * added function attribute 'shadowregs' to take advantage of shadow
5809         registers,
5810         * added function attribute 'wparam' as an alternative to the wparam
5811         pragma,
5812         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
5813         user declares a non-ISR function as 'shadowregs',
5814         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
5815
5816 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
5817
5818         * .version: bumped version number to 2.4.8
5819         * device/lib/pic16/pics.all: list of PIC18F devices supported by
5820         pic16 port,
5821         * device/lib/pic16/libio/i2c/: I2C module support library,
5822         * device/include/pic16/i2c.h: I2C support library header,
5823         * device/lib/pic16/libc/stdio/: standard IO support sources,
5824         * (printf_small.c): printf_small() source, supports float print,
5825         * (printf_tiny.c): printf_tiny() source, does not support floats,
5826         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
5827         enable global optimizations for entire library source, other
5828         Makefiles in the source tree are also modified to reflect this,
5829         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
5830         function,
5831         * doc/sdccman.lyx: updated to reflect new changes,
5832         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
5833         sym->onStack if-case,
5834         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
5835         sbit, idata, _idata, xdata, _xdata,
5836         * added pragma library, to link an external library, (see doc),
5837         * removed command line options, --pomit-config-words, --pomit-ivt,
5838         --pleave-reset-vector,
5839         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
5840         when calling assembler to reflect memory model used, also define
5841         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
5842         reflect stack model used,
5843         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
5844         on stack return NULL,
5845
5846 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5847
5848         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
5849           of the operands is volatile. Fixes #1020220
5850
5851 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5852
5853         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
5854         * (OptimizeRegUsage): make sure that there is really no other flow where
5855           the first pCode is used
5856
5857 2005-01-22 Raphael Neider <rneider AT web.de>
5858
5859         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
5860           to fix #1106967 (pCode->seq are not set up correctly)
5861
5862 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5863
5864         * src/SDCCglue.c (glue): make sure code area is declared before the
5865         static initialization area.
5866
5867 2005-01-21 Raphael Neider <rneider AT web.de>
5868
5869         * device/lib/Makefile.in: fixed test for pic16 install dir
5870         * device/lib/pic16/*/Makefile*: modified compile flags to enable
5871           optimizations
5872         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
5873           added --optimize-goto compiler switch and pragma wparam documentation
5874         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
5875         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
5876           and PRODH closing bug #1071770 (peephole optimizer)
5877
5878 2005-01-19 Raphael Neider <rneider AT web.de>
5879
5880         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
5881           cmdLine buffers (used when calling sdcpp...) are large enough
5882           (MAX_PATH=256 truncates arguments leading to system halts when
5883           used in MinGW...)
5884         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
5885         * (genUminus): rewritten to for efficiency
5886         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
5887           used uninitialized in some cases)
5888         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
5889           copy the third byte from the int -- now assumes 0x80 (data memory)
5890         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
5891           operands (genAddLit expects the iCode's operands to swapped as
5892           well), fixed leftover bytes (crashed for short left operands)
5893         * (pic16_genMinusDec): performance improvements, removed false
5894           PIC14 emitSKPNCs
5895         * (pic16_genMinus): fixed to cope with differently sized operands
5896         * src/pic16/glue.c (pic16_glue): added new banksel optimization
5897           for --obanksel > 1
5898         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
5899         * src/pic16/graph.[ch]: implementation of directed graphs, used by
5900           new banksel optimization
5901         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
5902           analysis for temporary registers (segfaults...)
5903         * src/pic16/peeph.def: added rule
5904
5905 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
5906
5907         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
5908         which converts a float number to its ASCII representation
5909         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
5910         functions to convert the fractional and integer part of a float to ASCII,
5911         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
5912         realloc.c): added _MALLOC_SPEC to explicit place variables in data
5913         ram
5914         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
5915         _STATMEM macros,
5916         * device/include/pic16/adc.h: added GPL info,
5917         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
5918         a pCodeOp as tested operand,
5919         * (genNearPointerGet): optimized bit testing, does not use
5920         intermediate register for bit value, test directly instead with
5921         BTFSS, BTFSC, works only for single bits,
5922         * (genpic16Code): dump the name of the iCode in the asm,
5923         * src/pic16/ralloc.c (decodeOp): removed static declaration and
5924         renamed to pic16_decodeOp,
5925         * (serialRegAssign): do not allocate a temporary register for iCode
5926         sequences that test a single bit for 1/0
5927
5928 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
5929
5930         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
5931         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
5932         access stack and frame pointers. They are initially assigned to
5933         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
5934         accessing SFRs. Updated all occurences of modification of stack or
5935         frame pointer in gen.c and pcode.c,
5936         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
5937         assigning of a literal value to pointers,
5938         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
5939         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
5940         selected
5941
5942 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5943
5944         * doc/sdccman.lyx: update documentation about stack pragma, added
5945         some info for stack memory models
5946
5947 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5948
5949         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
5950
5951 2005-01-08 Raphael Neider <rneider AT web.de>
5952
5953         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
5954           udata sections to fix bug #1097823
5955
5956 2005-01-05 Raphael Neider <rneider AT web.de>
5957
5958         * src/pic16/gen.c (genGenericShift): added handling of differently
5959           sized left operand and result
5960
5961 2005-01-04 Raphael Neider <rneider AT web.de>
5962
5963         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
5964         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
5965           to hold the condition bit)
5966         * added new version of genCmp (old code available via #define)
5967         * added new version of genShiftLeft/genShiftRight in a generic
5968           way, now supports shifting by negative values
5969         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
5970           shiftCount (expected by genGenericShift)
5971         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
5972         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
5973           dump
5974         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
5975           is an invalid literal too...)
5976
5977 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
5978
5979         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
5980         from Raphael Neider,
5981         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
5982         for 8-bit literals. This fixes some literal operands which are sign
5983         extended to 16-bits ints when instruction needs only 8-bits.
5984
5985 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
5986
5987         * device/lib/logf.c: added mcs51 assembly version
5988         * device/lib/expf.c: added mcs51 assembly version
5989         * device/lib/_logexpf.c: new shared asm code for expf and logf
5990         * device/include/math.h: add defines for assembly math library
5991         * device/lib/Makefile.in: build new _logexpf.c
5992         * device/lib/libfloat.lib: use new _logexpf.c
5993
5994 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5995
5996         * src/pic/device.c
5997         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
5998           device types which have less than 0x7f registers.
5999
6000 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6001
6002         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
6003
6004 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6005
6006         * device/lib/printf_fast.c: only build on supported arch.
6007         * device/lib/printf_tiny.c: only build on supported arch.
6008         * device/lib/printf_fast_f.c: only build if asm float lib
6009         * device/lib/_fsget1arg.c: only build if asm float lib
6010         * device/lib/_fsget2args.c: only build if asm float lib
6011         * device/lib/_fsnormalize.c: only build if asm float lib
6012         * device/lib/_fsreturnval.c: only build if asm float lib
6013         * device/lib/_fsrshift.c: only build if asm float lib
6014         * device/lib/_fsswapargs.c: only build if asm float lib
6015         * device/include/stdio.h: don't provide print_fast,
6016           print_fast_f, print_tiny prototypes if --xstack used
6017
6018 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
6019
6020         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
6021         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
6022           to the SOURCES
6023
6024 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6025
6026         * device/lib/printf_fast_f.c: same as printf_fast, but
6027           with floating point enabled
6028         * device/lib/printf_fast.c: minor tweaks
6029         * device/include/stdio.h: add printf_fast_f
6030
6031 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6032
6033         * src/SDCCmain.c: make --float-reent default for mcs51
6034         * device/lib/_fsadd.c: added mcs51 assembly version
6035         * device/lib/_fssub.c: added mcs51 assembly version
6036         * device/lib/_fsmul.c: added mcs51 assembly version
6037         * device/lib/_fsdiv.c: added mcs51 assembly version
6038         * device/lib/_fseq.c: added mcs51 assembly version
6039         * device/lib/_fsneq.c: added mcs51 assembly version
6040         * device/lib/_fsgt.c: added mcs51 assembly version
6041         * device/lib/_fslt.c: added mcs51 assembly version
6042         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
6043         * device/lib/Makefile.in: add _fscmp to build
6044         * device/lib/libfloat.lib: add _fscmp to build
6045
6046 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6047
6048         * device/lib/_fs2slong.c: added mcs51 assembly version
6049         * device/lib/_fs2sint.c: added mcs51 assembly version
6050         * device/lib/_fs2schar.c: added mcs51 assembly version
6051         * device/lib/_fs2ulong.c: added mcs51 assembly version
6052         * device/lib/_fs2uint.c: added mcs51 assembly version
6053         * device/lib/_fs2uchar.c: added mcs51 assembly version
6054         * device/lib/_slong2fs.c: added mcs51 assembly version
6055         * device/lib/_sint2fs.c: added mcs51 assembly version
6056         * device/lib/_schar2fs.c: added mcs51 assembly version
6057         * device/lib/_ulong2fs.c: added mcs51 assembly version
6058         * device/lib/_uint2fs.c: added mcs51 assembly version
6059         * device/lib/_uchar2fs.c: added mcs51 assembly version
6060         * device/include/float.h: added #define to select asm vs c
6061
6062 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
6063
6064         * device/lib/printf_fast.c: improvements to float output
6065         * device/include/float.h: add defines for assembly float library
6066         * device/lib/_fsget1arg.c: receive 1 float arg
6067         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
6068         * device/lib/_fsnormalize.c: normalize a float
6069         * device/lib/_fsreturnval.c: return float, various helper routines
6070         * device/lib/_fsrshift.c: right shift a float's mantissa
6071         * device/lib/_fsswapargs.c: swap 2 floats
6072         * device/lib/Makefile.in: build these 6 new files for mcs51
6073         * device/lib/libfloat.lib: add these 6 files to the library
6074
6075 2004-12-26 Borut Razem <borut.razem AT siol.net>
6076
6077         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
6078           built by gcc 3.4.2
6079
6080 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
6081
6082         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
6083           and fully reentrant and register bank neutral.
6084         * device/lib/printf_fast.c: added float (not enabled by default),
6085           added compact/slower integer (also not enabled by default),
6086           improved size/speed of fast integer code, other minor changes
6087         * device/include/stdio.h, device/lib/Makefile.in,
6088           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
6089
6090 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
6091
6092         * src/pic16/pcode.c: declaring variables other than at the start of a
6093           block is not supported in C by VC6.
6094
6095 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
6096
6097         * applied a previous patch from Raphael Neider that wasn't included
6098         in the previous commits, which fixes infinite loops within jumptable
6099         improvements,
6100         * made some fixes that previous patches introduced
6101
6102 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
6103
6104         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
6105         that fixes an issue with AOP_PCODE asmop's offset,
6106         * (pic16_popCopyReg): update instance field too,
6107         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
6108         function of pic port,
6109         * (genCmp, genAnd, genAssign),
6110         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
6111
6112 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
6113
6114         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
6115         variables initial values to idata section,
6116         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
6117         variables in some functions. This utilizes parmBytes field of iCode
6118         structure to hold the offset of the variable in stack. (might be
6119         able to use the stack field too?)
6120         * applied patch from Raphael Neider # ### , # ###
6121         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
6122         variable initial values in idata section,
6123         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
6124         for static variables with initial value
6125         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
6126         applied fix in while loop from Raphael Neider.
6127
6128 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
6129
6130         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
6131         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
6132         * src/ds390/ralloc.c (serialRegAssign): spill bits
6133         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
6134         * support/Util/SDCCerr.c,
6135         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
6136         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
6137         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
6138
6139 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
6140
6141         * device/include/sdcc-lib.h: inserted LGPL, added includes
6142           asm/ds390/features.h and asm/mcs51/features.h
6143         * device/include/asm/default/features.h,
6144         * device/include/asm/gbz80/features.h,
6145         * device/include/asm/z80/features.h: added empty _AUTOMEM
6146           and _STATMEM
6147         * device/include/asm/ds390/features.h,
6148         * device/include/asm/mcs51/features.h: added files with defines for
6149           _AUTOMEM and _STATMEM indicating automatic and static storage class
6150         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
6151         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
6152         * src/SDCCicode.c (geniCodeCast),
6153         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
6154         * src/SDCCloop.c (loopInduction): removed unused variable lr
6155         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
6156           to convertToFcall to include char modulo (RFE 1065037), added check
6157           if left operand is unsigned and use abs of literal value
6158         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
6159           as it doesn't work after conversion from peephole.def to peephole.rul
6160         * src/mcs51/gen.c (toBoolean): added check for size,
6161           (genModOneByte): optimized code for signed char modulo a literal
6162           power of 2 (thanks to Hubert Sack),
6163           (genRRC): removed unnecessary "clr c",
6164           (genRLC): replaced "add a,acc" with cheaper "rlc a"
6165         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
6166           jump optimization,
6167           swapped rules 256.c and 256.d,
6168           extended 256.d by using new multiple checks (thanks Erik),
6169           added rules 256.e and 256.f,
6170           updated rule 261.a and 261.b to new generated code
6171         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
6172
6173 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6174
6175         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
6176           induction related bugs, including first part of bug #1074377
6177
6178 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
6179
6180         * applied patch from bug-report #1076292,
6181         * applied patches for genAnd and Goto-optimizations for Raphael
6182         Neider,
6183         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
6184         dump a less iCode information,
6185         * src/pic16/device.h (pic16_options_t): added field debgen,
6186         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
6187         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
6188         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
6189         puclic,
6190         * (various functions): added macros FENTRY and FENTRY2 to functions,
6191         to emit function prologue,
6192         * (various functions): fixed indentation,
6193         * (genNearPointerGet): fixed loading of FSR0,
6194         * (genPackBits): applied patch from Raphael Neider to fix updating
6195         of FSR0 and touching only the modified bits,
6196         * src/pic16/genarith.c (various functions): added macros FENTRY to
6197         emit function prologue in comments,
6198         * src/pic16/pcode.h: added functions debugf2, debugf3,
6199         * src/pic16/ralloc.c: partial fix for packForPush caused
6200         segmentation fault,
6201
6202 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6203
6204         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
6205           <stsp AT users.sourceforge.net> with reversed byte order
6206         * support/regression/tests/rotate.c: added (ds390 skips some tests)
6207
6208 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6209
6210         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
6211           bug #1074377
6212         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
6213         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
6214
6215 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6216
6217         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
6218
6219 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6220
6221         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
6222           conditions,
6223           (setFromConditionArgs): friendly operand parser for peephole rules,
6224           (operandBaseName, operandsNotRelated): new peephole condition
6225           "operandsNotRelated" -- similar to "operandsNotSame", but takes
6226           architecture specific register naming into account, handles n-way
6227           comparisons, and supports quoted literals
6228         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
6229
6230 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6231
6232         * src/mcs51/peeph.def: fixed bug #1076940
6233
6234 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6235
6236         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
6237
6238 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6239
6240         Adding support for replacing ljmps with sjmps in jumptables
6241         generated for switch statements. For now you need to set the
6242         environment variable SDCC_SJMP_JUMPTABLE to enable this.
6243         Now 4 algorithms for mcs51 jumptable generation are used:
6244         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
6245         addresses loaded pc-relative for up to 112 cases and stack-pushing
6246         target addresses loaded with offset from dptr for up to 256 cases.
6247
6248         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
6249         * src/mcs51/main.c: adapted constants for switch table generation
6250         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
6251
6252 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
6253
6254         * device/lib/printf_large.c (_print_format): fixed bug 1073386
6255         * support/regression/tests/bug1057979.c: added test for bug 1073386
6256
6257 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6258
6259         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
6260         compilers
6261
6262 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6263
6264         * src/pic16/device.h,
6265         * src/pic16/genarith.c,
6266         * src/pic16/glue.c,
6267         * src/pic16/main.c,
6268         * src/pic16/pcode.c: applied patches #1068154 and #1070213
6269
6270 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
6271
6272         Large cummulative patch for pic16 port.
6273         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
6274         to call when a stack overflow occurs,
6275         * (malloc.h): added CVS Id tag,
6276         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
6277         variable,
6278         * added libc directory. The current version of LibC contains string
6279         functions, ctype functions and macros and some functions of the
6280         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
6281         be extensively tested in the future. Standard disclaimer here.
6282         Library is not automatically build yet. But one can build it by
6283         invoking 'make' inside the libc directory.
6284         * added ADC library under libio. Preliminary version yet.
6285
6286         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
6287         * src/pic16/gen.c (aopForRemat): asmop size is filled by
6288         aopForRemat() now and not by pic16_aopOp(),
6289         * (pic16_popGetTempReg): removed warning messgae when allocating
6290         temporary registers, its a buggy feature and will be removed,
6291         * (pic16_popGet): set register instance field in AOP_CRY,
6292         * (pic16_outBitC): fixed for results in size greater than 1,
6293         * (genUminusFloat): fixed for pic16, ported code from mcs51,
6294         * (pic16_storeForReturn): optimized return of 0,
6295         * (genCmp): experimental code for new genCmp which uses PIC18's
6296         special compare&skip instructions. Initial tests fail some times
6297         with variables grater than 1 byte in size, so new code is disabled,
6298         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
6299         a single bit,
6300         * (genCast): began a fix to optimize the casting of a bit to another
6301         bit, now assigning a bitfield to another bitfield will fail, sorry,
6302         * src/pic16/main.c: disabled the use of lr-support feature,
6303         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
6304         * added some function prototypes, added function _debugf prototype,
6305         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
6306         bits with offset (case PO_GPR_BIT),
6307         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
6308         command line,
6309         * (isBankInstruction): modified to return 0 for no banking instruction,
6310         and 1 for banking instruction,
6311         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
6312         caused stop processing pCodes after a inline assembly block,
6313         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
6314         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
6315         registers when it shouldn't,
6316         * src/pic16/ralloc.c (allocReg): add preliminary support for
6317         supporting a limited set of temporary registers,
6318
6319 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6320
6321         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
6322           genDataPointerSet): ensure assignments always copy in MSB to LSB
6323           order,
6324           (loadRegFromAop): recognize CLRH optimization,
6325           (genFunction): optimize RECEIVE iCodes in reentrant functions
6326
6327 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6328
6329         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
6330           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
6331           selected.
6332         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
6333         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
6334           contiguous with data
6335
6336 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6337
6338         * device/lib/_gptrget.c (_gptrget),
6339         * device/lib/_gptrgetc.c (_gptrgetc),
6340         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
6341           instead of sjmp to ret
6342         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
6343           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
6344
6345 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6346
6347         * .version: bumped version to 2.4.7
6348         * device/lib/_gptrget.c (_gptrget): is now _naked
6349         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
6350         * device/lib/_gptrput.c (_gptrput): is now _naked
6351         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
6352           (createFunction): fixed xstack
6353         * src/SDCCglue.c (emitMaps): set allocation required for bit area
6354         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
6355           or bit either,
6356           (geniCodeCritical): store original interrupt state in an iTemp bit
6357           var unless stack-auto
6358         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
6359         * src/SDCCmain.c (setIncludePath): added include/target to search path
6360         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
6361         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
6362           prototype,
6363           (processFuncArgs): put bit vars in bit area
6364         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
6365           unsaveRBank): fixed xstack,
6366           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
6367           (genFunction, genEndFunction): fixed xstack,
6368           (genAssign): optimization don't walk backwards through mem
6369         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
6370         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
6371         * support/regression/Makefile: also make library (for stack-auto) when
6372           making "all" and added "test-mcs51-xstack-auto"
6373         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
6374         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
6375         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
6376         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
6377         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
6378           make-library by MAKE_LIBRARY
6379         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
6380           regression tests for xstack
6381         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
6382         * support/regression/tests/critical.c: test for critical on mcs51
6383
6384 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6385
6386         * support/regression/ports/ucz80/spec.mk: use include and lib files from
6387           built version of sdcc instead of installed version
6388
6389 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
6390
6391         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
6392         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
6393           vprintf.c now
6394         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
6395         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
6396           WARNING: remove device/lib/build/z80/printf.o by hand when
6397           updating from previous build!
6398         * device/lib/z80/printf.c: updated comment
6399         * support/regression/tests/bug1057979.c: test all ports now
6400         * support/regression/tests/bug1065458.c: file added
6401
6402 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6403
6404         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
6405           *_start and *_end symbols for static functions
6406
6407 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
6408
6409         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
6410           and search crt0.o in all library paths,
6411           (setIncludePath): proper handling of --nostdinc,
6412           (setLibPath): proper handling of --nostdlib
6413         * support/regression/Makefile,
6414         * support/regression/ports/ds390/spec.mk,
6415         * support/regression/ports/gbz80/spec.mk,
6416         * support/regression/ports/hc08/spec.mk,
6417         * support/regression/ports/mcs51/spec.mk,
6418         * support/regression/ports/mcs51-large/spec.mk,
6419         * support/regression/ports/mcs51-stack-auto/spec.mk,
6420         * support/regression/ports/z80/spec.mk: use include and lib files from
6421           built version of sdcc instead of installed version
6422         * doc/sdccman.lyx: fixed typo in --nostdinc
6423
6424 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
6425
6426         * src/pic/pcode.c,
6427         * src/pic/device.c,
6428         * src/pic/ralloc.c,
6429         * src/pic/gen.c : added support to generate code for struct bit fields.
6430
6431 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
6432
6433         * as/xa51/xa_version.h,
6434         * device/include/errno.h,
6435         * device/include/regc515c.h,
6436         * device/lib/_itoa.c,
6437         * device/lib/_ltoa.c,
6438         * device/lib/ser_ir_cts_rts.c,
6439         * sim/ucsim/xa.src/glob.cc,
6440         * sim/ucsim/xa.src/inst_gen.cc,
6441         * sim/ucsim/xa.src/xa_bit.cc,
6442         * sim/ucsim/xa.src/xa_sfr.cc,
6443         * sim/ucsim/z80.src/inst_dd.cc,
6444         * sim/ucsim/z80.src/inst_fdcb.cc,
6445         * support/scripts/keil2sdcc.pl,
6446         * src/pic16/pic16.dsp,
6447         * src/pic16/pic16a.dsp: corrected cvs line endings
6448         * device/lib/printf_large.c: fixed bug 1057979
6449         * src/pic16/gen.c: fixed non-C standard code
6450         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
6451         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
6452         * support/regression/ports/mcs51/support.c: reload T1 asap
6453         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
6454           pdata use and clear idata startup behaviour
6455         * support/regression/tests/bug1057979.c: added
6456
6457 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
6458
6459         * device/examples/ds390/ow390/ad26.h,
6460         * device/examples/ds390/ow390/cnt1d.h,
6461         * device/examples/ds390/ow390/crcutil.c,
6462         * device/examples/ds390/ow390/ownet.h,
6463         * device/examples/ds390/ow390/owsesu.c,
6464         * device/examples/ds390/ow390/swt12.h,
6465         * device/examples/ds390/ow390/swtoper.c,
6466         * device/examples/ds390/ow390/temp10.h,
6467         * device/examples/ds390/ow390/thermodl.c,
6468         * device/examples/ds390/tinitalk/tinitalk.dsp,
6469         * device/examples/ds390/tinitalk/tinitalk.dsw,
6470         * device/examples/mcs51/clock/hw.h,
6471         * device/examples/mcs51/simple2/go.bat,
6472         * device/examples/serialcomm/windows/serial.h,
6473         * device/examples/xa51/dummy.c,
6474         * device/examples/xa51/hello.c,
6475         * device/include/80c51xa.h,
6476         * device/include/at89x051.h: corrected cvs line endings
6477
6478 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
6479
6480         * src/pic16/main.c (options): added command line --gstack, to trace
6481         stack over/under flows,
6482         * added pragma 'wparam' to allow passing first byte of function
6483         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
6484         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
6485         call to __gstack_test function and sets up the symbol as extern,
6486         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
6487         * popaop): added call to pic16_testStackOverflow,
6488         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
6489         wparamList list,
6490         * (genCall, genPcall): now all parameters are passed via stack
6491         except in functions that are pass to wparam pragma in which WREG is
6492         used too,
6493         * (genPcall): REENTRANT flag is checked to see if variable prototype
6494         contains reentrant keyword, don't call a non-reentrant function, via
6495         a reentrant function pointer or vice versa, functions are never
6496         passed via WREG,
6497         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
6498         D.Winkler,
6499         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
6500         SIGSEGV when accessing a NULL register stucture,
6501         * (pic16_printGPointerType): modified to handle UPPER modifier for
6502         function initializers, changed prototype of function to simpler one,
6503         * (pic16_printIvalFuncPtr): check to see if function is already
6504         added in externs list,
6505         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
6506         optimized a move from W to SFR with a move to the same register
6507         later after a CALL,
6508         * device/lib/pic16/debug: NEW directory, contains debug features
6509         which are enabled when linking with libdebug.lib, currently command
6510         line option --gstack enables stack pointer tracing for over/under
6511         flow, corresponding sources are in debug/gstack
6512
6513 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
6514
6515         * doc/sdccman.lyx: updated SDCC version,
6516         * (PIC16 port): update list of command line options,
6517         * src/pic16/device.h (structure pic16_options_t): added field gstack
6518         to enable stack overflow tracing on push/pops,
6519         * src/pic16/device.c (statistics structure): added statistics
6520         structure,
6521         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
6522         pic16_dump_int_registers): increase statistics counters for each
6523         * variable which is encountered
6524         * (pic16_dump_usection): emit each .udata variable to its own udata
6525         section,
6526         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
6527         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
6528         parameters via stack, otherwise use old scheme,
6529         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
6530         assembler output file,
6531         * src/pic16/main.c: added command line options --gstack to enable
6532         push/pop tracing for stack overflow,
6533         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
6534         instructions): added size of each instruction,
6535         * (pic16_countInstruction): estimate size of instructions in
6536         the_pFile list, inline assembly blocks are not counted,
6537         * (pic16_FixRegisterBanking): trace previous register usage, when
6538         banksel optimizations is greater than 0, don't emit a redudant
6539         banksel directive,
6540
6541 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
6542
6543         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
6544         * src/pic16/ralloc.c : applied same fix for pic16.
6545         * src/pic/gen.c : tidied it up a little.
6546
6547 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6548
6549         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
6550         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
6551
6552 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6553
6554         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
6555
6556 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6557
6558         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
6559         non-reentrant function __modsint in the interrupt function (thus
6560         corrupting math operations during serial I/O)
6561         * device/lib/ser_ir.c: as above, changed buffersize
6562         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
6563         256.c,d for zeroing
6564         * doc/Makefile: added option -t for rsync
6565
6566 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6567
6568         * src/SDCCast.h (struct ast),
6569         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
6570
6571 2004-10-20 Borut Razem <borut.razem AT siol.net>
6572
6573         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
6574         package
6575
6576 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
6577
6578         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
6579         makefile targets,
6580         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
6581         support functions to replace long sequences of MOVFF's from access
6582         bank registers to stack and vice versa,
6583         * src/pic16/device.h: added new field opt_flags, where optimization
6584         flags can be set to enable certain features,
6585         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
6586         * pBlock, (genFunction, genEndFunction): surroung loop for
6587         saving/loading used registers in stack with PC_INFO pCodes,
6588         INF_LREGS. Code in between can then be optimized by pCode optimizer
6589         to support function calls,
6590         * (genDataPointerSet): fixed bug which loaded float fields in
6591         structures with corrupt data,
6592         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
6593         in a standard way debug info on stderr. Feature used for developing
6594         and debugging only,
6595         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
6596         obsolete chunks of code,
6597         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
6598         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
6599         * pic16/src/pcode.c (pic16_newpCodeInfo,
6600         * (pic16_newpCodeOpLocalRegs),
6601         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
6602         feature,
6603         * (pic16_pCodeConstString): printing of the initial value of a
6604         symbol as a comment is inhibited since parsing was already done by
6605         copyStr and output is corrupt,
6606         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
6607
6608 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6609
6610         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
6611
6612 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
6613
6614         * as/mcs51/lkarea.c: removed old K&R style,
6615           (lnksect): changed check on boundary error,
6616           (lnksect2): changed check on boundary error,
6617           (lnksect2): extend XSTK to end of page if size = 1
6618         * as/mcs51/lkmain.c: removed old K&R style,
6619           (Areas51): create l_IRAM symbol
6620         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
6621         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
6622           model-mcs51-stack-auto, added model-mcs51-xstack-auto
6623         * device/lib/_mullong.c: added version to be compiled with xstack
6624         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
6625         * device/lib/mcs51/crtxclear.asm: clear pdata as well
6626         * device/lib/mcs51/crtxstack.asm: fixed comment
6627         * src/SDCCglue.c: maxInterrupts defaults to 0,
6628           (emitMaps): added pdata,
6629           (createInterruptVect): (re)moved default,
6630           (glue): added pdata,
6631           (glue): moved __start__xstack to XSTK with default size 1
6632         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
6633           and options.float_rent when options.stackAuto is set,
6634           (linkEdit): only write XDATA_NAME if provided on command line
6635         * src/SDCCmem.h,
6636         * src/SDCCmem.c: added pdata
6637         * src/port.h: added pdata_name to PORT
6638         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
6639           (saveRegisters, unsaveRegisters): removed usage of B,
6640           (genMinus): fixed accumulator clash,
6641           (genJumpTab): added comment, this needs another look
6642         * src/mcs51/gen.c: added check for "B in use" paranoia,
6643           added pushB() and popB()
6644         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
6645           chance
6646         * src/avr/main.c,
6647         * src/ds390/main.c,
6648         * src/hc08/main.c,
6649         * src/mcs51/main.c,
6650         * src/pic/main.c,
6651         * src/pic16/main.c,
6652         * src/xa51/main.c,
6653         * src/z80/main.c: (reset_regparms) made void parameter explicit and
6654           added PSEG (PAG,XDATA) or NULL to port specifier
6655         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
6656         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
6657           (_mcs51_genInitStartup): removed __start__xstack equ,
6658           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
6659         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
6660         * src/z80/gen.c (_rleAppend): fixed warnings
6661         * support/regression/tests/zeropad.c: added pdata test
6662         * .version: bumped to 2.4.6
6663
6664 2004-10-17 Borut Razem <borut.razem AT siol.net>
6665
6666         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
6667         as a part of nightly build
6668
6669 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
6670
6671         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
6672         WREG holds the first byte function parameters,
6673         * (aopForSym): take special case for symbols which are in FARSPACE
6674         but in CODESPACE too,
6675         * (assignResultValue): modified to take into account _G.useWreg,
6676         * (genCall): don't use wreg for parameter passing when function is
6677         declared as reentrant, too, added optimization INCF to stack
6678         pointer when stack parameter count is 1,
6679         * (genFunction, genEndFunction): refurnished and fixed to not using
6680         wreg for passing parameters when function has varargs or is
6681         reentrant, fixed bug with symbol name compare for generating
6682         functions in absolute address,
6683         * (pic16_storeForReturn): refurnished,
6684         * (genCmp): began writing a new version of the function, not ready
6685         yet, therefore it is disabled,
6686         * (genAssign): do not read code memory when assigning a function to
6687         a pointer function,
6688         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
6689         array of characters, not pointer,
6690         * (pic16initialComments): in debug mode emit an .ident directive for
6691         the assembler,
6692         * (_process_pragma): emit a new warning type (internal to pic16)
6693         when setting stack to default length, emit a similar warning when
6694         placing a function at absolute address and address is not word aligned
6695         * (_pic16_parseOptions): added 'return TRUE' statement,
6696         * (_pic16_linkEdit): if compiling a source, then add the source's
6697         file object, first in the list of objects to link,
6698
6699 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
6700
6701         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
6702         * src/pic/main.c : removed VC warning.
6703         * src/pic/gen.c : changed comment.
6704
6705 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
6706
6707         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
6708         reference to a deprecated symbol _GPTRREG was causing failure to
6709         link. Thanks G. M. Gallant for the info.
6710
6711 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
6712
6713         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
6714         comments for Bugs item #954788.
6715
6716 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
6717
6718         * src/pic16/device.c (pic16_dump_gsection,
6719         * pic16_groupRegistersInSection): handle symbols declared to be in
6720         access bank differently,
6721         * src/pic16/gen.c (struct _G): added field resDirect,
6722         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
6723         send values read from stack directly to result and don't allocate
6724         temporary values,
6725         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
6726         same registers,
6727         * (pic16_sameRegsOfs): NEW,
6728         * (freeAsmop): if _G.resDirect is set then do not mark registers as
6729         free because they were not allocated from temporary pool,
6730         * pic16_popRegFromString): workaround to fix a problem with
6731         allocating variables twice or never,
6732         * (genGenPointerGet): using PRODL instead of FSR0H,
6733         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
6734         instead of FSR0H,
6735         * (genAssign): take advantage of the _G.resDirect flag,
6736         * (genCast): around line 11844, use mov2f instead of directly
6737         MOVFF'ing between operands to account for literal values,
6738         * src/pic16/genutils.c: some new debug functions for gpsim have been
6739         added,
6740         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
6741         float with integer part only,
6742         * src/pic16/main.c (_process_pragma): handle pragma udata access to
6743         place variables in access bank
6744         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
6745         updated sources to reflect recent changes in gen.c
6746
6747 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
6748
6749         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
6750         sources that searched for headers in installation path, now the
6751         device/include/pic16 is used,
6752         * src/pic16/glue.c (pic16glue),
6753         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
6754         .line directives if not in debug mode, this suppresses assembler's
6755         warnings for ignored directives
6756
6757 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6758
6759         * src/port.h: made reset_regparms prototype void parameter explicit.
6760         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
6761         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
6762         * doc/sdccman.lyx: documented warning disabling and how to use
6763           printf_large to make it print floats.
6764         * device/include/stdbool.h: NEW
6765         * device/lib/_atof.c,
6766         * device/lib/_divuint.c,
6767         * device/lib/_divulong.c,
6768         * device/lib/expf.c,
6769         * device/lib/printf_large.c,
6770         * device/lib/sincosf.c,
6771         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
6772         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
6773           a completely reentrant lib.
6774
6775 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
6776
6777         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
6778         * device/include/pic16/stdio.h: fixed bug with colon
6779
6780 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
6781
6782         * device/include/pic16/stdio.h,
6783         * device/include/pic16/stdlib.h,
6784         * device/include/pic16/math.h: NEW
6785         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
6786         declared as _naked to reduce overhead
6787         * device/lib/Makefile.in (target port-specific-objects-pic16):
6788         changed * to *.* so to ignore the CVS directory,
6789         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
6790         stacked variables back in stack,
6791         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
6792         corruption
6793
6794 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
6795
6796         * .version: bumped version number to 2.4.5
6797         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
6798         * support/Util/SDCCerr.c (messages structure): added entry for
6799         W_POSSBUG2
6800
6801         Large cumulative patch for pic16 port and libraries.
6802         * device/include/pic16/sdcc-lib.h,
6803         * device/include/pic16/stdarg.h,
6804         * device/include/asm/pic16/features.h,
6805         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
6806         * device/include/pic16/float.h: changes reentrant keyword with
6807         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
6808         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
6809         updated target build-libraries to include objects from gptr,
6810         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
6811         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
6812         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
6813         all function headings,
6814         * src/SDCCmain.c: added global parameter userIncDirsSet,
6815         * (parseCmdLine): when option -I is encountered add directory to
6816         userIncDirsSet too,
6817         * src/version.awk: added space between control and long,
6818         * src/pic16/NOTES: added some notes for the port,
6819         * src/pic16/gen.c: added prototype for mov2fp function,
6820         * (fReturnpic16[]): properly named return value registers,
6821         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
6822         * (aopForSym): added code to handle symbols with onStack flag set,
6823         symbols onStack are allocated PTRSIZE bytes,
6824         * (aopFreeAsmop): handles special case where asmops are stack objects,
6825         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
6826         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
6827         added argument lock to trace flaws in allocating temporary registers
6828         when developing port,
6829         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
6830         * (pic16_popRegFromString): reenabled allocating a direct register
6831         from string,
6832         * (assignResultValue): various beautifications,
6833         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
6834         referenced function argument,
6835         * (genIpush): reenabled to allow stacked arguments, handles only
6836         ic->parmPush iCodes,
6837         * (genCall, genPcall): major changes to allow for variable argument
6838         functions, fixed a bug with falsely restoring stack pointer after
6839         returning from call,
6840         * (genFunction): pending code for critical function,
6841         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
6842         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
6843         * (genNearPointerGet): fixed bug with indirect reading, was always
6844         reading from INDF0
6845         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
6846         pointers,
6847         * (genAddrOf): rewrote code to take address of a stacked function parameter
6848         * (genCast): fixed casting to generic pointer type,
6849         * src/pic16/gen.h: added AOP_STA,
6850         * (struct asmop): added field stk,
6851         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
6852         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
6853         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
6854         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
6855         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
6856         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
6857         generic pointers,
6858         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
6859         and library paths,
6860         * (pic16_port structure): generic pointer size is set to 3,
6861         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
6862         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
6863         compiler warning,
6864         * src/pic16/ralloc.c (allocReg): prevent allocating register when
6865         operand is an iTemp,
6866
6867 2004-09-24 Martin Helmling <mh AT octo-soft.de>
6868
6869         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
6870         * debugger/mcs51/simi.c: addapt new syntax of s51
6871
6872 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
6873
6874         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
6875         * src/pic16/pcode.c: commented out some calls to free() in order to
6876         fix bug #989576,
6877
6878 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6879
6880         * src/SDCCicode.h,
6881         * src/SDCCicode.c (isiCodeInFunctionCall),
6882         * src/avr/ralloc.c (selectSpil),
6883         * src/pic/ralloc.c (selectSpil),
6884         * src/pic16/ralloc.c (selectSpil),
6885         * src/ds390/ralloc.c (selectSpil),
6886         * src/hc08/ralloc.c (selectSpil),
6887         * src/xa51/ralloc.c (selectSpil),
6888         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
6889         stack in the middle of a function call sequence (fixes bug #1020268)
6890         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
6891         costs associated with the minimum switch case.
6892
6893 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6894
6895         * src/SDCC.lex: fixed bug #1030549
6896
6897 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6898
6899         * src/SDCCcse.h (struct cseDef),
6900         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
6901         over a function call if the CSE is derived from a symbol whose
6902         address has been taken (fixes bug #1029883)
6903         * support/regression/tests/bug-1029883: a new regression test for
6904         this bug
6905
6906 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6907
6908         * src/hc08/gen.c (emitinline): fixed bug #1029778
6909         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
6910         to a cast object is no longer a syntax error ("fixes" bug #1030006,
6911         and starts toward RFE #905167)
6912
6913 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
6914
6915         * src/pic16/gen.c (mov2f): New function to move an operand to
6916         another without considering if it is a literal or a register,
6917         * (pic16_sameRegs): don't check if they are both AOP_REG,
6918         * (AccRsh): removed andmask=0 lines,
6919         * (genLeftShift): duplicated to be improved in future versions,
6920         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
6921         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
6922         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
6923         * (pic16initMnemonics): added initialization for POC_INFSNZW,
6924         * (insertBankSwitch): fixed inserting banksel directives algorithm
6925         for instructions that follow a skip instruction, this fixes a report
6926         for broken subtraction code generation,
6927         * src/pic16/ralloc.c (deassignLRs): do not free register if current
6928         iCode is a left op, just in case result and right share the same
6929         registers
6930
6931 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6932
6933         * src/hc08/main.c,
6934         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
6935         preservation of HX
6936         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
6937         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
6938         on 2004-09-12; it was buggy
6939
6940 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
6941
6942         * src/SDCCsymt.h: removed RESULT_CHECK
6943         * src/SDCCast.c,
6944         * src/SDCCglue.c,
6945         * src/SDCCval.c,
6946         * src/pic/glue.c,
6947         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
6948
6949 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
6950
6951         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
6952         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
6953         configuration values no more rejected by compiler, they are assigned
6954         to configuration registers with a warning message instead,
6955         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
6956         the for-loop so last conf register is emitted too,
6957         * (_pic16_initPaths): link library libsdcc.lib by default,
6958         * (_hasNativeMulFor): modified test for multiplication according to
6959         Raphael Neider's remarks. Integer multiplication is also done with
6960         support functions,
6961         * device/include/pic16/pic18fregs.h: corrected type error in while
6962         testing and including 18f6720 header file
6963
6964 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
6965
6966         * src/pic16/device.h (pic16_options): removed field use_crt,
6967         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
6968         until an optimization to handle single bits is added,
6969         * (pic16_loadFSR0): moved before genUnpackBits,
6970         * (genAnd): some white lines removed,
6971         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
6972         leave_reset flags in pic16_options when using crt modules,
6973
6974 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
6975
6976         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
6977           for bugs 898889 & 979599. Also used some safer print instructions.
6978
6979 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
6980
6981         * src/pic16/device.h (pic16_options_t): added field use_crt,
6982         crt_name, no_crt,
6983         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
6984         catch a probable future bug,
6985         * src/pic16/gen.c: aopIdx function commented out,
6986         * (genAssign): commented out old code which used aopIdx,
6987         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
6988         code, added if conditionals to take into account the --use-crt
6989         command line options,
6990         * src/pic16/main.c (pic16_optionsTable): added new command line
6991         options, --use-crt= and --no-crt,
6992         * (_pic16_linkEdit): now the proper crt object is added in the
6993         linker command line except than when --no-crt is specified,
6994         * src/pic16/pcode.c,
6995         * src/pic16/pcode.h: added some structures and functions for a new
6996         optimization scheme to compansate for instruction overhead between
6997         same iCodes, this scheme is currently under development and is not
6998         working in any way,
6999         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
7000         to && operator,
7001         * device/lib/pic16/startup/crt0i.c,
7002         * device/lib/pic16/startup/crt0iz.c: added global char variable
7003         __uflags to force the generation of an idata section
7004
7005 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
7006
7007         * doc/Makefile,
7008         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
7009         * doc/sdccman.lyx: updated sdcc version to 2.4.4
7010
7011 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7012
7013         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
7014         Frieder) and clarified the default code optimization mode
7015
7016 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7017
7018         * src/SDCC.lex (doPragma, process_pragma),
7019         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
7020         "opt_code_size", and "opt_code_balanced"
7021         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
7022         regrouped options by category, added support for category headers
7023         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
7024         and "--opt-code-size"
7025         * doc/sdccman.lyx: documented these new options and pragmas
7026         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
7027         preference into account
7028
7029 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7030
7031         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
7032           geniCodePreDec): Fixed bug 904237 by generating a warning
7033         * src/SDCCerr.h,
7034         * src/SDCCerr.c: added warning W_SIZEOF_VOID
7035
7036 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
7037
7038         * src/pic/device.c : When no max ram set validate full memory range.
7039         * src/pic/pcode.c,
7040         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
7041
7042 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7043
7044         * device/lib/_gptrget.c,
7045         * device/lib/_gptrput.c: updated comment
7046         * device/lib/calloc.c,
7047         * device/lib/free.c,
7048         * device/lib/malloc.c,
7049         * device/lib/realloc.c: added LGPL, made them reentrant-safe
7050         * src/SDCCcse.c (cseBBlock),
7051         * src/SDCCicode.c (printOperand, geniCodeArray),
7052         * src/SDCCicode.h (struct operand): fixed bug 868103
7053         * support/regression/tests/bug-868103.c: added
7054         * src/SDCCast.c (searchLitOp),
7055         * src/SDCCcse.h (struct cseDef),
7056         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
7057         * src/SDCCicode.h (struct operand),
7058         * src/SDCCsymt.h (struct sym_link),
7059         * src/avr/gen.c (hasInc),
7060         * src/ds390/gen.c (hasInc),
7061         * src/hc08/gen.c (genPlusIncr, hasInc),
7062         * src/mcs51/gen.c (hasInc),
7063         * src/pic16/glue.c (pic16_printIvalChar),
7064         * src/pic16/ralloc.c (regWithIdx),
7065         * src/xa51/gen.c (hasInc) : removed warnings
7066         * src/SDCCast.c (createBlock): added comment ???
7067         * src/hc08/ralloc.c: updated comments
7068
7069 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7070
7071         * doc/sdccman.lyx: updated section on switch statements, added
7072         section about semaphore locking
7073         * doc/Makefile: added option -info for latex2html
7074         * device/lib/_gptrget.c,
7075         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
7076
7077 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7078
7079         * src/pic/device.h,
7080         * src/pic/device.c,
7081         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
7082          maxram is less than 0x100.
7083
7084 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7085
7086         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
7087
7088 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7089
7090         * src/port.h,
7091         * src/mcs51/main.c,
7092         * src/ds390/main.c,
7093         * src/z80/main.c,
7094         * src/hc08/main.c,
7095         * src/pic/main.c,
7096         * src/pic16/main.c,
7097         * src/avr/main.c,
7098         * src/xa51/main.c
7099         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
7100         a jump table is the best form for a switch statement, including
7101         automatic insertion of missing cases to make the case range
7102         continuous. Developed in collaboration with Frieder Ferlemann.
7103
7104 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7105
7106         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
7107         accumulator result if it needs sign extension
7108
7109 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7110
7111         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
7112
7113 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7114
7115         * device/lib/gbz80/printf.c,
7116         * device/lib/z80/printf.c: removed define for NULL
7117
7118 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7119
7120         * as/xa51/xa_link.c,
7121         * device/examples/ds390/ow390/ad26.c,
7122         * device/examples/ds390/ow390/cnt1d.c,
7123         * device/examples/ds390/ow390/counter.c,
7124         * device/examples/ds390/ow390/ds2480.h,
7125         * device/examples/ds390/ow390/ds2480ut.c,
7126         * device/examples/ds390/ow390/findtype.c,
7127         * device/examples/ds390/ow390/gethumd.c,
7128         * device/examples/ds390/ow390/owllu.c,
7129         * device/examples/ds390/ow390/ownetu.c,
7130         * device/examples/ds390/ow390/swt12.c,
7131         * device/examples/ds390/ow390/swtloop.c,
7132         * device/examples/ds390/ow390/temp.c,
7133         * device/examples/ds390/ow390/temp10.c,
7134         * device/examples/ds390/ow390/thermo21.c,
7135         * device/examples/ds390/ow390/tinilnk.c,
7136         * device/examples/ds390/ow390/tstfind.c,
7137         * device/examples/serialcomm/windows/serial.cpp,
7138         * device/examples/serialcomm/windows/test_serialcomm.cpp,
7139         * device/include/reg51.h: fixed line endings for cvs
7140
7141 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7142
7143         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
7144         packRegsForAccUse, packRegisters): new accumulator register
7145         packing algorithm
7146         * support/regression/ports/hc08/support.c (_putchar): suppress
7147         warning of unused variable
7148         * src/SDCCicode.c: added SWAP entry to codeTable
7149
7150 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
7151
7152         * device/lib/sprintf.c: forgot to add this file before previous commit
7153
7154 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
7155
7156         * src/pic16/gen.c (genPackBits): added operand right in function
7157         parameters, load result directly if p_type is POINTER (that is
7158         called by genNearPointerSet)
7159         * (genUnPackBits): added operand left in function parameters,
7160         * (genNearPointerGet, genNearPointerSet): prevent the loading of
7161         FSR0 if accessing bitfields,
7162
7163 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
7164
7165         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
7166           _print_format; updated printf, sprintf, vsprintf
7167         * device/include/asm/default/features.h: corrected comment/define
7168         * device/lib/Makefile.in: added sprintf.c
7169         * device/lib/libsdcc.lib: added sprintf module
7170         * device/lib/printf_large.c,
7171         * device/lib/vprintf.c,
7172         * device/lib/sprintf.c: totally refactored printf_large and vprintf
7173           into these 3 files
7174         * support/regression/Makefile: changed ALL_PORTS into a usefull default
7175         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
7176         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
7177           hc08 test
7178         * support/regression/tests/zeropad.c: define idata as data for hc08
7179
7180 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7181
7182         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
7183         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
7184         labels are referenced at least once (even if a reference is not found)
7185         * src/hc08/gen.c (emitcode): set isComment flag for comments
7186         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
7187         loads), rules 6a..6b (optimize jumps to return)
7188
7189 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7190
7191         * device/lib/acosf.c (acosf),
7192         * device/lib/asinf.c (asinf),
7193         * device/lib/atanf.c (atanf),
7194         * device/lib/ceilf.c (ceilf),
7195         * device/lib/cosf.c (cosf),
7196         * device/lib/coshf.c (coshf),
7197         * device/lib/cotf.c (cotf),
7198         * device/lib/fabsf.c (fabsf),
7199         * device/lib/floorf.c (floorf),
7200         * device/lib/log10f.c (log10f),
7201         * device/lib/logf.c (logf),
7202         * device/lib/sinf.c (sinf),
7203         * device/lib/sinhf.c (sinhf),
7204         * device/lib/sqrtf.c (sqrtf),
7205         * device/lib/tanf.c (tanf),
7206         * device/lib/tanhf.c (tanhf),
7207         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
7208         replaced all instances of "reentrant" in the library functions
7209         defined in math.h with this macro.
7210         * support/regression/tests/float_trans.c: reenabled test for hc08
7211
7212 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
7213
7214         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
7215         erroneously deleted
7216
7217 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7218
7219         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
7220         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
7221         multi-byte volatile operands are used
7222         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
7223         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
7224         initialization to area GSINIT0 so that it would always precede
7225         any static initializers in GSINIT
7226         * support/regression/tests/zeropad.c: fixed idata define for hc08
7227         * support/regression/tests/bug-927659.c,
7228         * support/regression/tests/float_trans.c: disabled tests for hc08
7229         pending missing library routines
7230         * .version: increased version number to 2.4.4 - hc08 port now passes
7231         regression tests
7232
7233
7234 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
7235
7236         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
7237         * Makefile.common.in,
7238         * as/Makefile,
7239         * as/hc08/Makefile.in,
7240         * as/mcs51/Makefile.in,
7241         * as/z80/Makefile.in,
7242         * debugger/mcs51/Makefile.in,
7243         * device/include/Makefile.in,
7244         * device/lib/Makefile.in,
7245         * doc/Makefile,
7246         * link/Makefile,
7247         * link/z80/Makefile.in,
7248         * packihx/Makefile.in,
7249         * sim/ucsim/main_in.mk,
7250         * sim/ucsim/avr.src/Makefile.in,
7251         * sim/ucsim/doc/Makefile.in,
7252         * sim/ucsim/gui.src/serio.src/Makefile.in,
7253         * sim/ucsim/hc08.src/Makefile.in,
7254         * sim/ucsim/s51.src/Makefile.in,
7255         * sim/ucsim/xa.src/Makefile.in,
7256         * sim/ucsim/z80.src/Makefile.in,
7257         * src/Makefile.in,
7258         * support/cpp2/Makefile.in,
7259         * support/librarian/Makefile,
7260         * support/makebin/Makefile: added DESTDIR to the install path proposed
7261         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
7262         * doc/sdccman.lyx: added DESTDIR documentation
7263
7264 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
7265
7266         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
7267         instruction for interrupt handlers, use fast returns when returning
7268         from high priority interrupts
7269
7270 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7271
7272         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
7273         code generation
7274         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
7275         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
7276         bugs, ported much of Bernhard's code from mcs51
7277         * src/mcs51/gen.c (genSend),
7278         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
7279         than one when calling a reentrant function
7280         * device/lib/_mullong.c: defined an alternate struct layout for big
7281         endian ports (hc08)
7282
7283 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7284
7285         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
7286         test
7287
7288 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7289
7290         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
7291         are sane and complete before asking the port its prefered parameter
7292         passing method (fixes bug #1017633)
7293         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
7294         and _ret3
7295
7296 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7297
7298         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
7299         problem in bitfields >= 8 bits.
7300
7301 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7302
7303         * src/SDCCsymt.c: undid changes that were not meant to be committed
7304
7305 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7306
7307         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
7308
7309 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7310
7311         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
7312           copied and wrong bit got inverted
7313
7314 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7315
7316         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
7317         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
7318         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
7319         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
7320         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
7321         assignments to bitfields at known addresses
7322         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
7323         reads from bitfields at known addresses
7324         * src/hc08/ralloc.c (packRegisters),
7325         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
7326         genhc08Code): optimize pointer get values used as conditionals
7327         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
7328         and branch
7329
7330 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7331
7332         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
7333         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
7334         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
7335         as conditionals
7336
7337 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7338
7339         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
7340
7341 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7342
7343         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
7344         related problems
7345
7346 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
7347
7348         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
7349
7350 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7351
7352         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
7353         mcs51 port
7354
7355 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7356
7357         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
7358
7359 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7360
7361         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
7362         cases use more compact code.
7363
7364 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
7365
7366         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
7367
7368 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7369
7370         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
7371
7372 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7373
7374         * src/SDCCsymt.h,
7375         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
7376         parameter of changePointer() from symbol* to sym_link*
7377         * src/SDCCast.c (decorateType): call changePointer() for CAST op
7378         * src/SDCCsymt.c (compareType): void* type is castable to other
7379         pointers, but not necesarily an exact match.
7380         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
7381         is no longer blindly treated as an exact match.
7382         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
7383
7384 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
7385
7386         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
7387
7388 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
7389
7390         * src/pic/gen.c,
7391         * src/pic/pcode.c,
7392         * src/pic/ralloc.h,
7393         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
7394
7395 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
7396
7397         * src/pic/device.c,
7398         * src/pic/device.h,
7399         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
7400
7401 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7402
7403         * src/mcs51/gen.c (emitcode): fixed bug #992819
7404
7405 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
7406
7407         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
7408           there's no need to make it worse
7409
7410 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7411
7412         * src/mcs51/ralloc.c (deassignLR),
7413         * src/ds390/ralloc.c (deassignLR),
7414         * src/hc08/ralloc.c (deassignLR),
7415         * src/z80/ralloc.c (deassignLR),
7416         * src/pic/ralloc.c (deassignLR),
7417         * src/pic16/ralloc.c (deassignLR),
7418         * src/avr/ralloc.c (deassignLR),
7419         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
7420         rlivePoint): fixed another part of bug #971834
7421
7422 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7423
7424         * src/z80/main.c: enabled "critical" keyword
7425         * src/z80/mappings.i,
7426         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
7427         functions (fixes bug #979646)
7428         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
7429
7430 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7431
7432         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
7433           such as c:\mydir.
7434
7435 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
7436
7437         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
7438           doesn't disable too much optimizations
7439
7440 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7441
7442         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
7443
7444 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
7445
7446         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
7447
7448 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7449
7450         * src/pic/gen.c tidied up tabs
7451         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
7452         * src/pic/main.c tidied up tabs
7453         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
7454         * src/pic/pcoderegs.c tidied up tabs
7455         * src/pic/ralloc.c tidied up tabs
7456
7457 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
7458
7459         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
7460         to S_FIXED for pic16 port and when symbol is not in level 0,
7461         allocate for S_REGISTER storage class and pic16 port, too,
7462         * src/pic16/device.h: prototype for checkSym,
7463         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
7464         * (pic16_assignConfigWordValue): test the value and the mask to
7465         validate that the value is suitable for the configuration word,
7466         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
7467         collect extern declared symbols, don't emit symbol twice, check
7468         first if symbol is in publics set first,
7469         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
7470         * added command line '--fstack' which enables an experimental
7471         feature for stack access, too buggy to be used yet...
7472         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
7473         * (pic16_allocDirReg): when register has storage class S_REGISTER
7474         allocate in pic16_dynAccessRegs,
7475         * device/include/pic16/pic18f????.h: modified configuration word
7476         naming convention, words started as CONFIG0H but should be CONFIG1H
7477
7478 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
7479
7480         * device/include/mcs51reg.h: fixed bug 970993
7481
7482 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
7483
7484         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
7485         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
7486         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
7487         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
7488         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
7489         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
7490           error/warning numbers,
7491           added function setWarningDisabled()
7492         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
7493         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
7494           _memcmp.c _memmove.c calloc.c realloc.c free.c
7495         * support/regression/tests/malloc.c: added tests for new functionality
7496         * support/regression/tests/zeropad.c: added tests for truncated initializers
7497           and initialized char arrays starting with '\x0'
7498         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
7499
7500 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
7501
7502         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
7503
7504 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7505
7506         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
7507         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
7508         peephole 177.e. Thanks to anonymous
7509
7510 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
7511
7512         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
7513         function isn't used in the source but referenced as a
7514         variable initializer then declare it as extern in .asm file
7515
7516 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
7517
7518         * .version: increased version number to 2.4.3
7519
7520         Adding version extension according to ChangeLog CVS revision
7521         * src/Makefile.in (target all): added dependency 'version.h'
7522         * (rule version.h): added rule to create version.h from ChangeLog,
7523         * (rule dep): added dependency version.h,
7524         * src/version.awk: AWK script to create version.h
7525         * src/SDCCdwarf2.c (dwWriteModule),
7526         * src/SDCCglue.c (initialComments),
7527         * src/SDCCmain.c (printVersionInfo): modified to write after
7528         version string the version extension number,
7529         * src/SDCCutil.c: included "version.h"
7530         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
7531         number,
7532         * src/SDCCutil.h: added prototype for getBuildNumber
7533
7534         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
7535         includeDirsSet, too,
7536         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
7537         const char [] is found in function prototype...
7538
7539         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
7540         moving to WREG with source is already in WREG,
7541         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
7542         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
7543         * (aopForSym): stack'ed symbols are partially supported, added
7544         if-clause to support symbols in FARSPACE,
7545         * (sameRegs): added test for AOP_ACC to see if registers are same,
7546         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
7547         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
7548         * (pic16_popRegFromString): will not allocate a new register if it
7549         doesn't find one by name, bug may have introduced...
7550         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
7551         * (genIpush): revived to use pic16 port's stack,
7552         * (genAddrOf): added incomplete case for stack'ed operand,
7553         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
7554         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
7555         can handle multibyte operands,
7556         * src/pic16/glue.c (pic16_printIval*): some debug info added,
7557         * (pic16initialComments): added message for MPLAB compatibility
7558         mode enabled,
7559         * src/pic16/main.h: prototype for pic16_mplab_comp,
7560         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
7561         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
7562         * (_pic16_linkEdit): NEW, handles link stage, transferred here
7563         because of increased complexity of procedure,
7564         * (_process_pragma): stack pragma changed to format 'stack pos len',
7565         emit symbol '_stack_end' to conform with gplink,
7566         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
7567         to search for register,
7568         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
7569         PO_GPR_REGISTER,
7570         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
7571         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
7572         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7573         case for PO_GPR_REGISTER,
7574         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
7575         dies, the new era is ahead !...
7576         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
7577         pic16_dynInternalRegs,
7578         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
7579         * (pic16_allocDirReg): minor optimizations and bug fixes,
7580         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
7581
7582         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
7583         load stack and frame pointer with address of 'stack_end' symbol
7584
7585 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
7586
7587         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
7588         without source code but only variable initializers
7589
7590 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
7591
7592         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
7593         external are not declared as extern to reduce overhead while linking
7594
7595 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
7596
7597         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
7598
7599 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
7600
7601         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
7602           Yee Keat for the patch
7603         * src/SDCCast.c (decorateType): fixed bug #979599
7604         * src/ds390/gen.h: removed local fReturnSizeDS390
7605         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
7606         * src/ds390/gen.c (genAnd, genOr, genXor),
7607         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
7608
7609 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
7610
7611         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
7612         add relFilesSet to $3, manipulate $2 to handle linking of object
7613         files without source files in command line,
7614         * device/include/pic16 (all headers): added ID location macros,
7615         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
7616         entries for ID location bytes,
7617         * (pic16_assignIdByteValue): NEW,
7618         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
7619         added field dumpcalltree to pic16_options_t,
7620         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
7621         is used instead of pic16_Gstack_base_addr, check if (ifx) before
7622         emitting rFalseIfx label after check_carry label,
7623         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
7624         pic16_emitDIRegs), NEW
7625         * (pic16glue): dump .calltree file when option --calltree found,
7626         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
7627         * (_pic16_genAssemblerPreamble): emit ID locations after
7628         configuration registers,
7629         * (pic16_linkCmd): modifications of the link command,
7630         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
7631         * (pic16_pCodeInitRegisters): don't init stack registers,
7632         * (pic16_findPrevInstruction): fixed bug,
7633         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
7634         bug with immediate registers,
7635         * (buildCallTree): traces stack push and pop,
7636         * (pct2): dump also stack usage for each function,
7637         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
7638         * (pic16_allocDirReg): various modifications,
7639         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
7640         fixed to 1,
7641
7642 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
7643
7644         * src/pic16/pcode.c: removed buggy double colon
7645
7646 2004-07-01 Borut Razem <borut.razem AT siol.net>
7647
7648         * support/scripts/sdcc.nsi: added include/pic16 to setup
7649
7650 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
7651
7652         * device/lib/Makefile.in: fixed bug in target objects-pic16,
7653         * device/lib/pic16/Makefile: prefixed with dash (-) command under
7654         target 'clean',
7655         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
7656         specific command line arguments. Also added sample lkr script
7657         for placing a variable at a specific memory bank.
7658         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
7659         at a specific memory bank,
7660         * (pic16_dump_isection): fixed bug which caused string literals to
7661         be omitted when dumping idata section,
7662         * (pic16_groupRegistersInSection): added code to handle registers
7663         in specific memory banks,
7664         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
7665         public, all references are renamed too,
7666         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
7667         AOP_DPTR2,
7668         * (pic16_storeForReturn): added case to handle when dest is WREG,
7669         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
7670         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
7671         pic16_rel_udata, check to see if that register is marked as being
7672         a member of a specific memory bank,
7673         * (pic16_printIvalCharPtr): added code to add string literals either
7674         to code or the idata sections,
7675         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
7676         also accept the 'udata' pragma,
7677         * src/pic16/main.h: new structure types sectName and sectSym
7678         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
7679         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
7680         * (pic16_findPrevInstruction): fixed, it returned nothing,
7681         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
7682         instruction combinations,
7683         * (pic16_FixRegisterBanking): heavily reorganised,
7684         * (pic16_AnalyzeBanking): if generating banksel directives is
7685         disabled, then don't call FixRegisterBanking at all,
7686         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
7687         completely removed,
7688         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
7689
7690 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
7691
7692         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
7693         Phuah Yee Keat <yk.phuah AT nestac.com>
7694
7695 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
7696
7697         * src/pic16/glue.c (pic16createInterruptVect): function now emits
7698         correctly the IVT even if it is relocated to some other location
7699
7700 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
7701
7702         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
7703         * device/include/pic16/pic18f2220.h: NEW,
7704         * device/lib/pic16/libdev/pic18f2220.c: NEW,
7705         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
7706         * src/pic16/device.c (struct Pics16): added info for 18f2220,
7707         * src/pic16/device.h (struct pic16_options): added ivt_loc and
7708         nodefaultlibs, ivt_loc is the location of the interrupt vector
7709         table, and nodefaultlibs signs that default libraries should not be
7710         linked in link stage,
7711         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
7712         according to --ivt-loc argument,
7713         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
7714         when pragma stack is found,
7715
7716 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7717
7718         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
7719         256 (range check), 257 (do while), 258.a-f (bit banging
7720         f.e. on 3-wire SPI bus)
7721
7722 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7723
7724         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
7725         variables used exclusively within a loop
7726
7727 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
7728
7729         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
7730
7731 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7732
7733         * src/SDCClrange.c (computeClash): fixed bug #971834
7734
7735 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7736
7737         * src/mcs51/gen.c (genCmp): fixed bug #975903
7738         * src/hc08/gen.c (operandsEqu),
7739         * src/ds390/gen.c (operandsEqu),
7740         * src/z80/gen.c (operandsEqu),
7741         * src/pic/gen.c (operandsEqu),
7742         * src/pic16/gen.c (operandsEqu),
7743         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
7744         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
7745
7746 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7747
7748         * src/SDCCcse.c (cseBBlock): fixed bug #966963
7749
7750 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
7751
7752         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
7753         default case in switch statement,
7754         * glue.c (pic16_initPointer): expr is initialised via decoarteType
7755         to eliminate problem with initialisation of pointers, but problem
7756         still exists,
7757         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
7758         * (emitStaticSegment): removed various lines emitting debug info,
7759         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
7760         added processor registers for utilizing EEPROM,
7761         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
7762         configurable and set 8
7763
7764 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
7765
7766         * .version: increased version number to 2.4.2,
7767
7768         Cumulative patch for pic16 port
7769         * src/pic16/device.c: changed scheme to dump initial values for
7770         variables in idata segment, all print_idata* functions were removed,
7771         now the pic16_printIval* will be called,
7772         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
7773         * _pic16_printPointerType, pic16_printPointerType,
7774         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
7775         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
7776         NEW, similar to the respective functions in SDCCglue.c,
7777         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
7778         way, emitting hex bytes,
7779         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
7780
7781 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7782
7783         * src/avr/ralloc.c (serialRegAssign),
7784         * src/xa51/ralloc.c (serialRegAssign),
7785         * src/pic/ralloc.c (serialRegAssign),
7786         * src/pic16/ralloc.c (serialRegAssign),
7787         * src/hc08/ralloc.c (serialRegAssign),
7788         * src/z80/ralloc.c (serialRegAssign),
7789         * src/ds390/ralloc.c (serialRegAssign),
7790         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
7791
7792 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7793
7794         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
7795         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
7796
7797 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
7798
7799         Cumulative patch for pic16 port:
7800         * src/pic16/device.h (typedef PIC16_device) modified fields for
7801         defining microcontrollers,
7802         * src/pic16/device.c: added new info for all devices in Pics16 array,
7803         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
7804         to be optimised out by the pCode optimiser,
7805         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
7806         specially, bug reported by G.M. Gallant,
7807         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
7808         as force'd so that cannot be optimised out by pCode optimiser,
7809         * src/pic16/pcode.c,
7810         * src/pic16/pcodepeeph.c,
7811         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
7812         they are disabled by default, but can be enabled explicit with
7813         command argument --denable-peeps, for testing,
7814         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
7815         --pomit-ivt in COMPILE_FLAGS
7816
7817 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7818
7819         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
7820           compilation on MSVC
7821
7822 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7823
7824         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
7825
7826 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7827
7828         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
7829         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
7830
7831 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
7832
7833         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
7834         would only assign 0x300001 register.
7835
7836 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
7837
7838         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
7839         in COMPILE_FLAGS. Thanks to G. Gallant for report.
7840
7841 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7842
7843         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
7844         for ds80c400
7845         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
7846         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
7847         added peephole 254 (left shift), 255 (jump table)
7848
7849 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
7850
7851         * device/lib/Makefile.in: removed comment line with model-pic16,
7852         * (target port-specific-objects-pic16): the libraries and objects
7853         are copied to the build directory form the device/lib/pic16/bin
7854         directory
7855
7856         Cumulative patch concerning pic16 port:
7857         * library directory has been re-organized,
7858         * added support for PIC18F1220,
7859         * added headers and library sources for chips 18f1220,18f6520,
7860         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
7861
7862         * configuration registers setting has changed, now each supported
7863         device has a complete description of the registers it uses,
7864         * all initialisations are moved to idata sections, these section
7865         can be absolute or relocatable,
7866         * fixed initialisation of codespace variables,
7867         * fixed warning about PCLATU and gpsim,
7868         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
7869         * (genAssign): use table reads when assigning from variables in codespace,
7870         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
7871         char/int variables placed in codespace,
7872         * (pic16_emitConfigRegs): NEW, emits a list with configuration
7873         registers set in .asm file, no need for --pomit-config-words anymore,
7874         * (pic16glue): some 8051 legacy segments are commented out
7875         (to be removed completely),
7876         * added support for alternative assembler and linker with --asm=
7877         and --link= command line arguments,
7878         * peepholes are disabled automatically in the port, no need to
7879         specify on command line,
7880         * port supports natively char/int/long multiplication, but converts
7881         all divisions to support functions,
7882         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
7883         to the file set in variable $2,
7884         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
7885         strings in ASCII format and not in hex,
7886         * ralloc.c (serialRegAssign): added a triplet of conditional calls
7887         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
7888         allocate proper register if iCodes aren't temporary,
7889
7890 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
7891
7892         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
7893
7894 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
7895
7896         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
7897         is commented out
7898
7899 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7900
7901         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
7902         computed address is reused
7903         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
7904         multi-byte bitfields
7905
7906 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7907
7908         * src/z80/gen.c: (genArrayInit): must check for pointers too
7909
7910 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7911
7912         * support/regression/tests/zeropad.c: never meant to commit the
7913           nestedstruct test: removed, added check for GCC version
7914
7915 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
7916
7917         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
7918         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
7919         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
7920           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
7921           bugs 928906 and 954082 half-empty initializers
7922         * src/SDCCsymt.h,
7923         * src/SDCCsymt.c (getAllocSize): added for above fix
7924         * src/z80/gen.c (genArrayInit): fixed bug 741044
7925         * support/regression/tests/zeropad.c: added tests
7926
7927 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
7928
7929         * src/pic16/device.c (pic16_dump_section): corrected bug which
7930         caused some symbols of the libraries to be misplaced
7931
7932 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7933
7934         * src/pic16/glue.c,
7935         * src/pic16/ralloc.h,
7936         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
7937         to fix conflict with pic port
7938
7939 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7940
7941         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
7942         externs configuration variables,
7943         * src/pic16/ralloc.h,
7944         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
7945         prototype in header, commented out some debug messages
7946
7947 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
7948
7949         * src/pic16/glue.c,
7950         * src/pic16/main.c,
7951         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
7952         for gpasm COFF object generation. Thanks to D. Hawkins for
7953         his patch info
7954
7955 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7956
7957         * src/ds390/main.c,
7958         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
7959         Brock for spotting this)
7960         * src/ds390/gen.c (genEndFunction),
7961         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
7962         interrupt handler and critical. Disable push/pop optimizations when
7963         peephole optimizations disabled.
7964
7965 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7966
7967         Updated pic16 library sources and headers.
7968         * device/lib/pic16/pic18f*/ ,
7969         * device/include/pic16/*.h: modified to handle structured SFR
7970         definitions
7971
7972 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7973
7974         * src/port.h (PORT structure): added hook initPaths, now each
7975         port can declare its own default search paths,
7976         which can been seen with the --print-search-dirs option,
7977         see pic16 port for example,
7978         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
7979         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
7980         * (doPrintSearchDirs): NEW, replaces in a central manner the
7981         printing of search dirs which was split in set*Paths functions,
7982         * (main): added call to port->initPaths and doPrintSearchDirs,
7983         * src/avr/main.c,
7984         * src/ds390/main.c,
7985         * src/hc08/main.c,
7986         * src/izt/i186.c,
7987         * src/izt/tlcs900h.c,
7988         * src/mcs51/main.c,
7989         * src/pic/main.c,
7990         * src/pic16/main.c: modified port structures to reflect addition of
7991         initPaths hook,
7992
7993         * src/pic16/device.c (regCompare): registers are finally sorted by name,
7994         * (pic16_dump_section): for registers in same address reserve memory once,
7995         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
7996         to no_banksel,
7997         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
7998         result is greater in size than right or left,
7999         * (pic16_genUMult8X8_8): there are some cases where the result can
8000         be 16 bits size, so handle these,
8001         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
8002         * (pic16_outBitC): modified to emit pcodes,
8003         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
8004         or not,
8005         * (genDivOneByte): implemented algorithm to divide 8-bits,
8006         * (genCmp): uncommented goto, but issues still exist,
8007         * (genAnd): fixed a bug with variables >8bits,
8008         * (genPackBits): optimization added that uses BCF/BSF to change a
8009         single bit,
8010         * (genAssign): fixed bug when assigning floating point literals,
8011         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
8012         __sdcc_gsinit_startup label,
8013         * src/pic16/main.c (_pic16_init): removed search directory
8014         initialisations,
8015         * (_pic16_initPaths): NEW, used to initialise search directories,
8016         * (_hasNativeMulFor): support functions for all except char/int
8017         multiplication, and char division,
8018         * (PIC16_port struct): modified entry for native mul support,
8019         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
8020         no_banksel option,
8021         * (buildCallTree): call to register_usage is ifdef'ed out,
8022
8023 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8024
8025         * device/include/string.h: applied Stas Sergeev's patch to make this
8026         header file compatible with the preprocessor -Wundef option
8027         * src/SDCCmain.c (main): abort compilation if preprocessor reports
8028         failure (fixes bug #941458)
8029
8030 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8031
8032         * src/SDCCopt.c (killDeadCode): fixed bug #907733
8033         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
8034         that the variable, not the function, should be static
8035         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
8036         to be consistent with non-literal case
8037
8038 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8039
8040         * src/SDCCast.c (isConformingBody): fixed bug #949967
8041         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
8042         convilong): fixed bug #952086
8043
8044 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8045
8046         * src/SDCCmem.c (allocVariables): fixed bug #955321
8047
8048 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8049
8050         * src/hc08/main.c (_hc08_genAssemblerEnd),
8051         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
8052         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
8053         completely eliminated the use of a temporary file
8054         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
8055         when more than one file linked
8056         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
8057
8058 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8059
8060         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
8061         which fixes bug #543481
8062         * support/regression/tests/bug-751703.c: fixed comments left from a
8063         cut and paste error
8064         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
8065         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
8066         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
8067         scopes
8068         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
8069         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
8070         are now changed to underscores in moduleName
8071
8072 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8073
8074         * as/mcs51/lkmem.c: better fix for bug #954173
8075
8076 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8077         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8078
8079         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
8080         * device/include/c8051f000.h,
8081         * device/include/c8051f120.h,
8082         * device/include/c8051f300.h,
8083         * device/include/c8051f310.h,
8084         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
8085         PWM16) and detab'ed
8086
8087 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8088
8089         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
8090         and mailing lists, doc'ed --no-peep-comments, removed reference
8091         to knoppix (newest version has no LyX/LaTeX), other minor changes
8092         * src/SDCCglue.c (glue): save 2 bytes stack space with
8093         option --main-return. The ljmp could probably be avoided too
8094
8095 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8096
8097         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
8098
8099 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8100
8101         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
8102         * src/SDCCopt.c (isLocalWithoutDef),
8103         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
8104         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
8105         (credit to Maarten Brock for patch #949363, on which this is based)
8106         * support/regression/tests/bug-751703.c: some test cases of extern used
8107         within inner scopes.
8108
8109 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8110
8111         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
8112         SPEC_STRUCT
8113         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
8114         struct definitions
8115         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
8116         dwWriteLabel): fix to create valid debugger symbols even when
8117         the module name has non-alphanumeric symbols in it
8118         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
8119         when a variable's allocation has been optimized away
8120
8121
8122 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8123
8124         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
8125         * src/hc08/main.c,
8126         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
8127         * src/mcs51/main.c,
8128         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
8129         * src/ds390/main.c,
8130         * src/z80/gen.c (z80_emitDebuggerSymbol),
8131         * src/z80/main.c,
8132         * src/pic/gen.c (pic14_emitDebuggerSymbol),
8133         * src/pic/main.c,
8134         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
8135         * src/pic16/main.c,
8136         * src/avr/gen.c (avr_emitDebuggerSymbol),
8137         * src/avr/main.c,
8138         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
8139         * src/xa51/main.c,
8140         * src/SDCCdebug.c (emitDebuggerSymbol),
8141         * src/SDCCdebug.h,
8142         * src/port.h: added a debugger struct to the port struct. Added a
8143         callback for defining debugger symbols
8144
8145         * src/SDCCast.c (createLabel),
8146         * src/SDCC.y (labeled_statement): mark all compiler generated labels
8147         with isitmp = 1
8148         * src/SDCCicode.h,
8149         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
8150         iCode back to the ast for the function
8151
8152         * src/hc08/ralloc.c (hc08_assignRegisters),
8153         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
8154         unneeded fields from the regs struct.
8155         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
8156         pushReg() & pullReg() functions instead of emitcode()
8157
8158         * src/hc08/gen.c (genLabel, genhc08Code),
8159         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
8160
8161         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
8162         debugger hooks
8163
8164         * src/hc08/gen.c (genEndFunction, genhc08Code),
8165         * src/hc08/gen.h,
8166         * src/mcs51/gen.c (genEndFunction, gen51Code),
8167         * src/mcs51/gen.h,
8168         * src/ds390/gen.c (genEndFunction, gen390Code),
8169         * src/ds390/gen.h,
8170         * src/z80/gen.c (genEndFunction, genZ80Code),
8171         * src/z80/gen.h,
8172         * src/z80/z80.h,
8173         * src/pic/gen.c (genEndFunction, genpic14Code),
8174         * src/pic/gen.h,
8175         * src/pic16/gen.c (genEndFunction, genpic16Code),
8176         * src/pic16/gen.h,
8177         * src/avr/gen.c (genEndFunction, genAVRCode),
8178         * src/avr/gen.h,
8179         * src/xa51/gen.c (genEndFunction, genXA51Code),
8180         * src/xa51/gen.h,
8181         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
8182         specific code to cdbFile.c and out of the backend code generators
8183
8184         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
8185         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
8186         starting address is now 0
8187
8188         * as/hc08/asm.h,
8189         * as/hc08/m08pst.c,
8190         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
8191         assembler directive for DWARF support
8192         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
8193
8194         * src/src.dsp,
8195         * src/Makefile.in,
8196         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
8197
8198 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8199
8200         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
8201         and inappropriate peephole optimization in jump tables
8202
8203 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8204
8205         * as/hc08/m08pst.c,
8206         * src/SDCCglue.c: sdccopt works for the hc08 port now
8207
8208 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
8209
8210         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
8211
8212 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8213
8214         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
8215
8216 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8217
8218         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
8219         rules
8220         * src/SDCCmain.c,
8221         * src/SDCCglobl.h,
8222         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
8223         comments from the peephole optimizer replacement rules
8224         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
8225         symbols
8226         * src/SDCCcse.c (updateSpillLocation),
8227         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
8228         equivalents
8229         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
8230         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
8231         objects far pointers
8232
8233 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8234
8235         * src/SDCCsymt.h: a missing part of my last change
8236         * src/pic/ralloc.c (regTypeNum),
8237         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
8238
8239 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8240
8241         * src/SDCCicode.h,
8242         * src/SDCCicode.c (aggrToPtrDclType),
8243         * src/SDCCptropt.h,
8244         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
8245         ptrPseudoSymConvert),
8246         * src/pic/ralloc.c (regTypeNum),
8247         * src/pic16/ralloc.c (regTypeNum),
8248         * src/hc08/ralloc.c (regTypeNum),
8249         * src/ds390/ralloc.c (regTypeNum),
8250         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
8251         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
8252
8253 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8254
8255         * link/z80/lkmain.c (afile),
8256         * as/hc08/lkmain.c (afile),
8257         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
8258         prevent a pointer problem when a filename has no directory and
8259         no extension specified.
8260
8261 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8262
8263         * link/z80/lkmain.c (afile): allow periods in directory names
8264         * link/z80/lkmain.c (afile),
8265         * as/mcs51/lkmain.c (afile),
8266         * as/hc08/lkmain.c (afile): allow linker script file to have an
8267         extension other than ".lnk"
8268         * link/z80/lklex.c (getfid),
8269         * link/z80/lkmain.c (parse),
8270         * as/mcs51/lklex.c (getfid),
8271         * as/mcs51/lkmain.c (parse),
8272         * as/hc08/lklex.c (getfid),
8273         * as/hc08/lkmain.c (parse): Support comments in the linker script
8274         file on lines by themselves and after filenames
8275
8276 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8277
8278         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
8279
8280 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8281
8282         * src/z80/peeph-z80.def: removed some peephole rules that don't
8283         work with multibyte arithmetic (fixed bug #937126)
8284         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
8285         to registers and not global variables
8286         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
8287         geniCodePreInc, geniCodePostDec, geniCodePreDec,
8288         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
8289         checking for assignments not internally generated (fixed bug #931895)
8290         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
8291         structure member (fixed bug #930072)
8292
8293 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8294
8295         * src/SDCCmain.c (linkEdit),
8296         * src/hc08/main.c (_hc08_parseOptions),
8297         * as/hc08/Makefile.in,
8298         * as/hc08/aslink.h,
8299         * as/hc08/asm.h,
8300         * as/hc08/m08pst.c,
8301         * as/hc08/lkrloc.c (relr, rele),
8302         * as/hc08/lkarea.c (lnkarea)
8303         * as/hc08/lkmain.c (afile, parse),
8304         * as/hc08/lkelf.c: support for ELF output
8305         * as/hc08/lks19.c (s19),
8306         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
8307
8308 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8309
8310         * as/mcs51/lkihx.c: Fixed bug #899105.
8311
8312 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8313
8314         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
8315         .dsp files from Unix to DOS.
8316
8317 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8318
8319         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
8320         function pointers; we have been compliant for several months now.
8321         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
8322         change that was accidently commented out
8323         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
8324         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
8325         bug #922319
8326
8327 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8328
8329         * src/hc08/gen.c: output of all of the internal debugging information
8330         is now controlled by the D() macro; it is disabled by default
8331
8332 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8333
8334         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
8335         harder to keep the same registers during a CAST iCode
8336         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
8337         long via int can be done in a single cast, if the signedness is
8338         correct.
8339         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
8340         putchar() in tinibios.c in ds390's library
8341
8342 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
8343
8344         * src/SDCCast.c (decorateType): fixed bug #898889,
8345         cast result of a literal complement too
8346         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
8347         fixed check for bitfields
8348
8349 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
8350
8351         * src/SDCCicode.c (geniCodeLogic): made it static,
8352         (geniCodeLogicAndOr): added in order to fix bug #905492,
8353         (ast2iCode): fixed bug #905492
8354         * support/regression/tests/bug-905492.c: added
8355         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
8356         (processParms): fixed bug #927659: don't copy parms, this will clear
8357         decorated flag
8358         * support/regression/tests/bug-927659.c: added
8359
8360 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
8361
8362         * src/SDCCast.c (addCast): don't cast float to char
8363         * device/lib/libsdcc.lib: added _memmove
8364
8365 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
8366
8367         * device/lib/large/Makefile: fixed parallel execution by
8368         replacing `make` by `$(MAKE)`
8369
8370 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8371
8372         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
8373         offsets (fixes bug #923936)
8374
8375 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
8376
8377         * device/lib/small/Makefile: fixed parallel execution by
8378         replacing `make` by `$(MAKE)`
8379
8380 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8381
8382         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
8383
8384 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
8385
8386         * src/pic/gen.c (genCpl): multi-byte complements were not working.
8387         * src/regression/Makefile: Regression test was not running.
8388
8389 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8390
8391         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
8392         complement if possible
8393         * src/SDCCval.c (valComplement),
8394         * src/SDCCicode.c (operandOperation): fixed complement of literal
8395         * support/regression/tests/onebyte.c (testComplement): added
8396
8397 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
8398
8399         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
8400         return an optimized tree; actually replace actParm with the new tree
8401         * src/SDCCast.h: added some parantheses to remove side effects
8402         * support/regression/tests/bug-920866.c
8403
8404 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
8405         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
8406         Bit operands were not being handled properly in the pic14 port.
8407         (now src/regression/add.c passes again).
8408
8409 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8410
8411         * src/SDCC.y (labeled_statement): case and default no longer require
8412         a following statement (RFE #893037)
8413
8414 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8415
8416         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
8417         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
8418         disabled (fixes bug #916294)
8419         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
8420         "mov a,acc"; patch provided by Lenny Story
8421         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
8422
8423 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8424
8425         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
8426         functions
8427         * src/ds390/gen.c (genFunction, genEndFunction),
8428         * src/ds390/ralloc.c (ds390_assignRegisters),
8429         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
8430         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
8431         pushed if there are parameters passed on the stack. Also, a cleaner
8432         way to decide if r0/r1 should be pushed/popped. (Together they fix
8433         bug #918693)
8434
8435 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8436
8437         * doc/sdccman.lyx,
8438         * device/lib/mcs51/crtpagesfr.asm,
8439         * device/lib/mcs51/crtxinit.asm,
8440         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
8441         to avoid confusion with Si Lab's SFRPAGE register.
8442
8443 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8444
8445         * src/SDCCglue.c (emitMaps): allow public sfr variables
8446         * src/SDCCglue.c (initialComments): include compiler build date
8447         with compiler version and put the timestamp of the generated
8448         assembly file on a serperate line to be less confusing.
8449         * src/port.h: added genInitStartup hook
8450         * src/avr/main.c,
8451         * src/ds390/main.c,
8452         * src/hc08/main.c,
8453         * src/pic/main.c,
8454         * src/pic16/main.c,
8455         * src/xa51/main.c,
8456         * src/z80/main.c: genInitStartup initialize as NULL (default to
8457         historical behaviour)
8458         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
8459         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
8460         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
8461         library instead of hard coding it into the compiler.
8462         * support/regression/ports/mcs51-stack-auto/spec.mk,
8463         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
8464         * device/lib/mcs51/Makefile,
8465         * device/lib/small/Makefile,
8466         * device/lib/large/Makefile,
8467         * device/lib/mcs51/crtpagesfr.asm,
8468         * device/lib/mcs51/crtstart.asm,
8469         * device/lib/mcs51/crtxclear.asm,
8470         * device/lib/mcs51/crtxinit.asm,
8471         * device/lib/mcs51/crtclear.asm,
8472         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
8473         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
8474         and into user configurable files.
8475         * device/lib/clean.mk: clean mcs51 directory too
8476         * support/regression/tests/longlit.c: added static to T1 declaration
8477         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
8478         accesses in the initialization code
8479
8480 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8481
8482         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
8483         OSCTRIMVAL as noted in bug #916008
8484
8485 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8486
8487         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
8488         in loops with multiple exits (reported as incorrect registers
8489         used by Martin Helmling in Sdcc-user list)
8490
8491 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8492
8493         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
8494         made ds390 register extensions look less like error messages
8495
8496 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8497
8498         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
8499         reported by Adam Wozniak in Sdcc-user list
8500
8501 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
8502
8503         * src/SDCCast.c (decorateType): fixed with bug and promotion in
8504         arithmetic optimizations, added debug output
8505
8506 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
8507
8508         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
8509         * sdcc.spec: updated and split sdcc into 3 rpms
8510         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
8511         needed for literals of LEFT_OP and '+'
8512         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
8513         introduced RESULT_TYPE_NOPROM
8514         (geniCodeMultiply): fixed logic for decision if mul is optimized to
8515         left shift
8516         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
8517         limited promotion to int only for '*'
8518         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
8519
8520 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
8521
8522         * src/pic16/gen.c (genSkip),
8523         (genc16bit2lit), (gencjneshort): commented out
8524         (is_LitOp): new helper function, checks operand type
8525         (genCmpEq): rewritten
8526
8527 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
8528
8529         * support/regression/tests/bug-908454.c: added
8530
8531 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
8532
8533         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
8534         * src/SDCCicode.c (usualBinaryConversions): op needs int type
8535         (geniCodeCast): cosmetic, don't preserve bit storage class
8536         (geniCodeLeftShift): added promotion
8537         (geniCodeLogic): fixed regression
8538         * src/SDCCsymt.c (computeTypeOr): accept bits too
8539         (compareType): 2nd part of fix for bug #908454, needed for bitfields
8540
8541 2004-03-07  Borut Razem <borut.razem AT siol.net>
8542
8543         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
8544
8545 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
8546
8547         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
8548         version of pic16_genPackRegisters which does not check if ic is a
8549         CAST operator,
8550         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
8551         function cause string1.c regression test fails
8552
8553 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
8554
8555         * sim/ucsim/configure.in,
8556         * sim/ucsim/configure,
8557         * sim/ucsim/doc/Makefile.in: use docdir
8558         * src/SDCC.y: fixed sbit atrributes
8559         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
8560         * src/SDCCast.c (decorateType): |^& need special promotion handling
8561         * src/SDCCast.h,
8562         * src/SDCCsymt.h: moved definition of RESULT_TYPE
8563         * src/SDCCsymt.h (computeType),
8564         * src/SDCCicode.c: computeType() needs op
8565         * src/SDCCsymt.c (checkTypeSanity),
8566         * doc/sddman.lyx: "plain" bitfields are unsigned
8567         * src/SDCCsymt.c (computeTypeOr): added
8568         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
8569         |^& ops
8570         * src/SDCCval.c (val*): computeType() needs op
8571         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
8572         * support/regression/tests/onebyte.c: added tests for |^&
8573
8574 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
8575
8576         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
8577         for writing icode into asm output.
8578
8579 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
8580
8581         * src/pic16/device.c: added some debug lines enabled
8582         with macro DEBUG_CHECK,
8583         * src/pic16/genarith.c: more debug in genPlus,
8584         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
8585         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
8586         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
8587         * (aopForSym): onStack symbols are re-placed in data memspace,
8588         and onStack flag is cleared,
8589         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
8590         copy temporary pcodeop,
8591         * (genPcall): added warning for not updating PCLATU,
8592         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
8593         always true for pic16 port,
8594         * (genMultOneWord): NEW, supports integer multiplication,
8595         * (genMult): modified to call genMultOneWord,
8596         * (ifxForOp): added warning when return NULL,
8597         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
8598         flag is set before call to operandFromSymbol for implicit
8599         added structures,
8600         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
8601         options.intlong_rent are set by default,
8602         * (_hasNativeMulFor): modified to allow port generation of integer
8603         multiplication,
8604         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
8605         set regtype to REG_SFR for all registers, restricting seting the
8606         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
8607
8608 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8609
8610         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
8611         more than 500 times in the regression tests
8612
8613 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8614
8615         * support/Util/SDCCerr.h,
8616         * support/Util/SDCCerr.c,
8617         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8618         enumerator_list),
8619         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
8620         for symbol conflicts.
8621         * support/valdiags/tests/enum.c,
8622         * support/valdiags/tests/tentdecl.c,
8623         * support/valdiags/tests/struct.c: expect possible error messages
8624         referring to original symbol definitions.
8625         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
8626         * src/SDCCsymt.h,
8627         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
8628
8629 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
8630
8631         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
8632
8633 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
8634
8635         * src/pic16/ralloc.c (newReg): fixed bug #908929
8636
8637 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8638
8639         * src/ds390/gen.c: added missing #include "main.h"
8640
8641 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
8642
8643         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
8644         checking if symbol is already in set,
8645         * src/pic16/device.h: prototype for checkAddSym,
8646         * src/pic16/gen.c: (_G): added entry interruptvector,
8647         * (assignResultValue): removed some commented out lines,
8648         * (genFunction): check for ISR via sym->type, absolute section for
8649         interrupt code is created via a new pBlock, the goto instruction is
8650         placed now correctly at the interrupt vector position, changed all
8651         references from ivec to _G.interruptvector,
8652         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
8653         is the interrupt is a high priority one, same for return from ISR,
8654         * src/pic16/glue.c: changed all calls of addSetHead for publics and
8655         externs to calls of checkAddSym,
8656         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
8657         pic16_pcode_verbose flag is set,
8658         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
8659         * src/pic16/pcoderegs.c: message about how many registers are saved
8660         will only be emitted if pic16_pcode_verbose flag is set,
8661
8662 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8663
8664         * src/ds390/ralloc.h,
8665         * src/ds390/ralloc.c (ds390_regWithIdx),
8666         * src/ds390/gen.c (emitcode),
8667         * src/ds390/main.h,
8668         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
8669         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8670         ds390operandCompare, getRegsRead, getRegsWritten,
8671         initializeAsmLineNode): customized instruction size calculation for
8672         ds390, started basis for some register optimizations
8673         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
8674         corresponding assembly output
8675         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
8676         missing push/pop of r0/r1. Optimized push/pops
8677
8678 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8679
8680         * src/mcs51/main.c (instructionSize): fixed ACALL size
8681         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
8682
8683 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
8684
8685         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
8686         the sorting of rlist with NULL elements
8687         * (print_idataType, print_idata): NEW to create idata sections
8688         * src/pic16/device.h: idataSymSet new variable
8689         * src/pic16/gen.c (genFunction): fixed some bugs in string
8690         comparing, improved the absolute section creation for ISRs,
8691         added FSR0L/FSR0H in registers that are saved in an ISR,
8692         * (genInline): fixed the processing of inline snippets,
8693         now they undergo no process by the peephole optimizer
8694         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
8695         are placed in idataSymSet,
8696         * (pic16emitStaticSeg): extern symbols are added in externs,
8697         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
8698         switching when aboslute variables are placed in access bank memory
8699         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
8700         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
8701         commented out with #if,
8702         * (pic16_packRegisters): reintroduce the check for CAST because some
8703         symbols are not correctly handled,
8704         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
8705         pCodeInstruction instead of pCode,
8706         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
8707         pCodeAsmDir definition,
8708         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
8709         directive, then the argument directive is emitted without the leading
8710         tab, hack for inline labels which must be in the first column,
8711         * (compareLabel,pic16_findNextInstruction),
8712         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
8713         * (insertBankSwitch): modified for the new pCodeAsmDir,
8714
8715 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8716         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
8717
8718         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
8719         instance,
8720         * (pushSide): commented out with #if,
8721         * (assignResultValue): fixed some typos in saving
8722         registers,
8723         * (genPcall): FIXED and sync'ed with genCall,
8724         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
8725         * (genNearPointerGet): fixed to handle some more cases,
8726         implementation scheme via table reads,
8727         * (genConstPointerGet): modified to access code memory correct,
8728         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
8729         and improved to handle some cases
8730         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
8731         instead of "RETLW" for init data
8732         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
8733         not IN_DIRSPACE, work around to reduce bank switching when aboslute
8734         variables are placed in access bank memory (<0x80 and >=0xf80),
8735         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
8736         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
8737         TBLWT_POSTDEC,TBLWT_PREINC
8738         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
8739         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
8740         directives
8741         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
8742         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
8743         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
8744         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
8745
8746 2004-02-29  Borut Razem <borut.razem AT siol.net>
8747
8748         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
8749         support/Util/findme.h, support/Util/system.h: enhance binary relative
8750         search for lib and include by using findProgramPath()
8751
8752 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8753
8754         * src/SDCCpeeph.h,
8755         * src/SDCCpeeph.c (pcDistance),
8756         * src/port.h,
8757         * src/mcs51/ralloc.h,
8758         * src/mcs51/ralloc.c (mcs51_regWithIdx),
8759         * src/mcs51/main.h,
8760         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
8761         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8762         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
8763         size calculation port specific, started basis for some register
8764         optimizations
8765         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
8766         missing push/pop of r0/r1. Optimized push/pops
8767         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
8768         * device/lib/_modsint.c (_modsint),
8769         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
8770         and stack version so regression tests pass
8771
8772 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
8773
8774         * src/Makefile.in (dep): include SLIBOBJS in dependency check
8775         * src/SDCCast.c (decorateType): catch another small optimization
8776         with '?' operator
8777         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
8778         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
8779         modified to finally use computeType() all over SDCC,
8780         see Feature Request #877103
8781         * src/SDCCval.h: cosmetic
8782         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
8783         valCompare(); regression tested in muldiv.c
8784         * support/regression/tests/muldiv.c (testMod): mod sign follows
8785         dividend only
8786
8787 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
8788
8789         * src/SDCCast.c (decorateType): fixed bug #902362
8790         * doc/INSTALL.txt: fixed install instructions for win32
8791
8792 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
8793
8794         * device/include/Makefile.in (install): fixed by replacing spaces
8795         by tabs
8796         * doc/README.txt,
8797         * doc/INSTALL.txt: updated for release
8798         * doc/sdccman.lyx: added warning for --xstack being buggy
8799
8800 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
8801
8802         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
8803         to eliminate build warnings.
8804         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
8805
8806 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
8807            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8808
8809         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
8810         removed -penable-stack, added comment for stack pragma, added
8811         warning for not initializing the stack/frame registers, removed
8812         comment at interrupts section
8813
8814         Stack is made permanent, there is no ability to disable stack usage.
8815         * src/pic16/device.h,
8816         * src/pic16/device.c: removed all references to USE_STACK macro,
8817         * src/pic16/device.c (pic16_dump_section): when no elements in
8818         rlist, free rlist before return,
8819         * (pic16_dump_int_registers): NEW, internal registers are a new set
8820         of general purpose registers reused by each function,
8821         * (checkAddReg): returns 1 if registers is added to set,
8822         * (pic16_groupRegistersInSection): when a registers is of type
8823         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
8824         * src/pic16/device.h: memRange and Assigned Memory are deleted,
8825         SRCASECMP macro is moved here from device.c
8826         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
8827         PO_PCLATU, PO_PRODL, PO_PRODH,
8828         * (pic16_pCodeOpType, genMinus,
8829         changed compares to "a" register, with AOP_ACC,
8830         * (pic16_genPlus): fixed some bugs and indented properly,
8831         * (pic16_addSign): changed size to size+offset in the MOVWF
8832         instruction,
8833         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
8834         multiply 8-bit operand by literal, result is 8-bit,
8835         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
8836         multiply 2 8-bit operand, result is 8-bit,
8837         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
8838         genUMult8X*_16,
8839         * src/pic16/gen.c: changed accUse to contain WREG only,
8840         * (pic16_emitcomment): renamed to pic16_emitpcomment,
8841         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
8842         true, do not use immediate addressing any more unless sym is a
8843         pointer in codespace,
8844         * (aopForRemat): do not use immediate addressing when symbol not in
8845         codespace and when symbol's address is requested,
8846         * (aopOp): for-loop in if(sym->accUse) is modified for the new
8847         accUse size (= 1),
8848         * (aopGet): added case for AOP_ACC and don't return "accumulator
8849         bug" but WREG instead,
8850         * (popGetTempReg): pushes contents of temporary register in stack,
8851         * (popReleaseTempReg): pops contents of temporary register from
8852         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
8853         * (pic16_popGet): separated case AOP_ACC to return register WREG
8854         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
8855         or PO_IMMEDIATE and initializes their instance/offset appropriately,
8856         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
8857         the use of immediate pointers to certain cases only.
8858
8859         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
8860         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
8861         * (assignResultValue, genCall, genRet): modified to use the new
8862         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
8863         genPcall is still broken,
8864         * (genFunction): added code to create 'A' type pBlocks when
8865         interrupt functions are generated, code not extensively tested yet,
8866         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
8867         * (genEndFunction): modified so ISRs pop stored registers from stack,
8868         * (genMultOneByte): cleanup,
8869         * (AccRsh): added flag andmask, to and result with appropriate mask,
8870         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
8871         * (genDataPointerGet): fixed and reenabled its use,
8872         * (genNearDataPointerGet): bugs fixed,
8873         * (genDataPointerSet): bugs fixed,
8874         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
8875         pic16_DumpSymbol, pic16_DumpOp,
8876         * src/pic16/genutils.h: function prototypes for the above functions,
8877         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
8878         pointers,
8879         * (pic16emitRegularMap): many many many improvements, but needs a
8880         major cleanup,
8881         * src/pic16/main.c: enable_stack in pic16_options is removed,
8882         * (_pic16_parseOptions): removed command line options -penable-stack,
8883         * (_process_pragma): emit stack symbol only when stack pragma is
8884         processed,
8885         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
8886         redirected to FSR0L/FSR0H pair,
8887         * (pic16_get_op, pic16_get_op2): modifications and improvements,
8888         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8889         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
8890         for immediates,
8891         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
8892         * (dumpPicOptype): NEW,
8893         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
8894         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
8895         with movff instruction,
8896         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
8897         added pic16_int_regs, some packRegsFor* functions are commented out,
8898         because produce errors,
8899         * src/pic16/NOTES: minor modifications
8900
8901 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8902
8903         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
8904         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
8905         --pack-iram.
8906         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
8907         * as/mcs51/lkaomf51.c: fixed bug #895763
8908
8909 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
8910
8911         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
8912
8913 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8914
8915         * doc/sdccman.lyx: added details about the HC08 storage classes and
8916         interrupts, fixed the register usage info for z80 & gbz80
8917
8918 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
8919
8920         * doc/sdccman.lyx: added more pic16 port documentation
8921         * device/include/pic16/: added header pic18fregs.h
8922
8923 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
8924
8925         * doc/sdccman.lyx: added Vangelis' contribution
8926
8927 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8928
8929         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
8930         extend to the next CALL or PCALL, not just to the next CALL.
8931
8932 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
8933
8934         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
8935
8936 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8937
8938         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
8939         bug #895752 and a better fix for bug #716790
8940
8941 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8942
8943         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
8944
8945 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8946
8947         * doc/sdccman.lyx: minor changes, minor changed
8948
8949 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
8950
8951         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
8952         which can't handle SDCC_NEWONEBYTEOPS,
8953         (geniCodeMultiply): removed conversion from mult to shift for pic14
8954         and pic16
8955
8956 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8957
8958         * src/hc08/gen.h,
8959         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
8960         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
8961         thus fixing bug #895406
8962
8963 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
8964
8965         * device/lib/_modsint.c,
8966         * device/lib/_modslong.c: sign follows divisor only
8967         * src/hc08/gen.c (genMultOneByte): if result size is 1,
8968         signs or signedness can be ignored
8969         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
8970         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
8971         added optimization for IFX,
8972         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
8973         arguments;
8974         reenabled optimization for IFX, which was removed on 2004-01-11
8975         * src/SDCCast.h: added return type IFX
8976         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
8977         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
8978         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
8979         SDCC_OLDONEBYTEOPS selects the old behaviour
8980         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
8981         changed again and commented promotion rule
8982         * src/SDCCval.c (valDiv): promotion no longer necessary
8983         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
8984         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
8985         rewritten
8986         * support/regression/tests/onebyte.c: added
8987
8988 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
8989
8990         * gen.c (genInline): reverted to old code for assemnling inline
8991         code because of bug reported James Chadd
8992
8993 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
8994
8995         * ralloc.h: missing declarations from previous patch,
8996         seems that patch for ralloc.h was never applied, fixed
8997
8998 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8999            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9000
9001         * pcode.c,
9002         * pcode.h,
9003         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
9004         indirect addressing. Marked FSR0 as deprecated
9005         * gen.c (pointerCode): commented out, not needed now
9006         (pic16_popGet2p): new MOVFF helper function
9007         (genGenPointerGet),
9008         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
9009         (shiftRLong): removed duplicate debugging info
9010
9011 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9012
9013         * src/ds390/gen.c (genNearPointerGet),
9014         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
9015         optimization with bits, but not bitfields.
9016         * src/ds390/ralloc.c (packRegisters),
9017         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
9018
9019 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
9020
9021         * src/SDCCcse.c (algebraicOpts): copy operands before modification
9022
9023 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9024
9025         * src/SDCCsymt.h,
9026         * src/SDCCicode.c (operandFromSymbol),
9027         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
9028         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
9029         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
9030         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
9031         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
9032         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
9033         bug #892038
9034         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
9035         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
9036         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
9037         * src/SDCCsymt.c (newSymbol),
9038         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9039         enumerator_list),
9040         * src/SDCCval.h,
9041         * src/SDCCval.c (newiList): fixed bug #885705
9042
9043 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9044
9045         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
9046         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
9047
9048 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9049
9050         * device/include/c8051f120.h,
9051         * device/include/c8051f300.h,
9052         * device/include/c8051f310.h: added/updated header files for Silicon
9053         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9054         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
9055         in new section Submitting patches
9056
9057 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9058
9059         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
9060         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9061         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9062         genGenPointerSet),
9063         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
9064         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9065         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9066         genGenPointerSet),
9067         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
9068         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9069         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9070         genGenPointerSet),
9071         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
9072         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9073         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9074         genGenPointerSet): fixed bug #892400
9075         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
9076         to eliminate build warnings.
9077         * src/SDCCast.c (processParms),
9078         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
9079         fixed bug 751859
9080         * support/valdiag/valdiag.py: added GCC to the list of defines active
9081         when compiling with gcc
9082
9083 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9084
9085         * support/Util/SDCCerr.h,
9086         * support/Util/SDCCerr.c,
9087         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
9088         with an incomplete type (fixed bug #883734)
9089         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
9090
9091 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9092
9093         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
9094
9095 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9096
9097         * src/SDCCast.c (decorateType),
9098         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
9099         function pointer implementation
9100         * support/regression/tests/funptrs.c: added tests to verify both forms
9101         of function pointers work correctly. Added tests to verify parameters
9102         are passed in the correct order.
9103
9104 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
9105
9106         * device.c (regCompare): registers are sorted by ascending
9107         address and increasing size,
9108         * main.c (_pic16_finaliseOptions): removed the declaration
9109         of compiler macro MCU. Now a macro of the format pic18fxxxx
9110         will be defined from the command line
9111
9112 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9113             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9114
9115         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
9116         PCOP_RLCF was overwritten!
9117         * gen.c (genSkip): commented out calls to pic16_emitcode,
9118         * (genCmpEQ): fixed "long" compares, only high word did get compared,
9119         * (genlshTwo),
9120         * (genRRC): added debugging info,
9121         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
9122         overwritten while shifting,
9123         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
9124         overwritten while shifting,
9125         * (AccLsh),
9126         * (AccRsh),
9127         * (shiftLLeftOrResult),
9128         * (shiftRLeftOrResult),
9129         * (shiftRLong),
9130         * (shiftLLong): Implemented with pic16_emitpcode
9131         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
9132         * (genLeftShift): Fixed bug, operand for shift by variable always
9133         was "and"ed with 0x0f,
9134         * (genLeftShiftLiteral),
9135         * (genrshTwo),
9136         * (genRightShiftLiteral): added debugging info,
9137         * (genrshFour): added comment,
9138         * (genRightShift): determined signedness from operand "left"
9139         instead of "result"
9140
9141 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9142
9143         * src/SDCCicode.c (geniCodeParms),
9144         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
9145         function pointers, fixed function pointer bugs #861242 and #861896
9146
9147 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9148
9149         * device/include/c8051f000.h,
9150         * device/include/c8051f120.h,
9151         * device/include/c8051f300.h: added header files for Silicon
9152         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9153
9154 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
9155
9156         * src/SDCCast.c (processParams): added new type flow and restructured
9157         (gatherAutoInit): added new type flow
9158         (addCast): cosmetic changes
9159         (getLeftResultType): added new type flow for array indices, patch
9160         provided by Stas, see FR #877103
9161         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
9162         array index patch by Stas
9163         * src/SDCCast.h: added prototype getResultTypeFromType()
9164         * src/SDCCval.h,
9165         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
9166         * src/pic/glue.c (pic14emitStaticSeg),
9167         * src/pic16/glue.c (pic16emitStaticSeg),
9168         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
9169         for initialization of symbols
9170         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
9171         * support/Util/SDCCerr.h:
9172         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
9173         * .version: bumped version number to 2.3.8
9174         * device/include/Makefile.in (install),
9175         * doc/Makefile (install): changed to 'rm `find ...`' construct to
9176         avoid warnings
9177
9178 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
9179
9180         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
9181         Slade Rich fixed an optimization bug
9182         * src/pic/pcodepeep.c,
9183         * src/pic/pcoderegs.c
9184         * doc/Makefile (install): added test for directory
9185
9186 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9187
9188         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
9189         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
9190         * src/pic/ralloc.c (getRegPtr, getRegGpr),
9191         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
9192         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
9193         * as/mcs51/asexpr.c (term),
9194         * as/hc08/asexpr.c (term): fixed bug #887146
9195
9196 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9197
9198         * src/z80/gen.c (genMult): handle single byte result product
9199         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
9200         DUMMY_READ_VOLATILE (fixed bug #886367)
9201
9202 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9203
9204         * support/regression/tests/libmullong.c: fixed logic, on little endian
9205         hosts we ended without a mullong_wrapper()
9206
9207 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9208
9209         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
9210         virus/worm forged address usage.
9211
9212 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9213
9214         Fixed promotion, it should be done on AST level:
9215         * src/SDCCast.c (addCast): added promotion to int
9216         (decorateType): updated call to upCast()
9217         * src/SDCCicode.c (geniCodeLeftShift): removed call to
9218         usualUnaryConversions()
9219
9220 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
9221
9222         * support/regression/tests/literalop.c (mulWrapper): Added a
9223         wrapper to remove integer overflow warnings.
9224
9225         * support/regression/tests/float_trans.c: Made work on host.
9226
9227         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
9228         location of sz80.
9229
9230         * support/regression/generate-cases.py (main): Changed from inline
9231         to a main method.
9232
9233         * doc/Makefile (install): Changed to depth first to get rid of
9234         missing directory install warning.
9235
9236         * as/Makefile (install-doc): Made work on Mac.
9237
9238 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
9239
9240         * src/SDCCast.c: added an additional type flow in decorateType() of
9241         opposite direction, see feature request #860006; it's enabled at runtime
9242         by setting the environment variable SDCC_NEWTYPEFLOW
9243         * src/SDCCast.h: changed prototype of decorateType()
9244         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
9245         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
9246         'char' to 'int' can be omitted, if both operands are 'unsigned char';
9247         see feature request #877103
9248         * src/SDCCval.c: updated call of decorateType()
9249         (valBitwise): fixed bug #882876
9250         (valMinus): added promotion
9251         (valLogicAndOr): result is unsigned
9252         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
9253         * src/SDCCsymt.c (computeType),
9254         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
9255         must not cause an unsigned operation
9256         * src/pic/glue (pic14emitRegularMap),
9257         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
9258
9259 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
9260
9261         * src/pic/pcode.c (PCodeID): commented out left over debug code
9262
9263 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
9264
9265         * support/valdiag/tests/overflow.c: added shift tests
9266         * src/pic/device.c,
9267         * src/pic/gen.c,
9268         * src/pic/gen.h,
9269         * src/pic/glue.c,
9270         * src/pic/main.c,
9271         * src/pic/pcode.c,
9272         * src/pic/pcode.h,
9273         * src/pic/pcodepeep.c,
9274         * src/pic/pcoderegs.c,
9275         * src/pic/ralloc.c,
9276         * src/pic/ralloc.h: applied patch from Slade Rich;
9277         added support for multiple code pages and multiple RAM banks on the
9278         PIC 14 port. The ASM files now no longer simply assume all the
9279         code / RAM are in the same page / bank. This means the linker can
9280         safely allocate code/RAM of separate ASM files to different pages/banks.
9281         * doc/sdccman.lyx: added Slade's tips
9282         * src/mcs51/peeph.def: fixed bug #880768
9283
9284 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9285
9286         * src/hc08/ralloc.c (rematStr): fixed bug #879282
9287         * src/SDCCast.c (decorateType): fixed bug #880197
9288
9289 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
9290
9291         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
9292         getopt.h.
9293
9294         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
9295         strtof is not part of C89 and isn't included with Mac OS X.
9296
9297 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9298
9299         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
9300         shiftL2Left2Result): fixed bug #879326
9301         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
9302         (genMultOneByte): fixed bug in signed vs unsigned multiplication
9303         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
9304         address fetch for clr instruction
9305         * device/lib/hc08/_mulint.c: created optimized assembly version
9306         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
9307
9308 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
9309
9310         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
9311         proposed in FR #877103
9312
9313 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
9314
9315         * src/SDCCval.c (cheapestVal): added missing checks
9316         * src/SDCCicode.c (usualBinaryConversions): fixed condition
9317         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
9318
9319 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
9320
9321         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
9322         equal operands
9323
9324 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
9325
9326         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
9327         loaded with the linker search paths (-L arguments) and the libraries
9328         to be linked with the current source (-l arguments). Changes
9329         currently will affect only the pic16 port.
9330         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
9331         include path the port specific paths and port specific libraries,
9332         * gplink command now contains the $3 argument,
9333         * src/pic16/device.h,
9334         * src/pic16/device.c,: structure PIC_device is made public and
9335         renamed to PIC16_device, the same for variable Pics which is renamed
9336         to Pics16. Updated all references to them.
9337         * src/pic16/glue.c (pic16glue): corrected bug with code
9338         initialization which bypassed the variable initializations block.
9339
9340         * device/lib/pic16/Makefile.rules: removed --penable-stack from
9341         COMPILE_FLAGS and added the --nostdinc option
9342
9343 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9344
9345         * device/include/mc68hc908jb8.h: Register defs for another member
9346         of the hc08 family. Contributed by Bjorn Bringert - thanks!
9347
9348 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
9349
9350         Documenting changes from previous commits.
9351         * configure.in (version 1.56),
9352         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
9353         when generating output files to configure the pic16 library,
9354         but now I've commented it out, since gputils aren't installed in the
9355         SF compile farm, so library won't compile
9356
9357         * device/lib/Makefile.in (version 1.56): initially I've added in
9358         target 'all' the prerequestive 'model-pic16' so it compiled the
9359         pic16 library, but now I've commented it out for the same reasons
9360         above,
9361         * added targets 'model-pic16' and 'objects-pic16' to compile the
9362         library
9363         * added target 'port-specific-objects-pic16' to handle the
9364         generated libraries and copy them into the build/ directory
9365         * added target 'clean-intermediate-pic16' to clean intermediate
9366         files into pic16 directory
9367         * in target 'installdirs' added line to create directory pic16 in
9368         the installation path
9369
9370         * device/include/Makefile.in (version 1.11): in target 'install'
9371         added lines to copy all header files to installation path,
9372         * in target 'installdirs' added line create directory for pic16
9373         headers in the installation path
9374
9375 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
9376
9377         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
9378          a function call
9379
9380 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
9381
9382         * configure,
9383         * device/lib/configure.in,
9384         * device/lib/configure: fixed for autoconf 2.57
9385
9386 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9387
9388         * src/z80/main.c (_parseOptions): fixed the portmode= command line
9389         option so that it actually works. Made it specific to the z80, since
9390         the gbz80 doesn't have these kinds of I/O ports.
9391
9392 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9393
9394         * device/include/z180.h,
9395         * device/lib/_memcpy.c,
9396         * device/lib/_memmove.c,
9397         * device/lib/_mulint.c,
9398         * device/lib/ser_ir.c,
9399         * device/lib/ser_ir_cts_rts.c,
9400         * device/lib/_strcmp.c,
9401         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
9402         * src/z80/main.c (_process_pragma): add support for pragmas bank and
9403         portmode; added deprecation warning for bank= and protmode= forms.
9404         Also, guard against buffer overflow.
9405         * src/z80/gen.c (aopGet): generate better code for sfr banked read
9406
9407 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9408
9409         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
9410         changed interrupt vector table generation to only emit declared vectors.
9411         * device/include/Makefile.in: added missing backslash
9412         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
9413
9414 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9415
9416         Mainly changes to support compilation of the device libraries
9417         * src/pic16/device.c: stack is allocated via symbol and not
9418         via literal number. The symbol is placed in the corresponding
9419         position of the data ram
9420         * (pic16_dump_section): relocatable and absolute uninitialized
9421         data are now emitted in sorted order to reduce section naming,
9422         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
9423         weren't marked as being in the access bank,
9424
9425 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9426
9427         Added portion of GNU PIC Library under the directory
9428         device/include/pic16 and device/lib/pic16. These files
9429         contain the declarations of SFRs for the PIC18Fxx2 devices.
9430         The directory is initialized via configure from toplevel.
9431
9432 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
9433
9434         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
9435         the spilllocations to be compared correctly
9436
9437 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9438
9439         * src/SDCCast.c (decorateType): fixed bug introduced today
9440
9441 2004-01-12  Borut Razem <borut.razem AT siol.net>
9442
9443         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
9444         doc/sdccman.lyx: upper case pragmas are deprecated
9445
9446 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9447
9448         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
9449         in simpler and even better code
9450
9451 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
9452
9453         * src/SDCCicode.c (operandOperation): fixed bug #874819
9454         * src/SDCCast.c (decorateType): fixed
9455         char foo (unsigned long ul) { return ul > 0; }
9456
9457 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9458
9459         * doc/sdccman.lyx: Moved and added some sections, small changes
9460         all over. Telling LaTeX to be less strict with word spacing
9461         to better keep the right margin. Changed some notes about
9462         maintainance of the ports in section 3.2.1 - is it OK like this?
9463
9464 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
9465
9466         SDCC source changes:
9467         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
9468         convilong): modified to inform the pic16 port that builtin functions
9469         are external
9470
9471         PIC16 PORT specific changes:
9472         * src/pic16/device.c pic16_dump_equates() added,
9473         processor registers declared internally by the port are emitted in
9474         the translation as equates,
9475         * src/pic16/gen.c: inline code is passed unprocessed to the
9476         translation,
9477         * (pic16_popGetLit2): fnuction modified to take second operand as
9478         pCodeOp pointer and not as literal,
9479         * (popRegFromIdx): prefixed with pic16_,
9480         * (pic16_popCombine2): modified to receive already allocated pCode
9481         operands,
9482         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
9483         * (genFunction): initializes local stack frame and pushes on stack
9484         all the registers used by this function,
9485         * (genEndFunction): restores all registers from stack and restores
9486         stack frame,
9487         * src/pic16/glue.c (pic16emitRegularMap): various changes and
9488         improvements,
9489         * (pic16glue): changed the program startup sequence,
9490         * added new dbName code 'A' for functions placed in absolute section
9491         * src/pic16/main.c: added function attribute _naked,
9492         * added pragma 'code' to place a fnuction at an absolute address,
9493         * added command line arguments --debug-ralloc and --pcode-verbose,
9494         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
9495         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
9496         * (pic16_newpCodeOpLit2): modified to take the second operand as
9497         pCodeOp pointer,
9498         * (pic16_printpBlock): modified to emit each function in a separate
9499         section,
9500         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
9501         UPPER for immediate operands,
9502         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
9503         instruction,
9504         * src/pic16/peeph.def: all peepholes with movff are commented out,
9505         because there is a problem in the pcode peep optimizer,
9506         * src/pic16/ralloc.c: the register allocator can now reuse local
9507         function symbols for another function. This saves register usage.
9508         * src/pic16/ralloc.h: added flag isLocal in structure regs,
9509
9510         Added file src/pic16/NOTES with information about program writing on
9511         the current port version.
9512
9513 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9514
9515         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
9516         and peephole 252 (array access)
9517
9518 2004-01-09  Borut Razem <borut.razem AT siol.net>
9519
9520         * src/SDCCmain.c : fixed #872250: -l command line defined library
9521           files are scanned before standard library files
9522
9523 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9524
9525         * src/SDCCast.c (decorateType): fixed bug #874046
9526
9527 2004-01-09  Borut Razem <borut.razem AT siol.net>
9528
9529         * support/scripts/sdcc.nsi: remove previous installation
9530
9531 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9532
9533         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
9534         bytes for last interrupt vector (mcs51)
9535         * sdcc.spec: fixed typo
9536
9537 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9538
9539         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
9540         gen51Code): more efficient parameter receive for --model-large
9541         ("bug" #845294)
9542
9543 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9544
9545         * src/ds390/main.c,
9546         * src/z80/main.c: added missed needLinkerScript flags (more than
9547         one port structure defined in these file)
9548         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
9549         bug #795325
9550
9551 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
9552
9553         * src/SDCCmain.c: removed various references to DEFAULT_PORT
9554         * src/port.h: added flag needLinkerScript in port->linker
9555         structure to inform whether to create a .lnk file or not,
9556         * src/avr/main.c,
9557         * src/ds390/main.c,
9558         * src/hc08/main.c,
9559         * src/mcs51/main.c,
9560         * src/pic/main.c,
9561         * src/pic16/main.c,
9562         * src/xa51/main.c,
9563         * src/z80/main.c: changed appropriately to configure
9564         needLinkerScript flag
9565         * src/pic/gen.c,
9566         * src/pic16/gen.c (genAddrOf): fixed bug #863624
9567         * src/pic/glue.c: added variable udata_section_name to
9568         override default uninitialized data segment definition for
9569         devices only with SHAREBANK memory (reported from Erik Epetrich)
9570         * (pic14emitOverlay): modified to emit a commented overlay segment
9571         directive when no overlay data exist
9572         * (picglue): modified to emit uninitialized data segment
9573         according to udata_section_name
9574         * src/pic/main.c (_pic14_parseOptions): added command line
9575         options --udata-section-name=[name] to override default
9576         udata definition name
9577         * modified _linkCmd and _asmCmd to include compiler passed
9578         arguments via -W option
9579         * src/pic16/main.c: added $l in _asmCmd, changed extension for
9580         object file from '.rel' to '.o' in port->linker structure,
9581         changed size of fptr from 2 to 3 in port structure
9582
9583 2004-01-07  Borut Razem <borut.razem AT siol.net>
9584
9585         * support/scripts/sdcc.nsi: update PATH
9586         * support/scripts/sdcc.ico: craeted
9587
9588 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
9589
9590         * device/include/Makefile.in: fix install
9591         * doc/Makefile: fix install
9592
9593 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9594
9595         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
9596         in bug #860505
9597         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
9598         how the function variable allocation summary is displayed; also
9599         include information about variables allocated to the overlay
9600         segment
9601
9602 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9603
9604         * as/mcs51/lkmain.c: Help about -Y option
9605         * as/mcs51/lkarea.c: Fixed gcc warnings
9606
9607 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
9608
9609         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
9610         fixed warning
9611         * support/valdiag/tests/overflow.c: added
9612         * src/SDCCast.c (decorateType),
9613         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
9614         LEFT_OP (left shift)
9615
9616 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9617
9618         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
9619         (default behaviour).
9620
9621 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9622
9623         A python script to validate compiler diagnostic messages. It can be
9624         used to verify that sdcc complains about bad c source code and
9625         gives a good location of the error.
9626         * support/valdiag/Makefile,
9627         * support/valdiag/valdiag.py,
9628         * support/valdiag/tests/*
9629
9630 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9631
9632         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
9633         * src/SDCCsymt.c (newEnumType),
9634         * src/SDCCsymt.h
9635         * support/Util/SDCCerr.c,
9636         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
9637         enum related bugs.
9638         * support/regression/tests/enum.c: added test for enum values that
9639         require at least 2 bytes of storage.
9640
9641 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
9642
9643         * src/common.h: added ifndef/define/endif macros
9644         around the header file.
9645         Bug reported from Jesus Calvino-Fraga
9646
9647 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
9648
9649         * sdcc.spec: updated
9650         * device/include/Makefile.in: don't install CVS directories
9651         * device/lib/Makefile.in: added removal of CVS directories after install
9652         * doc/Makefile: fixed install, added local_icons
9653         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
9654         * src/mcs51/gen.c (genRightShift): fixed bug #870788
9655         * src/ds390/gen.c (genRightShift): fixed bug #870788
9656         * src/SDCCast.c (decorateType): fixed bug #870781
9657
9658 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
9659
9660         PIC16 port related changes:
9661         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
9662         added variable stackPos,
9663
9664         * gen.c: genCall, assignResultValue: added support for
9665         pushing/retrieving function parameters to/from stack,
9666         genFunction,genEndFunction: setup stack frame for the
9667         generated function,
9668         genAddrOf: will be changed according to bug 863624
9669
9670         * added files genutils.c and genutils.h which contain gen*
9671         debugged and optimised functions extracted from gen.c
9672
9673         * glue.c: added variable 'externs' which holds extern symbols,
9674         pic16emitRegularMap: is modified to properly handle relocatable
9675          symbols under the new scheme,
9676         pic16createInterruptVect: is modified
9677         pic16printPublics: is modified to emit 'global' assembler directives,
9678         added pic16_printExterns to print extern symbols,
9679         pic16glue: initializes stack/frame pointer in the beginning of
9680         the assembly output. Temporary hack, will be corrected later,
9681         because gplink yet does not support stack and SDCC does not
9682         yet support a type of crt0.o object to create the final binary.
9683
9684         * Removed many lines that contain 8051 legacy code.
9685         * The code is finally placed under a 'code' directive.
9686         * Added port specific options.
9687
9688         * _process_pragma: simplified since now we do not need *special*
9689         include file to define SFR registers. But a separate header
9690         will be needed. This will be developed later.
9691         * _pic16_parseOptions: added, parses port specific options:
9692         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
9693         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
9694         --preplace-udata-with=
9695
9696         * _pic16_setDefaultOptions: modified to initialize section names,
9697         but hack is temporarly out of order since it needs improvement.
9698         * _pic16_genAssemblerPreamble: configuration words are emitted by
9699         their address instead of their name. This part is incomplete and
9700         supports only the 18Fxx2 devices. Other devices will emit an error
9701         during assembly since they do not contain the same set of config
9702         registers
9703         * _pic16_genIVT: is modified,
9704
9705         * pcode.c: added definitions for some hardware registers that are needed
9706         for stack support
9707         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
9708         All PCI entries are updated. Now LFSR is supported.
9709         * Removed pic16_pciTRIS is mentioned by mdubuc in source
9710         * added pic16_newpCodeOpLit2 to support instructions with
9711         two literal arguments
9712         * pic16_pCode2str: corrected code that emits assembler instructions
9713         with two literal operands and those that have an access bit modifier
9714         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
9715         this fixes a bug which caused some labels to be lost, when an
9716         assembler directive was added, i.e. banksel,
9717         * pic16_FixRegisterBanking: improved logic that causes the insertion
9718         of bank switching,
9719         * InlineFunction: functions that are called once, are not any more
9720         inlined. This can be a port option in the future,
9721
9722         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
9723
9724         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
9725         hold the corresponding uninitialized symbols,
9726         * pic16_allocProcessorRegister: registers have explicit marked the
9727         accessBank field,
9728         * pic16_allocInternalRegister: registers are explicit marked as
9729         not used,
9730         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
9731         processing list, so bit registers were lost,
9732         *
9733
9734         * ralloc.h: added field 'accessBank' and original symbol operand
9735         in register definition,
9736         * removed the field isMapped from register definition,
9737
9738         ** Several functions have been removed from various sources:
9739         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
9740         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
9741         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
9742         pic16_assignRelocatableRegisters
9743
9744         ** others have been introduced:
9745         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
9746         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
9747
9748 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
9749
9750         * support/scripts/inc2h.pl: changed definition of BIT_AT
9751         to emit 'sbit at' instead of 'bit at'. This was a request.
9752
9753         PIC16 port related preliminary changes:
9754         * gen.c: prefixed function popRegFromString with
9755         pic16_ and all references to it corrected
9756         * pcode.c: all pic16_pc_* hardware registers prefixed
9757         with underscore (_),
9758         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
9759         * ralloc.c: newReg(): when register is REG_SFR then
9760         set address to rIdx,
9761         pic16_allocProcessorRegister(): marks register wasUsed=0
9762         pic16_writeUsedRegs(): added a call to assign processor
9763         registers via pic16_assignFixedRegisters
9764
9765 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9766
9767         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
9768         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
9769         variables in unused register banks.  Also the SSEG is placed
9770         wherever there is enough space for it, and IDATA can be anywhere
9771         in internal RAM.  For now compile using -Wl-Y[stack_size].
9772         The mem file is different for this option as well, since it
9773         makes no sense of talking about DSEG lenght.
9774
9775 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
9776
9777         * src/SDCClrange.c: fixed bug 869095 that caused segfault
9778         in certain cases, e.g. when ROM assignment, patch provided
9779         from Albert den Haan.
9780
9781 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
9782
9783         Many signedness and type propagation fixes:
9784         * src/SDCCicode.c: made geniCodeCast() static
9785         replaced SPEC_ by IS_ (cosmetic)
9786         (operandOperation): fixed div and mod operation
9787         (usualBinaryConversions): added support for promotion of char
9788         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
9789         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
9790         (geniCodeAdd): an array index will stay unsigned, even if promoted
9791         from char to int
9792         (geniCodeArray): ditto
9793         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
9794         * src/SDCCsymt.c (computeType): added more support for char;
9795         promotion of char is selectable by promoteCharToInt, fixed signedness
9796         for all cases
9797         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9798         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9799         * src/SDCCval (val*): replaced signedness calculation by
9800         computeType()
9801         rearranged if-branches (cosmetic)
9802         (valShift): added warning W_SHIFT_CHANGED
9803         (valCompare): fixed problem with different types
9804         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
9805         * support/regression/tests/literalop.c: added many cases
9806         * support/regression/tests/ast_constant_folding.c: changed finally to
9807         'unsigned int'
9808         * .version: new year, new version: 2.3.7
9809         * src/SDCCmain.c (main): applied patch #866468
9810         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
9811         provided by Scott Bronson
9812         * doc/sdccman.lyx: updated documentation for sdcdb
9813         updated and added chapter tips
9814
9815 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9816
9817         * src/SDCCsymt.h: missing from yesterday's commits
9818
9819 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9820
9821         * src/SDCC.y (struct_or_union_specifier),
9822         * support/Util/SDCCerr.c,
9823         * support/Util/SDCCerr.h: verify that struct & union tags are used
9824         as declared.
9825
9826 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9827
9828         * src/SDCCglobl.h: missing from yesterday's commits
9829
9830 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9831
9832         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
9833         sft_attributes, struct_declaration, parameter_declaration,
9834         type_name, start_block, declaration_list),
9835         * src/SDCC.lex (check_type): support redefinition of typedef names
9836
9837 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9838
9839         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
9840         aligned xdata arrays. Erik helped me with the if clause.
9841
9842 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9843
9844         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
9845         warning
9846
9847 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9848
9849         * src/SDCCast.h,
9850         * src/SDCCast.c (newAst_),
9851         * src/SDCCicode.h,
9852         * src/SDCCicode.c (ast2iCode, newiCode),
9853         * src/SDCCglobl.h,
9854         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
9855         expr, statement, expression_statement, selection_statement,
9856         iteration_statement, expr_opt, jump_statement): foundation for tracking
9857         sequence points
9858         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
9859         point code too)
9860
9861 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9862
9863         * support/Util/SDCCerr.c,
9864         * src/SDCCast.h,
9865         * src/SDCCast.c (createCase, createDefault, decorateType),
9866         * src/SDCClabel.c (labelUnreach),
9867         * src/SDCC.y (labeled_statement, jump_statement): More improvements
9868         to error messages.
9869         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
9870         (with thanks to Stas Sergeev)
9871         * device/include/time.h,
9872         * device/lib/time.c (CheckTime): suppress unreachable code warning
9873
9874 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9875
9876         * src/SDCCast.c (createIvalCharPtr),
9877         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
9878         bug #753752)
9879         * support/regression/tests/nullstring.c: tests for these two bugs
9880
9881 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9882
9883         * support/Util/SDCCerr.h,
9884         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
9885         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
9886         about storage class and 'at' used inside struct or union
9887         * src/SDCCBBlock.c (iCodeFromeBBlock),
9888         * src/SDCCcse.c (ifxOptimize),
9889         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
9890         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
9891         printIval, emitStaticSeg, emitOverlay),
9892         * src/SDCClabel.c (deleteIfx),
9893         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
9894         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
9895         gatherAutoInit, processParms),
9896         * support/Util/SDCCerr.h,
9897         * support/Util/SDCCerr.c (werrorfl): Support for better error location
9898         reporting for post-parse errors.
9899
9900 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9901
9902         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
9903         implicit casts via union; they don't work on big endian systems
9904         (possible fix for bug #861138)
9905
9906 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9907
9908         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
9909         * src/mcs51/main.c: fixed the fix for bug #737001
9910
9911 2003-12-15  Borut Razem <borut.razem AT siol.net>
9912
9913         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
9914
9915 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9916
9917         * support/makebin/makebin.c: put output in binary mode
9918
9919 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9920
9921         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
9922         xdata and data memory on startup. Set the environment variable
9923         SDCC_NOGENRAMCLEAR to disable this.
9924         * src/mcs51/peephole.def,
9925         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
9926         (allows non-interrupt and interrupt code to safely compete for a resource
9927         without the non-interrupt code having to disable interrupts)
9928
9929 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9930
9931         * src/SDCCicode.c (geniCodeAdd),
9932         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
9933         with valFromType if type might be a pointer and host is big endian).
9934         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
9935         types, not just integer types.
9936         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
9937         multiply defined with mismatching "at" address.
9938
9939 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9940
9941         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
9942         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
9943         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
9944         with embedded nulls (fixed bug #753752)
9945
9946 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9947
9948         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
9949         Apparently this did not see much testing (endless loop)
9950
9951 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9952
9953         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
9954
9955 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9956
9957         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
9958         gracefully handle NULL memmap pointers
9959
9960 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9961
9962         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
9963         instead of deleting the iCode when an operand is volatile
9964         * src/z80/gen.c (genDummyRead),
9965         * src/mcs51/gen.c (genDummyRead),
9966         * src/ds390/gen.c (genDummyRead),
9967         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
9968         not just IC_RIGHT
9969         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
9970         * src/SDCC.y: fixed bug #850420
9971
9972 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9973
9974         Applied z80 i/o port patch from Peter Townson and fixed some operators
9975         to better handle operands in A register.
9976         * device/include/z180.h
9977         * src/SDCC.y
9978         * src/SDCCglue.c
9979         * src/z80/gen.c
9980         * src/z80/gen.h
9981         * src/z80/main.c
9982         * src/z80/peeph-z80.def
9983         * src/z80/peeph.def
9984         * src/z80/z80.h
9985
9986 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9987
9988         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
9989
9990 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9991
9992         * device/lib/hc08/_mullong.c: Removed extra #endif
9993
9994 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9995
9996         * sim/ucsim/hc08.src/inst.cc,
9997         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
9998         carries from x to h
9999         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
10000         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
10001         * device/include/stdarg.h: fixed varargs for hc08
10002         * device/lib/Makefile.in,
10003         * device/lib/hc08/Makefile,
10004         * device/lib/hc08/_mulint.c,
10005         * device/lib/hc08/_mullong.c: fixed some endian problems
10006
10007 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10008
10009         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
10010         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
10011         * device/lib/_gptrget.c,
10012         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
10013
10014 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10015
10016         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
10017         * src/SDCCast.c (astErrors): fixed bug #846007
10018         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
10019
10020 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10021
10022         * src/SDCCast.c (decorateType): disabled a transformation I added in
10023         revision 1.188 (access to fields of a structure at an absolute address);
10024         it breaks with bitfields, extern declarations, and gcse analysis.
10025         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
10026         could be assigned through a pointer, so don't complain.
10027         * src/SDCCast.c (astErrors),
10028         * src/SDCCast.h,
10029         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
10030
10031 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
10032
10033         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
10034         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
10035         output of __config directives, since gpasm now supports them
10036         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
10037         pre-processor macro, i.e. -DMCU=p18f452
10038         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
10039         and modified to handle 'cast' icode similarly to '=' icode
10040         * src/pic16/device.h (typedef struct PIC_device): added field
10041         'extMIface' to indicate that chip has external memory interface
10042         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
10043         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
10044         18F8720
10045
10046 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10047
10048         * src/SDCC.y (pointer): fixed bug #846006
10049         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
10050         * src/SDCCast.c (decorateType): fixed bug #846009
10051         * src/ds390/peeph.def,
10052         * src/ds390/gen.c (genAnd, genOr),
10053         * src/mcs51/peeph.def,
10054         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
10055
10056 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10057
10058         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
10059         * src/SDCCdflow.c
10060         * src/SDCCcse.c
10061         * src/SDCCcse.h
10062         * src/SDCCBBlock.h
10063         * src/SDCCBBlock.c
10064
10065 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
10066
10067         fixed bug #845089
10068         * src/SDCCbitv.h,
10069         * src/SDCCbitv.c: added function to free a bitvector
10070         * src/SDCClrange.h,
10071         * src/SDCClrange.c: added function to recompute the liveranges
10072         * src/avr/ralloc.c,
10073         * src/ds390/ralloc.c,
10074         * src/hc08/ralloc.c,
10075         * src/mcs51/ralloc.c,
10076         * src/pic/ralloc.c,
10077         * src/pic16/ralloc.c,
10078         * src/xa51/ralloc.c,
10079         * src/z80/ralloc.c: recompute the liveranges after register packing
10080
10081 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
10082
10083         * src/SDCCloop.c (newInduction): fixed bug #845630
10084
10085 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10086
10087         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
10088         inadvertantly left behind from my 2003-11-12 change
10089
10090 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10091
10092         Updated headers I neglected to commit yesterday.
10093         * src/SDCClrange.h,
10094         * src/SDCCicode.h
10095
10096 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10097
10098         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
10099         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
10100         * src/SDCCopt.c (eBBlockFromiCode),
10101         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
10102         the creation of the key hash table from the sequencing so it can be used
10103         earlier (for some GCSE bug fixes still pending)
10104
10105 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10106
10107         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
10108         * support/regression/tests/addsub.c: testing genPlus shortcut
10109
10110 2003-11-15  Borut Razem <borut.razem AT siol.net>
10111
10112         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
10113
10114 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10115
10116         * src/SDCCcse.c (cseBBlock): fixed bug #527779
10117         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
10118         ordering is immaterial.
10119         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
10120
10121 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10122
10123         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
10124         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
10125         (SIGSEV) of bug #840381
10126         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
10127         unlink new file before rename if new and old filenames are the same)
10128
10129 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10130
10131         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
10132         uninitialized variables) for the mcs51. Set environment variable
10133         SDCC_GENRAMCLEAR to test.
10134         xdata initialization slightly shorter
10135
10136 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10137
10138         * src/SDCCsymt.h,
10139         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
10140         #838241 & 780691 (basicly the same bug)
10141         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
10142         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
10143
10144 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
10145
10146         * src/SDCCmain.c (linkEdit): "fix" #834252
10147
10148 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10149
10150         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
10151         * src/SDCCast.h,
10152         * src/SDCC.y: fixed bug #819403
10153
10154 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10155
10156         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
10157         the reentrant attribute.
10158         * src/hc08/gen.c (genPackBits): added missing stack readjustment
10159         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
10160         simulation
10161         * src/SDCCast.c (decorateType): fixed bug with storage class not being
10162         updated during pointer dereference; f.e. ~(((char *)1)*) was being
10163         erroneously reduced to a literal.
10164         * src/hc08/ralloc.c (packRegisters, rematStr),
10165         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
10166         some cases
10167
10168 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10169
10170         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
10171         * doc/sdccman.lyx: changed from 'article' to 'book'
10172         * doc/Makefile: readded test_suite_spec and cdbfileformat
10173
10174 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
10175
10176         * device/include/stdlib.h: include malloc.h to comply with ANSI
10177         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
10178
10179 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10180
10181         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
10182         * doc/clean.mk: also remove *.out files
10183         * doc/sdccman.lyx: some additions, larger top/bottom margins
10184
10185 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10186
10187         * src/SDCC.y: fixed bug #837365
10188         * support/regression/tests/bitopcse.c
10189         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
10190         a symbol (might be valop instead)
10191         * device/lib/Makefile.in: added errno.c to HC08SOURCES
10192         * device/lib/clean.mk: added hc08 to the cleaning list
10193
10194 2003-11-04  Borut Razem <borut.razem AT siol.net>
10195
10196         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
10197           made 2003-11-04
10198         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10199           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
10200           malloc is declared in standard stdlib.h
10201
10202 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10203
10204         * device/lib/hc08/Makefile: need to clean .rel not .o files
10205         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
10206
10207 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10208
10209         * src/port.h,
10210         * src/hc08/main.c,
10211         * src/mcs51/main.c,
10212         * src/ds390/main.c,
10213         * src/z80/main.c,
10214         * src/avr/main.c,
10215         * src/pic/main.c,
10216         * src/pic16/main.c,
10217         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
10218         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
10219         tests (which uses the port's oclsExpense function)
10220         * src/SDCC.y,
10221         * src/SDCCast.c,
10222         * src/SDCCicode.c,
10223         * src/hc08/gen.c,
10224         * src/ds390/gen.c,
10225         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
10226
10227 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10228
10229         * src/SDCCcse.c (ifxOptimize),
10230         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
10231         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
10232         deleting the IFX iCode.
10233         * src/hc08/ralloc.c: reduced unneeded slocs
10234         * src/hc08/gen.c: fixed bug in asmopToBoolean
10235
10236 2003-11-04  Borut Razem <borut.razem AT siol.net>
10237
10238         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
10239           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10240           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
10241           transferred to configure
10242
10243 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
10244
10245         Use headers defined in the C[++] standards:
10246         * sim/ucsim/gui.src/serio.src/fileio.cc
10247         * sim/ucsim/gui.src/serio.src/frontend.cc
10248         * sim/ucsim/gui.src/serio.src/main.cc
10249         * sim/ucsim/gui.src/serio.src/posix_signal.cc
10250         * support/Util/NewAlloc.c
10251         * as/hc08/lklibr.c
10252         * as/mcs51/lklibr.c
10253         * as/z80/aslist.c
10254         * as/z80/assym.c
10255
10256 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10257
10258         * Added MSVC projects for hc08 assembler and linker:
10259         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
10260         /as/hc08/link_hc08.dsp
10261
10262 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
10263
10264         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
10265
10266 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
10267
10268         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
10269
10270 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10271
10272         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
10273
10274 2003-10-31  Borut Razem <borut.razem AT siol.net>
10275
10276         * support/cpp2/cpplib.h,
10277           support/cpp2/cpplib.c,
10278           support/cpp2/cpplex.c,
10279           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
10280           to switch _asm block preprocessing on / off. Default is
10281           #pragma preproc_asm +
10282
10283 2003-10-31  Borut Razem <borut.razem AT siol.net>
10284
10285         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
10286           when outputting comment blocks (when executed with -C option) and
10287           _asm (SDCPP specific) blocks
10288
10289 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10290
10291         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
10292
10293 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
10294
10295         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
10296
10297 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
10298
10299         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
10300         * src/SDCCast.c (decorateType): fixed bug #832664
10301
10302 2003-10-31  Borut Razem <borut.razem AT siol.net>
10303
10304         * support/cpp2/cpplex.c: fixed for SDCPP:
10305           comments(when executed with -C option) and _asm blocks
10306           were included even if they where in skipped #if block.
10307           Applied solution from GCC cpp 3.3.2
10308
10309 2003-10-31  Borut Razem <borut.razem AT siol.net>
10310
10311         * src/SDCC.lex: sdcc now understands both formats:
10312           '# <line_number> <file_name>' and
10313           '#line <line_number> <file_name>'
10314         * support/cpp2/cppmain.c: sdcpp now generates the standard
10315           '# <line_number> <file_name>' instead of former
10316           '#line <line_number> <file_name>'
10317
10318 2003-10-30  Borut Razem <borut.razem AT siol.net>
10319
10320         * support/cpp2/cpphash.h,
10321         * support/cpp2/cpplib.h
10322         * support/cpp2/cpplex.c,
10323         * support/cpp2/cppmain.c,
10324         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
10325
10326 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10327
10328         Fixed a number of problems revealed by bug #827883.
10329         * src/SDCCloop.c (loopInvariants): Spill location of the
10330         result operand should be recomputed if extracted from
10331         a loop. Also, don't extract assignments of an iTemp
10332         from a literal.
10333         * src/SDCCast.c (isConformingBody): loop reversal should
10334         not occur if the control variable is involved with a
10335         relational operator.
10336
10337 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
10338
10339         * .version: bumped to 2.3.6 to reflect the big improvements
10340         made by Erik and Klaus. Thanks!
10341
10342 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
10343
10344         Replaced the livrange code.
10345         * src/SDCClrange.c: added new LR code
10346         * src/SDCCloop.c,
10347         * src/SDCCBBlock.h: removed remainig parts from old LR code
10348         * src/ds390/ralloc.c,
10349         * src/ds390/gen.c: minor fixes to make it work with new code
10350
10351 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10352
10353         * as/hc08/asm.h,
10354         * as/hc08/lkrloc.c,
10355         * src/hc08/gen.c,
10356         * src/hc08/ralloc.c: Fix various warnings related to the hc08
10357         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
10358         (tweaked fix for bug #818696)
10359
10360 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10361
10362         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
10363
10364 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10365
10366         * src/SDCCmain.c,
10367         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
10368         * src/mcs51/gen.c (gencjneshort),
10369         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
10370         more efficient (per Scott Bronson's suggestion)
10371
10372 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10373
10374         Extended the semantics of the critical keyword to include
10375         individual statements. See RFE #827755 and #799831
10376         * src/SDCC.y
10377         * src/SDCCicode.c
10378         * src/SDCCopt.c
10379         * src/SDCCast.c
10380         * support/Util/SDCCerr.c
10381         * support/Util/SDCCerr.h
10382         * src/mcs51/gen.c
10383         * src/ds390/gen.c
10384         * src/hc08/gen.c
10385
10386 2003-10-19  Borut Razem <borut.razem AT siol.net>
10387
10388         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
10389
10390 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10391
10392         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
10393         Fixed bug #818696
10394         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
10395         and predecrement operand is displayed
10396
10397 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10398
10399         * src/SDCCval.c (valMinus): fixed bug #826041
10400
10401 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10402
10403         Some hc08 related updates that I missed earlier
10404         * sim/ucsim/stypes.h
10405         * support/regression/ports/hc08/spec.mk
10406
10407 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10408
10409         New target "hc08" for the Motorola 68hc08 family of micros
10410
10411         * configure
10412         * configure.in
10413         * Makefile
10414         * src/hc08/*
10415         * src/SDCCmain.c
10416         * src/port.h
10417         * sim/ucsim/hc08.src/*
10418         * sim/ucsim/configure.in
10419         * src/ucsim/configure
10420         * sim/ucsim/packages_in.mk
10421         * as/hc08/*
10422         * as/Makefile
10423         * device/include/mc68hc908qy.h
10424         * device/lib/hc08/*
10425         * device/lib/Makefile.in
10426         * support/regression/ports/hc08/*
10427         * support/regression/Makefile
10428
10429 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10430
10431         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
10432         regression test
10433         * src/ds390/gen.c (genCast): fixed bug #821957
10434
10435 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10436
10437         * device/lib/logf.c: "fixed" overlay bug
10438         * support/regression/ports/host/spec.mk: added m library
10439         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
10440         * support/regression/tests/float_trans: added (for Eric)
10441
10442 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
10443
10444         * src/mcs51/gen.c (genCpl): fixed bug
10445         http://sf.net/mailarchive/message.php?msg_id=6263915
10446
10447 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
10448
10449         * src/SDCCast.c (decorateType): added extended constant folding
10450         * src/SDCCsymt.c (computeType): cleanup
10451         * src/SDCCval.c (valShift): minor optimization
10452         * support/regression/tests/ast_constant_folding.c: added
10453
10454 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10455
10456         * src/SDCCmain.c: removed some unintended changes
10457
10458 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10459
10460         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
10461         * src/z80/gen.c: fixed part of bug #817589
10462         * src/SDCCsymt.c (checkFunction): fixed bug #817895
10463
10464 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
10465
10466         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
10467         * src/SDCCcflow.c
10468         * src/SDCCcse.c
10469         * src/SDCCdflow.c
10470         * src/SDCClabel.c
10471         * src/SDCClrange.c
10472         * src/SDCCmem.c
10473         * src/SDCCopt.c
10474         * src/SDCCpeeph.c
10475         * src/SDCCset.c
10476         * src/avr/ralloc.c
10477         * src/ds390/ralloc.c
10478         * src/izt/ralloc.c
10479         * src/mcs51/ralloc.c
10480         * src/pic/ralloc.c
10481         * src/pic16/ralloc.c
10482         * src/xa51/ralloc.c
10483         * src/z80/ralloc.c
10484         * src/z80/gen.c: removed unused label "release:"
10485
10486 2003-10-06  Borut Razem <borut.razem AT siol.net>
10487
10488         * src/SDCC.lex: removed definition of unused variables
10489           save_optimize and save_options
10490
10491 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
10492
10493         * clean.mk: removed '=' in "-maxdepth=1"
10494         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
10495         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
10496
10497 2003-10-06  Borut Razem <borut.razem AT siol.net>
10498
10499         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
10500           my_unput() replaced by unput()
10501
10502 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
10503
10504         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
10505         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
10506         type-punned pointer will break strict-aliasing rules"
10507         Old LR behaviour is again default; Klaus' LR can be choosen by
10508         defining the environment variable LRKLAUS
10509         * src/SDCCBBlock.h
10510         * src/SDCCloop.c
10511         * src/SDCClrange.c
10512         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
10513         * clean.mk: fixed removal of files in bin/CVS/
10514         * device/lib/clean.mk: fixed removal of directories small and large
10515         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
10516         * src/SDCCicode.c,
10517         * src/SDCCval.c: removed superflous test for pedantic
10518
10519 2003-10-05  Borut Razem <borut.razem AT siol.net>
10520
10521         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
10522           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
10523           message "unmatched #pragma SAVE and #pragma RESTORE"
10524
10525 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10526
10527         * doc/sdccman.lyx: various additions and updates (interrupts, inline
10528           assembly, critical functions, atomic, nojtbound)
10529
10530 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
10531
10532         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
10533         * src/SDCCBBlock.h
10534         * src/SDCCloop.c
10535         * src/SDCCloop.h
10536         * src/SDCClrange.c
10537
10538 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10539
10540         * src/z80/gen.h,
10541         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10542         * src/mcs51/gen.h
10543         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10544         * src/ds390/gen.h
10545         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10546         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
10547         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
10548
10549 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10550
10551         * src/z80/gen.c (genRet): fixed bug #524753
10552         * src/z80/gen.c (genCast): fixed internal error on cast from
10553         pointer to long
10554         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
10555         fix for bug #477835 to the z80
10556         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
10557         for tracking iCodes in the peephole optimizer for z80
10558
10559 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10560
10561         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
10562         the other part of bug #814548
10563         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
10564
10565 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
10566
10567         * src/SDCCcse.c: fixed part of bug #814548
10568
10569 2003-09-28  Borut Razem <borut.razem AT siol.net>
10570
10571         * src/asm.c: rewrite of printILine() to use temporary file instead
10572           a pipe
10573         * src/xa51/main.c: commented out declaration of int rewinds
10574
10575 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10576
10577         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
10578
10579 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10580
10581         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
10582         * src/asm.c (printILine): Fixed bug #811015
10583
10584 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10585
10586         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
10587         freeing.
10588
10589 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10590
10591         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
10592         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
10593         to correctly handle general case of AOP_PAIRPTR
10594         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
10595
10596 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10597
10598         * src/mcs51/ralloc.c (fillGaps),
10599         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
10600         register positioning bug)
10601
10602 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
10603
10604         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
10605
10606 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10607
10608         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
10609         genCodePointerGet, genGenPointerGet, genFarPointerSet,
10610         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
10611         (ralloc doesn't intentionally do this now, but perhaps later)
10612         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
10613         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
10614         register positioning bugs (Fixed bug #762602 and #795325)
10615         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
10616         (Fixed bug #808779)
10617         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
10618         lines that --i-code-in-asm generates
10619
10620 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10621
10622         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
10623         trying to fclose a FILE* that was already closed.
10624
10625 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10626
10627         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
10628         of const struct should be treated as if const themselves)
10629
10630 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
10631
10632         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
10633
10634 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10635
10636         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
10637         Unix (/n) and DOS (/r/n) line terminations.
10638
10639 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10640
10641         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
10642         bug #613775
10643
10644 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10645
10646         * src/mcs51/gen.c (genFunction, genEndFunction),
10647         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
10648         and restore of EA so that stack offsets to parameters are
10649         correct when using both critical and reentrant/stack-auto.
10650         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
10651         size (can be triggered in error if sloc is shared between
10652         different sized objects)
10653         * device/include/float.h: fixed macros to explicitly use
10654         unsigned long where needed
10655
10656 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
10657
10658         Feature req. 799831: added code to allow nesting of critical functions
10659         * src/mcs51/gen.c (genFunction, genEndFunction)
10660         * src/ds390/gen.c (genFunction, genEndFunction)
10661
10662 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10663
10664         * src/SDCCsymt.c (sclsFromPtr),
10665         * src/SDCCsymt.h,
10666         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
10667         support for standard C idiom of memory mapped variables; for
10668         example, *((xdata int*)0x1234) = 1 is now internally equivalent
10669         to xdata int at 0x1234 tempvar = 1.
10670         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
10671         provided by Akiya ISHIDA
10672
10673 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
10674
10675         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
10676         * src/SDCCval.c (constVal): added reduction from int to char
10677         * src/SDCCval.c (valMult, valDiv): fixed sign handling
10678         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
10679         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
10680         to ignore the sign
10681         * support/regression/tests/shifts.c: fixed
10682
10683 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10684
10685         * src/z80/gen.c (genXor): Fixed bug #805445
10686
10687 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10688
10689         Fixed bug #621531 (const & volatile confusion in the type chain).
10690         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
10691         refer to the const or volatile state of the pointer itself.
10692
10693         * src/SDCCast.c
10694         * src/SDCCglue.c
10695         * src/SDCCicode.c
10696         * src/SDCCsymt.c
10697         * src/SDCCval.c
10698         * src/SDCC.y
10699         * src/SDCCsymt.h
10700         * src/pic/gen.c
10701         * src/pic/ralloc.c
10702         * src/pic16/gen.c
10703         * src/pic16/ralloc.c
10704         * support/regression/tests/const.c
10705
10706 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10707
10708         When checking for duplicated modules, use absolute paths
10709         instead of relative paths.  Files changed:
10710
10711         * as/mcs51/lklib.c
10712         * link/z80/lklib.c
10713
10714 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10715
10716         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
10717
10718 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10719
10720         * device/include/string.h: added size_t typedef, changed
10721         prototypes to use size_t, eliminated separate reentrant and
10722         non-reentrant declarations, added _memmove declaration
10723         * device/lib/_memcpy.c: changed to use size_t instead of int,
10724         changed /4 to >>2 to avoid division library call
10725         * device/lib/_memcmp.c,
10726         * device/lib/_memset.c,
10727         * device/lib/_strncat.c,
10728         * device/lib/_strncpy.c,
10729         * device/lib/_strncmp.c: changed to use size_t instead of int
10730         * device/lib/_memmove.c: new file (fixed bug #772294)
10731         * device/lib/Makefile.in: added _memmove.c
10732         * device/lib/z80/asm_strings.s: fixed bug #772290
10733         * support/regression/tests/bitfields.c: attempt to fix host assertion
10734         failure on amd64-unknown-linux2.2
10735
10736 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10737
10738         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
10739         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
10740         * as/z80/asmain.c (main): fixed bug #801766
10741
10742 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
10743
10744         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
10745         compilers
10746
10747 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10748
10749         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
10750         reported in bug #800609
10751
10752 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
10753
10754         * Top header beautifications in src/pic16 directory:
10755           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
10756           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
10757           pcoderegs.h, ralloc.c, ralloc.h
10758         * main.c: added top header and GPL license notice
10759         * pcode.c: fixed the if-conditional warning
10760
10761 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
10762
10763         * device/lib/_mullong.c: replaced int by short for gcc
10764
10765 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10766
10767         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
10768         and JUMPTABLE iCodes properly now (worked by accident before)
10769         * src/mcs51/gen.c (leftRightUseAcc),
10770         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
10771         iCode properly now. Use getSize instead of nRegs since a & b
10772         aren't part of the nRegs tally.
10773
10774 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
10775
10776         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
10777         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
10778           before instructions that use the _STATUS register
10779
10780 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
10781
10782         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
10783         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
10784         fetching of the pointer
10785         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
10786         copied from genNearPointerSet()
10787         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
10788         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
10789         If they pop r0/r1 they must be called in the opposite order than aopOp().
10790         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
10791         (resp. --stack-auto), prepared for --xstack
10792
10793 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10794
10795         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
10796
10797 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10798
10799         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
10800         these ports have their own __sdcc_external_start()
10801
10802 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
10803
10804         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10805         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
10806         type for bits was changed. It resulted in bit variables becoming
10807         global, which is not permitted in PIC 14 assembly output.
10808
10809 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10810
10811         * doc/sdccman.lyx: various additions and updates. Rearranged sections
10812
10813 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10814
10815         Z80 and MCS51 linkers complaint if a public symbol is defined
10816         in more than one library module:
10817
10818         * as/mcs51/lklib.c
10819         * link/z80/lklib.c
10820         * as/mcs51/Makefile.in
10821
10822 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10823
10824         A few small changes that speed up the peephole optimizer.
10825
10826         * src/SDCCpeeph.c
10827
10828 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10829
10830         Try to make the peephole optimizer smarter by maintaining
10831         an association between the assembly source code and the
10832         iCodes that originated them. Put this information to use
10833         with a new peephole rule condition "notVolatile" so that
10834         the rules can be aggressive yet still safe.
10835
10836         * src/SDCCpeeph.c
10837         * src/SDCCpeeph.h
10838         * src/mcs51/gen.c
10839         * src/mcs51/peeph.def
10840
10841 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10842
10843         Fixed bug #741761
10844
10845         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
10846         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
10847         if the left or right operand symbols have the accuse flag set.
10848
10849 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10850
10851         Changed the type of the result of the ! (NOT) operator to char;
10852         previously it returned the same type as the source. This allows
10853         us to eliminate all the genFloatNot functions (all of its target
10854         implementations were very buggy) since !float can use the same
10855         code as !long now.
10856
10857         * src/SDCCicode.c (ast2iCode): ! returns char
10858         * src/mcs51/gen.c (genNot, genNotFloat),
10859         * src/ds390/gen.c (genNot, genNotFloat),
10860         * src/z80/gen.c (genNot, genNotFloat),
10861         * src/pic/gen.c (genNot, genNotFloat),
10862         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
10863
10864 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
10865
10866         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10867         1. Interrupt would not compile properly. Ensure PCLATH register is saved
10868            during interrupts. Ensure WSAVE is located at a shared bank address.
10869         2. Fixed page selection in some places
10870         3. Fixed BTFSS/C to where necessary use registers directly and not simply
10871            the registers name strings.
10872         4. Fixed "signed / unsigned compare" compiler warnings.
10873         5. The PIC port manages its own allocation of the general purpose
10874            registers, but makes no attempt to reuse them. As a result when
10875            compiling it soon runs out of general purpose registers. Some
10876            additional code was added to the files pcode.c and device.c to walk
10877            through the function call tree and rename the registers so that they
10878            get reused.
10879
10880         * src/pic/device.c
10881         * src/pic/gen.c
10882         * src/pic/glue.c
10883         * src/pic/pcode.c
10884         * src/pic/pcode.h
10885         * src/pic/ralloc.c
10886         * src/pic/ralloc.h
10887         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
10888         genPlus() & genMinus() when the result is the same as left or right
10889
10890 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10891
10892         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
10893
10894 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10895
10896         Made bitfield a distinct type from bit so that bitfields
10897         convert as per ANSI C and bits retain their traditional
10898         boolean style behaviour. Implemented bitfield support in
10899         the z80 port.
10900
10901         * src/SDCCsymt.h,
10902         * src/SDCCsymt.c,
10903         * src/SDCCast.c,
10904         * src/cdbFile.c,
10905         * src/mcs51/gen.c,
10906         * src/ds390/gen.c: bit v bitfield split
10907         * src/z80/gen.c: New support for bitfields
10908         * support/regression/tests/bitfields.c: reenabled z80,
10909         added more tests
10910
10911 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10912
10913         Rules 246.x, 247.x relate to bitfields, the others speed up
10914         access to xdata mapped I/O devices.
10915
10916         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
10917
10918 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10919
10920         Cleaned up genPackBits and genUnpackBits and added two helper
10921         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
10922         for literal assignments in genPackBits (thanks to Frieder for
10923         reminding me).
10924
10925         * src/mcs51/gen.c
10926         * src/ds390/gen.c
10927
10928 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10929
10930         Fixed bug #748310 (pointer to function type mishandled when the
10931         function name is omitted). Also fixed a SIGSEGV when a function
10932         attribute (reentrant, etc) is used on a non-function or on a
10933         function but misplaced before the parameter list.
10934
10935         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
10936         bug #748310
10937         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
10938         * support/Util/SDCCerr.h,
10939         * support/Util/SDCCerr.c: Added func attr misuse error msg
10940
10941 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10942
10943         Fixed bug #787649 by anonymous
10944         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
10945         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
10946
10947 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10948
10949         Fixed numerous bitfield problems.
10950
10951         * src/SDCC.y: More bitfield related error checking
10952         * src/SDCCsymt.h,
10953         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
10954         * support/Util/SDCCerr.h,
10955         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
10956         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10957         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10958         * support/regression/tests/bitfields.c: tests added
10959
10960 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10961
10962         Made the constant following the "interrupt" keyword optional. If
10963         omitted, the function will not automatically be given an entry
10964         in the interrupt vector table (similar to #pragma NOIV, but
10965         less syntacticly kludgy). The interrupt number is also now
10966         range checked. Also fixed a bug in the high order bit example
10967         in the manual.
10968
10969         * src/SDCC.y
10970         * src/SDCCmem.c
10971         * src/SDCCglue.c
10972         * src/SDCCsymt.h
10973         * support/Util/SDCCerr.c
10974         * support/Util/SDCCerr.h
10975         * doc/sdccman.lyx
10976
10977 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10978
10979         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
10980         * src/SDCCicode.c (operandOperation): rewritten some ops
10981         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
10982         * src/SDCCsymt.c (computeType): literals are handled the same way as any
10983         other type
10984         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
10985         be re-activated by defining REDUCE_LITERALS)
10986         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
10987         unsigned, but are signed by default
10988         * src/SDCCval.c (constVal): rearranged
10989         * src/SDCCval.c (valMod): preliminary fix
10990         * src/SDCCval.c (valCastLiteral): use TYPE_* types
10991         * support/regression/literalop.c: added, work in progress
10992
10993 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10994
10995         Generate warnings for useless declarations like "char data;"
10996         that don't do what new users expect.
10997
10998         * src/SDCC.y
10999         * support/Util/SDCCerr.h
11000         * support/Util/SDCCerr.c
11001
11002 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
11003
11004         * src/SDCCval.c (valMult): fix overflow detection of negative int
11005
11006 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11007
11008         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
11009
11010         Changes to support big endian targets:
11011
11012         * src/ports.h
11013         * src/SDCCglue.c
11014         * src/avr/main.c
11015         * src/ds390/main.c
11016         * src/izt/i186.c
11017         * src/mcs51/main.c
11018         * src/pic/main.c
11019         * src/pic16/main.c
11020         * src/xa51/main.c
11021         * src/z80/main.c
11022
11023 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
11024
11025         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
11026         * device/lib/time.c: fixed warning "integer overflow in expression"
11027
11028 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
11029
11030         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
11031         * src/SDCCval.c (constVal): changed default to signed; hex and octal
11032         constants are unsigned; added recognition of "u" flag for unsigned
11033         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
11034         * src/SDCCval.c (valDiv, valMod): fixed signdness
11035         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
11036         signedness of modulo, left and right shift
11037         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
11038         * support/Util/SDCCerr.h: added warning W_INT_OVL
11039         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
11040         * src/SDCCast.c (ast_print): improved output of constants
11041
11042 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11043
11044         Fixed some warnings when building with MSVC:
11045
11046         * as/mcs51/asdata.c
11047         * as/z80/asdata.c
11048         * as/mcs51/asm.h
11049         * as/z80/asm.h
11050         * link/z80/aslink.h
11051         * link/z80/lkdata.c
11052         * link/z80/lkeval.c
11053         * link/z80/lkgb.c
11054         * link/z80/lkihx.c
11055         * link/z80/lks19.c
11056         * link/z80/lksym.c
11057         * support/cpp2/cpplib.c
11058         * src/ds390/gen.c
11059         * src/mcs51/gen.c
11060
11061 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
11062
11063         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
11064
11065 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11066
11067         * support/librarian/clean.mk: Do not remove Makefile.
11068         * support/librarian/Makefile: added.
11069
11070 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11071
11072         Added librarian to MSVC build:
11073         * all.dsp
11074         * sdcc.dsw
11075         * support/librarian/librarian.dsp
11076
11077         'configure' not needed for librarian, removed:
11078         * support/librarian/configure
11079         * support/librarian/configure.in
11080         * support/librarian/config_in.h
11081         * support/librarian/Makefile.in
11082
11083         Hopefully these ones built the librarian and the rest of sdcc properly:
11084         * Makefile
11085         * Makefile.common.in
11086
11087         Messed up 'configure', so revert to previous version:
11088         * configure
11089         * configure.in
11090
11091 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
11092
11093         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
11094         there, while the mantissa of a double is "only" 53 bits wide.
11095
11096 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11097
11098         Adding sdcclib to the build.  MSVC project coming soon.
11099         Files added/changed:
11100
11101         * support/librarian/clean.mk
11102         * support/librarian/configure
11103         * support/librarian/configure.in
11104         * support/librarian/config_in.h
11105         * support/librarian/Makefile.bcc
11106         * support/librarian/Makefile.in
11107         * support/librarian/sdcclib.c
11108         * Makefile.bcc
11109         * Makefile
11110         * Makefile.common.in
11111         * configure
11112         * configure.in
11113
11114 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11115
11116         Linker now complaints if linked modules have conflicting options, for
11117         example, one compiled using --model-large and another one compiled with
11118         --model-small.  The following files were modified:
11119
11120         * as/mcs51/asdata.c
11121         * as/mcs51/aslink.h
11122         * as/mcs51/asm.h
11123         * as/mcs51/asmain.c
11124         * as/mcs51/asout.c
11125         * as/mcs51/i51pst.c
11126         * as/mcs51/lkdata.c
11127         * as/mcs51/lklibr.c
11128         * as/mcs51/lkmain.c
11129         * as/z80/asdata.c
11130         * as/z80/asm.h
11131         * as/z80/asmain.c
11132         * as/z80/asout.c
11133         * as/z80/z80pst.c
11134         * link/z80/aslink.h
11135         * link/z80/lkdata.c
11136         * link/z80/lklibr.c
11137         * link/z80/lkmain.c
11138         * src/SDCCglue.c
11139
11140 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11141
11142         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
11143         as/mcs51/lklibr.c: Generate a warning when a library is not found.
11144
11145 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
11146
11147         * src/z80/mappings.i: fix _mul[us][int,long] entries
11148
11149 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11150
11151         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
11152
11153 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11154
11155         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
11156         * support/regression/tests/bitopcse.c: added
11157         fixed warning:
11158         * src/avr/gen.c:
11159         * src/pic/gen.c:
11160         * src/pic16/gen.c:
11161         * src/z80/gen.c:
11162         * src/xa51/gen.c:
11163
11164 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11165
11166         added support for new library format to z80, gbz80 linkers:
11167         *link/z80/aslink.h
11168         *link/z80/lklex.c
11169         *link/z80/lklib.c
11170         *link/z80/lklist.c
11171
11172 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11173
11174         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
11175         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
11176
11177 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
11178
11179         added DUMMY_READ_VOLATILE:
11180         * src/SDCC.y:
11181         * src/avr/gen.c:
11182         * src/xa51/gen.c:
11183         * src/z80/gen.c:
11184         * src/pic/gen.c:
11185         * src/pic16/gen.c:
11186         * src/mcs51/gen.c:
11187         * src/ds390/gen.c:
11188         * src/SDCCcse.c (algebraicOpts): many improvements
11189         * src/SDCCcse.h: removed algebraicOpts()
11190         * src/SDCCicode.c (picDummyRead): added
11191
11192 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11193
11194         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
11195         "Insufficient space in data memory".
11196
11197 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11198
11199         * src/mcs51/gen.c: fixed bug #771358
11200         * src/z80/gen.c: fixed bug #759087
11201
11202 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
11203
11204         * src/pic16/glue.c: minor cleanup by Vangelis
11205
11206 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11207
11208         * device/include/regc515c.h: fixed #758477
11209         * device/lib/_gptrget.c: saving some cycles in generic pointer get
11210         * device/lib/_gptrput.c: saved a few bytes
11211         * my tab spacing is 8, yours too?)
11212         * device/lib/_ser.c: process RX bytes earlier than TX bytes
11213         * device/lib/serial.c: process RX bytes earlier than TX bytes
11214         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
11215
11216 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11217
11218         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
11219
11220 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11221
11222     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
11223
11224 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
11225
11226         * device/lib/Makefile.in: bad fix, reverted to 1.43
11227
11228 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
11229
11230         * device/lib/Makefile.in: added missing z80 object files
11231
11232 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
11233
11234         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
11235         pic16 progress by Vangelis:
11236         * src/SDCCglobl.h:
11237         * src/SDCCmain.c:
11238         * src/pic/Makefile:
11239         * src/pic:
11240         * pic/Makefile:
11241         * pic16/device.c:
11242         * pic16/device.h:
11243         * pic16/gen.c:
11244         * pic16/gen.h:
11245         * pic16/genarith.c:
11246         * pic16/glue.c:
11247         * pic16/main.c:
11248         * pic16/pcode.c:
11249         * pic16/pcode.h:
11250         * pic16/pcodepeep.c:
11251         * pic16/peeph.def:
11252
11253 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11254
11255     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
11256
11257 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11258
11259     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
11260     added gbz80 build to MSVC project.
11261     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
11262     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
11263     from 8051 stuff and setup so it links using a .lnk file.
11264
11265 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11266
11267     * support/librarian/sdcclib.c: sdcc librarian.
11268     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
11269     with sdcclib.
11270
11271 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11272
11273     * as/mcs51/lkmain.c: properly handle extensions in function afile.
11274
11275 2003-07-02  Borut Razem <borut.razem AT siol.net>
11276
11277         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
11278         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
11279         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
11280         src/xa51/main.c, src/z80/main.c:
11281         virtualization of glue() function: each port has it's own glue function,
11282         which is accessed by do_glue function pointer in PORT.general structure
11283
11284 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
11285
11286         * DS800C400 fun, improved ROM interface and tinibios.
11287
11288 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
11289
11290         * More support for DS80C400. Now includes beginning of interface to ROM.
11291
11292 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
11293
11294         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
11295
11296 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11297
11298         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
11299
11300 2003-06-19  Borut Razem <borut.razem AT siol.net>
11301
11302         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
11303
11304 2003-06-19  Borut Razem <borut.razem AT siol.net>
11305
11306         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
11307         fixed Z80 port - crt0.o: cannot open.
11308
11309 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
11310
11311         * support/Util/MySystem.c (merge_command): revert bad fix
11312
11313 2003-06-18  Borut Razem <borut.razem AT siol.net>
11314
11315         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
11316
11317 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11318
11319         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11320         option --use-stdout sends errors to stdout instead of stderr.
11321
11322 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
11323
11324         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
11325
11326 2003-06-15  Borut Razem <borut.razem AT siol.net>
11327
11328         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
11329         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
11330         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
11331         fixed width array of pointers replaced with sets;
11332         multiple include and lib paths ared transferred to preprocessor and linker
11333         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
11334         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
11335         fixed width array of pointers
11336         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
11337         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
11338         fixupPath(), getPathDifference()
11339         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
11340         fixed width array of pointers
11341
11342 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
11343
11344         * src/pic16/ralloc.c: fix warnings
11345         * src/pic16/pcode.c: fix warning
11346
11347 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
11348
11349          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
11350         know all the details, but essentially this set of changes enable
11351         the pic16 port to generate movff instructions and generate assembler
11352         directives,
11353         * src/SDCCmain.c:
11354         * src/pic16/gen.c:
11355         * src/pic16/glue.c:
11356         * src/pic16/pcode.c:
11357         * src/pic16/device.c:
11358         * src/pic16/main.c:
11359         * src/pic16/pcode.h:
11360         * src/pic16/pcoderegs.c:
11361         * src/pic16/ralloc.c:
11362         * src/pic16/ralloc.h:
11363
11364 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11365
11366         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11367         added option --vc, so sdcc errors and warnings are compatible with
11368         Microsoft Visual Studio.
11369
11370 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11371
11372         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
11373           device/lib/libfloat.lib: added atof function.
11374
11375 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
11376
11377         * doc/sdccman.lyx: updated to Lyx 1.3
11378         * doc/cdbfileformat.lyx: updated to Lyx 1.3
11379         * doc/test_suite_spec.lyx: updated to Lyx 1.3
11380         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
11381
11382 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
11383
11384         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
11385
11386 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11387
11388         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
11389           additions to the "related tools/documentation" section
11390
11391 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
11392
11393         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
11394
11395 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
11396
11397         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
11398         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
11399
11400 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
11401
11402         * doc/sdccman.lyx: fix double dash and other minor things
11403         * doc/Makefile: fix double dash
11404
11405 2003-05-28  Karl Bongers(patches from Martin Helmling)
11406         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
11407           condition and ignore commands.
11408
11409 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11410
11411         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
11412           is in parts still quite out of date, I did changes as far as I felt makes sense
11413           for a non-native english speaker.
11414           Please feel free to add to the manual or to correct my changes.
11415         * doc/Makefile: undid touching the date of intermediate tex files.
11416
11417 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11418
11419         * doc/sdccman.lyx: Manual has an index now
11420
11421 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
11422
11423         Finalize muluint/mulsint and mululong/mulslong merging:
11424         * device/lib/_mulint.c
11425         * device/lib/_mullong.c
11426         * device/lib/gbz80/mul.s
11427         * device/lib/gbz80/stubs.s
11428         * device/lib/z80/mul.s
11429         * device/lib/z80/stubs.s
11430         * src/SDCCsymt.c (initCSupport)
11431
11432 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11433
11434         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
11435         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
11436           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
11437           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
11438           instead of /Zm500.
11439
11440 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11441
11442         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
11443           the regression tests I'm not brave enough to enable 245.b, 245.c
11444         * doc/sdccman.lyx: added latex preamble for hyperref package.
11445           Using pdflatex this will give you a hyperlinked pdf file with
11446           bookmarks. (prepend '%' before /usepackage if this breaks something)
11447
11448 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11449
11450          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
11451
11452 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
11453
11454         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
11455
11456 2003-05-21    <johan AT balder>
11457
11458         * src/SDCCglue.c (printIval): fixed bug #739934
11459
11460 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11461
11462         Applied patch from bug 737905 (renamed yylineo to mylineno):
11463         * src/altlex.c
11464         * src/SDCCast.c
11465         * src/SDCglobl.h
11466         * src/SDCC.lex
11467         * src/SDCCsymt.c
11468         * src/SDCCval.c
11469         * src/pic16/pcode.c: Cleaned warnings
11470         * src/pic16/pcodeflow.c: Cleaned warnings
11471         * src/pic16/pcoderegs.c: Cleaned warnings
11472
11473 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
11474
11475         * src/pic16/pcode.c: Cleaned warnings
11476         * src/pic16/pcodepeep.c: Cleaned warnings
11477         * src/pic16/ralloc.c: Cleaned warnings
11478
11479 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11480
11481         * doc/sdccman.lyx: fixed bug 739745
11482         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
11483
11484 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
11485
11486         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
11487         it can be defined with CFLAGS when running configure
11488         * src/SDCCmain.c: fixed compiling + linking with object files
11489
11490 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
11491
11492         * configure.in: configure for pic16 port,
11493             added --disable-pic16-port
11494         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
11495         * src/SDCCmain.c: linkOptions is changed to set *,
11496             added if/endif conditional macros to remove options help
11497             messages from optionsTable when a port is not configured, added
11498             support for the PIc16 port in the ports table, when executing
11499             the compiler with no port specified on command line, a default
11500             port is selected with the new macro DEFAULT_PORT which is
11501             defined in port.h, in setDefaultOptions() linkOptions is removed
11502             from initialization assignment, since now it is a set,
11503             parseCmdLine uses setParseWithComma for linkOptions, in
11504             linkEdit() linkOptions are accessed with new function indexSet()
11505             which returns the i'th item of a set variable. See SDCCset.c, in
11506             linkEdit() when calling buildCmdLine(), added linkOptions as
11507             last argument. Now users can pass arguments to gplink via the
11508             -Wl option, main() uses pic16glue() to glue up pic16 programs
11509         * src/SDCCpeeph.c: various changes to support pic16
11510         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
11511             return the i'th item of the set
11512         * src/SDCCset.h: added function prototype for indexSet()
11513         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
11514         * src/clean.mk: added pic16 in CLEANALLPORTS variable
11515         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
11516             added macro DEFAULT_PORT
11517         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
11518         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
11519             generated
11520         * src/pic16/glue.c: commented out some error producing lines
11521         * src/pic16/main.c: __config directives are commented out to stop
11522             gpasm complaining and test the linkage with gplink, _linkCmd and
11523             _asmCmd changed to be more gplink and gpasm friendly
11524         * src/pic16/peeph.def: peep rule 3 is commented out, since it
11525             produced an error when parsed, peep rule 12 is added to utilize
11526             movff, but it is commented out since the pCode does not support
11527             yet a command with 2 address arguments
11528
11529 2003-05-18    <johan AT balder>
11530
11531         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
11532         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
11533 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
11534
11535         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
11536   Added feature to script commands from file.
11537
11538 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
11539
11540         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
11541         * src/SDCCutil.c: include ctype.h for win32
11542
11543 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
11544
11545         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
11546
11547 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
11548
11549         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
11550   Fixed so you can set breakpoints prior to run, run does not stop
11551   on entry now.  Add tbreak.  Other enhancements and fixes for use
11552   with ddd.
11553
11554 2003-05-12  Borut Razem <borut.razem AT siol.net>
11555
11556         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
11557
11558 2003-05-11  Borut Razem <borut.razem AT siol.net>
11559
11560         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
11561         the path of bin directory, so that PATH is the only env. variable, which has to be set
11562         in case of standard installation.
11563         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
11564         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
11565         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
11566
11567 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
11568
11569         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
11570         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
11571         temp files are in the port dir; clean the gen/test directory when
11572         generating new test.c
11573         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
11574         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
11575         * support/regression/tests/zeropad.c: added
11576
11577 2003-05-09    <johan AT balder>
11578
11579         * src/SDCCglue.c: fixed bug #597940
11580
11581 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
11582
11583         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
11584   cache sfr, optimize next,step, fix off by one sourceline,
11585   support ddd list function.
11586         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
11587
11588 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
11589
11590         * support/regression/HTMLgen.py: added compare_s2f()
11591         * support/regression/Makefile: redo 1.27
11592         * support/regression/generate-cases.py: redo 1.5
11593
11594 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
11595
11596         * support/regression/tests/float.c: workaround 33 bit hex constant
11597         * support/regression/tests/simplefloat.c: fix division for host
11598
11599 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
11600
11601         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
11602         that tame's the PIC's over-aggressive optimizer.
11603
11604 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11605
11606          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
11607          support for MSVC.
11608
11609 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
11610
11611         Initial support for DS80C400. "Hello world" runs on TINIm400
11612         (with polled I/O).
11613
11614 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
11615
11616          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
11617          * Some notes on ddd usage added in debugger/README
11618          Martin Helmling adding more features and fixes for ddd GUI debugger.
11619          Code added for nexti, stepi, up, down, and other adjustments.
11620
11621 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
11622
11623         * src/pic/pCodepeep.c non-wildcard asmops are now handled
11624         * src/pic/peeph.def Added two rules to optimize carry manipulation
11625         * src/pic/* removed debug printfs
11626
11627 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
11628
11629         * debugger/mcs51/cmd.c: added header newalloc.h
11630
11631 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
11632
11633         * as/Makefile: new EXEEXT
11634         * as/z80/Makefile: remove trailing slash of BUILDIR
11635         * as/z80/clean.mk: new EXEEXT
11636         * Makefile.common.in: add to CFLAGS (and others), don't replace it
11637         * support/cpp2/Makefile.in: new EXEEXT
11638         * src/pic/glue.c (pic14emitRegularMap): fixed warning
11639
11640 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
11641
11642         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
11643         EXEEXT was introduced to fix all related problems with targets
11644         "clean", "install" and "uninstall"; a couple of further flaws
11645         especially with "clean" have been fixed too
11646         * as/mcs51/Makefile.in
11647         * as/mcs51/clean.mk
11648         * as/z80/Makefile
11649         * Makefile
11650         * clean.mk
11651         * debugger/mcs51/Makefile.in
11652         * debugger/mcs51/clean.mk
11653         * link/z80/Makefile
11654         * link/z80/Makefile.in
11655         * link/z80/clean.mk
11656         * link/Makefile
11657         * packihx/Makefile.in
11658         * packihx/clean.mk
11659         * sim/ucsim/Makefile
11660         * sim/ucsim/clean.mk
11661         * sim/ucsim/avr.src/Makefile.in
11662         * sim/ucsim/avr.src/clean.mk
11663         * sim/ucsim/s51.src/Makefile.in
11664         * sim/ucsim/s51.src/clean.mk
11665         * sim/ucsim/xa.src/Makefile.in
11666         * sim/ucsim/xa.src/clean.mk
11667         * sim/ucsim/z80.src/Makefile.in
11668         * sim/ucsim/z80.src/clean.mk
11669         * sim/ucsim/main_in.mk
11670         * sim/ucsim/packages_in.mk
11671         * sim/ucsim/gui.src/Makefile.in
11672         * sim/ucsim/gui.src/serio.src/Makefile.in
11673         * sim/ucsim/gui.src/serio.src/clean.mk
11674         * src/Makefile.in
11675         * src/clean.mk
11676         * support/cpp2/Makefile.in
11677         * support/cpp2/clean.mk
11678         * support/makebin/Makefile
11679         * support/makebin/clean.mk
11680         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
11681         * doc/sdccman.lyx: --program-suffix no longer needed
11682
11683 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
11684
11685          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
11686          Martin Helmling added support for ddd GUI debugger.
11687          Code added to display assembly, set variables, and other commands
11688          to interface to ddd.
11689
11690 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
11691
11692         * as/Makefile: fix target clean
11693         * as/clean.mk: fix target clean
11694         * as/z80/clean.mk: fix target clean
11695
11696 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
11697
11698         * Makefile.common.in: added  AT EXEEXT AT
11699         * configure.in: removed all mingw32 stuff
11700         * configure: rebuilt from configure.in
11701         * doc/sdccman.lyx: updated section "installation"
11702         * support/scripts/sdcc_mingw32: adapted to configure
11703         * support/scripts/sdcc_cygwin_mingw32: added
11704
11705 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
11706
11707         * src/pic Added object file support for the PIC port
11708         * src/pic Applied patch from Craig Franklin (this started the object file support)
11709         * src/regression Updated the PIC regression tests for object files
11710
11711 2003-04-20  Borut Razem <borut.razem AT siol.net>
11712
11713         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
11714           lklex.c: In function `getfid':
11715           lklex.c:203: warning: array subscript has type `char'
11716         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
11717           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
11718         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
11719           stack handling macros
11720
11721 2003-04-19  Borut Razem <borut.razem AT siol.net>
11722
11723         * "handling space characters in file path" task:
11724         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
11725         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
11726         * support/Util/MySystem.h: make it self-sufficient
11727         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
11728           src/z80/main.c, sdcc/as/mcs51/lklex.c:
11729           handling space characters in file path
11730         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
11731           (it will be used by assemblers, which have their own includes, e.g. gpasm)
11732         * support/Util/MySystem.c: handling space characters in executable's path
11733
11734 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
11735
11736         * as/z80/Makefile: fix permanent rebuild of z80
11737         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
11738         * support/regression/tests/bitfields.c: added Johan's bitfields.c
11739
11740 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
11741
11742         * src/SDCCopt.c: add special case optimization to replace modulo by
11743           a power of two with a bitwise AND.
11744
11745 2003-04-18    <johan AT balder>
11746
11747         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
11748
11749 2003-04-17    <johan AT balder>
11750
11751         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
11752         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
11753
11754 2003-04-13  Borut Razem <borut.razem AT siol.net>
11755
11756         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
11757         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
11758           fixed mingw problem in adl_NORMALIZE_PATH
11759
11760 2003-04-12  Borut Razem <borut.razem AT siol.net>
11761
11762         * fixed "#pragma SAVE/RESTORE can not be nested":
11763         * src/SDCC.lex: reworked pragma handling functions
11764         * sdcc/src/SDCCglobl.h: reworked stack handling macros
11765         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
11766
11767 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11768
11769         * src/SDCCutil.c (pathEquivalent): defined but not used
11770         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
11771         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
11772         * configure: rebuilt from configure.in
11773         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11774         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11775         * device/include/Makefile.in: replace sdcc_datadir
11776         * device/lib/Makefile.in: replace sdcc_datadir
11777         * Makefile.common.in: add LDFLAGS from configure
11778         * packihx/Makefile.in: use LDFLAGS
11779         * src/Makefile.in: use LDFLAGS
11780         * support/cpp2/Makefile.in: add LDFLAGS from configure
11781         * support/makebin/Makefile: use LDFLAGS
11782         * .version: bumped version number to 2.3.5
11783
11784 2003-04-12  Borut Razem <borut.razem AT siol.net>
11785
11786         * completed "different paths" task:
11787         * src/SDCCmacro.c: fixed bug in handling quotes
11788         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
11789         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
11790
11791 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11792
11793         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
11794
11795 2003-04-11 kevin Vigor <kevin AT vigor.nu>
11796
11797         * ds390/gen.c ds390/peeph.def: fix bug 706781
11798
11799 2003-04-11  Borut Razem <borut.razem AT siol.net>
11800
11801         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
11802
11803 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
11804
11805         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
11806         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
11807          set - this bit used to not be set...).
11808         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
11809           bad code in PIC Port
11810         * src/regression/and2.c added to test bug 609268
11811         * src/regression/Makefile added and2.c to regression test
11812
11813
11814 2003-04-08    <johan AT CP255758-A>
11815
11816         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
11817         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
11818         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
11819
11820 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
11821
11822         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
11823         fix bug #487815
11824         * support/cpp2/Makefile.in: fix bug #487815
11825         * configure: rebuilt from configure.in
11826         * Makefile.common.in: docdir changed, new path suffixes
11827         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11828         * sdcc_vc_in.h: reflect changes from sdccconf.h
11829         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
11830         * src/SDCCutil.h: remove BINDIR hack
11831         * doc/sdccman.lyx: update new path hierarchy
11832
11833 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11834
11835         * src/SDCCpeeph.c: added okToRemoveSLOC test
11836
11837 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11838
11839         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
11840
11841 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11842
11843         * src/SDCCpeeph.c: added labelIsReturnOnly test
11844         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
11845
11846 2003-04-05    <johan AT balder>
11847
11848         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
11849         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
11850         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
11851         * src/SDCCast.c: fixed a warning
11852         * src/SDCCast.h: fixed a warning
11853         * src/SDCCicode.c (operandFromAst): fixed a warning
11854
11855 2003-04-04    <johan AT balder>
11856
11857         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
11858         * src/SDCCast.c (decorateType): fixed bug #715076
11859         * src/SDCC.y: fixed bug #702907
11860
11861 2003-04-03    <johan AT balder>
11862
11863         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
11864         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
11865         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
11866         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
11867         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
11868
11869 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
11870
11871         * _decdptr.c: fix return values
11872         * _gptrget.c: fix return values
11873         * _gptrgetc.c: fix return values
11874         * _gptrput.c: fix return values
11875         * _mulint.c: fix return values
11876         * as/z80/Makefile: fix 'make -j' problem
11877
11878 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
11879
11880         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
11881         * configure.in: big cleanup, updated to autoconf 2.5x
11882         * configure: rebuilt from configure.in
11883         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11884         * sdcc_vc_in.h: reflect changes from sdccconf.h
11885         * doc/Makefile: fixed a flaw in "make install"
11886
11887 2003-04-02    <johan AT balder>
11888
11889         * src/ds390/gen.c (genCmp): no comments
11890         * src/mcs51/gen.c (genCmp): no comments
11891         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
11892         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
11893
11894 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
11895
11896         * support/regression/generate-cases.py: place generated file in given sub directory
11897         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
11898         * support/regression/Makefile: improvements for 'make -j';
11899         side effect: it's simpler and faster now
11900
11901 2003-03-31  Borut Razem <borut.razem AT siol.net>
11902
11903         * src/z80/main.c: link-{port} and as-{port} defined without path
11904         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
11905
11906 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
11907
11908         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
11909
11910 2003-03-30  Borut Razem <borut.razem AT siol.net>
11911
11912         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
11913           changed type of list parameter to set
11914         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
11915         * src/port.h: changed type of do_assemble() parameter to set
11916         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
11917           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
11918           definition of "cppoutfilename" macro with NULL value in preProcess()
11919         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
11920         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
11921         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
11922           replaced with set *binPathSet
11923         * shash_add() deallocates the item, if allready exsists, before adding the new one
11924         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
11925
11926 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
11927
11928         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
11929           a nested for loop bug in the PIC port
11930         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
11931           for loops
11932
11933 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
11934
11935         * support/Util/dbuf.h: remove C++ stuff to make it portable
11936
11937 2003-03-28  Borut Razem <borut.razem AT siol.net>
11938
11939         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
11940           literal strings in stringLiteral()
11941         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
11942         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
11943           to the project
11944
11945 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
11946
11947         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
11948
11949 2003-03-26    <johan AT balder>
11950
11951         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
11952         * src/ds390/gen.c (saveRegisters): catched symbol abuse
11953         * src/SDCCast.c (decorateType): fixed " -v < 3"
11954
11955 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
11956
11957         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
11958         Added Lenny Story's debug infrastructure changes:
11959         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
11960         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
11961         * src/cdbFile.c: added
11962         * src/SDCCdebug.c: added
11963         * src/SDCCdebug.h: added
11964         * src/SDCCast.c (createFunction)
11965         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
11966         * src/SDCCmain.c (parseCmdLine, main)
11967         * src/SDCCmem.c (redoStackOffsets)
11968         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
11969         * src/SDCCsymt.h
11970         * src/common.h
11971         * src/avr/gen.c (genAVRCode)
11972         * src/ds390/gen.c (gen390Code)
11973         * src/mcs51/gen.c (gen51Code)
11974         * src/pic/gen.c (genpic14Code)
11975         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
11976         * src/xa51/gen.c (genXA51Code)
11977         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
11978
11979 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11980
11981         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
11982         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
11983
11984 2003-03-22    <johan AT balder>
11985
11986         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
11987
11988 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
11989
11990         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
11991         * doc/cdbfileformat.lyx: added, written by Lenny Story
11992         * doc/Makefile: added cdbfileformat.lyx
11993         * doc/clean.mk: added cdbfileformat.lyx
11994
11995 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
11996
11997         * src/mcs51/peeph.def: fix bug #705773
11998
11999 2003-03-20    <johan AT balder>
12000
12001         An sfr/sbit can have an "at #" AND an initializer
12002         * src/SDCCsymt.c (checkSClass):
12003         * src/SDCCmem.c (allocGlobal):
12004         * src/SDCCmem.c (allocLocal):
12005         * src/SDCCast.c (createBlock):
12006
12007 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
12008
12009         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
12010
12011 2003-03-16    <johan AT balder>
12012
12013         Undid the hackup of const and volatile, the problem is much bigger
12014         * src/SDCC.y:1.65
12015         * src/SDCCast.c:1.171
12016         * src/SDCCglue.c:1.138
12017         * src/SDCCicode.c:1.146
12018         * src/SDCCsymt.c:1.150
12019         * src/SDCCval.c:1.65
12020
12021 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
12022
12023         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
12024         * src/ds390/gen.c (genAddrOf): fixed bug #704087
12025
12026 2003-03-13    <johan AT balder>
12027
12028         Hackup const and volatile modifiers in type chains a bit:
12029         * src/SDCC.y:1.63
12030         * src/SDCCast.c:1.169
12031         * src/SDCCglue.c:1.136
12032         * src/SDCCicode.c:1.143
12033         * src/SDCCsymt.c1.146
12034         * src/SDCCsymt.h1.59
12035         * src/SDCCval.c:1.63
12036
12037 2003-03-12    <johan AT balder>
12038
12039         * src/SDCCBBlock.h: more LRH debugging junk
12040         * src/SDCCcflow.h: more LRH debugging junk
12041         * src/SDCCloop.c: more LRH debugging junk
12042         * src/SDCC.y (struct_declaration): fixed bug #697590
12043         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
12044         * src/ds390/gen.c (aopForRemat): fixed bug #700031
12045         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
12046
12047 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12048         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
12049         test function names must now match exactly).
12050         * src/SDCCcse.c: added special case in findCheaperOp to allow
12051         extending a short integer. Makes less awful code for bug 700121 test case.
12052
12053 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12054
12055         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
12056         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
12057
12058 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12059
12060         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
12061         actually called (operandsNotEqual() was called for all
12062         operandsNotEqualX tests).
12063
12064 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12065
12066         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
12067         with shorter literals. Fixes bug 700121.
12068
12069 2003-03-11    <johan AT balder>
12070
12071         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
12072
12073 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
12074
12075         * src/SDCCloop.c (mergeRegions): an evil beast is dead
12076         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
12077
12078 2003-03-10  Borut Razem <borut.razem AT siol.net>
12079
12080         * src/SDCCmain.c: pipe preprocessor's output
12081         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12082         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12083         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12084         which closes all pipes in pipeSet set
12085         * src/SDCCset.c: free deleted item in function deleteSetItem()
12086         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12087         moved from z80 to src subproject
12088         * .version: increased version number to 2.3.4
12089
12090 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
12091
12092         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
12093         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
12094         * support/regression/ports/xa51/spec.mk: fix typo
12095
12096 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
12097
12098         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
12099
12100 2003-03-09  Borut Razem <borut.razem AT siol.net>
12101
12102         * src/SDCCmain.c: pipe preprocessor's output
12103         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12104         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12105         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12106         which closes all pipes in pipeSet set
12107         * src/SDCCset.c: free deleted item in function deleteSetItem()
12108         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12109         moved from z80 to src subproject
12110
12111 2003-03-09  Borut Razem <borut.razem AT siol.net>
12112
12113         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
12114         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
12115         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
12116         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
12117         * src/SDCCglobl.h: unification of WIN32 native definitions
12118
12119 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12120
12121         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
12122
12123 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12124
12125         * src/configure.in:   check for endianess (even while cross-compiling)
12126         * src/configure:      check for endianess (even while cross-compiling)
12127         * src/configure_in.h: check for endianess (even while cross-compiling)
12128         * src/avr/gen.c:        remove old endianess stuff
12129         * src/mcs51/gen.c:      remove old endianess stuff
12130         * src/ds390/gen.c:      remove old endianess stuff
12131         * src/pic/gen.c:        remove old endianess stuff
12132         * src/pic/genarith.c:   remove old endianess stuff
12133         * src/pic/glue.c:       fix endianess check
12134         * src/pic16/gen.c:      remove old endianess stuff
12135         * src/pic16/genarith.c: remove old endianess stuff
12136         * src/pic16/glue.c:     fix endianess check
12137         * src/xa51/gen.c:       remove old endianess stuff
12138         * src/z80/gen.c:        fix endianess check
12139         * src/SDCCglue.c:       fix endianess check
12140         * src/ds390/peeph.def: fix bug 700036
12141
12142 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12143
12144         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
12145         * src/configure: find appropriate data-types on host for SDCC's int and long
12146         * src/configure.in: find appropriate data-types on host for SDCC's int and long
12147         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
12148         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
12149
12150 2003-03-07    <johan AT balder>
12151
12152         Just a big NOOP:
12153                 some minor cleanups before the big shot
12154                 OP_DEFS and OP_USES now use Kevin's protection
12155                 new option --nolabelopt
12156
12157         * src/SDCCBBlock.c:
12158         * src/SDCCast.c,:
12159         * src/SDCCcflow.c:
12160         * src/SDCCcse.c:
12161         * src/SDCCicode.c:
12162         * src/SDCCicode.h:
12163         * src/SDCClabel.c:
12164         * src/SDCCloop.c:
12165         * src/SDCCmain.c:
12166         * src/ds390/ralloc.c:
12167         * src/mcs51/ralloc.c:
12168         * src/pic/ralloc.c:
12169         * src/xa51/ralloc.c:
12170         * src/z80/ralloc.c:
12171
12172 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
12173
12174         * src/pic/pcode.c (get_op): fix 64 bit warnings
12175         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
12176         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
12177         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
12178         * support/regression/tests/malloc.c: fix 64 bit warnings
12179
12180 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
12181
12182         * src/mcs51/gen.c (genMinus): fixed bug 696436
12183
12184 2003-03-02  Borut Razem <borut.razem AT siol.net>
12185
12186         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
12187
12188 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
12189
12190         * configure.in: test for mkstemp
12191         * sdccconf_in.h: add HAVE_MKSTEMP
12192
12193 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
12194
12195         * device/include/ctype.h: removed warning while using --stack-auto
12196         * device/include/malloc.h: removed warning while using --stack-auto
12197         * device/include/string.h: removed warning while using --stack-auto
12198
12199 2003-02-23  Borut Razem <borut.razem AT siol.net>
12200
12201         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
12202         because NDEBUG is defined (see man assert)
12203         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
12204
12205 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12206
12207         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
12208         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
12209
12210 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12211
12212         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
12213         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
12214
12215 2003-02-18    <johan AT balder>
12216
12217         * as/mcs51/asmain.c (asmbl): module can start with a digit
12218         * as/z80/asmain.c (asmbl): module can start with a digit
12219
12220 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
12221
12222         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
12223         * src/asm.c: fix pipe() for Mingw32
12224
12225 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
12226
12227         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
12228         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
12229         make -V work again; --c1mode reads now from stdin
12230         * doc/sdccman.lyx: added --c1mode
12231         * support/Util/SDCCerr.c: new messages for c1 mode
12232         * support/Util/SDCCerr.h: new messages for c1 mode
12233         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
12234
12235 2003-02-15    <johan AT balder>
12236
12237         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
12238
12239 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
12240
12241         * doc/sdccman.lyx: Environment variables, -o and other minor things
12242
12243 2003-02-14    <johan AT balder>
12244
12245         * src/xa51/main.c: before anyone really tries to use it :)
12246
12247         * Install doc's in share/sdcc/doc
12248         * removed some obsolete files
12249         * Do a proper make distclean and uninstall
12250         M Makefile.common.in
12251         R sdccbuild.sh
12252         M as/Makefile
12253         M device/include/Makefile.in
12254         M device/lib/Makefile.in
12255         M doc/sdccman.lyx
12256         M link/Makefile
12257         M sim/ucsim/doc/Makefile.in
12258         M src/clean.mk
12259         R src/avr/peeph.rul
12260         R src/xa51/peeph.rul
12261         M support/cpp2/Makefile.in
12262         M support/makebin/Makefile
12263
12264
12265 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
12266
12267         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
12268
12269 2003-02-10  Borut Razem <borut.razem AT siol.net>
12270
12271         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
12272         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
12273         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
12274         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
12275         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
12276         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
12277         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
12278         src/z80/Makefile.bcc: Borland Makefile cleanup
12279         * as/z80/Makefile.bcc: Added Borland Makefile
12280         * support/cpp2/borland.h: Removed
12281
12282 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
12283
12284         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
12285         * src/SDCC.lex: new pragma NOIV
12286         * src/SDCCglobl.h: new pragma NOIV
12287         * src/SDCCmem.c: new pragma NOIV
12288
12289 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12290
12291         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
12292
12293 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12294
12295         * src/SDCCmain.c: signal handling is switched off by --debug
12296         * doc/Makefile: small fix for install; use clean.mk again
12297         * doc/clean.mk: clean *.pdf and *.html too
12298
12299 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
12300
12301         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
12302         * device/lib/printfl.c: fix a ds390 bug by making it portable
12303         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
12304         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
12305         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
12306         * debugger/mcs51/cmd.c: converted multi-line string literals
12307         * sim/ucsim/globals.cc: converted multi-line string literals
12308         * src/SDCCmain.c: introduced signal handler to remove temp files
12309         * doc/Makefile: small tweaks, implement clean
12310         * doc: removed generated files
12311
12312 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12313
12314         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
12315         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
12316         Address Record is not correctly generated for DS390."
12317
12318 2003-02-02  Borut Razem <borut.razem AT siol.net>
12319
12320         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
12321         * as/mcs51/asm.h: fixed compilation with Borland C
12322         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
12323         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
12324         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
12325         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
12326         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
12327         src/z80/Makefile.bcc: delete $(LIB) only if exist
12328         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
12329
12330 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
12331
12332         * device/include/malloc.h: introduced NULL
12333         * device/include/string.h: introduced NULL
12334         * device/include/stdlib.h: introduced NULL
12335         * device/lib/_memcpy.c: removed NULL
12336         * device/lib/_strcat.c: removed NULL
12337         * device/lib/_strchr.c: removed NULL
12338         * device/lib/_strcmp.c: removed NULL
12339         * device/lib/_strcpy.c: removed NULL
12340         * device/lib/_strcspn.c: removed NULL
12341         * device/lib/_strlen.c: removed NULL
12342         * device/lib/_strncat.c: removed NULL
12343         * device/lib/_strncmp.c: removed NULL
12344         * device/lib/_strncpy.c: removed NULL
12345         * device/lib/_strpbrk.c: removed NULL
12346         * device/lib/_strrchr.c: removed NULL
12347         * device/lib/_strspn.c: removed NULL
12348         * device/lib/_strstr.c: removed NULL
12349         * device/lib/_strtok.c: removed NULL
12350         * device/lib/malloc.c: removed NULL, include own header
12351
12352 2003-02-02    <johan AT balder>
12353
12354         * 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
12355         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
12356         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
12357         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
12358         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
12359         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
12360
12361 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12362
12363         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
12364         area 'DATA'"
12365
12366 2003-02-01    <johan AT balder>
12367
12368         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
12369
12370 2003-01-31    <johan AT CP255758-A>
12371
12372         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
12373
12374 2003-01-30    <johan AT balder>
12375
12376         * src/SDCCBBlock.c: automatic bug detection
12377         * src/SDCCicode.c: automatic bug detection
12378
12379 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12380
12381         * src/SDCCglobl.h:   now --xram-size 0 works
12382         * src/SDCCmain.c:    now --xram-size 0 works
12383
12384 2003-01-29    <johan AT balder>
12385
12386         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
12387
12388 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12389
12390         * as/mcs51/aslink.h: Added options --xram-size and --code-size
12391         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
12392         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
12393         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
12394         * src/SDCCglobl.h:   Added options --xram-size and --code-size
12395         * src/SDCCmain.c:    Added options --xram-size and --code-size
12396
12397 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
12398
12399         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
12400         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
12401
12402 2003-01-27    <johan AT balder>
12403
12404         * src/SDCC.y: fixed bug #613764
12405
12406 2003-01-26    <johan AT balder>
12407
12408         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
12409         * src/SDCCsymt.h: fixed bug #673374
12410         * src/SDCCglue.c: fixed bug #661910
12411         * src/SDCCast.c: fixed bug #458099 and 673374
12412
12413 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
12414
12415         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
12416         * as/mcs51/strcmpi.h: added
12417         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
12418         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
12419         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
12420         * as/mcs51/assym.c: strcmpi -> as_strcmpi
12421         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
12422         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
12423         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
12424         * as/mcs51/Makefile.aslink: new module strcmpi
12425         * as/mcs51/Makefile.asx8051: new module strcmpi
12426         * as/mcs51/Makefil.bcc: new module strcmpi
12427         * as/mcs51/Makefile.in: new module strcmpi
12428         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
12429
12430 2003-01-26    <johan AT balder>
12431
12432         * src/SDCCglue.c: reverted back to 1.124
12433         * src/SDCCast.c: reverted back to 1.156
12434         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
12435
12436 2003-01-25    <johan AT balder>
12437
12438         * src/SDCCglue.c: A better fix for bug #661910
12439         * src/SDCCast.c: A better fix for bug #661910
12440         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
12441
12442 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12443
12444         * src/Makefile.in: remove spawn.o
12445         * src/SDCCmain.c: remove spawn.h
12446         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
12447         * src/spawn.c: removed
12448         * src/spawn.h: removed
12449         * support/regression/ports/ds390/spec.mk: link with -r
12450
12451 2003-01-24    <johan AT CP255758-A>
12452
12453         * src/ds390/gen.c (aopOp): fixed bug #667458
12454         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
12455         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
12456         (createIvalCharPtr): an ival doesn't always have a storage class anymore
12457
12458 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12459
12460         * src/mcs51/peeph.def: better assembler identation by Frieder
12461         * src/mcs51/gen.c: better assembler identation by Frieder
12462
12463 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
12464
12465         * as/z80/string.h: removed for gcc 3.2
12466         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
12467         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
12468
12469 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12470
12471         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
12472         * src/SDCCpeeph.c (replaceRule): fix bug #663503
12473         * support/regression/Makefile: separate temp files for ports
12474         * support/regression/generate-cases.py: separate temp files for ports
12475         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
12476         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
12477
12478 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12479
12480         * moved tinitalk to device/examples/ds390
12481
12482 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
12483
12484         * as/mcs51/lkmem.c: rflag is for DS390
12485         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
12486         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
12487                          (linkEdit): move mem- and map-files the same way as ihx-files
12488         * src/z80/main.c (_setDefaultOptions): removed --generic
12489         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
12490         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
12491         * src/pic/glue.c (picglue): --c1mode works again
12492         * src/pic16/glue.c (pic16glue): --c1mode works again
12493         * src/asm.c (printCLine): fix #660034
12494
12495 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
12496
12497         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
12498         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
12499         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
12500         * as/mcs51/lkmem (summary): better fix for sp problem
12501         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
12502         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
12503         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
12504                                               remove --stack-after-data
12505
12506 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
12507
12508         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
12509         * src/SDCCutil.c (join): ugly bug: missing '\0'
12510         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
12511
12512 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
12513
12514         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
12515         * src/port.h: typo
12516         * src/pic/main.c (_asmCmd): gpasm supports -o
12517         * src/z80/main.c: more general macros
12518         * device/lib/Makefile.in: remove intermediate files
12519
12520 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
12521
12522         * .version: Bumped version number to 2.3.3
12523         * src/SDCCBBlock.c: new option -o
12524         * src/SDCCglobl.h: new option -o
12525         * src/SDCCglue.c: new option -o
12526         * src/SDCCmain.c: new option -o
12527         * src/asm.c: new option -o
12528         * src/ds390/main.c: new option -o
12529         * src/pic/glue.c: new option -o
12530         * src/pic/pcode.c: new option -o
12531         * src/pic/ralloc.c: new option -o
12532         * src/pic16/glue.c: new option -o
12533         * src/pic16/pcode.c: new option -o
12534         * src/pic16/ralloc.c: new option -o
12535         * src/z80/main.c: new option -o
12536         * device/lib/Makefile.in: use -o
12537         * support/regression/ports/ds390/spec.mk: use -o
12538         * support/regression/ports/gbz80/spec.mk: use -o
12539         * support/regression/ports/mcs51/spec.mk: use -o
12540         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
12541         * support/regression/ports/z80/spec.mk: use -o
12542         * support/regression/ports/ucz80/spec.mk: use -o
12543         * support/regression/ports/xa51/spec.mk: use -o
12544         * support/regression/fwk/lib/timeout.c: fix usage string
12545
12546 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
12547         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
12548
12549 2003-01-07    <johan AT balder>
12550
12551         * src/SDCCast.c (decorateType): fixed bug #600035
12552
12553 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
12554         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
12555         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
12556         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
12557         * src/pic/pcode.c: outcommented unused variable to remove warnings
12558         * src/pic/ralloc.c: outcommented unused variable to remove warnings
12559
12560 2003-01-06    <karl AT turbobit.com>
12561         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
12562    regression tests.
12563
12564 2003-01-06    <johan AT balder>
12565
12566         * src/SDCCicode.c: fixed array add
12567
12568 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
12569         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
12570         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
12571
12572 2003-01-04    <johan AT balder>
12573
12574         * src/SDCCval.c (getNelements): fixed the initialized array of structures
12575
12576 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12577         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
12578
12579 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
12580         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
12581         * support/regression/tests/bug-524697.c: fit mem usage into 8032
12582
12583 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
12584         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
12585
12586 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
12587         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
12588
12589 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
12590         * src/mcs51/main.c: removed {bindir}{sep} from aslink
12591
12592 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12593
12594     * in /sdcc/as/mcs51/ changed these files in order to create an
12595     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
12596     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
12597     following files to include the previous two files: aslink.dsp,
12598     Makefile.aslink, Makefile.bcc, and Makefile.in.
12599
12600     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
12601     .adb instead of .cdb
12602
12603 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12604
12605         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
12606         value from option --iram-size.
12607
12608 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12609
12610         * /sdcc/as/mcs51/lklist.c: added boundary check before using
12611         dram[] array.
12612
12613 2002-09-18    <wiml AT hhhh.org>
12614
12615         * SDCClrange.h: exposed setFromRange() and setToRange()
12616         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
12617           packRegsForAccUse() (bug 542397)
12618         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
12619           multiple times and emitting the fetch operations more than once
12620           added aopGetUsesAcc() function to allow binary operators to
12621           fetch their operands in the correct order; made genMinus() emit
12622           compact code for X = LITERAL - Y
12623
12624 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12625         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
12626         sprintf() in line 1267.
12627
12628 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12629         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
12630         like ports.
12631
12632 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12633         Changes to aslink (All the changes are marked with 'JCF'):
12634
12635         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
12636         summary().
12637
12638         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
12639         area BSEG.  Also moves, if possible, the DATA area down into the internal
12640         ram so more space is available.
12641
12642         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
12643         sflag.
12644
12645         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
12646         not bytes.  Function summary() which creates a memory usage summary
12647         file with extension .mem.  Reports of overlaping stack and small stack
12648         size.  If the space for the stack is less than 16 bytes aslink trows a
12649         warning.
12650
12651         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
12652         the 8051.  Option 'y' for memory summary output file.
12653
12654         Changes to sdcc (All the changes are marked with 'JCF'):
12655
12656         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
12657
12658         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
12659         overlaying area for it (uses RegBankUsed[4]).
12660
12661         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
12662         bank zero as used by default.  By default aslink locates the stack
12663         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
12664         the creation of the .mem file.  Delegates the allocation of data area
12665         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
12666         the begining of the stack area to aslink.
12667
12668         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
12669         glue() in SDCCglue.c creates an area for it.
12670
12671 2002-09-03  Borut Razem <borut.razem AT siol.net>
12672         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
12673         sdcc/src/pic/glue.c:
12674         introduced atexit() handler for teporay files removal in case of
12675         errors, assertions, ...
12676
12677 2002-08-29  Borut Razem <borut.razem AT siol.net>
12678         * sdcc/support/cpp2/auto-host_vc_in.h:
12679         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
12680         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
12681         Maybe there is a similar problem with BORLANDC? It should be checked!
12682
12683         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
12684         corrected improper use of assert: the assignment to clr variable was done inside the assert.
12685         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
12686         was not executed, and the compiler (cl) launched a warning:
12687         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
12688
12689 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12690         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
12691
12692 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
12693         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
12694
12695         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12696           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
12697           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
12698           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12699           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
12700           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
12701           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
12702         - added Release configuration in VS projects
12703         - review of compiler an linker options
12704         - VC .exe files are generated in bin_vc directory, not to interfere
12705           with binaries generated from other projects (cygwin, mingw, bcc ...)
12706
12707         * sdcc/src/yacc.dsp: added
12708
12709         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
12710         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
12711         and insert the version number definitions from .version
12712
12713         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
12714
12715         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
12716         added - genarate auto-host.h using auto-host_vc_in.h as template
12717
12718         * sdcc/sdcc_vc.h,
12719         removed from CVS, generated automatically
12720
12721 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
12722         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
12723
12724 2002-08-11  Borut Razem <borut.razem AT siol.net>
12725         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
12726
12727 2002-08-10  Borut Razem <borut.razem AT siol.net>
12728         * src/SDCCmain.c (main):
12729         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
12730         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
12731         The consequence was that some temporary files were not removed.
12732
12733         * src/SDCCglue.c:
12734         unification of code in functions tempfilename() and tempfile():
12735         function tempnam() is defined in Visual Studio 6.0 and .NET
12736
12737         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
12738
12739         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12740           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
12741         - removed compiler command line option /WX: Treats all warnings as errors
12742         - update a list of source files, included into the project
12743
12744         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12745           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
12746         changed project type to Generic Project so that can be correcly converted to VS.NET project
12747
12748         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
12749
12750         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
12751
12752         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
12753
12754         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
12755         added return 0 statements after assert() to make compiler happy
12756
12757         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
12758         added newline in the def file to keep MSC compiler satisfied
12759
12760         * sdcc/src/z80/gen.c:
12761         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
12762           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
12763         - solved MSC error in function aopDump()
12764
12765         * sdcc_vc.h: define PREFIX as "\\sdcc"
12766
12767 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
12768         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
12769
12770 2002-06-22  Scott Dattalo <scott AT dattalo.com>
12771         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
12772         - Rewrote the register banking algorithm.
12773         - Added pCode live-range analysis to registers (for now, only non-used and
12774         singly-used registers optimized away)
12775
12776         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
12777
12778         * 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.
12779
12780 2002-05-10  Scott Dattalo <scott AT dattalo.com>
12781         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
12782
12783 2002-04-22  Michael Hope  <michaelh AT vroom>
12784
12785         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
12786
12787         * configure.in (DD_COPT): Added include support required for gbdk.
12788
12789         * .version: Bumped version number just to increase it.
12790
12791         * src/SDCCmain.c: Added -nostdinc to the default options.
12792
12793 2002-04-15  Michael Hope  <michaelh AT vroom>
12794
12795         * device/lib/z80/printf.c (sprintf): Added.
12796
12797         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
12798
12799         * src/z80/peeph.def: Added transpose redundent load rule.
12800
12801         * src/z80/main.c: Added force callee saves for jaune.
12802
12803         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
12804
12805         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
12806
12807 2002-03-28  Johan Knol  <johan AT balder>
12808
12809         * src/SDCCval.c: fixed bug #532436
12810
12811 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12812         * /src/port.h:
12813         Added "char *Processor" field to the port structure.
12814
12815         * /src/SDCCmain.c:
12816         Added -p option. Allows port dependent processor to be specified.
12817
12818         * all ports:
12819         Initialized the new field char *Processor field to NULL in all ports
12820
12821         * /src/pic/*:
12822         Compiler generated registers for interrupt context saving
12823         were not getting allocated.
12824
12825 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
12826
12827         * /src/SDCCast.c:
12828         Fixed left shift. Will promote the left side of a left shift
12829         if a) left shifting more than size of operand or b) when assigned
12830         to something size > size of left side
12831
12832 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12833         * src/pic/*
12834         tons of changes. Register allocation has been
12835         rewritten. Added customization for the various PICs. Flow
12836         analysis is restructured. ...
12837
12838         * src/pic/device.h:
12839         Added
12840
12841         * src/pic/device.c:
12842         Added. device.c is a PIC port hack to accomodate variations
12843         in PIC devices.
12844
12845 2002-03-13  Michael Hope  <michaelh AT vroom>
12846
12847         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
12848
12849 2002-03-04  johanknol  <johanknol AT manik>
12850
12851         * /src/SDCCval.c: fixed
12852
12853         const unsigned char arr[][2] = { { 0, 1 } };
12854         t18.c:1: error: Initializer element is not constant
12855
12856 2002-03-04  bela  <bela AT manik>
12857
12858         * /device/include/mcs51reg.h:
12859         ds89c420 register definition update
12860
12861 2002-03-03    <johan AT FRIJA>
12862
12863         * support/Util/SDCCerr.c: did something, but don't no why anymore
12864
12865         * support/regression/tests/bug-524691.c: made it a little less shy
12866
12867         * src/SDCCast.c (decorateType): fixed bug #524697
12868
12869         * src/SDCCast.c: made some lineno improvements
12870
12871         * src/SDCCval.c (getNelements): changed warning to error
12872
12873         * src/SDCCglue.c (printIvalArray): changed warning to error
12874
12875         * src/SDCCicode.c: fixed a warning for mingw
12876
12877         * src/SDCCast.c (decorateType): fixed the << promotion for ops
12878
12879         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
12880
12881 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
12882
12883         * src/ds390/peeph.def:
12884         Added some more peephole rules
12885
12886         * src/ds390/gen.c: Various fixes & enhancements
12887
12888         * src/SDCClrange.c, src/SDCClrange.h:
12889         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
12890
12891         * src/ds390/ralloc.c:
12892         various fixes & enhancements (ds390) specific
12893
12894         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
12895         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
12896         from rallocs.
12897
12898         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
12899
12900 2002-03-02    <johan AT FRIJA>
12901
12902         * src/SDCCast.c (decorateType): fixed bug #524708
12903
12904         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
12905
12906         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
12907
12908 2002-03-01  Michael Hope  <michaelh AT vroom>
12909
12910         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
12911
12912         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
12913
12914 2002-03-01    <johan AT FRIJA>
12915
12916         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
12917
12918         * src/SDCCast.c (decorateType): fixed bug #524209
12919
12920         * src/SDCCval.c (valNot): fixed bug #524195
12921
12922 2002-02-26    <johan AT balder>
12923
12924         * src/xa51/gen.c: fixed a warning
12925
12926         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
12927
12928         * src/SDCCast.c (decorateType): fixed bug #522534
12929
12930 2002-02-23    <johan AT balder>
12931
12932         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
12933
12934 2002-02-22    <johan AT balder>
12935
12936         * src/SDCCast.c: fixed bug #514865
12937
12938         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
12939
12940 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
12941
12942         * sdcc/src/SDCCloop.c:
12943         Previous fix was not good. basic blocks that have "break" or "return" are
12944         not really partof a loop , but live ranges used in these blocks should
12945         be live thru the entire loop, so set partOfLoop but don't add them to
12946         loop region
12947
12948 2002-02-21    <johan AT FRIJA>
12949
12950         * src/SDCCcse.c: fixed bug #514308
12951
12952 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
12953
12954         * src/SDCCloop.c:
12955         Fixed BUG #519583. If a conditional block ended in a return/break
12956         statement inside a loop, it was not being considered part of the loop.
12957
12958         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
12959
12960 2002-02-10  Karl Bongers <karl AT turbobit.com>
12961
12962         * debugger/*:
12963         Fixed up SDCDB debugger somewhat.  Updated debugger/README
12964         with lots of comments and notes.
12965
12966         * device/examples/test2.c:
12967         Fix bug, "red" variable not being initialized(compiler complained).
12968
12969         * device/examples/Makefile, examples/test3.c:
12970         Add Makefile in device/examples folder, compiles test3.c
12971         for use as a multiple module SDCDB test case.
12972
12973         * sim/ucsim/cmd.src/cmdset.cc:
12974         Took out debug printfs in ucsim "next" command.
12975
12976         * sim/ucsim/xa.src:
12977         Karl and Johan start ucsim XA support.  Most dissassembly working,
12978         about 75% emulation done(plenty of work remaining).
12979
12980         * sim/ucsim/z80.src:
12981         Add Z80 support to ucsim, add test-ucz80 regression test,
12982         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
12983         Notice z80 compiler fails on examples/test3.c/crc code.
12984
12985 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
12986
12987         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
12988         Added support for --parms-in-bank1
12989
12990         * src/ds390/peeph.def:
12991         added a few more peephole optimzations
12992
12993         * src/ds390/main.c:
12994         1) added __builtin_inp & __builtin_outp used to read in data of given length
12995            from a memory mapped port
12996         2) added __builtin_memcmp
12997         3) added __builtin_swapw swap bytes of a short
12998
12999         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
13000         1) handle multiple send & receives from register bank1
13001         2) ralloc can now allocate DPTR1 to some liveRanges
13002
13003         * src/SDCCsymt.c, src/SDCCsymt.h:
13004         changes to handle multiple sends & receives
13005
13006         * src/SDCCptropt.h:
13007         added some pointer arithmetic optimization
13008
13009         * src/SDCCptropt.c:
13010         added some pointer arithmetic optimizations but not stable yet so not
13011         called from anywhere (will get this working shortly)
13012
13013         * src/SDCCopt.c: fixed for multiple sends & receives
13014
13015         * src/SDCCmain.c:
13016         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
13017         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
13018            set preprocessor defines (depending on options)
13019
13020         * src/SDCCicode.c, src/SDCCicode.h:
13021         changes made to handle multiple sends & receives
13022
13023         * src/SDCCglobl.h:
13024         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
13025
13026         * src/SDCCcse.c, src/SDCCcse.h:
13027         added function findbackward def (to be used in upcoming optimization)
13028
13029         * src/SDCCcflow.c, src/SDCCcflow.h:
13030         added function returnAtEnd - to determine if a basic block terminates with
13031         a RETURN iCode
13032
13033         * src/SDCCast.c, src/SDCCast.h:
13034         added option parms-in-bank1
13035
13036         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
13037         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
13038         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
13039         adjusted for --parms-in-bank1 option
13040
13041         * device/include/string.h:
13042         donot redefine "reentrant" keyword
13043
13044         * device/include/ds80c390.h: Added some more SFRs
13045
13046 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
13047
13048         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
13049
13050 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
13051
13052         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
13053
13054 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
13055
13056         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
13057
13058 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
13059
13060         * Added --xram-movc option
13061
13062 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
13063
13064         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
13065
13066 2002-01-11  Johan Knol
13067
13068         * Added math lib of Jesus Calvino-Fraga
13069
13070 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
13071
13072         * src/SDCCmain.c (processFile): fix processing of ../../src.c
13073         * support/regression/Makefile: new target test-mcs51-stack-auto
13074         * support/regression/ports/mcs51-stack-auto/spec.mk: added
13075
13076 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13077
13078         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
13079
13080 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13081
13082         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
13083
13084 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
13085
13086         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
13087
13088         * src/SDCCglue.h: add definition for printIvalChar()
13089
13090 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13091
13092         * src/SDCCast.c: fix #498138 by Johan
13093
13094         * src/SDCCglue.c: fix #498138 by Johan
13095
13096 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13097
13098         * support/regression/Makefile: fix clean
13099
13100         * support/regression/ports/ds390/support.c: fix transmission of last character
13101
13102 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
13103
13104         * /sdcc/src/ds390/gen.c:
13105         a) improved computing address of stack variable
13106         b) took out some #if 0 code
13107         c) improved parmBytes adjustment
13108         d) improved genPlusIncr & genMinusIncr
13109         e) genCmp could generate bad code (when left assigned to DPTR)
13110         f) Fixed bug in hasInc
13111
13112         * /sdcc/src/ds390/ralloc.c:
13113         a) packRegsForSupport could mess up live information (Fixed)
13114         b) packRegsDPTRuse could be incorrect for left & right shift
13115
13116         * /sdcc/src/mcs51/ralloc.c:
13117         packRegsForSupport could mess up the live information (Fixed)
13118
13119         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
13120
13121         * /sdcc/src/SDCCast.c:
13122         can reverse a loop even if function call is present as long
13123         as the loop control variable is local & is not passed as parameter
13124
13125 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13126
13127         * /sdcc/ChangeLog: *** empty log message ***
13128
13129         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
13130         More builtin function additions for TININative
13131
13132         * /sdcc/src/ds390/ralloc.c:
13133         Had broken the regression testsuite
13134
13135         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
13136
13137         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
13138         Added funcattr hasStackParms will be set for reentrant functions when there
13139         are paramteres on the stack, this helps in minimizing frame pointer generation
13140         typeFromStr can handle function pointers now
13141
13142         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
13143         *** empty log message ***
13144
13145 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13146
13147         * /src/ds390/gen.c, /src/ds390/main.c:
13148         More builtin function additions for TININative
13149
13150         * /src/ds390/ralloc.c:
13151         Had broken the regression testsuite
13152
13153         * /src/SDCCast.c: Fixed a bug in dumptree
13154
13155         * /src/SDCCsymt.c, /src/SDCCsymt.h:
13156         Added funcattr hasStackParms will be set for reentrant functions when there
13157         are paramteres on the stack, this helps in minimizing frame pointer generation
13158         typeFromStr can handle function pointers now
13159
13160         * /doc/builtins.txt, /doc/TININative.txt:
13161         *** empty log message ***
13162
13163
13164 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13165
13166         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
13167         ALPHA version for -mTININative
13168
13169         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
13170         updated to reflect changes in the port structure
13171
13172         * /src/port.h:
13173         added function do_assemble (similar to do_link) if non-null this function
13174         will be called to do assembly (-mTININative) requires a multi command
13175         assembly
13176         added function genAssemblerEnd will be called to generate assembler Epilogue
13177
13178         * /src/SDCCsymt.c:
13179         added _JavaNative to debug info printing
13180
13181         * /src/SDCCmain.c: added option --tini-libid
13182         added port->do_assemble function (-mTININative) has a multi command assemble
13183
13184         * /src/SDCCglue.c: Disabled "constExpr" check
13185         added port->genAssemblerEnd function
13186
13187         * /src/SDCCglobl.h: Added option --tini-libid value
13188
13189         * /src/SDCCast.h:
13190         tookout optimizeCompare from the header (has no external references)
13191
13192         * /src/SDCCast.c: made one more function "static"
13193
13194 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
13195
13196         * src/z80/mappings.i: Added z80asm support.
13197
13198         * src/z80/main.c: Added z80asm support on --asm=z80asm
13199
13200         * src/z80/gen.c: Fixed asm portability issues.
13201
13202         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
13203
13204         * src/SDCCglue.c (printExterns): Added global/extern split.
13205
13206 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
13207
13208         * support/regression/Makefile: added test for mcs51 model large
13209
13210         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
13211
13212         * support/regression/ports/gbz80/spec.mk: added -mgbz80
13213
13214 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
13215
13216         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
13217
13218 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
13219
13220         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
13221
13222         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
13223
13224 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
13225
13226         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
13227
13228         * support/regression/tests/simplefloat.c: Port to mcs51.
13229
13230 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
13231         * support/regression/tests/bug-485362.c: Added.
13232
13233         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
13234
13235         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
13236
13237         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
13238
13239         * src/z80/gen.c (aopDump): Added a dump function.
13240
13241 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
13242         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
13243
13244         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
13245
13246         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
13247
13248         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
13249
13250         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
13251
13252         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
13253
13254         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
13255
13256         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
13257
13258         * support/regression/ports/ds390/support.c: Use tinibios.
13259
13260         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
13261
13262 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
13263
13264         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
13265         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
13266
13267         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
13268
13269         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
13270
13271 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
13272
13273         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
13274
13275         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
13276         (packRegsForIYUse): Created and optimised.
13277
13278 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13279
13280         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
13281 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
13282
13283         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
13284
13285         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
13286
13287         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
13288
13289 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13290
13291         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
13292
13293         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
13294
13295 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13296
13297         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
13298
13299         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
13300
13301         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
13302
13303 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13304
13305         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
13306         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
13307         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
13308
13309         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
13310
13311         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
13312         (genNotFloat): Added.
13313         (genUminusFloat): Added.
13314
13315         * device/lib/z80/Makefile: Added floating pt stubs.
13316
13317         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
13318
13319         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
13320
13321         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
13322
13323 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13324
13325         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
13326
13327         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
13328
13329         * sdcc/support/regression/Makefile: Add port ds390.
13330
13331         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
13332
13333         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
13334
13335         * sdcc/support/regression/ports/ds390/spec.mk: Added.
13336
13337         * sdcc/support/regression/ports/ds390/support.c: Added.
13338
13339         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
13340
13341         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
13342
13343         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
13344
13345 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13346
13347         * device/include/malloc.h: Added z80 and gbz80 support.
13348
13349         * device/lib/gbz80/heap.s: Added.
13350
13351         * device/lib/z80/heap.s: Added.
13352
13353         * device/lib/malloc.c: Added z80 and gbz80 support.
13354
13355         * support/regression/tests/malloc.c (testMalloc): Added.
13356
13357         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
13358
13359         * support/regression/tests/bug-478094.c: Added.
13360
13361         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
13362
13363 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
13364
13365         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
13366
13367         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
13368
13369         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
13370
13371         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
13372
13373         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
13374
13375 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13376
13377         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
13378
13379 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
13380
13381         * support/regression/tests/bug-477927.c: Added.
13382
13383         * src/z80/peeph.def: Added minor rules.
13384
13385         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
13386
13387         * src/z80/peeph.def: Added jump optimisation modification.
13388
13389 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
13390
13391         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
13392
13393 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
13394
13395         * support/regression/tests/funptrs.c: Added.
13396
13397 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
13398
13399         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
13400
13401 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
13402
13403         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
13404
13405         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
13406
13407         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
13408         (movLeft2ResultLong): Created.
13409
13410         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
13411         (joinPushes): Added.  Joins two char pushes into a word push.
13412
13413 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
13414
13415         * support/cpp2/Makefile.in (install): Added creation of dest dir.
13416
13417         * support/makebin/Makefile (install): Added creation of dest dir.
13418
13419 2001-10-24 Karl Bongers <karl AT turbobit.com>
13420
13421         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
13422
13423 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
13424
13425         * src/z80/ralloc.c: Turned off faulty pack for one use.
13426
13427         * src/z80/peeph-gbz80.def: Removed redundent restart options.
13428
13429         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
13430
13431 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
13432
13433         * support/regression/Makefile: Improved clean
13434
13435         * support/regression/ports/gbz80/spec.mk: Added clean
13436
13437         * support/regression/ports/host/spec.mk: Added clean
13438
13439         * support/regression/ports/z80/spec.mk: Added clean
13440
13441         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
13442
13443         * support/regression/ports/mcs51/timeout.c: little improvements
13444
13445 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
13446
13447         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
13448
13449         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
13450
13451         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
13452
13453 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
13454
13455         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
13456
13457         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
13458
13459 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
13460         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
13461
13462         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
13463
13464         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
13465
13466         * src/mcs51/main.c (_linkCmd): Added bin path to command.
13467
13468         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
13469
13470         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
13471
13472         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
13473
13474         * support/regression/tests/longor.c: Added.
13475
13476 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
13477
13478         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
13479
13480         * as/mcs51/aslink.h: define PATH_MAX
13481
13482         * as/mcs51/asm.h: define PATH_MAX
13483
13484         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
13485
13486         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
13487
13488         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
13489
13490         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
13491
13492         * src/SDCCglobl.h: define PATH_MAX
13493
13494         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
13495
13496         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
13497
13498 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
13499
13500         * src/z80/gen.c (gencjneshort): Fixed
13501
13502         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
13503
13504 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
13505
13506         * support/regression/tests/bug-469671.c: Added.
13507
13508         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
13509
13510 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
13511
13512         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
13513
13514         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
13515
13516 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
13517
13518         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
13519
13520         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
13521
13522         * src/device/lib/_mullong.c : removed hint: nooverlay bug
13523
13524         * src/device/lib/_divuint.c : removed hint: nooverlay bug
13525
13526         * src/device/lib/_divulong.c: removed hint: nooverlay bug
13527
13528         * src/device/lib/_moduint.c : removed hint: nooverlay bug
13529
13530         * src/device/lib/_modulong.c: removed hint: nooverlay bug
13531
13532 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
13533
13534         * 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.
13535
13536         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
13537
13538         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
13539
13540 2001-10-07    <johan AT FRIJA>
13541
13542         * device/lib/gets.c (gets): fixed the return value.
13543
13544 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
13545         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
13546
13547         * 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.
13548
13549         * 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.
13550
13551         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
13552
13553         * src/pic/gen.c: Removed Safe_strdup.
13554
13555         * configure.in: Added option to enable libgc support.
13556
13557         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
13558         (bitVectUnion): Optimised.
13559         (bitVectIntersect): Optimised.
13560         (bitVectBitsInCommon): Optimised.
13561         (bitVectCplAnd): Optimised.
13562
13563         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
13564
13565 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13566
13567         * src/SDCCmain.c: distinguish between assembler debug and plain options
13568
13569         * src/avr/main.c:   remove standard assembler options
13570
13571         * src/ds390/main.c: remove standard assembler options
13572
13573         * src/mcs51/main.c: remove standard assembler options
13574
13575         * src/port.h: removed "PENDING" comment
13576
13577 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13578
13579         * src/device/lib/_mulint.c  : new, with assember functions
13580
13581         * src/device/lib/_mullong.c : new, with assember functions
13582
13583         * src/device/lib/_divuint.c : with assember functions
13584
13585         * src/device/lib/_divsint.c : with assember functions
13586
13587         * src/device/lib/_divulong.c: with assember functions
13588
13589         * src/device/lib/_divslong.c: with assember functions
13590
13591         * src/device/lib/_moduint.c : with assember functions
13592
13593         * src/device/lib/_modsint.c : with assember functions
13594
13595         * src/device/lib/_modulong.c: with assember functions
13596
13597         * src/device/lib/_modslong.c: with assember functions
13598
13599         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
13600
13601         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
13602
13603         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
13604                                       replaced _mululong.c and _mulslong.c by _mullong.c
13605
13606 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13607
13608         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
13609
13610 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
13611
13612         * src/SDCCglue.c: test, if win32api is available for MINGW
13613
13614 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
13615
13616         * src/SDCCsymt.c: no more _modifier in printTypeChain()
13617         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
13618         * support/regression/ports/gbz80/spec.mk: removed GENERIC
13619         * support/regression/ports/host/spec.mk: removed GENERIC
13620         * support/regression/ports/mcs51/spec.mk: removed GENERIC
13621         * support/regression/ports/z80/spec.mk: removed GENERIC
13622
13623 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
13624
13625         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
13626
13627         * support/regression/tests/bug-467035.c: Created.
13628
13629 2001-10-01    <johan AT FRIJA>
13630
13631         * src/SDCC.y: fixed bug #466586 part 1
13632
13633 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
13634
13635         * SDCCicode.c: z80 has no generic pointers
13636         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
13637
13638 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
13639
13640         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
13641
13642 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
13643
13644         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
13645
13646         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
13647
13648 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
13649
13650         * configure.in: Fixed up so that ucsim is only configured once.
13651
13652         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
13653
13654         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
13655         (getPathDifference): As above.
13656
13657         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
13658
13659         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
13660
13661 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
13662         * .version: Updated to 2.3.1
13663
13664         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
13665         Added copyright header.
13666
13667         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
13668         (assemble): Added support for macro based assembler commands.
13669         (linkEdit): Added support for macro based linker commands.
13670         (preProcess): Changed the pre-processor to use macros.
13671         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
13672         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
13673
13674         * device/lib/z80/crt0.s: Added module name for debugging.
13675
13676 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
13677
13678         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
13679
13680         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
13681
13682         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
13683
13684         * src/Makefile.in: Added SDCCmacro and SDCCutil
13685
13686 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
13687
13688         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
13689
13690 2001-09-16    <johan AT FRIJA>
13691
13692         * 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.
13693
13694 2001-09-15    <johan AT FRIJA>
13695
13696         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
13697         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
13698
13699 2001-09-11    <johan AT FRIJA>
13700
13701         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
13702
13703 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
13704
13705         * support/regression/tests/bug-460444.c: Added test case.
13706
13707         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
13708         (genCast): Added justification for all of the asserts.
13709
13710 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
13711
13712         * support/regression/support.c: _xdata replaced by xdata
13713
13714         * support/regression/spec.mk: removed _generic
13715
13716 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
13717
13718         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
13719
13720         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
13721         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
13722
13723         * src/z80/peeph.def: Added a rule to optimise shift then compare.
13724
13725         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
13726
13727         * support/regression/tests/bug-460010.c: Added test case.
13728
13729         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
13730
13731 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
13732
13733         * support/regression/Makefile: inter-port-clean adjusted for mcs51
13734
13735         * support/regression/testfwk.c: removed workaround for bug #436344
13736
13737         * support/regression/tests/bp.c: use less memory with mcs51
13738
13739         * support/regression/tests/bug-441448.c: use less memory
13740
13741         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
13742
13743         * support/regression/collate-results.py: typo
13744
13745 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
13746
13747         * support/regression/tests/fetchoverlap.c: Added new test case.
13748
13749         * support/regression/tests/bp.c: Added new test case.
13750
13751         * support/regression/tests/bug-448984.c: Added new test case.
13752
13753         * support/regression/tests/pow2shifts.c: Added new test case.
13754
13755         * src/z80/gen.c: Turned off the noise it normally generates for the release.
13756         (genlshTwo): Fixed right shift for count > 8.
13757
13758         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
13759
13760 2001-09-08    <johan AT FRIJA>
13761
13762         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
13763
13764 2001-09-07    <johan AT FRIJA>
13765
13766         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
13767
13768         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
13769
13770 2001-09-06    <johan AT FRIJA>
13771
13772         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
13773         * bernhard noted me at this: "() equals to (void)" (1.38)
13774
13775 2001-09-05    <johan AT FRIJA>
13776
13777         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
13778
13779 2001-09-04    <johan AT FRIJA>
13780
13781         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
13782
13783
13784 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
13785
13786         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
13787
13788 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
13789
13790         * link/z80/aslink.h: Fixed path for PATH_MAX
13791
13792 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
13793
13794         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
13795
13796         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
13797
13798         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
13799
13800         * 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.
13801
13802 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
13803
13804         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
13805         (genCmp): Fixed up genCmp for the GB with longs.
13806
13807         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
13808
13809         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
13810
13811         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
13812
13813         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
13814
13815 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
13816
13817         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
13818
13819 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
13820
13821         * 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.
13822
13823         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
13824
13825 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
13826
13827         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
13828
13829         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
13830
13831 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
13832
13833   * sim/ucsim/configure:    little improvement of Cygwin-detection
13834   * sim/ucsim/configure.in: little improvement of Cygwin-detection
13835   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
13836   * support/regression/tests/bug-221100.c: small changes for mcs51
13837   * support/regression/tests/bug-221168.c: small changes for mcs51
13838   * support/regression/tests/bug-227710.c: small changes for mcs51
13839   * support/regression/tests/staticinit.c: small changes for mcs51
13840   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
13841   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13842   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13843
13844 $Revision$