* asranlib/asranlib.c: fixed BSD header length calculation
[fw/sdcc] / ChangeLog
1 2009-02-07 Borut Razem <borut.razem AT siol.net>
2
3         * asranlib/asranlib.c: fixed BSD header length calculation
4         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.8
5           due sdcc asxxxx license change to GPLv3
6
7 2009-02-05 Borut Razem <borut.razem AT siol.net>
8
9         * asranlib/asranlib.c, link/lkar.h, link/lkar.c:
10           added support for BSD (Mac OS X) ar format
11         * as/asxxsrc/aslex.c, as/as/asxxsrc/asnoice.c, as/as/asxxsrc/assym.c,
12           as/as/hc08/asdata.c, as/hc08/asexpr.c, as/hc08/aslist.c,
13           as/hc08/asm.h, as/hc08/asmain.c, as/hc08/asout.c, as/hc08/assubr.c,
14           as/hc08/m08adr.c, as/hc08/m08ext.c, as/hc08/m08mch.c,
15           as/hc08/m08pst.c, as/hc08/m6808.h, as/link/aslink.h,
16           as/link/hc08/lkarea.c, as/link/hc08/lkelf.c, as/link/hc08/lkihx.c,
17           as/link/hc08/lkmain.c, as/link/hc08/lkmem.c, as/link/hc08/lkrloc.c,
18           as/link/hc08/lks19.c, as/link/lkaomf51.c, as/link/lkdata.c,
19           as/link/lkeval.c, as/link/lkhead.c, as/link/lklex.c, as/link/lklib.c,
20           as/link/lklibr.c, as/link/lklibr.h, as/link/lklist.c,
21           as/link/lknoice.c, as/link/lkrel.c, as/link/lkrel.h,
22           as/link/lksdcclib.c, as/link/lkstore.c, as/link/lksym.c,
23           as/link/mcs51/lkarea.c, as/link/mcs51/lkihx.c,
24           as/link/mcs51/lkmain.c, as/link/mcs51/lkmem.c,
25           as/link/mcs51/lkrloc.c, as/link/mcs51/lks19.c, as/link/z80/lkarea.c,
26           as/link/z80/lkgb.c, as/link/z80/lkgg.c, as/link/z80/lkihx.c,
27           as/link/z80/lkmain.c, as/link/z80/lkrloc.c, as/link/z80/lks19.c,
28           as/mcs51/asdata.c, as/mcs51/asexpr.c, as/mcs51/aslist.c,
29           as/mcs51/asm.h, as/mcs51/asmain.c, as/mcs51/asout.c,
30           as/mcs51/assubr.c, as/mcs51/i51adr.c, as/mcs51/i51ext.c,
31           as/mcs51/i51mch.c, as/mcs51/i51pst.c, as/mcs51/i8051.h,
32           as/xa51/xa_link.c, as/xa51/xa_main.c, as/xa51/xa_main.h,
33           as/xa51/xa_rasm.l, as/xa51/xa_rasm.y, as/xa51/xa_version.h,
34           as/z80/asdata.c, as/z80/asexpr.c, as/z80/aslist.c, as/z80/asm.h,
35           as/z80/asmain.c, as/z80/asout.c, as/z80/assubr.c, as/z80/z80.h,
36           as/z80/z80adr.c, as/z80/z80ext.c, as/z80/z80mch.c, as/z80/z80pst.c:
37           changed license to GPL either version 3, or (at your option) any
38           later version
39
40 2009-02-05 Borut Razem <borut.razem AT siol.net>
41
42         * asranlib/asranlib.c, link/lkar.h, link/lkar.c:
43           added support for BSD (Mac OS X) ar format
44
45 2009-02-02 Borut Razem <borut.razem AT siol.net>
46
47         * device/lib/gbz80/Makefile.in, device/lib/hc08/Makefile.in,
48           device/lib/z80/Makefile.in:
49           chose source files in the PORT directory if they are available
50
51 2008-02-01 Raphael Neider <rneider AT web.de>
52
53         * device/lib/pic16/libdev/pic18f1220.c,
54         * device/lib/pic16/libdev/pic18f4450.c:
55           define SSPBUF to allow use of printf
56
57 2009-02-01 Borut Razem <borut.razem AT siol.net>
58
59         * device/lib/Makefile.in, device/lib/gbz80/Makefile.in,
60           device/lib/hc08/Makefile.in, device/lib/incl.mk,
61           device/lib/z80/Makefile.in:
62           don't remake libraries
63         * support/regression/tests/snprintf.c:
64           reenable floating point in small-xstack-auto library
65
66 2008-01-26 Raphael Neider <rneider AT web.de>
67
68         * src/pic16/ralloc.c (packForPush): disabled to fix #2496919
69
70 2008-01-25 Raphael Neider <rneider AT web.de>
71
72         * src/pic16/main.c (_pic16_linkEdit): prepend -L paths to linker
73           search path instead of appending them
74
75 2009-01-24 Borut Razem <borut.razem AT siol.net>
76
77         * as/asranlib/asranlib.h: changed type of offset to unsigned int to
78           make it work on ppc Mac OS X (off_t is 64 bit and is not converted
79           to 32 bit unsigned int when calling sputl() since it is a macro
80         * as/link/lkar.c: changed the initialization of This->loaded
81
82 2009-01-23 Borut Razem <borut.razem AT siol.net>
83
84         * as/link/lkar.h: changed type of ar_size to size_t to make it work on
85           ppc Mac OS X (off_t is 64 bit and is not converted to 32 bit
86           unsigned int when calling new(), since asxxxx doesn't use function
87           prototypes)
88
89 2009-01-21 Borut Razem <borut.razem AT siol.net>
90
91         * as/link/lkar.h: sgetl and sputl are independent of endianness
92         * as/link/sdxxxx_config.h.in: removed endianness detection
93
94 2009-01-20 Borut Razem <borut.razem AT siol.net>
95
96         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.8
97           due creation of ar format libraries
98         * support/scripts/sdcc.nsi:
99           don't add nonexistent object files to the package
100
101 2009-01-19 Borut Razem <borut.razem AT siol.net>
102
103         * Makefile.in, configure.in, configure,
104           device/lib/Makefile.in, device/lib/ds390/Makefile.in,
105           device/lib/ds400/Makefile.in, device/lib/gbz80/Makefile.in,
106           device/lib/hc08/Makefile.in, device/lib/large/Makefile.in,
107           device/lib/mcs51/Makefile.in, device/lib/medium/Makefile.in,
108           device/lib/small/Makefile.in,
109           device/lib/z80/Makefile.in: create ar format libraries
110         * support/regression/ports/mcs51-xstack-auto/spec.mk:
111           use device/lib/Makefile to create library
112         * support/regression/tests/snprintf.c:
113           floating point is not enabled in small-xstack-auto library
114         * device/lib/libfloat.lib, device/lib/libint.lib,
115           device/lib/liblong.lib, device/lib/libsdcc.lib: removed
116
117 2009-01-18 Borut Razem <borut.razem AT siol.net>
118
119         * support/cpp/auto-host.h: fixed warning: "__STDC__" redefined,
120           warning: extra tokens at end of #endif directive
121
122 2009-01-11 Borut Razem <borut.razem AT siol.net>
123
124         * Makefile.in: added SDCC_ASRANLIB to PKGS
125
126 2009-01-10 Borut Razem <borut.razem AT siol.net>
127
128         * support/scripts/sdcc.nsi: added asranlib.exe to the install package
129         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.7
130           due added support for ar format libraries
131
132 2009-01-09 Borut Razem <borut.razem AT siol.net>
133
134         * as/asranlib/Makefile.in, as/asranlib/asranlib.dsp,
135           as/asranlib/asranlib.c: added asranlib
136         * as/link/lkar.c, as/link/lkar.h: added support for ar format libraries
137         * Makefile.in, as/link/hc08/Makefile.in,
138           as/link/hc08/link_hc08.dsp, as/link/lklib.c, as/link/lklibr.c,
139           as/link/lklibr.h, as/link/lkrel.c, as/link/lkrel.h,
140           as/link/lksdcclib.c, as/link/mcs51/Makefile.in,
141           as/link/mcs51/aslink.dsp, as/link/z80/Makefile.in,
142           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp, configure,
143           configure.in, sdcc.dsw: modified to support ar format libraries
144
145 2009-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
146
147         * src/SDCCast.c (decorateType RETURN): use RESULT_TYPE_GPTR for generic
148           pointer return
149
150 2009-01-05 Philipp Klaus Krause <pkk AT spth.de>
151
152         * sim/ucsim/z80.src/inst_ed.cc:
153           Fixed bug #2488074, which made regression tests fail.
154
155 2009-01-05 Philipp Klaus Krause <pkk AT spth.de>
156
157         * device/lib/z80/mod.s,
158           device/lib/z80/div.s,
159           device/lib/z80/mulchar.s,
160           device/lib/z80/mul.s,
161           device/lib/z80/divsigned.s,
162           device/lib/z80/Makefile.in:
163           Implemented RFE #1702376.
164
165 2009-01-05 Borut Razem <borut.razem AT siol.net>
166
167         * as/link/lksdcclib.c:
168           fixed linker hanging in INDEXLIB is not defined (hc08)
169
170 2009-01-04 Philipp Klaus Krause <pkk AT spth.de>
171
172         * src/z80/gen.c:
173           Implemented RFE #2485684, and some further improvements of HL caching
174           including a bugfix.
175         * src/z80/peeph-z80.def:
176           Fixed a bug exposed by implementing RFE #2485684.
177
178 2009-01-04 Philipp Klaus Krause <pkk AT spth.de>
179
180         * src/z80/peeph-z80.def:
181           Peephole improvements.
182         * src/z80/gen.c,
183           src/z80/main.c,
184           device/include/string.h,
185           device/lib/z80/memmove.s:
186           Minor code cleanup.
187         * device/lib/z80/Makefile.in,
188           device/lib/Makefile.in,
189           support/regression/tests/memory.c,
190           device/lib/z80/strlen.s:
191           Partially implemented RFE #2471534.
192
193 2009-01-04 Borut Razem <borut.razem AT siol.net>
194
195         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.6
196           due changes in sdcc asxxxx linkers - it sholud be done 2 days ago :(
197         * doc/README.txt: updated John Hartman's e-mail address
198         * as/link/lkrel.c, as/link/lksdcclib.c:
199           fixed bug #2484677: Linker hangs
200         * src/z80/peep.c: fixed msvc warning C4047:
201           'return' : 'int ' differs in levels of indirection from 'char *'
202         * config.dsp: as/lib corrected to as/link
203
204 2009-01-04 Philipp Klaus Krause <pkk AT spth.de>
205
206         * src/z80/peep.c:
207           Implemented RFE #2484693.
208         * src/z80/peeph-z80.def:
209           Some peephole improvements.
210
211 2009-01-03 Borut Razem <borut.razem AT siol.net>
212
213         * as/link/lklibr.c:
214           fixed warning: 'ret' may be used uninitialized in this function
215
216 2009-01-02 Borut Razem <borut.razem AT siol.net>
217
218         * as/link/lklib.c, as/link/lksdcclib.c, as/link/lklibr.h,
219           as/link/getline.[ch], as/link/lkrel.[ch]: added,
220           made support for differnet library formats more flexible,
221           preparation for support of ar format
222         * as/link/lklibr.c, as/link/z80/Makefile.in,
223           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
224           as/link/hc08/link_hc08.dsp, as/link/hc08/Makefile.in,
225           as/link/mcs51/aslink.dsp, as/link/mcs51/Makefile.in,
226           as/link/hc08/lkelf.c, as/link/aslink.h:
227           made support for differnet library formats more flexible,
228           preparation for support of ar format
229
230 2009-01-01 Borut Razem <borut.razem AT siol.net>
231
232         * as/link/asxxxx_config.h.in:
233           fixed warning: extra tokens at end of #endif directive
234         * src/z80/peep.c:
235           fixed warning: suggest parentheses around && within ||
236         * device/lib/Makefile.in: allow whitespaces at the end of lines in
237           ports.build, in order to make it work on cygwin - it seems to be a
238           bug in cygwin grep: CR is not treated as part of end-of-line
239
240 2008-12-31 Borut Razem <borut.razem AT siol.net>
241
242         * configure, configure.in, config.dsp, config_vc.awk,
243           as/link/asxxxx_config.h.in, as/link/hc08/lkelf.c, as/link/aslink.h,
244           as/link/hc08/Makefile.in, as/link/mcs51/Makefile.in:
245           introduced asxxxx_config.h.in
246
247 2008-12-30 Philipp Klaus Krause <pkk AT spth.de>
248
249         * src/z80/gen.c,
250           src/z80/peeph-z80.def:
251           Minor addition improvement.
252
253 2008-12-30 Raphael Neider <rneider AT web.de>
254
255         * as/link/hc08/lkelf.c, as/link/lkaomf51.c, as/link/lklibr.c,
256           as/link/z80/lkgb.c, debugger/mcs51/cmd.c, sim/ucsim/utils.cc,
257           src/SDCCasm.c, support/Util/dbuf_string.c, support/cpp/c-ppoutput.c,
258           support/cpp/libcpp/lex.c, support/cpp/libcpp/macro.c,
259           support/librarian/sdcclib.c, support/makebin/makebin.c:
260           partially revert changes from r5293..r5295
261
262 2008-12-29 Philipp Klaus Krause <pkk AT spth.de>
263
264         * src/z80/peeph-z80.def:
265           Minor peephole improvement.
266
267 2008-12-29 Raphael Neider <rneider AT web.de>
268
269         * src/pic/pcode.c (insertBankSel, FixRegisterBanking): emit
270           incorrectly discarded BANKSELs
271
272 2008-12-29 Philipp Klaus Krause <pkk AT spth.de>
273
274         * support/regression/tests/memory.c:
275           Added simple test for memset(), memcpy() and memmove()
276
277 2008-12-29 Borut Razem <borut.razem AT siol.net>
278
279         * sdcc/support/scripts/sdcc.nsi: removed $INSTDIR\lib\src\z80\*.c
280
281 2008-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
282
283         * src/mcs51/peeph.def (177.e): replaced notVolatile(%3) with
284           operandsNotRelated(%1 %3), had to change (a)r%1 to (a)%1 for this to work
285           (177.j): added new rule
286         * src/SDCCsymt.h: added RESULT_TYPE_GPTR
287         * src/SDCCast.c (processParms): use RESULT_TYPE_GPTR for generic ptr parms,
288           (decorateType CAST): propagate storage class to generic pointer results
289
290 2008-12-27 Philipp Klaus Krause <pkk AT spth.de>
291
292         * device/lib/z80/string.c,
293           device/lib/z80/printf.c,
294           device/lib/z80/mul.s:
295           z80 library cleanup
296         * src/z80/gen.c:
297           Fixed code generation bug exposed by builtin memcpy().
298
299 2008-12-27 Philipp Klaus Krause <pkk AT spth.de>
300
301         * device/lib/_memcpy.c:
302           fixed conflict with builtin memcpy()
303
304 2008-12-26 Borut Razem <borut.razem AT siol.net>
305
306         * support/librarian/sdcclib.c:
307           fixed bug 2466950: "sdcclib broken"
308           by removing fgets return value check
309
310 2008-12-26 Philipp Klaus Krause <pkk AT spth.de>
311         * src/z80/main.c,
312           src/z80/gen.c,
313           device/include/string.h: Implemented RFE #1914254
314
315 2008-12-26 Philipp Klaus Krause <pkk AT spth.de>
316         * device/lib/z80/Makefile.in,
317           device/lib/Makefile.in,
318           device/lib/z80/memmove.s: Implemented RFE #1914256
319
320 2008-12-26 Philipp Klaus Krause <pkk AT spth.de>
321
322         * src/z80/peeph-z80.def: fixed a bug in peephole 0zf
323         * src/z80/peep.c: improved checks for unused data
324         * src/z80/gen.c,
325           src/z80/main.c: Implemented RFE #1899189
326
327 2008-12-25 Borut Razem <borut.razem AT siol.net>
328
329         * support/regression/Makefile.in:
330           add -I$(INC_DIR) to SDCCFLAGS only if INC_DIR is defined
331
332 2008-12-25 Philipp Klaus Krause <pkk AT spth.de>
333
334         * src/z80/peeph-z80.def: minor peephole improvements
335
336 2008-12-21 Borut Razem <borut.razem AT siol.net>
337
338         * support/librarian/sdcclib.c: fixed build failure on Mac OS X
339           due to redefinition of symbol __assert
340           sdcclib.c:53:1:warning: "__assert" redefined
341           /Xcode2.5/SDKs/MacOSX10.4u.sdk/usr/include/assert.h:80:1:
342           warning: this is the location of the previous definition
343
344 2008-12-20 Raphael Neider <rneider AT web.de>
345
346         * debugger/mcs51/break.c, debugger/mcs51/cmd.c,
347           debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
348           support/cpp/libcpp/macro.c: fix format string errors
349
350         * sim/ucsim/s51.src/timer2.cc: add clarifying parens
351
352         * src/pic/device.c: partial rewrite using strtok,
353           quieten compiler warnings, adopt SDCC coding style
354
355         * as/link/hc08/lkelf.c, as/link/lkaomf51.c, as/link/lklibr.c,
356           as/link/z80/lkgb.c, as/z80/asout.c, debugger/mcs51/cmd.c,
357           sim/ucsim/utils.cc, src/SDCCasm.c, support/Util/dbuf_string.c,
358           support/cpp/c-ppoutput.c, support/cpp/libcpp/lex.c,
359           support/librarian/sdcclib.c, support/makebin/makebin.c:
360           quieten most compiler warnings
361
362         * sim/ucsim/avr.src/arith_inst.cc: quieten compiler warnings,
363           probably fix operator precedence bug
364
365         * doc/clean.mk: quieten rm if no .lyx is present
366
367 2008-12-19 Borut Razem <borut.razem AT siol.net>
368
369         * doc/sdccman.lyx, doc/random-notes.txt, doc/avr/avr_design.txt,
370           doc/TININative.txt, doc/macro-sys-design.txt, doc/libdoc.txt,
371           doc/README.txt, doc/test_suite_spec.lyx:
372           applied patch 2446381: Dcoumentation spelling correcitons
373           thanks to Steven Borley
374
375 2008-12-16 Raphael Neider <rneider AT web.de>
376
377         * device/include/pic/pic12f629.h,
378           device/include/pic/pic12f675.h,
379           device/lib/pic/libdev/pic12f629.c,
380           device/lib/pic/libdev/pic12f675.c: consolidated, added TRISIO bits
381
382 2008-12-14 Borut Razem <borut.razem AT siol.net>
383
384         * doc/sdccman.lyx, cdbfileformat.lyx, test_suite_spec.lyx:
385           converted to LyX 1.5.7 (\lyxformat 276) format
386
387 2008-12-07 Borut Razem <borut.razem AT siol.net>
388
389         * support/regression/tests/bitfields.c:
390           added test case for bug #2366757
391
392 2008-12-07 Raphael Neider <rneider AT web.de>
393
394         * src/pic16/glue.c (pic16_printIvalBitFields): prevent
395           NULL pointer dereference, closes #2366757
396
397 2008-11-25 Raphael Neider <rneider AT web.de>
398
399         * device/include/pic16/pic16devices.txt,
400           sdcc/src/pic16/device.c,
401           sdcc/src/pic16/device.h: implicitly disable XINST
402           whenever CONFIG4L is set via an additional optional
403           argument to the configword directive in pic16devices.txt
404
405 2008-11-24 Raphael Neider <rneider AT web.de>
406
407         * device/lib/pic16/configure.ac,
408           device/lib/pic16/Makefile.common: fixed quoting issues
409
410         * device/lib/pic16/configure,
411           device/lib/pic16/debug/Makefile.in,
412           device/lib/pic16/libc/Makefile.in,
413           device/lib/pic16/libdev/Makefile.in,
414           device/lib/pic16/libio/Makefile.in,
415           device/lib/pic16/libm/Makefile.in,
416           device/lib/pic16/libsdcc/Makefile.in,
417           device/lib/pic16/Makefile.in,
418           device/lib/pic16/startup/Makefile.in: regenerated
419
420         * src/pic16/main.c (_pic16_finaliseOptions): revert to
421           variant of r5216
422
423 2008-11-24 Raphael Neider <rneider AT web.de>
424
425         * src/pic16/main.c (_pic16_finaliseOptions): do not quote the
426           argument of --asm= or --link= to allow for
427           --asm="sh script --options", the user can double quote the
428           argument if needed: --asm="'c:/program files/gpasm' -q",
429           also fix some potential buffer overflows
430
431 2008-11-19 Borut Razem <borut.razem AT siol.net>
432
433         * doc/sdccman.lyx:
434           fixed 2314467: sdccman.lyx: fix "--" in command line parameters
435           thanks Mauro Giachero
436
437 2008-11-16 Borut Razem <borut.razem AT siol.net>
438
439         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.5
440         * doc/sdccman.lyx: documented fixed unnamed bit-field initialization
441
442 2008-11-15 Borut Razem <borut.razem AT siol.net>
443
444         * src/pic16/glue.c, src/SDCC.y, src/SDCCast.c, src/SDCCglue.c,
445           src/SDCCsymt.c, src/SDCCsymt.h:
446           fixed RFE #2291335 : Unnamed bit-field initialization
447         * support/regression/tests/bitfields.c:
448           added test case for RFE #2291335
449         * support/regression/tests/bug-1981238.c:
450           don't initialize unnamed bit-fields
451
452 2008-11-11 Raphael Neider <rneider AT web.de>
453
454         * device/include/pic16/pic18f25j10.h,
455           device/include/pic16/pic18f45j10.h: remove useless boilerplate
456
457         * device/include/pic16/adc.h,
458           device/lib/pic16/libio/adc/adcbusy.c,
459           device/lib/pic16/libio/adc/adcclose.c,
460           device/lib/pic16/libio/adc/adcconv.c,
461           device/lib/pic16/libio/adc/adcopen.c,
462           device/lib/pic16/libio/adc/adcread.c,
463           device/lib/pic16/libio/adc/adcsetch.c: generalized, documented,
464           and fixed ADC routines to work for more target devices,
465           incorporates patch #2036130 by Nick Materer
466
467 2008-11-10 Steven Borley <steven.borley AT partnerelectronics.com>
468
469         * device/include/ctype.h,
470         * device/include/ds400rom.h,
471         * device/include/ds80c390.h,
472         * device/include/float.h,
473         * device/include/math.h,
474         * device/include/serial.h,
475         * device/include/stdbool.h,
476         * device/include/tinibios.h: replaced non-C89 '//' with '/* */',
477           patch 2195343
478         * device/include/mcs51/C8051F336.h,
479         * device/include/mcs51/C8051T600.h,
480         * device/include/mcs51/C8051T610.h,
481         * device/include/mcs51/C8051T630.h: new, added, patch 2183334
482           (svn commit by Maarten Brock <sourceforge.brock AT dse.nl>)
483
484 2008-11-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
485
486         * device/include/mcs51/P89LPC922.h: fixed #2255989, thanks kubi57
487
488 2008-11-10 Raphael Neider <rneider AT web.de>
489
490         * device/lib/pic16/libdev/mkmk.sh: obey pics.all
491         * device/lib/pic16/libio/mkmk.sh: properly match whole lines in
492           .ignore files, fixes IO libs for 18f242, 18f252, 18f442, and 18f452
493           (patch by Nick Materer, #2253980)
494
495         * device/lib/pic16/libio/adc.ignore,
496           device/lib/pic16/libio/i2c.ignore,
497           device/lib/pic16/libio/usart.ignore,
498           device/lib/pic16/pics.all: updated to build more device libs
499
500         * device/lib/pic16/libdev/Makefile.am,
501           device/lib/pic16/libdev/Makefile.in,
502           device/lib/pic16/libio/Makefile.am,
503           device/lib/pic16/libio/Makefile.in: regenerated
504
505         * src/pic16/device.c (pic16_dump_usection): fixed output of multiple
506           names per memory location, applied SDCC style to more functions
507
508 2008-11-09 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
509
510         * device/include/mcs51/p89lpc933_4.h: new NXP header file
511         * device/include/mcs51/p89lpc935_6.h: new NXP header file
512         * device/include/mcs51/p89v66x.h: minor changes
513           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
514
515 2008-11-09 Raphael Neider <rneider AT web.de>
516
517         * device/include/pic/pic14devices.txt: fixed memory description for
518           12f629 and 12f675, closes #2236240
519
520 2008-11-06 Borut Razem <borut.razem AT siol.net>
521
522         * src/SDCCmain.c: fixed bug #2224960: sdcc -MM no working correctly
523           pass system include paths with -isystem to sdcpp
524         * src/SDCCglue.c, src/pic/glue.c, src/pic16/glue.c: removed unneeded
525           functions (closePipes), (closeTmpFiles) and (rmTmpFiles)
526
527 2008-11-02 Raphael Neider <rneider AT web.de>
528
529         * doc/sdccman.lyx: updated the sections on the library build process
530           and on how to add support for new devices, and documented known
531           problems with the extended instruction set including a workaround
532
533 2008-11-01 Raphael Neider <rneider AT web.de>
534
535         * device/include/pic16/adc.h,
536           device/include/pic16/pic16devices.txt,
537           device/include/pic16/pic18f2410.h,
538           device/include/pic16/pic18f2510.h,
539           device/include/pic16/pic18f2515.h,
540           device/include/pic16/pic18f2610.h,
541           device/include/pic16/pic18f4410.h,
542           device/include/pic16/pic18f4510.h,
543           device/include/pic16/pic18f4515.h,
544           device/include/pic16/pic18f4610.h,
545           device/include/pic16/pic18fregs.h,
546           device/lib/pic16/libdev/Makefile.am,
547           device/lib/pic16/libdev/Makefile.in,
548           device/lib/pic16/libdev/pic18f2410.c,
549           device/lib/pic16/libdev/pic18f2510.c,
550           device/lib/pic16/libdev/pic18f2515.c,
551           device/lib/pic16/libdev/pic18f2610.c,
552           device/lib/pic16/libdev/pic18f4410.c,
553           device/lib/pic16/libdev/pic18f4510.c,
554           device/lib/pic16/libdev/pic18f4515.c,
555           device/lib/pic16/libdev/pic18f4610.c,
556           device/lib/pic16/libio/Makefile.am,
557           device/lib/pic16/libio/Makefile.in,
558           device/lib/pic16/pics.all: added support for 18f[24][456]10
559           and 18f[24]515 devices
560         * doc/sdccman.lyx: updated list of supported PIC16 devices
561
562         * src/pic/glue.c, src/pic/pcode.c, src/pic/pcodeflow.c,
563           src/pic16/glue.c, src/pic16/pcode.c, src/pic16/pcodeflow.c,
564           src/xa51/gen.c: avoid compiler warnings
565         * support/scripts/inc2h-pic16.pl: removed trailing whitespace
566
567 2008-10-22 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
568
569         * device/include/mcs51/p89v66x.h: NXP header file
570         * device/include/mcs51/p89c66x.h: fixed an SBIT definition
571           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
572
573 2008-10-14 Raphael Neider <rneider AT web.de>
574
575         * device/lib/pic16/libdev/Makefile.am,
576           device/lib/pic16/libio/Makefile.am: enable building libraries for
577           18f2321, 18f4321, 18f2523, 18f4620, 18f66j60, 18f66j65, 18f67j60,
578           18f86j60, 18f86j65, 18f87j60, 18f96j60, 18f96j65, and 18f97j60
579         * device/lib/pic16/libdev/Makefile.in,
580           device/lib/pic16/libio/Makefile.in: regenerated
581
582 2008-10-14 Raphael Neider <rneider AT web.de>
583
584         * device/include/pic16/pic18f2450.h,
585           device/include/pic16/pic18f4450.h,
586           device/lib/pic16/libdev/pic18f2450.c,
587           device/lib/pic16/libdev/pic18f4450.c,
588           device/include/pic16/adc.h,
589           device/include/pic16/pic16devices.txt,
590           device/include/pic16/pic18fregs.h,
591           device/lib/pic16/libdev/Makefile.am,
592           device/lib/pic16/libdev/Makefile.in,
593           device/lib/pic16/libio/Makefile.am,
594           device/lib/pic16/libio/Makefile.in,
595           device/lib/pic16/pics.all: added 18f2450 and 18f4450, closes #1844525
596
597         * device/lib/pic16/libsdcc/stack/stack.S: there is no need to pin the
598           stack to a fixed location, relax it to automatically work with all
599           but the smallest devices (256 byte RAM devices need #pragma stack)
600
601 2008-10-09 Maarten Brock <sourceforge.brock AT dse.nl>
602
603         * debugger/mcs51/break.c: bugfix from patch 1989966, thanks Risto Huotari
604         * debugger/mcs51/simi.c: bugfix from patch 1989972, thanks Risto Huotari
605         * device/lib/_strcspn.c: fixed bug 2140931
606
607 2008-10-06 Raphael Neider <rneider AT web.de>
608
609         * device/include/pic16/stdio.h,
610           device/lib/pic16/libc/stdio/putchar.c: putchar should not be
611           declared __naked for convenience, named all arguments
612         * device/lib/pic16/libc/stdio/strmgpsim.c,
613           device/lib/pic16/libc/stdio/strmmssp.c,
614           device/lib/pic16/libc/stdio/strmusart.c: cosmetic changes
615
616         * src/pic16/pcode.c (createReachingDefinitions): avoid segfault on
617           empty __naked functions,
618         * (pCodeLabelDestruct, pic16_unlinkpCode, pic16_pCodeUnlink): fix
619           corner cases (unlink first/last pCode in list), reuse more code
620
621 2008-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
622
623         * src/ds390/main.c (_ds390_genInitStartup): added
624         * src/SDCCpeeph.c (getPatternVar): new, added,
625           (labelInRange): fixed bug 2115959
626         * src/mcs51/peeph.def (rules 193.x to 198.x): check for labelInRange
627         * src/SDCCicode.h: added newiTempOperand
628         * src/SDCCcse.c (algebraicOpts): fixed bug for x*-1,
629           added optimizations for 0/x and x/-1, see also patch 2142900
630         * support/regression/tests/onebyte.c (testMul): added test cases
631
632 2008-09-20 Borut Razem <borut.razem AT siol.net>
633
634         * src/pic16/glue.c:
635           definition of absolute address symbols without initial value,
636           fixed SDCC crash "do not know how to intialize symbol"
637
638 2008-09-16 Maarten Brock <sourceforge.brock AT dse.nl>
639
640         * device/lib/z80/mul.s (__mulsuchar_rrx_s, __muluschar_rrx_s),
641         * device/lib/z80/div.s (__divsuchar_rrx_s, __modsuchar_rrx_s,
642           __divuschar_rrx_s, __moduschar_rrx_s): added mixed signedness versions
643         * device/lib/z80/stubs.s: added stubs for above functions
644         * src/SDCCopt.c (convilong),
645         * src/SDCCsymt.c (initCSupport): fixed bug 1900961
646         * src/SDCCsymt.h (__muldiv): enlarged for mixed signedness
647         * src/z80/main.c (_hasNativeMulFor): fixed bug, I think
648         * support/regression/tests/onebyte.c: enabled all tests for z80
649
650 2008-09-15 Borut Razem <borut.razem AT siol.net>
651
652         * device/include/pic16/stdio.h, device/lib/pic16/libc/stdio/streams.c,
653           device/lib/pic16/libc/stdio/printf.c,
654           device/lib/pic16/libc/stdio/strmusart.c,
655           device/lib/pic16/libc/stdio/printf_tiny.c,
656           device/lib/pic16/libc/stdio/sprintf.c,
657           device/lib/pic16/libc/stdio/strmgpsim.c,
658           device/lib/pic16/libc/stdio/putchar.c,
659           device/lib/pic16/libc/stdio/fprintf.c,
660           device/lib/pic16/libc/stdio/strmmssp.c,
661           device/device/lib/pic16/libc/stdio/vprintf.c,
662           device/lib/pic16/libc/stdio/printf_small.c,
663           device/lib/pic16/libc/stdio/vsprintf.c,
664           device/lib/pic16/libc/stdio/strmputchar.c,
665           device/lib/pic16/libc/Makefile.am,
666           device/lib/pic16/libc/Makefile.in:
667           *printf now returns int, puchar.c moved from stdlib to stdio,
668           *printf format parameter type changed from char * to const char *,
669           added GNU link excetion text to library source files,
670           applyed GNU coding style, removed useless svn ids,
671           added BINARY_SPECIFIER macro re-enables the use of the removed 'b'
672           binary specifier: "%b", "%hb" and "%lb"
673         * device/lib/pic16/libc/stdio/vfprintf.c:
674           applied patch #2044424: PIC16: vfprintf
675           thanks Mauro Giachero
676         * support/regression/tests/bug1057979.c:
677           removed old pic16 sprintf specifics
678         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.4
679         * doc/sdccman.lyx: documented 'b' binary format specifier removal
680
681 2008-09-15 Raphael Neider <rneider AT web.de>
682
683         * src/pic16/device.c (pic16_dump_usection): force udata sections
684           into the addressable range (0..0xFFF), workaround for a gpsim
685           bug preventing simulation of regtest bug1750318
686         * src/pic16/ralloc.c (deassignLRs): cosmetic changes,
687           (serialRegAssign): fixed regtest bug-971834,
688           (pic16_packRegisters): avoid null-pointer dereference
689
690 2008-09-14 Raphael Neider <rneider AT web.de>
691
692         * src/pic16/gen.c, src/pic16/ralloc.c: use
693           SYM_SPIL_LOC/SPIL_LOC macros, no functional changes
694         * src/pic16/ralloc.c (rematStr): reimplemented, fixes #1818857
695
696 2008-09-12 Borut Razem <borut.razem AT siol.net>
697
698         * support/regression/fwk/testfwk.h:
699           define pdata as data for pic16 target
700           thanks Mauro Giachero
701
702 2008-09-11 Borut Razem <borut.razem AT siol.net>
703
704         * support/regression/tests/bug-221100.c, support/regression/shifts.c,
705           support/regression/absolute.c:
706           applied patch #2105615: Some PIC16 testcase fixlets
707           thanks Mauro Giachero
708
709 2008-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
710
711         * src/z80/gen.c (genCmpGt, genCmpLt): fixed bug 2094505
712         * support/regression/tests/bug2094505.c: new, added
713
714 2008-09-07 Borut Razem <borut.razem AT siol.net>
715
716         * src/SDCCglue.c, src/SDCCast.c:
717           fixed throw of "excess elements" warning for char arrays
718         * support/regression/tests/nullstring.c:
719           disable warning about excess elements in array of chars initializer
720
721 2008-09-07 Maarten Brock <sourceforge.brock AT dse.nl>
722
723         * as/z80/aslist.c (lstsym): changed old K&R to ANSI
724         * src/SDCCicode.c (geniCodeCritical): fixed bug for hc08
725         * src/z80/gen.c (genCritical, genEndCritical): fixed bug 2077267
726         * support/regression/tests/bug2077267.c: new, added
727
728 2008-09-05 Raphael Neider <rneider AT web.de>
729
730         * configure.in, Makefile.common.in: add support for ccache,
731           remove spurious $VERSION output, detect doc-tools even without
732           --enable-doc to facilitate later manual doc-builds, minor cleanup
733         * configure: regenerated
734
735         * doc/Makefile.in: quieten pdflatex, makeindex, and latex2html,
736           avoid races in parallel VPATH builds
737         * doc/clean.mk: remove .lyx files in the builddir for VPATH builds
738         * doc/sdccman.lyx: mention --without-ccache configure option
739
740 2008-09-01 Raphael Neider <rneider AT web.de>
741
742         * src/pic16/gen.c (pic16_derefPtr): handle CPOINTERs as well
743         * (genConstPointerGet): fix reading bitfields from __code space
744         * src/pic16/glue.c (pic16_printIvalBitFields): correctly mask
745           bitfield initializers (fix regression test bug1856409.c)
746         * (pic16_printIvalCharPtr,pic16_printIvalPtr): generalized to support
747           arbitrary sizes
748
749 2008-08-31 Raphael Neider <rneider AT web.de>
750
751         * src/pic16/gen.c (genAssign): removed useless compiler output
752         * (genPointerGet,genPointerSet,genCast),
753           src/pic16/glue.c (pic16_printGPointerType):
754           also handle PPOINTERs just to avoid spurious asserts
755         * (pic16_printIvalType,pic16_printIvalBitFields):
756           generalized to arbitrary type/bitfield sizes, allows compilation of
757           regression test bug-1981238.c
758         * (pic16_printIvalChar): fix regression test structflexarray.c
759         * (pic16_printIvalArray): avoid SIGSEGV on uninitialized strings
760           in initialized structs and fix #1843745
761         * (pic16_printIvalStruct): always output initializers for all fields,
762           even those not explicitly given, fixes zeropad.c regression test
763         * (pic16_printIvalUnion): fix union initializers (bug1426356.c,
764           #2073635, #1567098, and #1485812)
765         * src/pic16/main.c (_pic16_keywords): remove unsupported 'pdata'
766
767 2008-08-31 Borut Razem <borut.razem AT siol.net>
768
769         * support/regression/tests/bug-895992.c,
770           support/regression/tests/onebyte.c:
771           enabled pic16 regression testing since the bugs
772           1511794: pic16: regression test bug-895992.c fails
773           1444425: onebyte.c regression tes fails on pic16
774           are fixed, probably by fixing
775           2048464: PIC16: fix genUminus - addresses not.c regression test
776         * src/SDCCsymt.c, src/SDCCglue.c,
777           support/regression/tests/bug-1981238.c:
778           applied patch 2076664: fix #1981238 + SIGSEGV in SDCCGlue.c
779           thanks to RvS
780
781 2008-08-30 Borut Razem <borut.razem AT siol.net>
782
783         * support/cpp/libcpp/files.c: SDCPP synchronized with GCC CPP
784           release version 4.3.2
785
786 2008-08-24 Raphael Neider <rneider AT web.de>
787
788         * device/lib/pic16/configure, device/lib/pic16/configure.ac:
789           always use the sdcc from the current build tree (ignore $CC from
790           the environment, fixes compile farm builds)
791         * device/lib/Makefile.in: rename .a into .lib for compatibility,
792           remove more build products from install directory
793         * sdcc/src/pic16/main.c (_pic16_linkEdit,_pic16_finaliseOptions)
794         * sdcc/support/scripts/sdcc.nsi: revert to .lib extension for libs
795
796 2008-08-24 Borut Razem <borut.razem AT siol.net>
797
798         * src/SDCC.y: applied patch
799           2050245: Fix # 1963382
800           for bug
801           1963382: Listing File - C file comment is incorrect
802           thanks to RvS
803
804 2008-08-23 Borut Razem <borut.razem AT siol.net>
805
806         * src/pic16/gen.c: applied patch
807           2048464: PIC16: fix genUminus - addresses not.c regression test
808           thanks Mauro Giachero
809
810 2008-08-22 Borut Razem <borut.razem AT siol.net>
811
812         * device/lib/pic16/configure, device/lib/pic16/configure.ac,
813           src/pic16/main.c: allow spaces in gpasm and gplink paths
814
815 2008-08-15 Philipp Klaus Krause <pkk AT spth.de>
816
817         * src/z80/peep.c,
818         * src/z80/peeph-z80.def: minor peephole improvement
819
820 2008-08-15 Raphael Neider <rneider AT web.de>
821
822         * src/z80/gen.c (_vemit2): suppress compiler warning
823
824         * src/pic/*.[ch]: make proper use of header files and avoid
825           ad-hoc extern declarations, mark module-local helpers 'static',
826           removed dead/replaced code, no functional changes
827         * src/pic16/pcode.c: disentangled from pic14 backend
828
829 2008-08-14 Philipp Klaus Krause <pkk AT spth.de>
830
831         * src/z80/gen.c: fixed #2051348
832         * support/regression/tests/bug-2051348.c: regression test for #2051348
833
834 2008-08-10 Raphael Neider <rneider AT web.de>
835
836         * configure.in,
837         * Makefile.common.in: export PACKAGE for $docdir,
838           fixes #1957036, avoid some "underquoted definition" warnings
839         * configure: regenerated
840
841 2008-08-10 Raphael Neider <rneider AT web.de>
842
843         * device/lib/pic16/**: build pic16 library using autotools for
844           improved dependency tracking
845
846         * device/lib/Makefile.in,
847         * src/pic16/main.c,
848         * support/scripts/sdcc.nsi: adapt to changes in filenames (s/.lib/.a/)
849
850 2008-08-10 Raphael Neider <rneider AT web.de>
851
852         * src/pic/pcode.c (ReuseReg): do not overlay the registers used for
853           local variables if --nooverlay is given, workaround for #2023121
854
855 2008-08-08 Raphael Neider <rneider AT web.de>
856
857         * src/pic16/genarith.c (genAddLit): fix structure access (#1888004)
858
859 2008-08-08 Raphael Neider <rneider AT web.de>
860
861         * src/pic/pcoderegs.c,
862         * src/pic/pcode.c,
863         * src/pic16/pcode.c: replace own SAFE_snprintf with common SNPRINTF
864
865 2008-08-07 Borut Razem <borut.razem AT siol.net>
866
867         * src/SDCCval.c, src/SDCCmain.c, src/SDCC.lex,
868           device/lib/pic/Makefile.rules, device/lib/ds390/Makefile.in,
869           device/lib/ds400/Makefile.in, device/lib/hc08/Makefile.in,
870           support/cpp/libcpp/lex.c,  doc/sdccman.lyx:
871           applied modified patch 2038174: Add support for binary constants v2
872           thanks Mauro Giachero
873         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.3
874
875 2008-08-04 Raphael Neider <rneider AT web.de>
876
877         * doc/sdccman.lyx,
878         * src/pic16/device.h,
879         * src/pic16/glue.c,
880         * src/pic16/main.c: enable --optimize-goto by default
881
882         * device/lib/pic16/Makefile.common.in: suppress removed option
883
884         * src/pic16/gen.c,
885         * src/pic16/genutils.c: avoid too long relative branches (#2031890)
886
887 2008-07-30 Borut Razem <borut.razem AT siol.net>
888
889         * src/pic16/device.c, src/pic16/glue.c, src/pic16/pcode.c:
890           applied patch 22032433: PIC16: fix constant strings,
891           thanks Mauro Giachero
892
893 2008-07-29 Borut Razem <borut.razem AT siol.net>
894
895         * src/pic16/gen.c: applied patches:
896           2030306: [1/3] PIC16: fix failing rotate.c tests on 16-bit variables,
897           2030307: [2/3] PIC16: fix failing rotate.c tests for 32-bit var (1),
898           2030310: [3/3] PIC16: fix failing rotate.c tests for 32-bit var (2),
899           thanks Mauro Giachero
900
901 2008-07-13 Philipp Klaus Krause <pkk AT spth.de>
902
903         * src/port.h: Fixed typo in comment
904
905 2008-07-12 Philipp Klaus Krause <pkk AT spth.de>
906
907         * src/z80/mappings.i: Implemented RFE #1919415
908         * src/z80/peeph-z80.def: Implemented RFE #1919415, #1861376,
909           #1880202, #1914434, prepared for RFE #1703943
910
911 2008-07-12 Philipp Klaus Krause <pkk AT spth.de>
912
913         * src/z80/peeph.def,
914         * src/z80/peeph-z80.def,
915         * src/z80/peeph-gbz80.def: separate Z80 from GBZ80 peepholes in
916           preparation for Z80 peephole improvements
917
918 2008-06-21 Raphael Neider <rneider AT web.de>
919
920         * device/include/pic16/pic18f66j60.h,
921         * device/include/pic16/pic18f66j65.h,
922         * device/include/pic16/pic18f67j60.h,
923         * device/include/pic16/pic18f86j60.h,
924         * device/include/pic16/pic18f86j65.h,
925         * device/include/pic16/pic18f87j60.h,
926         * device/include/pic16/pic18f96j60.h,
927         * device/include/pic16/pic18f96j65.h,
928         * device/include/pic16/pic18f97j60.h,
929         * device/lib/pic16/libdev/pic18f66j60.c,
930         * device/lib/pic16/libdev/pic18f66j65.c,
931         * device/lib/pic16/libdev/pic18f67j60.c,
932         * device/lib/pic16/libdev/pic18f86j60.c,
933         * device/lib/pic16/libdev/pic18f86j65.c,
934         * device/lib/pic16/libdev/pic18f87j60.c,
935         * device/lib/pic16/libdev/pic18f96j60.c,
936         * device/lib/pic16/libdev/pic18f96j65.c,
937         * device/lib/pic16/libdev/pic18f97j60.c,
938         * device/include/pic16/pic16devices.txt,
939         * device/include/pic16/pic18fregs.h,
940         * device/lib/pic16/pics.all: added new devices
941
942         * device/include/pic16/adc.h,
943         * device/lib/pic16/libio/adc/adcbusy.c,
944         * device/lib/pic16/libio/adc/adcopen.c,
945         * device/lib/pic16/libio/adc/adcsetch.c,
946         * device/lib/pic16/libio/i2c/i2copen.c,
947         * device/lib/pic16/libio/usart/uopen.c: adapted to new devices,
948           all changes from a patch by Anton Strobl
949
950 2008-06-12 Borut Razem <borut.razem AT siol.net>
951
952         * sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/bp.cc,
953           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
954           sim/ucsim/z80.src/z80cl.h, sim/ucsim/z80.src/z80.cc,
955           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
956           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
957           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/uc390.cc,
958           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/uc390cl.h,
959           sim/ucsim/avr.src/avrcl.h, sim/ucsim/avr.src/avr.cc:
960           fixed bug 1990586: s51 simulator, uc::disass() unimplemented
961           by applying the modified patch from Risto Huotari
962
963 2008-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
964
965         * .version,
966         * doc/sdccman.lyx: bumped sdcc version to 2.8.2
967         * src/ds390/gen.c (aopPutUsesAcc, genAddrOf): fixed bug 1015185
968         * src/mcs51/gen.c (genNearPointerGet, genNearPointerSet): fixed bug 1938300
969         * support/regression/tests/bug1938300.c: new, added
970
971 2008-06-03 Maarten Brock <sourceforge.brock AT dse.nl>
972
973         * device/include/asm/ds390/features.h,
974         * device/include/asm/mcs51/features.h,
975         * device/include/mcs51/regc515c.h: inserted LGPL notice
976
977 2008-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
978
979         * device/lib/gbz80/div.s,
980         * device/lib/z80/div.s: fixed bug 1904314 by applying a modified part of
981           patch 1597883, Thanks Robert Ramey
982
983 2008-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
984
985         * src/SDCCast.c (createIvalType, createIvalStruct, createIvalArray,
986           createIvalCharPtr, createIvalPtr, createIval),
987         * src/SDCCval.h
988         * src/SDCCval.c (convertIListToConstList, list2expr): handle incomplete
989           initializers for local auto variables
990         * support/regression/tests/zeropad.c: added testcase for auto initializers
991
992 2008-05-26 Raphael Neider <rneider AT web.de>
993
994         * device/lib/pic16/startup/crt0.c,
995         * device/lib/pic16/startup/crt0i.c,
996         * device/lib/pic16/startup/crt0iz.c: clean up, make use of access bank
997           explicit, fixed curr_entry loop for >= 256 initializer records,
998           removed debug code (write to 0xf7e)
999
1000 2008-05-25 Raphael Neider <rneider AT web.de>
1001
1002         * device/include/pic/pic16f627a.h,
1003         * device/include/pic/pic16f628a.h,
1004         * device/include/pic/pic16f648a.h: added missing ports
1005
1006 2008-05-20 Maarten Brock <sourceforge.brock AT dse.nl>
1007
1008         * device/include/float.h: added __INFINITY
1009         * device/lib/_fsadd.c: handle overflows
1010         * device/lib/_fsmul.c,
1011         * device/lib/_fsdiv.c: use __INFINITY
1012         * device/lib/_fseq.c,
1013         * device/lib/_fsneq.c: handle -0.0
1014         * sim/ucsim/s51.src/uc89c51r.cc,
1015         * sim/ucsim/s51.src/uc89c51rcl.h: fixed bug 1385430
1016         * sim/ucsim/sim.src/hwcl.h: */* confuses VC
1017         * src/mcs51/gen.c (genSend): fixed bug with --xstack
1018         * support/regression/ports/mcs51-xstack-auto/spec.mk: print floats
1019         * support/regression/tests/snprintf.c: test bug with --xstack
1020
1021 2008-05-19  Philipp Klaus Krause <pkk AT spth.de>
1022
1023         * src/SDCCpeeph.c (callFuncByName):
1024           Support nested parenthesis in peephole function arguments (#1967300)
1025
1026 2008-05-19 Raphael Neider <rneider AT web.de>
1027
1028         * src/pic16/gen.c (pic16_emitpLabel,pic16_emitpLabelFORCE):
1029           fixed duplicate labels (#1911325)
1030
1031 2008-05-19 Raphael Neider <rneider AT web.de>
1032
1033         * src/regression/empty.c: suppress warning
1034         * src/regression/pointer1.c: enabled index_by_pointer()
1035         * src/regression/inline.c: now works for pic16 as well
1036
1037         * src/pic16/device.c: include dbuf declarations
1038         * src/pic16/device.h: removed obsolete prototypes
1039
1040         * src/pic16/gen.c, src/pic16/gen.h: moved generic pointer tags
1041         * src/pic16/glue.c: made purely local functions static,
1042           (pic16_printGPointerType, pic16_printIvalCharPtr,
1043           pic16_printIvalFuncPtr, pic16_printIvalPtr): fixed initialized
1044           generic pointers' tags (#1961866)
1045
1046         * src/pic16/pcode.c (assignValnums): optimize literal assignments
1047
1048 2008-05-19 Borut Razem <borut.razem AT siol.net>
1049
1050         * support/scripts/sdcc.nsi: remove uninstall.exe after uninstallation,
1051           fixed typo, uninstall include/pic16/pic16devices.txt
1052
1053 2008-05-18 Borut Razem <borut.razem AT siol.net>
1054
1055         * support/Utils/dbuf_string.[ch]: added dbuf_chomp(),
1056           the buffer is null terminated
1057         * src/device/pic16.c:
1058           applied modified patch 1965676: Patch for Win32 16 bit PIC
1059         * sdcc_vc_in.h: defined YY_NO_UNISTD_H
1060
1061 2008-05-16 Maarten Brock <sourceforge.brock AT dse.nl>
1062
1063         * src/SDCC.lex (check_type),
1064         * src/SDCC.y (type_specifier2 TYPE_NAME): fixed bug 1925942
1065         * as/hc08/clean.mk,
1066         * as/mcs51/clean.mk,
1067         * as/z80/clean.mk: also clean *.dep
1068         * device/lib/pic16/libsdcc/stack/Makefile,
1069         * sim/ucsim/libtool: removed as they are rebuild by configure
1070         * src/clean.mk: removed izt, so Makefile is not deleted for distclean
1071
1072 2008-05-13 Maarten Brock <sourceforge.brock AT dse.nl>
1073
1074         * src/SDCCast.c (fixupInline, createFunction): save currBlockno in
1075           fixupInline instead of createFunction to fix bug 1864577
1076           (inlineFindMaxBlockno): removed, use global blockNo
1077         * src/SDCCglobl.h: added blockNo
1078         * src/z80/peep.c,
1079         * src/z80/peep.h: modified properties
1080         * support/regression/tests/bug1864577.c: new, added
1081
1082 2008-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
1083
1084         * as/mcs51/asdata.c,
1085         * as/mcs51/asm.h: added org_cnt
1086         * as/mcs51/asmain.c (main, asmbl): fixed bug 1957716, changed old K&R to ANSI
1087         * as/mcs51/asout.c: changed old K&R to ANSI
1088         * as/mcs51/Makefile.in: use common identifiers
1089         * as/hc08/asdata.c,
1090         * as/hc08/asexpr.c,
1091         * as/hc08/asm.h,
1092         * as/hc08/asmain.c,
1093         * as/hc08/asout.c,
1094         * as/hc08/Makefile.bcc,
1095         * as/hc08/Makefile.in: synchronized with as/mcs51/*
1096         * sdcc_vc_in.h: added define __func__
1097         * src/SDCCast.c (expandInlineFuncs): applied patch 1957148 to fix bug 1717305,
1098           Thanks Ruud van Silfhout
1099         * support/regression/tests/bug1717305.c: new, added
1100
1101 2008-05-05 Borut Razem <borut.razem AT siol.net>
1102
1103         * support/regression/Makefile.in,
1104           support/regression/ports/ds390/spec.mk,
1105           support/regression/ports/hc08/spec.mk,
1106           support/regression/ports/mcs51-common/spec.mk,
1107           support/regression/ports/pic14/spec.mk,
1108           support/regression/ports/pic16/spec.mk,
1109           support/regression/ports/ucz80/spec.mk,
1110           support/regression/ports/z80/spec.mk:
1111           added INC_DIR and LIBDIR paths
1112         * src/ds390/gen.c: removed duplicated selicolon
1113
1114 2008-05-04 Borut Razem <borut.razem AT siol.net>
1115
1116         * support/regression/Makefile.in,
1117           support/regression/fwk/lib/testfwk.c,
1118           support/regression/ports/ds390/spec.mk,
1119           support/regression/ports/hc08/spec.mk,
1120           support/regression/ports/mcs51-common/spec.mk,
1121           support/regression/ports/mcs51-large/spec.mk,
1122           support/regression/ports/mcs51-medium/spec.mk,
1123           support/regression/ports/mcs51-small/spec.mk,
1124           support/regression/ports/mcs51-stack-auto/spec.mk,
1125           support/regression/ports/mcs51-xstack-auto/spec.mk,
1126           support/regression/ports/pic14/spec.mk,
1127           support/regression/ports/pic16/spec.mk,
1128           support/regression/ports/ucz80/spec.mk:
1129           added possibility to define the sdcc binary directory SDCC_BIN_PATH
1130           used to run regeression tests
1131
1132 2008-05-01 Raphael Neider <rneider AT web.de>
1133
1134         * doc/sdccman.lyx, support/scripts/inc2h-pic16.pl: updated list of
1135           supported devices and instructions to add new ones
1136
1137 2008-05-01 Raphael Neider <rneider AT web.de>
1138
1139         * device/include/pic16/adc.h,
1140           device/lib/pic16/libio/adc/adcbusy.c,
1141           device/lib/pic16/libio/adc/adcopen.c,
1142           device/lib/pic16/libio/adc/adcsetch.c: support old 18f242 and new
1143           18f2455 style ADC devices, based on patch #1776197
1144         * device/lib/pic16/libio/adc/adcclose.c,
1145           device/lib/pic16/libio/adc/adcconv.c,
1146           device/lib/pic16/libio/adc/adcread.c: cosmetic changes
1147         * device/include/pic16/{pic18f2331.h,pic18f2431.h},
1148           device/lib/pic16/libdev/{pic18f2331.c,pic18f2431.c}: reuse 18f4331
1149         * device/include/pic16/pic18f4431.h,
1150           device/lib/pic16/libdev/pic18f4431.c: remove outdated comments
1151         * device/lib/pic16/libio/adc.ignore: forbid unhandled devices
1152
1153 2008-05-01 Raphael Neider <rneider AT web.de>
1154
1155         * src/pic16/device.h: removed unused field PIC16_device.sfrRange,
1156           moved xinst flag into pic16_options_t
1157         * src/pic16/device.c (default_device, pic16_list_devices,
1158           pic16_find_device): removed references to sfrrange
1159         * src/pic16/gen.c (genFunction),
1160           src/pic16/glue.c (pic16initialComments),
1161           src/pic16/main.c (pic16_optionsTable),
1162           src/pic16/ralloc.c (newReg, pic16_writeUsedRegs): updated references
1163           to xinst
1164         * device/include/pic16/pic16devices.txt: removed sfrrange lines
1165
1166 2008-04-29 Raphael Neider <rneider AT web.de>
1167
1168         * src/pic16/devices.inc,
1169           device/include/pic16/pic16devices.txt: replaced compiled-in list
1170           of devices with a variant parsed at runtime
1171         * src/pic16/device.c: added support for parsing pic16devices.txt,
1172           clean up
1173         * src/pic16/device.h: removed (now) unused fields from PIC_device
1174         * src/pic16/main.c: removed #pragma maxram,
1175           (_pic16_initPaths): removed bogus generation of search paths,
1176           setup the port proper only after the search paths (for
1177           pic16devices.txt) are set up,
1178           (_pic16_finaliseOptions): moved processor dependant code here
1179           from _pic16_initPaths(), clean up
1180         * src/pic16/ralloc.c (pic16_init_stack),
1181         * src/pic16/ralloc.h,
1182         * src/pic16/pcode.c: clean up
1183         * device/include/Makefile.in,
1184           support/scripts/sdcc.nsi: also install/package pic16devices.txt
1185         * support/scripts/inc2h-pic16.pl: updated instructions
1186
1187 2008-04-29 Raphael Neider <rneider AT web.de>
1188
1189         * device/include/pic16/{pic18f2480.h, pic18f2580.h, pic18f4423.h,
1190           pic18f4480.h, pic18f4523.h, pic18f4580.h, pic18f6585.h, pic18f8585.h},
1191           device/lib/pic16/libdev/{pic18f2480.c, pic18f2580.c, pic18f4423.c,
1192           pic18f4480.c, pic18f4523.c, pic18f4580.c, pic18f6585.c, pic18f8585.c}:
1193           added missing family members and 18f2480/2580/4480/4580 family
1194         * device/include/pic16/{pic18f2423.h, pic18f2523.h}: use 18f4523.h
1195         * device/include/pic16/pic18f2525.h: use 18f4620.h
1196         * device/include/pic16/pic18f6680.h: use 18f8680.h
1197         * device/include/pic16/pic18fregs.h,
1198           device/lib/pic16/pics.all,
1199           src/pic16/devices.inc: add new devices
1200         * device/lib/pic16/libdev/{pic18f2423.c, pic18f2523.c}: use 18f4523.c
1201         * device/lib/pic16/libdev/pic18f2525.c: use 18f4620.c
1202         * device/lib/pic16/libdev/pic18f6680.c: uso 18f8680.c
1203         * device/lib/pic16/libio/{adc.ignore, i2c.ignore, usart.ignore}:
1204           prevent attempting to build the libio for some new devices
1205
1206 2008-04-29 Raphael Neider <rneider AT web.de>
1207
1208         * debugger/mcs51/Makefile.in: fixed paths to sources
1209
1210 2008-04-25 Borut Razem <borut.razem AT siol.net>
1211
1212         * as/link/lklibr.c: moved from as/link/z80/lklibr.c
1213         * as/link/hc08/lklibr.c, as/link/mcs51/lklibr.c: deleted
1214         * as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
1215         * as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
1216           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
1217           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
1218           as/link/z80/linkz80.dsp: lklibr.c moved
1219         * doc/INSTALL.txt: binary archives in bz2 format
1220         * support/cpp/auto-host_vc_in.h: CPP2 replaced with CPP
1221
1222 2008-04-23 Maarten Brock <sourceforge.brock AT dse.nl>
1223
1224         * src/SDCCglue.c (printIvalType, printIvalBitFields): fixed bug 1856409
1225         * support/regression/tests/bug1856409.c: new, added
1226
1227 2008-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
1228
1229         * src/z80/peep.c,
1230         * src/mcs51/peep.c: Use werror for error messages.
1231         * src/SDCCicode.c (geniCodeConditional),
1232         * src/SDCCsymt.c (structElemType): fixed bug 1839321
1233         * src/z80/Makefile.bcc,
1234         * src/z80/z80.dsp: added src/z80/peep.c/h
1235         * support/regression/tests/bug1839321.c: new, added
1236
1237 2008-04-20 Raphael Neider <rneider AT web.de>
1238
1239         * device/include/pic16/pic18f2455.h: added bitfields for port C
1240
1241 2008-04-20 Philipp Klaus Krause <pkk AT spth.de>
1242
1243         * src/z80/peep.c: Use werror for error messages.
1244
1245 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
1246
1247         * src/z80/peep.h (declaration of notUsed()),
1248         * src/z80/main.c (enabled notUsed() for z80 port, documented z80_port
1249           struct),
1250         * src/z80/z80.h (added dependency on peep.h),
1251         * src/z80/peep.c (definition of notUsed()): Implemented RFE #1880202
1252           for Z80.
1253
1254 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
1255
1256         * src/SDCCpeeph.c (added support for notUsed()),
1257         * src/mcs51/main.c (added dependency on peep.h, documented mcs51_port
1258           struct),
1259         * src/port.h (removed dependency on mcs51/peep.h, added declaration
1260           for notUsed()): Implemented generic (that is not port-specific) part
1261           of RFE #1880202.
1262
1263 2008-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
1264
1265         * as/link/mcs51/lkmem.c (summary2): fixed bug 1796077
1266         * device/lib/libsdcc.lib,
1267         * device/lib/Makefile.in,
1268         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1269         * device/lib/calloc.c: renamed to _calloc.c
1270         * device/lib/free.c: renamed to _free.c
1271         * device/lib/malloc.c: renamed to _malloc.c
1272         * device/lib/realloc.c: renamed to _realloc.c
1273         * src/ds390/gen.c (aopGet, aopPut, genPlusBits, genDataPointerSet,
1274           genNearPointerSet, genPagedPointerSet): synchronized with mcs51/gen.c
1275         * src/ds390/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq, ifxForOp,
1276           genAnd, genOr, genXor, genIfx, gen390Code): fixed bug 1509084
1277         * src/mcs51/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq,
1278           ifxForOp, genAnd, genOr, genXor, genNearPointerGet,
1279           genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1280           genGenPointerGet, genIfx, gen51Code): fixed bug 1509084
1281         * src/ds390/gen.c,
1282         * src/mcs51/gen.c: throughout cosmetic changes for syncing both
1283         * src/SDCCsymt.h: updated IS_OP_RUONLY, IS_OP_ACCUSE
1284         * support/regression/tests/bug1509084.c: new, added
1285
1286 2008-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
1287
1288         * device/include/mcs51/cc2510fx.h: added _XPAGE
1289         * device/include/mcs51/compiler.h: cosmetic changes
1290
1291 2008-03-31 Maarten Brock <sourceforge.brock AT dse.nl>
1292
1293         * sdcc.dsw: adapted for moved cpp2, added dependency for as_z80 on
1294           config
1295
1296 2008-03-31 Borut Razem <borut.razem AT siol.net>
1297
1298         * support/cpp2 renamed to support/cpp
1299         * support/cpp2/libiberty/filenames.h, support/cpp2/libiberty/hex.c,
1300           support/cpp2/libiberty/splay-tree.c,
1301           support/cpp2/libiberty/splay-tree.h, support/cpp2/libcpp/macro.c,
1302           support/cpp2/libcpp/directives.c,
1303           support/cpp2/libcpp/include/cpplib.h,
1304           support/cpp2/libcpp/include/symtab.h,
1305           support/cpp2/libcpp/include/line-map.h,
1306           support/cpp2/libcpp/line-map.c, support/cpp2/libcpp/files.c,
1307           support/cpp2/libcpp/init.c, support/cpp2/libcpp/traditional.c,
1308           support/cpp2/libcpp/expr.c, support/cpp2/libcpp/internal.h,
1309           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/system.h,
1310           support/cpp2/libcpp/charset.c: SDCPP synchronized with GCC CPP
1311           release version 4.3.0
1312         * configure.in, configure, Makefile.in, Makefile.bcc:
1313           adapted for moved cpp2
1314
1315 2008-03-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1316
1317         * device/include/hc08/mc68hc908jkjl.h: committed fix for bug #1929739,
1318           thanks Alejandro Pustowka <alejo_pustowka AT yahoo.com.mx>
1319
1320 2008-03-30 Maarten Brock <sourceforge.brock AT dse.nl>
1321
1322         * src/SDCCloop.c (loopInvariants): applied fix for bug 1717943, thanks
1323           Robert Larice
1324         * support/regression/tests/bug1717943.c: new, added
1325
1326 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
1327
1328         * src/z80/gen.c (assignResultValue): Reverted reversal of order of
1329           bytewise return value assignments introduced in last commit.
1330
1331 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
1332
1333         * src/z80/gen.c (emitDebug, assignResultValue, genPlus, genMinus,
1334           genMult, genJumpTab):
1335           Use 16-bit instructions for addition in some additional cases,
1336           implemented RFEs #1914251, #1914245, #1922090, #1921382, #1918323.
1337
1338 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
1339
1340         * src/z80/ralloc.c (serialRegAssign, allocReg, tryAllocatingRegPair):
1341           Implemented RFE #1921450, changed some debug messages.
1342
1343 2008-03-30 Borut Razem <borut.razem AT siol.net>
1344
1345         * Small Device C Compiler 2.8.0 released
1346         * .version, doc/sdccman.lyx: changed sdcc version to 2.8.1
1347         * support/scripts/sdcc.nsi: added finish page; this version
1348           was used for 2.8.0 release
1349         * doc/knownbugs.html: removed; magically generated by the build
1350           process using gen_known_bugs.pl from now on
1351
1352 2008-03-23 Borut Razem <borut.razem AT siol.net>
1353
1354         * src/pic/gen.h: Q&D solution for the bug, found by Jim Paris
1355           and reverted it, since it was already fixed by Raphael ;-)
1356         * doc/knownbugs.html: updated for RC2
1357
1358 2008-03-22 Raphael Neider <rneider AT web.de>
1359
1360         * src/SDCCicode.c (getPtrType): avoid unnecessary extra assignments
1361           for PIC16 targets
1362
1363 2008-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
1364
1365         * src/mcs51/gen.c (adjustArithmeticResult): fixed bug 1839299
1366         * support/regression/tests/bug1839277.c: added related testBug1839299
1367
1368 2008-03-21 Maarten Brock <sourceforge.brock AT dse.nl>
1369
1370         * src/ds390/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign),
1371         * src/mcs51/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign):
1372           fixed bug 1839277
1373         * src/mcs51/gen.c: throughout only output hex constants
1374         * src/SDCCicode.c (getPtrType, geniCodeCast): fixed code size regression
1375         * support/regression/tests/bug1839277.c: new, added
1376
1377 2008-03-21 Philipp Klaus Krause <pkk AT spth.de>
1378
1379         * src/z80/ralloc.c (callFuncByName): Used // instead of /**/ to fix
1380           compilation warning about nested comments.
1381
1382 2008-03-20 Maarten Brock <sourceforge.brock AT dse.nl>
1383
1384         * src/SDCCsymt.c (comparePtrType): fixed bug 1921073
1385         * support/regression/tests/bug1921073.c: new, added
1386
1387 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
1388
1389         * src/z80/SDCCpeeph.c.c (callFuncByName):
1390           Commented function parameters.
1391
1392 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
1393
1394         * src/z80/ralloc.c (packRegsForAccUse2):
1395           disabled a broken accumulator packing optimization (fixed #1292721).
1396         * support/regression/tests/bug-1292721: Regression test for #1292721.
1397
1398 2008-03-16 Raphael Neider <rneider AT web.de>
1399
1400         * src/pic/gen.c (SetIrp,genNearPointerGet,genNearPointerSet):
1401           fixed code bloat regression using a variant of patch #1915618
1402
1403 2008-03-16 Borut Razem <borut.razem AT siol.net>
1404
1405         * support/scripts/sdcc.nsi: added section debugging macros, added SDCC
1406           icon, changed startup menu for release distribution, code cleaning,
1407           create url files instead links in startup menu
1408
1409 2008-03-16 Maarten Brock <sourceforge.brock AT dse.nl>
1410
1411         * src/SDCCcse.c (algebraicOpts): fixed bug 1579949
1412         * support/regression/tests/bug1579949.c: new, added
1413
1414 2008-03-14 Paul Stoffregen <paul AT pjrc.com>
1415
1416         * device/lib/printf_fast.c: fixed bug 1255403
1417
1418 2008-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
1419
1420         * doc/sdccman.lyx: enhanced paragraph about bankswitching for mcs51
1421         * src/cdbFile.c (cdbWriteBasicSymbol): fixed bug 1909409 for locals
1422
1423 2008-03-14 Borut Razem <borut.razem AT siol.net>
1424
1425         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated link-xx and aslink
1426           command line options
1427         * as/link/hc08/lkmain.c: converted tabs to spaces so that the usage
1428           is correctly displayed
1429         * as/link/z80/lkmain.c: usage line commented out
1430
1431 2008-03-13 Borut Razem <borut.razem AT siol.net>
1432
1433         * doc/sdccman.lyx: corrected to be able to convert to PDF,
1434           updated the list pf supported pic14 devices
1435
1436 2008-03-12 Maarten Brock <sourceforge.brock AT dse.nl>
1437
1438         * doc/sdccman.lyx: added paragraph about bankswitching for mcs51
1439
1440 2008-03-12 Borut Razem <borut.razem AT siol.net>
1441
1442         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated command line options,
1443           fixed documentation request #1718191
1444         * as/hc80/asmain.c, as/mcs51/asmain.c: added option -c to usage
1445         * doc/sdccman.lyx: added description of --no-std-crt0 gbz80
1446           command line option
1447
1448 2008-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1449
1450         * src/SDCCast.c (isConformingBody): fixed bug 1505811, thanks Robert Larice
1451         * support/regression/tests/bug1505811.c: new, added
1452
1453 2008-03-09 Raphael Neider <rneider AT web.de>
1454
1455         * device/include/pic16/pic18f2620.h,
1456         * device/include/pic16/pic18f4620.h,
1457         * device/lib/pic16/libdev/pic18f2620.c,
1458         * device/lib/pic16/libdev/pic18f4525.c,
1459         * device/lib/pic16/libdev/pic18f4620.c: merged 18f2525/2620/4525/4620
1460           family to consistently use pic18f4620.[ch], fixes #1832562
1461
1462 2008-03-09 Borut Razem <borut.razem AT siol.net>
1463
1464         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
1465           changed sdcc version to 2.8.0
1466         * knownbugs.html: regenerated
1467         * support/scripts/gen_known_bugs.pl: added number of open bugs
1468
1469 2008-03-09 Raphael Neider <rneider AT web.de>
1470
1471         * src/pic16/gen.c (pic16_mov2w_volatile): NEW, read volatile operands,
1472           (genOr): read volatile operand even if the result is known,
1473           closes #1511838
1474           (genOr,genXor): removed unused legacy code,
1475           (genDummyRead): use pic16_mov2w_volatile()
1476
1477 2008-03-08 Borut Razem <borut.razem AT siol.net>
1478
1479         * src/SDCCglue.c: fixed bug #1864582: multiple definition of char
1480           cons w. --model-large
1481         * support/regression/staticinit.c: added regression test for bug
1482           #1864582
1483
1484 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1485
1486         * src/ds390/gen.c (pushSide, genPcall),
1487         * src/hc08/gen.c (pushSide, genPcall): synchronized with mcs51
1488         * src/mcs51/gen.c: cosmetic changes
1489         * support/regression/fwk/include/testfwk.h: added macro reentrant
1490         * support/regression/tests/bug1908493.c: new, added
1491
1492 2008-03-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1493
1494         * src/SDCCdebug.c:, as/link/lkaomf51.c: Fixed bug 1909409: Pdata in OMF file
1495
1496 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1497
1498         * src/mcs51/gen.c (pushSide, genPcall): fixed bug 1908493
1499         * src/SDCCmain.c (preProcess): removed -DSDCC_PARMS_IN_BANK1 because it is
1500           already set in ds390/main.c and mcs51/main.c
1501
1502 2008-03-07 Raphael Neider <rneider AT web.de>
1503
1504         * src/regression/init0.c: new test for initialized arrays of function
1505           pointers
1506         * src/regression/Makefile: made a bit more flexible, added init0.c
1507         * src/pic/glue.c (emitIvals): hacky fix for initializing from function
1508           pointers, closes #1427663
1509
1510 2008-03-05 Borut Razem <borut.razem AT siol.net>
1511
1512         * dos/sdccman.lyx: docummented predefined macros SDCC_REVISION,
1513           SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT
1514
1515 2008-03-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1516
1517         * support/librarian/sdcclib.c:Added feature request 1908061:
1518           Synchronise sdcclib commands with ar.
1519
1520 2008-03-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1521
1522         * src/SDCCmain.c: added predefined macros SDCC_REVISION (RFE #1907229),
1523           and (depending on corresponding compiler option) SDCC_PARMS_IN_BANK1,
1524           SDCC_FLOAT_REENT, SDCC_INT_LONG_REENT
1525         * device/include/mcs51/compiler.h: removed umlauts, added double
1526           underscore
1527
1528 2008-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
1529
1530         * src/SDCCptropt.c (ptrPseudoSymConvert): fixed bug 1536762
1531         * support/regression/tests/bug1536762.c: new, added
1532         * src/SDCCutil.c,
1533         * src/SDCCutil.h: added getBuildDate()
1534         * src/SDCCmain.c (printVersionInfo),
1535         * src/SDCCglue.c (initialComments): use getBuildDate() instead of
1536           __DATE__
1537         * src/*/ralloc.c: removed IS_OP_RUONLY macro
1538         * src/ds390/ralloc.c (packRegisters),
1539         * src/mcs51/ralloc.c (packRegisters),
1540         * src/z80/ralloc.c (packRegisters): applied fix for bug 1618050, thanks
1541           Robert Larice
1542         * support/regression/tests/bug1618050.c: new, added
1543         * src/SDCCsymt.h: fixed typo in DECLSPEC2TXT
1544         * support/regression/fwk/include/testfwk.h,
1545         * support/regression/tests/bug1838000.c: moved _AUTOMEM and _STATMEM to
1546           testfwk.h
1547
1548 2008-03-04 Raphael Neider <rneider AT web.de>
1549
1550         * src/pic/gen.c: removed unused prototypes, prevent internal errors
1551           on accessing OP_SYM_TYPE(op)
1552         * src/pic/gen.h: removed unused prototype of genMinusDec()
1553         * src/pic/genarith.c (genMinus): cosmetic changes, rewritten to
1554           fix #1876953 (invalid subtraction code), removed unused code
1555
1556 2008-03-03 Raphael Neider <rneider AT web.de>
1557
1558         * src/pic/gen.c,
1559         * src/pic/gen.h,
1560         * src/pic/genarith.c,
1561         * src/pic/ralloc.c,
1562         * src/pic/ralloc.h: removed AOP_R0, AOP_R1, AOP_DPTR, AOP_DPTR2,
1563           AOP_ACC, and *_IDX and adjusted code, removed unused legacy code
1564
1565 2008-03-03 Raphael Neider <rneider AT web.de>
1566
1567         * src/pic/device.c (find_device): search user-specified paths first
1568           for pic14devices.txt, fixes #1900827
1569
1570 2008-03-02 Borut Razem <borut.razem AT siol.net>
1571
1572         * support/scripts/sdcc.nsi: fixed bug in IsNT, LogicLib-isation of
1573           AddToPath and RemoveFromPath
1574
1575 2008-03-01 Borut Razem <borut.razem AT siol.net>
1576
1577         * support/scripts/sdcc.nsi: reverted MULTIUSER page since it didn't
1578           work correctly, added debugging support if -DSDCC.DEBUG command line
1579           option is defined
1580
1581 2008-02-28 Borut Razem <borut.razem AT siol.net>
1582
1583         * doc/sdccman.lyx: cosmetic changes
1584
1585 2008-02-28 Maarten Brock <sourceforge.brock AT dse.nl>
1586
1587         * src/mcs51/ralloc.c (fillGaps): fixed bug 1839671
1588         * doc/sdccman.lyx: fixed unmeant removal of spaces
1589
1590 2008-02-27 Borut Razem <borut.razem AT siol.net>
1591
1592         * support/scripts/sdcc.nsi: corrected installation directory for
1593           current user installation mode
1594         * doc/README.txt: added Philipp Klaus Krause to the developers list
1595
1596 2008-02-27 Maarten Brock <sourceforge.brock AT dse.nl>
1597
1598         * src/mcs51/gen.c (genUnpackBits): don't generate ifxJump, instead
1599           return ifx condition
1600           (genNearPointerGet, genPagedPointerGet, genFarPointerGet,
1601           genCodePointerGet, genGenPointerGet): cleanup aop before generating
1602             ifxJump to fix bug 1838000
1603         * src/SDCCsymt.c (aggregateToPointer): fix problem for xstack
1604         * support/regression/tests/bug1838000.c: new, added
1605         * device/include/mcs51/cc1110.h: new, added, thanks to Pravin Angolkar
1606
1607 2008-02-26 Borut Razem <borut.razem AT siol.net>
1608
1609         * src/SDCCast.c, doc/sdccman.lyx: fixed RFE #1901171: inerger promotion
1610           of casted varargs
1611         * support/scripts/sdcc.nsi: added MULTIUSER page,
1612           NSIS upgraded to version 2.35
1613
1614 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1615
1616         * src/mcs51/ralloc.c (isSpiltOnStack): fixed bug 1565152
1617         * support/regression/tests/bug1565152.c: new, added
1618
1619 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1620
1621         * src/mcs51/gen.c (genPagedPointerSet): fixed bug 1670148
1622         * support/regression/ports/mcs51-xstack-auto/spec.mk: added expf.c
1623         * support/regression/tests/bug1670148.c: new, added
1624
1625 2008-02-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1626
1627         * device/include/mcs51/at89c51ed2.h: fixed bug 1901469.
1628
1629 2008-02-24 Borut Razem <borut.razem AT siol.net>
1630
1631         * src/SDCCast.c, src/SDCCast.h: fixed bug #1874922: explicit typecast
1632           is ineffective for unsigned char parameter
1633
1634 2008-02-24 Maarten Brock <sourceforge.brock AT dse.nl>
1635
1636         * src/SDCCast.c (expandInlineFuncs): fixed bug 1875869
1637         * src/SDCCglue.c (printIvalBitFields): fixed bug 1806631
1638         * support/regression/tests/bitopcse.c: removed hc08 exception, see testfwk.h
1639         * support/Util/MySystem.c (my_system): output errorcode when verbose
1640
1641 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
1642
1643         * src/z80/gen.c (genMult): Rewrote 8-bit multiplication by constant,
1644           implements #1898231
1645
1646 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
1647
1648         * device/lib/z80/mul.s: Rewrote __muluchar_rrx_s, to improve 8-bit mult.,
1649           implements #1896290
1650
1651 2008-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
1652
1653         * src/SDCCast.c (createIvalStruct): fixed bug 1466761
1654
1655 2008-02-21 Borut Razem <borut.razem AT siol.net>
1656
1657         * support/regression/Makefile.in,
1658           support/regression/ports/ds390/spec.mk,
1659           support/regression/ports/hc08/spec.mk,
1660           support/regression/ports/mcs51-common/spec.mk,
1661           support/regression/ports/pic14/spec.mk,
1662           support/regression/ports/pic16/spec.mk,
1663           support/regression/ports/ucz80/spec.mk,
1664           support/regression/ports/xa51/spec.mk:
1665           added CFLAGS when compiling timeout
1666
1667 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1668
1669         * support/regression/tests/bugs-1596270-1736867.c: Regression test for
1670           #1596270, #1736867
1671
1672 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
1673
1674         * src/SDCClrange.c (findPrevUse): fixed bug 1888147
1675         * support/regression/tests/bug1888147.c: new, added
1676
1677 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1678
1679         * src/z80/gen.c: fixed bugs #1596270, #1736867
1680
1681 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1682
1683         * src/z80/gen.c: fixed bug in register pair loading when swapping register
1684           contents, mostly fixes #1596270
1685
1686 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1687
1688         * src/z80/peeph.def,
1689         * src/z80/peeph-z80.def: moved peephole that breaks gbz80 to z80-specific
1690           peepholes, fixes #1806565
1691
1692 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
1693
1694         * src/SDCCpeeph.c (operandBaseName): added check for @Ri
1695         * src/mcs51/peeph.def (rule 177.c): added operandsNotRelated(%1 %3)
1696           fixes bug 1739475, thanks Robert Larice
1697           (rule 271): new, added
1698
1699 2008-02-18 Borut Razem <borut.razem AT siol.net>
1700
1701         * sim/ucsim/s51.src/Makefile.in: fixed error made in previous commit
1702
1703 2008-02-17 Maarten Brock <sourceforge.brock AT dse.nl>
1704
1705         * src/SDCCmain.c (linkEdit): emit -z when using --debug for z80
1706
1707 2008-02-17 Raphael Neider <rneider AT web.de>
1708
1709         * src/pic16/genarith.c,
1710         * src/pic16/gen.c,
1711         * src/pic16/gen.h,
1712         * src/pic16/genutils.c: removed unused legacy code,
1713           removed unused fields from struct asmop and struct _G
1714
1715 2008-02-17 Raphael Neider <rneider AT web.de>
1716
1717         * src/pic16/gen.c (AccRsh): cosmetic changes,
1718           (shiftR1Left2ResultSigned,shiftR1Left2Result,shiftL1Left2Result,
1719           genRightShiftLiteral): fixed to work with SFRs as result by
1720           assigning only once to result,
1721           removed a lot of unused/excluded code fragments
1722
1723 2008-02-17 Raphael Neider <rneider AT web.de>
1724
1725         * device/include/pic/pic16f88.h,
1726         * device/include/pic/pic16f886.h,
1727         * device/include/pic/pic16f887.h: added TRISA6 and TRISA7
1728
1729 2008-02-17 Borut Razem <borut.razem AT siol.net>
1730
1731         * src/z80/peeph.def: applied patch
1732           #1893626: Optimize tail calls on Z80, thanks to Philipp Krause
1733         * src/z80/gen.c, src/z80/peeph.def: applied patch
1734           #1893510: Improve logical left shift on Z80, thanks to Philipp Krause
1735         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1736           sim/ucsim/s51.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1737           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
1738           sim/ucsim/main_in.mk: renamed libutil.a to libucsimutil.a in order to
1739           enable compilation on Mac OS X 10.5 (Leopard) and XCode v3.0
1740
1741 2008-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
1742
1743         * as/link/mcs51/aslink.dsp: removed SDK define
1744         * as/link/z80/clean.mk: brought in sync with other ports
1745         * as/link/z80/lklibr.c (SdccLib, fndsym): handle the dflag here too
1746         * as/hc08/Makefile.bcc,
1747         * as/mcs51/Makefile.bcc,
1748         * as/z80/Makefile.bcc: noice.c was moved to as/asxxsrc/
1749         * src/z80/main.c (_setValues): use the now capitalized -Z,
1750           (z80_port, gbz80_port): generate debug information when asked
1751
1752 2008-02-16 Borut Razem <borut.razem AT siol.net>
1753
1754         * as/z80/asmain.c, as/z80/asm.h, as/z80/asdata.c,
1755           as/link/z80/lkmain.c, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
1756           as/z80/Makefile.in. as/z80/Makefile.bcc:
1757           applied patch #1893393: patch for as-z80 and link-z80 to generate
1758           cdb, thanks to Armin Diehl
1759         * as/*/asnoice.c, as/hc08/as_hc08.dsp, as/hc08/Makefile.in,
1760           as/mcs51/asx8051.dsp, as/mcs51/Makefile.in:
1761           asnoice.c moved to as/asxxsrc/asnoice.c
1762         * src/z80/peeph-gbz80.def: applied patch
1763           #1880235: Z80 return peephole, thanks to Philipp Krause
1764
1765 2008-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1766
1767         * .version,
1768         * doc/sdccman.lyx: bumped version to 2.7.5
1769         * src/SDCCsymt.c (compareType, comparePtrType): fixed bug 1281583
1770
1771 2008-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
1772
1773         * device/include/pic16/stdlib.h,
1774         * device/lib/pic16/libc/stdlib/ltoa.c,
1775         * device/lib/pic16/libc/stdio/vfprintf.c: ascii strings are char*
1776
1777 2008-02-13 Borut Razem <borut.razem AT siol.net>
1778
1779         * src/SDCCmain.c, src/SDCCglue.c: fixed --c1mode
1780         * src/pic16/glue.c, src/SDCCast.c, src/SDCCast.h, src/SDCCBBlock.c,
1781           src/SDCCcse.c, src/SDCCglue.c, src/SDCCicode.c, src/SDCCloop.c,
1782           src/SDCCopt.c,  src/SDCCval.c:
1783           fixed bug #1890273: SDCC Warning 154 shows wrong filename
1784
1785 2008-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1786
1787         * src/SDCCsymt.c (compareType): fixed bug 1309013
1788
1789 2008-02-09 Borut Razem <borut.razem AT siol.net>
1790
1791         * src/SDCCval.c, src/SDCCval.h:
1792           code cleaning, added function constChrVal()
1793         * src/SDCCglue.c, src/pic/glue.c, src/pic16/glue.c, src/SDCCast.c, src/SDCC.y:
1794           call constChrVal() instead constVal()
1795
1796 2008-02-01 Maarten Brock <sourceforge.brock AT dse.nl>
1797
1798         * src/SDCCast.c (resolveSymbols): added reentrancy check for parameters
1799           of function pointer
1800         * src/SDCCerr.h,
1801         * src/SDCCerr.c: changed warning W_NONRENT_ARGS to error E_NONRENT_ARGS
1802         * support/regression/tests/absolute.c: added TestStruct TestVar (see also
1803           bug 1859853)
1804
1805 2008-02-01 Raphael Neider <rneider AT web.de>
1806
1807         * device/include/pic/pic16f886.h,
1808         * device/include/pic/pic16f887.h: added RA6 and RA7
1809
1810 2008-01-24 Raphael Neider <rneider AT web.de>
1811
1812         * device/include/pic/pic16f88.h: added RA6 and RA7
1813         * device/lib/pic/libdev/disabled_pic16f886.c,
1814         * device/lib/pic/libdev/disabled_pic16f887.c: renamed and enabled
1815
1816         * src/pic16/devices.inc,
1817         * device/include/pic16/pic18f2423.h,
1818         * device/include/pic16/pic18f2523.h,
1819         * device/include/pic16/pic18fregs.h,
1820         * device/lib/pic16/pics.all
1821         * device/lib/pic16/libdev/pic18f2423.c,
1822         * device/lib/pic16/libdev/pic18f2523.c: added 18f2423 and 18f2523
1823         * device/lib/pic16/libio/i2c.ignore,
1824         * device/lib/pic16/libio/usart.ignore,
1825         * device/lib/pic16/libio/adc.ignore: ignore new devices
1826
1827 2008-01-23 Maarten Brock <sourceforge.brock AT dse.nl>
1828
1829         * src/SDCCast.c (createRMW): fixed bug 1582651
1830
1831 2008-01-20 Borut Razem <borut.razem AT siol.net>
1832
1833         * src/SDCCcse.c: partially fixed enhancement request
1834           #1793872 - multiply by -1 not collapsed
1835         * support/regression/tests/arithcsi.c: added regression test
1836
1837 2008-01-19 Maarten Brock <sourceforge.brock AT dse.nl>
1838
1839         * as/mcs51/asx8051.dsp: removed define SDK
1840         * as/mcs51/i51mch.c (machine): fixed bug 1865114
1841         * device/include/asm/ds390/features.h: fixed bug with ds390 & stack-auto
1842         * as/link/lklex.c,
1843         * as/link/mcs51/lkmain.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
1844           cosmetic changes, brought more in sync, changed old K&R to ANSI
1845
1846 2008-01-13 Borut Razem <borut.razem AT siol.net>
1847
1848         * support/scripts/sdcc.nsi: added Uninstall/reinstall page, ...
1849         * src/SDCCicode.c: fixed bug #1870216 - Error 122: dividing by zero
1850
1851 2007-12-30 Borut Razem <borut.razem AT siol.net>
1852
1853         * src/pic16/gen.c: fixed implementation of bitwise operations for
1854           pic16 target
1855         * support/regression/tests/bitwise.c: added test cases
1856
1857 2007-12-29 Borut Razem <borut.razem AT siol.net>
1858
1859         * src/SDCCasm.[ch]: renamed from asm[ch], use dbuf_getline(), ...
1860         * src/src.dsp, src/Makefile.bcc, src/Makefile.in, src/common.h,
1861           src/SDCCglue.c, src/xa51/main.c: asm.[ch] renamed to SDCCasm.[ch]
1862         * support/Util/dbuf_string.[ch]: added function dbuf_getline()
1863         * src/ds390/gen.c, src/hc08/gen.c, src/mcs51/gen.c, src/pic16/gen.c,
1864           src/pic/gen.c, src/z80/gen.c, src/xa51/gen.c, src/pic16/ralloc.c,
1865           src/pic16/pcode.[ch]: added const qualifier
1866         * as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
1867           as/mcs51/Makefile.bcc, as/mcs51/Makefile.in, as/mcs51/asx8051.dsp,
1868           as/z80/Makefile.bcc, as/z80/Makefile.in, as/z80/as_gbz80.dsp,
1869           as/z80/as_z80.dsp: added dbuf.[ch] and dbuf_string[ch] to project
1870         * as/asxxsrc/aslex.c: use dbuf_getline()
1871         * as/hc08/asdata.c, as/hc08/asexpr.c, as/hc08/asm.h, as/hc08/m08adr.c,
1872           as/mcs51/asdata.c, as/mcs51/asexpr.c, as/mcs51/asm.h,
1873           as/mcs51/i51adr.c, as/z80/asdata.c, as/z80/asexpr.c, as/z80/aslist.c,
1874           as/z80/asm.h, as/z80/z80adr.c:
1875           changed type of ib and ip to const char *
1876
1877 2007-12-28 Borut Razem <borut.razem AT siol.net>
1878
1879         * as/asxxsrc/aslex.c: moved from as/mcs51/aslex.c;
1880           introduced (readlin) - long lines are turuncated
1881         * as/hc08/as_hc08.dsp, as/mcs51/asx8051.dsp, as/z80/as_gbz80.dsp,
1882           as/z80/as_z80.dsp, as/hc08/Makefile.in, as/mcs51/Makefile.in,
1883           as/z80/Makefile.in: moved aslex.c to asxxsrc
1884         * as/hc08/aslex.c, as/z80/aslex.c: deleted
1885         * as/hc08/asmain.c, as/mcs51/asmain.c:
1886           added missing initialization of a_addr field
1887         * support/regression/tests/long_asm_line.c: added regtest for long
1888           assembler line
1889
1890 2007-12-22 Borut Razem <borut.razem AT siol.net>
1891
1892         * src/SDCC.lex: fixed bug #1852894: # character hangs the compiler
1893
1894 2007-12-20 Maarten Brock <sourceforge.brock AT dse.nl>
1895
1896         * src/SDCCsymt.c (computeType): fixed bug, thanks Fan Weiguang
1897
1898 2007-12-16 Borut Razem <borut.razem AT siol.net>
1899
1900         * device/include/pic16/stdbool.h: removed, since already exists in
1901          device/include/; this also fixes bitopcse.c regression test for pic16
1902          target
1903         * support/regression/fwk/inclusw/testfwk.h: added macro ASSERT_FAILED
1904         * src/pic16/glue.c: fixed bug #1851855: generic static pointer
1905           dereference doesn't work; covered by regression test bug1399290
1906
1907 2007-12-05 Borut Razem <borut.razem AT siol.net>
1908
1909         * doc/sdccman.lyx: fixed bug #1844509 - Correction to Manual 4.6.9
1910           Adding new PIC16
1911
1912 2007-12-01 Borut Razem <borut.razem AT siol.net>
1913
1914         * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc:
1915           corrected handling of the highest_valid_address
1916
1917 2007-11-17 Raphael Neider <rneider AT web.de>
1918
1919         * src/pic/main.c (_asmCmd): include debug arguments (-g as $3)
1920         * src/pic/glue.c (picglue): emit .file if --debug is given
1921
1922 2007-11-17 Raphael Neider <rneider AT web.de>
1923
1924         * src/pic16/genarith.c (pic16_genPlus, pic16_genMinus): take special
1925         care when left or right operand resides in result, fixes #1830220
1926
1927 2007-11-17 Borut Razem <borut.razem AT siol.net>
1928
1929         * src/SDCCglue.c, src/pic16/glue.c: reverted fix for bug
1930           #983491 - "Merge duplicate strings function is ineffective"
1931         * support/regression/tests/bug-983491.c: regtest disabled
1932         * as/asxxsrc: created
1933           as/asxxsrc/assym.c, as/asxxsrc/strcmpi.c: moved
1934           as/hc08/assym.c, as/mcs51/assym.c, as/strcmpi.c,
1935           as/z80/assym.c, as/hc08/asstore.c, as/mcs51/asstore.c: deleted
1936           as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
1937           as/hc08/asm.h, as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
1938           as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
1939           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
1940           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
1941           as/link/z80/linkz80.dsp, as/mcs51/Makefile.bcc, as/mcs51/Makefile.in,
1942           as/mcs51/asm.h, as/mcs51/asx8051.dsp, as/z80/Makefile.bcc,
1943           as/z80/Makefile.in, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
1944           as/z80/Makefile.as_hc08, as/mcs51/Makefile.asx8051: modified
1945           created as/asxxsrc directory, assym.c and strcpi.c moved into it
1946
1947 2007-11-15 Maarten Brock <sourceforge.brock AT dse.nl>
1948
1949         * device/include/stdarg.h: added and removed some casts
1950         * src/SDCCsymt.c (compareType): Fully check types between generic and
1951           non-generic pointers, also accept ptr-ptr to void-ptr assignments
1952
1953 2007-11-13 Borut Razem <borut.razem AT siol.net>
1954
1955         * support/regression/tests/bug-1817005.c:
1956           added regtest for bug #1817005 - as-z80 chokes on long labels
1957
1958 2007-11-12 Borut Razem <borut.razem AT siol.net>
1959
1960         * as/z80/asmain.c, as/z80/asm.h, as/z80/assym.c, as/z80/asdata.c,
1961           as/z80/asout.c, as/z80/aslist.c:
1962           fixed bug #1817005 - as-z80 chokes on long labels
1963
1964 2007-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
1965
1966         * as/hc08/asmain.c,
1967         * as/z80/asmain.c: cosmetic changes
1968         * as/hc08/alloc.h,
1969         * as/mcs51/alloc.h,
1970         * as/z80/alloc.h: removed
1971         * as/hc08/assym.c,
1972         * as/mcs51/assym.c: replaced alloc.h with stdlib.h
1973         * as/link/aslink.h: added LKDIRSEP and, LKDIRSEPSTR
1974         * as/link/hc08/Makefile.in,
1975         * as/link/mcs51/Makefile.in,
1976         * as/link/z80/Makefile.in: added -DUNIX to CFLAGS
1977         * as/link/lklex.c,
1978         * as/link/mcs51/lkarea.c,
1979         * as/link/mcs51/lkmain.c: cosmetic changes
1980         * as/link/hc08/lklibr.c,
1981         * as/link/z80/lklibr.c,
1982         * as/link/mcs51/lklibr.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
1983           used cygwin_conv_to_full_posix_path,
1984           added warnings, cosmetic changes, brought more in sync
1985           changed old K&R into ANSI function declarations
1986         * as/link/z80/lklibr.c (loadAdb): added
1987         * as/link/z80/lkmain.c: removed -- option from usage text
1988
1989 2007-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1990
1991         * src/mcs51/gen.c (outBitC): optimized for no result
1992
1993 2007-10-31 Borut Razem <borut.razem AT siol.net>
1994
1995         * src/SDCCsymt.c: fixed (hopeful properly) bug
1996           #1805702 - order of extern matters
1997         * support/regression/tests/bug-1805702.c: enabled regtest for bug
1998           #1805702
1999
2000 2007-10-29 Borut Razem <borut.razem AT siol.net>
2001
2002         * src/SDCCsymt.c: reverted bad fixed of bug #1805702
2003           - order of extern matters
2004         * support/regression/tests/bug-1805702.c: disabled regtest for bug
2005           #1805702
2006
2007 2007-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2008
2009         * src/ds390/peeph.def: replaced 24bitModeAndPortDS390 by
2010           24bitMode, portIsDS390
2011         * src/mcs51/gen.c (genOr): optimized for RFE 1750727
2012         * src/SDCCpeeph.c (flat24bitModeAndPortDS390): removed
2013           (notVolatileVariable): also check sloc names,
2014           (callFuncByName): moved ftab[] out of function and sorted it by use
2015
2016 2007-10-28 Maarten Brock <sourceforge.brock AT dse.nl>
2017
2018         * device/include/stdarg.h: fixed bug in va_start macro for --xstack
2019         * src/hc08/gen.c (aopForRemat): aop->aopu.aop_immd.from_cast_remat not set,
2020           aop->aopu.aop_immd.aop_immd2 not filled with (generic) pointer type
2021         * src/SDCCicode.c (geniCodeCast): fixed bug 880197
2022         * support/regression/tests/bug-880197.c: new, added
2023
2024 2007-10-28 Borut Razem <borut.razem AT siol.net>
2025
2026         * support/regression/Makefile.in,
2027           support/regression/ports/mcs51-large/spec.mk,
2028           support/regression/ports/mcs51-xstack-auto/spec.mk,
2029           support/regression/ports/mcs51-stack-auto/spec.mk,
2030           support/regression/ports/mcs51-medium/spec.mk,
2031           support/regression/ports/mcs51-common/spec.mk,
2032           support/regression/ports/mcs51-common/*,
2033           support/regression/ports/mcs51-small/*:
2034           mcs51 renamed to mcs51-common, created mcs51-small
2035         * src/SDCCsymt.c: fixed bug #1805702 - order of extern matters
2036         * support/regression/tests/bug-1805702.c: added regtest for bug
2037           #1805702
2038
2039 2007-10-26 Maarten Brock <sourceforge.brock AT dse.nl>
2040
2041         * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b,
2042           added new rules 265 - 270
2043         * support/regression/tests/bug1721024.c:new, added
2044         * support/regression/Makefile.in: renamed test-mcs51 to test-mcs51-small,
2045           introduced new test-mcs51 to run all mcs51 tests
2046
2047 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
2048
2049         * support/regression/tests/bug1816470.c: new, added
2050
2051 2007-10-21 Maarten Brock <sourceforge.brock AT dse.nl>
2052
2053         * src/SDCCast.c (resultTypePropagate): do propagate for LEFT_OP, do not
2054           propagate for *,+,- with float, fixed bug 1816470
2055           (decorateType): cast to resultTypeProp instead of resultType
2056
2057 2007-10-19 Borut Razem <borut.razem AT siol.net>
2058
2059         * src/pic16/glue.c: fixed bug #983491 - "Merge duplicate strings
2060           function is ineffective" for pic16 tareget
2061         * support/scripts/listerr.c: corrected include path
2062         * device/lib/_itoa.c: fixed bug #1806402 - _itoa and _uitoa leak to
2063           adjacent memory
2064
2065 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
2066
2067         * support/regression/tests/using.c: new, added
2068         * support/regression/tests/vaargs.c: fixed and enabled test
2069
2070 2007-10-18 Borut Razem <borut.razem AT siol.net>
2071
2072         * src/SDCCglue.c: fixed bug #983491 - Merge duplicate strings function
2073           is ineffective
2074         * support/regression/tests/bug-983491.c: added regtest for bug #983491
2075
2076 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
2077
2078         * doc/sdccman.lyx: documented option --Werror
2079         * src/SDCCsymt.c (checkFunction): fixed bug 1815418 by setting
2080           RegBankUsed[] earlier
2081
2082 2007-10-14 Maarten Brock <sourceforge.brock AT dse.nl>
2083
2084         * device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
2085         * src/pic/glue.c,
2086         * src/SDCCval.c,
2087         * src/SDCCast.c,
2088         * src/SDCCast.h: replaced AST_LIT_VALUE with AST_FLOAT_VALUE and
2089           AST_ULONG_VALUE
2090         * src/SDCCast.c (decorateType): improved optimization of tri-op
2091         * src/SDCCerr.c (vwerror, setWError),
2092         * src/SDCCerr.h,
2093         * src/SDCCmain.c (parseCmdLine): added option --Werror to treat all
2094           warnings as errors, thanks Stas Sergeev for PATCH 1813211
2095
2096 2007-10-13 Maarten Brock <sourceforge.brock AT dse.nl>
2097
2098         * src/mcs51/gen.c (leftRightUseAcc): use macro IS_OP_ACCUSE
2099         * src/SDCCast.c (decorateType): optimize bit=cond?1:0, RFE 1738430
2100         * support/regression/tests/bug-223113.c,
2101         * support/regression/tests/bug-426632.c,
2102         * support/regression/tests/bug-468811.c,
2103         * support/regression/tests/bug-477835.c,
2104         * support/regression/tests/bug-478094.c,
2105         * support/regression/tests/bug-499644.c,
2106         * support/regression/tests/bug-524209.c,
2107         * support/regression/tests/bug-524211.c,
2108         * support/regression/tests/packcast.c,
2109         * support/regression/tests/structidx.c: added empty tests
2110         * support/regression/tests/bug-607243.c: enabled test
2111
2112 2007-10-06 Borut Razem <borut.razem AT siol.net>
2113
2114         * .version, doc/sdccman.lyx: bumped version to 2.7.4 to indicate the full
2115            support of universal binaries on Mac OS X
2116
2117 2007-10-02 Borut Razem <borut.razem AT siol.net>
2118
2119         * src/SDCCval.h: unified double2ul macro for all platforms
2120         * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
2121         * support/regression/tests/bitwise.c: added regtest for bug #1777758
2122
2123 2007-09-30 Borut Razem <borut.razem AT siol.net>
2124
2125         * src/SDCCval.h: fixed bug #1739860 - sdcc does not work correctly on some
2126           platforms
2127         * sdcc_vc_in.h: enabled warnings
2128         * src/hc08/gen.c: fixed MSVC warning C4146: unary minus operator applied to
2129           unsigned type, result still unsigned
2130         * src/mcs51/peep.c: fixed gcc warning: suggest parentheses around && within ||
2131
2132 2007-09-28 Raphael Neider <rneider AT web.de>
2133
2134         * src/pic/device.c (find_device): prevent buffer underflow error
2135         * src/pic/pcoderegs.c (OptimizeRegUsage): avoid dereferencing
2136           the just destroyed list entry
2137
2138 2007-09-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2139
2140         * doc/sdccman.lyx: there's a dedicated wiki page for cmake and sdcc, thanks
2141           Alexander Neundorf
2142
2143 2007-09-18 Borut Razem <borut.razem AT siol.net>
2144
2145         * src/SDCCval.c: fixed MSVC warning C4146: unary minus operator
2146          applied to unsigned type, result still unsigned
2147
2148 2007-09-17 Borut Razem <borut.razem AT siol.net>
2149
2150         * src/SDCC.y, src/SDCCast.c, src/SDCCcse.c, src/SDCCglue.c,
2151           src/SDCCicode.c, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCval.c,
2152           src/SDCCval.h, src/hc08/gen.c, src/avr/gen.c, src/ds390/gen.c,
2153           src/mcs51/gen.c, src/pic/gen.c, src/pic/genarith.c, src/pic/glue.c,
2154           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/genarith.c,
2155           src/pic16/genutils.c, src/pic16/glue.c, src/pic16/main.c,
2156           src/z80/gen.c, src/z80/ralloc.c:
2157           fixed bug #1739860 - sdcc does not work correctly on some platforms
2158           (not finished)
2159           introduced and used ulFromVal(), double2ul(), used strtod() instead sscanf()
2160
2161 2007-09-17 Raphael Neider <rneider AT web.de>
2162
2163         * src/pic16/device.c: reverted to previous version
2164         * device/lib/pic16/Makefile.common.in: quieten gpasm via -Wa,-q
2165
2166 2007-09-16 Raphael Neider <rneider AT web.de>
2167
2168         * src/pic16/device.c (pic16_dump_usection): do not reserve 0 bytes,
2169           as this raises a ton of gpasm warnings, just emit a second label
2170         * src/pic16/devices.inc,
2171         * device/lib/pic16/pics.all,
2172         * device/lib/pic16/libdev/pic18f2585.c,
2173         * device/lib/pic16/libdev/pic18f2680.c,
2174         * device/lib/pic16/libdev/pic18f2682.c,
2175         * device/lib/pic16/libdev/pic18f2685.c,
2176         * device/lib/pic16/libdev/pic18f4585.c,
2177         * device/lib/pic16/libdev/pic18f4680.c,
2178         * device/lib/pic16/libdev/pic18f4682.c,
2179         * device/lib/pic16/libdev/pic18f4685.c,
2180         * device/include/pic16/pic18f2585.h,
2181         * device/include/pic16/pic18f2680.h,
2182         * device/include/pic16/pic18f2682.h,
2183         * device/include/pic16/pic18f2685.h,
2184         * device/include/pic16/pic18f4585.h,
2185         * device/include/pic16/pic18f4680.h,
2186         * device/include/pic16/pic18f4682.h,
2187         * device/include/pic16/pic18f4685.h,
2188         * device/include/pic16/pic18fregs.h: added 18f2585, 18f2680,
2189           18f2682, 18f2685, 18f4585, 18f4680, 18f4682, 18f4685,
2190           patch contributed by Anton Strobl, applied with changes
2191
2192 2007-09-16 Raphael Neider <rneider AT web.de>
2193
2194         * device/include/pic16/pic18f2431.h,
2195         * device/include/pic16/pic18f25j10.h,
2196         * device/include/pic16/pic18f4431.h,
2197         * device/include/pic16/pic18f45j10.h: adopted common include style
2198         * device/include/pic16/pic18f1320.h,
2199         * device/include/pic16/pic18f2320.h,
2200         * device/include/pic16/pic18f2525.h,
2201         * device/include/pic16/pic18f4320.h,
2202         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
2203         * device/include/pic16/pic18fregs.h: prepared for automatic include
2204           file selection by having DEVICE.h for every DEVICE
2205         * device/lib/pic16/libdev/pic18f2320.c,
2206         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
2207
2208         * device/lib/pic16/configure.in,
2209         * device/lib/pic16/configure: use rm -rf instead of rmdir
2210         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
2211         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
2212
2213 2007-09-09 Borut Razem <borut.razem AT siol.net>
2214
2215         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
2216           distingush between i386 and ppc Mac OS X versions
2217
2218 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2219
2220         * src/mcs51/gen.c (genReceive): fixed bug 1788177
2221         * support/regression/tests/bug1788177.c: new, added
2222
2223 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2224
2225         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
2226         * device/include/mcs51/lint.h added keyword __naked
2227
2228 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
2229
2230         * src/pic16/glue.c,
2231         * src/pic/glue.c,
2232         * src/SDCCmem.h: removed maxRegBank
2233         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
2234           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
2235         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
2236         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
2237           name and behaviour to handle banked functions
2238           (scan4op): and use it to fix bug 1786213
2239
2240 2007-09-03 Raphael Neider <rneider AT web.de>
2241
2242         * device/include/pic16/pic18f248.h,
2243         * device/include/pic16/pic18f258.h,
2244         * device/include/pic16/pic18f448.h,
2245         * device/lib/pic16/libdev/pic18f248.c,
2246         * device/lib/pic16/libdev/pic18f258.c,
2247         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
2248           added T0CONbits, fixes #1786891
2249
2250 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
2251
2252         * src/ds390/gen.c (genFarPointerSet),
2253         * src/hc08/ralloc.c (packRegisters),
2254         * src/mcs51/ralloc.c (packRegisters),
2255         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
2256           bug 1750318
2257         * src/SDCCicode.h: POINTER_SET can be true for literals too
2258         * support/regression/tests/bug1750318.c: new, added
2259
2260 2007-08-23 Borut Razem <borut.razem AT siol.net>
2261
2262         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
2263           library versions without the completition functionality
2264
2265 2007-08-22 Raphael Neider <rneider AT web.de>
2266
2267         * device/include/pic16/pic18f1220.h,
2268         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
2269
2270 2007-08-12 Borut Razem <borut.razem AT siol.net>
2271
2272         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
2273
2274 2007-08-11 Borut Razem <borut.razem AT siol.net>
2275
2276         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
2277           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
2278           support/Util/SDCCerr.[ch] moved to src
2279         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
2280           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
2281           device/examples/ds390/tinitalk/tinitalk.dsp,
2282           device/examples/serialcomm/windows/serialcomm.dsp,
2283           support/librarian/librarian.dsp:
2284           removed linking of unused odbc32.lib and odbccp32.lib
2285         * support/scripts/winres.h:
2286           added for compilation with Visual C++ 2005 Express Edition
2287
2288 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2289
2290         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
2291           and CKCON1.
2292
2293 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2294
2295         * sdccconf_in.h: update the endian test so that SPARC Solaris
2296           does not throw syntax errors
2297
2298 2007-08-06 Borut Razem <borut.razem AT siol.net>
2299
2300         * doc/sdccman.lyx: removed two index entries which prevented the
2301           generation of sdcc doc archive
2302
2303 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2304
2305         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
2306           instead of lyx 1.5.0.
2307
2308 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2309
2310         * device/include/hc08/mc68hc908apxx.h: new header contributed by
2311           Lucas Loizaga, with minor modifications. Thanks!
2312
2313 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2314
2315         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
2316           in sdcclib.
2317
2318 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2319
2320         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
2321           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
2322           with acall/ajmp.
2323
2324 2007-07-22 Borut Razem <borut.razem AT siol.net>
2325
2326         * configure.in, configure: re-introduced .version
2327         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
2328           the version reverted to 2.7.0
2329
2330 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
2331
2332         * configure.in,
2333         * doc/sdccman.lyx: bumped version to 2.7.3
2334         * device/include/mcs51/compiler.h: fixed elif->else
2335         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
2336         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
2337           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
2338            enable accuse for bit operands
2339         * src/SDCCmain.c (printVersionInfo),
2340         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
2341           environment descriptor
2342         * src/SDCCutil.h: added getBuildEnvironment
2343         * src/SDCCglue.c (initialComments): use getBuildEnvironment
2344         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
2345         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
2346         * support/regression/tests/bug1348008.c,
2347         * support/regression/tests/bug1496419.c,
2348         * support/regression/tests/bug1503067.c,
2349         * support/regression/tests/preproc.c: added empty tests
2350
2351 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
2352
2353         * support/regression/tests/bug1678803.c: new, added
2354
2355 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
2356
2357         * as/link/aslink.h,
2358         * as/link/hc08/lkihx.c,
2359         * as/link/hc08/lkrloc.c,
2360         * as/link/mcs51/lkihx.c,
2361         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
2362           ihxExtendedLinearAddress
2363         * as/link/mcs51/lkrloc.c (relr),
2364         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
2365           acall/ajmp, see bug 830513
2366
2367 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
2368
2369         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
2370           (cseBBlock): remember aggr2ptr has been used
2371         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
2372           (geniCodeAssign): fixed bug 868103
2373         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
2374           added operandSize prototype
2375         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
2376           (genDataPointerSet): use max of size of right and result,
2377           (gencjne): added parameter useCarry for optimization,
2378           (genCmpEq): use carry if appropriate,
2379           (genXor): check if operand already in carry
2380         * support/regression/tests/bug-868103.c: enabled test
2381
2382 2007-07-12 Raphael Neider <rneider AT web.de>
2383
2384         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
2385
2386 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
2387
2388         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
2389           from Robert Larice, thanks
2390         * support/regression/tests/bitopcse.c,
2391         * support/regression/tests/bitvars.c,
2392         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
2393         * support/regression/tests/bug-927659.c: enabled test for z80
2394         * support/regression/tests/bug1738367.c: added extra tests by Frieder
2395         * support/regression/tests/bug1745717.c: new, added
2396         * support/regression/tests/literalop.c,
2397         * support/regression/tests/nullstring.c: removed storage definitions that
2398           are now in testfwk.h
2399
2400 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
2401
2402         * device/include/stdbool.h: do not define __bool_true_false_are_defined
2403           and bool for targets that do not fully support it.
2404         * support/regression/tests/bug1546986.c,
2405         * support/regression/tests/bug1723128.c,
2406         * support/regression/tests/bug1734654.c,
2407         * support/regression/tests/bug1738367.c,
2408         * support/regression/tests/constantRange.c: only use bool if allowed
2409
2410 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
2411
2412         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
2413           Larice, also handle function pointers
2414         * support/regression/tests/bug1749275.c: new, added
2415
2416 2007-07-03 Borut Razem <borut.razem AT siol.net>
2417
2418         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
2419           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
2420           #1746528: SDCC should ignore ':' in inline assembler comments
2421         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
2422
2423 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
2424
2425         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
2426         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
2427
2428 2007-06-29 Borut Razem <borut.razem AT siol.net>
2429
2430         * src/SDCCmain.c: fixed bug
2431           #1744746: SDCC #4867: broken option --xram-size
2432
2433 2007-06-28 Borut Razem <borut.razem AT siol.net>
2434
2435         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
2436           find out the endianess of host machine for ucsim
2437
2438 2007-06-27 Borut Razem <borut.razem AT siol.net>
2439
2440         * support/regression/generate-cases.py: corrected the file name
2441           in warning
2442         * configure.in, configure, sdccconf_in.h: find out the endianess of
2443           host machine
2444         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
2445           negative size
2446
2447 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
2448
2449         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
2450
2451 2007-06-26 Borut Razem <borut.razem AT siol.net>
2452
2453         * support/regression/generate-cases.py: display warning if function
2454           list is empty; implemented more flexible rule for detection of
2455           testing functions, allowing return type 'void' in the same line as
2456           the function name in the function definition
2457         * support/regression/tests/bug-1654060.c: corrected test
2458         * support/librarian/sdcclib.c: fixed warning:
2459           format '%s' expects type 'char *', but argument 2 has type 'int'
2460
2461 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2462
2463         * support/librarian/sdcclib.c: Added feature Requests [1510635]
2464           Multiple infiles for sdcclib.
2465
2466 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2467
2468         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
2469           bug 1731741
2470
2471 2007-06-18 Borut Razem <borut.razem AT siol.net>
2472
2473         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
2474           how to handle comments, so they have to be removed by the
2475           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
2476         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
2477           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
2478           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
2479           table driven option hadling
2480
2481 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2482
2483         * src/SDCCast.c (decorateType),
2484         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
2485           iCode to ast level to fix bug 1738367
2486         * support/regression/tests/bug1738367.c: new, added
2487
2488 2007-06-15 Raphael Neider <rneider AT web.de>
2489
2490         * src/pic16/devices.inc,
2491         * device/lib/pic16/pics.all,
2492         * device/include/pic16/pic18fregs.h,
2493         * device/include/pic16/pic18f[24][45]20.h,
2494         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
2495           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
2496         * device/lib/pic16/Makefile.in: faster cleanup
2497
2498 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2499
2500         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
2501
2502 2007-06-13 Raphael Neider <rneider AT web.de>
2503
2504         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
2505
2506 2007-06-12 Raphael Neider <rneider AT web.de>
2507
2508         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
2509           suppress bit defines if NO_BIT_DEFINES is #define'd
2510         * device/include/pic/pic*.h: recreated all headers to include
2511           conditional bit defines
2512         * device/include/pic/pic16f886.h,
2513         * device/include/pic/pic16f887.h: fixed based on newer .inc file
2514         * device/include/pic/recreate.sh: script to recreate the complete
2515           device library files based on the currently supported devices
2516
2517 2007-06-12 Borut Razem <borut.razem AT siol.net>
2518
2519         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
2520           support/regression/Makefile.in, support/scripts/build.mak,
2521           support/scripts/Makefile.snapshot:
2522           use new svn URL scheme
2523         * doc/sdccman.lyx: SDCC Wiki moved to
2524           http://sdcc.wiki.sourceforge.net/
2525
2526 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2527
2528         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
2529         * support/regression/tests/bug1734654.c: added
2530
2531 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2532
2533         * src/SDCCast.c (decorateType): optimized '?' for equal operands
2534         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
2535           with literal operands
2536
2537 2007-06-10 Borut Razem <borut.razem AT siol.net>
2538
2539         * as/link/z80/lklibr.c: fixed mingw build warning
2540           lklibr.c:575: warning: implicit declaration of function 'tolower'
2541         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
2542           src/z80/main.c: move target specific options from src/SDCCmain.c
2543           to src/<target>/main.c
2544
2545 2007-06-09 Borut Razem <borut.razem AT siol.net>
2546
2547         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
2548           removed unused swap_sense; removed outBitCLong, replaced with outBitC
2549         * support/regression/tests/bug-1294691.c: added
2550
2551 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
2552
2553         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
2554           can also be static, fixes bug 1733438
2555         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
2556           have absolute address too
2557           (computeType): added optimization for 'cond ? true : false'
2558         * support/regression/tests/absolute.c: added test for static absolute var
2559
2560 2007-06-08 Raphael Neider <rneider AT web.de>
2561
2562         * src/regression/Makefile: suppress parallel builds, allow easy
2563           switching between pic14/pic16 ports
2564         * src/regression/picregs.h: added pic14/16 header file switch
2565         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
2566           inline.c,nestfor.c,string1.c}: include "picregs.h"
2567
2568 2007-06-07 Borut Razem <borut.razem AT siol.net>
2569
2570         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
2571           permanent solution to suppress GCC 4.2.0 c++ warning:
2572           deprecated conversion from string constant to `char *'
2573           use 'const char *' where ever required
2574         * support/regression/generate-cases.py: implemented more flexible rule
2575           for detection of testing functions, allowing white-spaces surrounding
2576           the function name and the 'void' parameter.
2577         * support/regression/tests/constantRange.c,
2578           support/regression/tests/scott-compare3.c: fixed failing regression
2579           tests, uncovered by implementation of more flexible rule for detection
2580           of testing functions
2581
2582 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
2583
2584         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
2585
2586 2007-06-04 Borut Razem <borut.razem AT siol.net>
2587
2588         * configure.in, configure, config_vc.awk: sdcc version number is now
2589           stored in configure.in; removed .version
2590         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
2591           doc/INSTALL.txt: version bumped to 2.7.2
2592         * sim/ucsim/configure.in, sim/ucsim/configure:
2593           use "read" to read from .version
2594
2595 2007-06-03 Borut Razem <borut.razem AT siol.net>
2596
2597         * */Makefile.in: removed annoying warning:
2598           Makefile:xx: Makefile.dep: No such file or directory
2599
2600 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2601
2602         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
2603           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
2604         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
2605         * src/SDCCast.c (resultTypePropagate): propagate for '!',
2606           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
2607           bugfix: only use newBoolLink for bit result type
2608         * src/SDCCicode.c (geniCodeLogic): added param tree,
2609           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
2610           (geniCodeLogicAndOr): use IS_BIT,
2611           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
2612           (ast2iCode): added tree param to geniCodeLogic for comparisons
2613         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
2614         * support/regression/tests/bug1723128.c: added test NotZero
2615
2616 2007-06-01 Borut Razem <borut.razem AT siol.net>
2617
2618         * SDCPP synchronized with GCC CPP release version 4.2.0,
2619           currently the latest release:
2620         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
2621           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
2622           support/cpp2/cppdefault.h, support/cpp2/except.h,
2623           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
2624           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
2625           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
2626           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
2627           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
2628           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
2629           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
2630           support/cpp2/opts.h, support/cpp2/output.h,
2631           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
2632           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
2633           support/cpp2/system.h, support/cpp2/version.c,
2634           support/cpp2/Makefile.in: modified
2635         * support/cpp2/opts-common.c: added
2636         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
2637         * device/lib/pic16/libdev/pic18f[24]5j10.c:
2638           search for included source file in local directory
2639         * sim/ucsim/configure, sim/ucsim/configure.in:
2640           temporary solution to suppress GCC 4.2.0 c++ warning:
2641           deprecated conversion from string constant to `char *'
2642
2643 2007-06-01 Raphael Neider <rneider AT web.de>
2644
2645         * device/lib/pic/libdev/pic12f683.c,
2646         * device/include/pic/pic12f683.h: added GPIO bits
2647
2648 2007-06-01 Raphael Neider <rneider AT web.de>
2649
2650         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
2651           quotation marks, clarified role of PIC14 vs. PIC16 ports
2652         * src/pic16/devices.inc,
2653         * device/include/pic16/pic18fregs.h,
2654         * device/include/pic16/pic18f[24][45]j10.h,
2655         * device/lib/pic16/pics.all,
2656         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
2657           18f24j10, 18f25j10, 18f44j10, and 18f45j10
2658         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
2659           for new devices as they are not yet supported by gputils
2660
2661 2007-05-31 Borut Razem <borut.razem AT siol.net>
2662
2663         * Small Device C Compiler 2.7.0 released
2664         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
2665           changed sdcc version to 2.7.1
2666         * support/scripts/sdcc.nsi: added How to create WIN32 release
2667           setup.exe package
2668
2669 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
2670
2671         * doc/sdccman.lyx: documented initialization and allocation of absolute
2672           variables, bit parameter passing, the need for function pointers to be
2673           reentrant and alpha quality support of inline and retrict
2674
2675 2007-05-26 Borut Razem <borut.razem AT siol.net>
2676
2677         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
2678           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
2679         * docs/knownbugs.html: updated
2680
2681 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
2682
2683         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
2684           thanks Jan Waclawek
2685         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
2686           AOP_CRY and ruonly
2687           (gencjneshort): optimized when left is AOP_DIR
2688         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
2689           initializing unions in a struct/array
2690         * support/regression/fwk/include/testfwk.h: added defines for data, near
2691           and far for host and z80
2692         * support/regression/tests/bug1723128.c: new, added
2693
2694 2007-05-22 Borut Razem <borut.razem AT siol.net>
2695
2696         * doc/knownbugs.html: updated
2697
2698 2007-05-21 Raphael Neider <rneider AT web.de>
2699
2700         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
2701           error message instead
2702         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
2703
2704 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2705
2706         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
2707
2708 2007-05-21 Raphael Neider <rneider AT web.de>
2709
2710         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
2711           closes #1722392
2712         * src/regression/gpsim_assert.h,
2713         * src/regression/Makefile,
2714         * src/regression/pcodeopt.c: regression test for the above fix
2715
2716 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
2717
2718         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
2719           jumps to self, fixed bug 1717281
2720
2721 2007-05-10 Borut Razem <borut.razem AT siol.net>
2722
2723         * support/scripts/gen_known_bugs.pl: cosmetic fix
2724         * doc/knownbugs.html: generated by gen_known_bugs.pl
2725
2726 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2727
2728         * src/SDCCast.c (createFunction): also generate non-inlined version of
2729           function for functions declared as "static inline"
2730         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
2731           function can be inlined after non-inlined version generated.
2732
2733 2007-05-10 Borut Razem <borut.razem AT siol.net>
2734
2735         * support/scripts/gen_known_bugs.pl: added script
2736           which generates knownbugs.html
2737
2738 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
2739
2740         * doc/knownbugs.html: updated for release 2.7.0
2741
2742 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2743
2744         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
2745
2746 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
2747
2748         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
2749           (throughout): updated generating comments
2750         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
2751           (throughout): updated generating comments
2752         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
2753           rule instead of at the second, or it might skip lines when removing the
2754           complete match
2755         * support/regression/tests/bug1714204.c: changed test to foo
2756
2757 2007-05-08 Borut Razem <borut.razem AT siol.net>
2758
2759         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
2760           thanks to SDCC Distributed Compile Farm members,
2761           added Z80 and GBZ80 command line options
2762         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
2763
2764 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
2765
2766         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
2767         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
2768         * support/regression/tests/longlit.c: modified to be tested at all and
2769           to pass the actual test
2770
2771 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2772
2773         * device/include/mcs51/uPSD33xx.h: Added.
2774
2775 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
2776
2777         * device/lib/_gptrput.c,
2778         * device/lib/_gptrget.c: removed old code,
2779          (_gptrgetWord),
2780         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
2781         * support/regression/tests/bug1714204.c: new, added
2782
2783 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2784
2785         * support/regression/tests/regtrack.c: test was never executed
2786           because of the regression test being picky about white spaces.
2787         * device/lib/mcs51/crtclear.asm: added comment
2788
2789 2007-05-06 Raphael Neider <rneider AT web.de>
2790
2791         * device/lib/pic/Makefile.rules,
2792         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
2793           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
2794
2795 2007-05-06 Raphael Neider <rneider AT web.de>
2796
2797         * src/pic16/device.h,
2798         * src/pic16/main.h,
2799         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
2800           _pic16_setDefaultOptions): removed/reordered command-line args
2801         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
2802           devices, regrouped command line args, environment variables),
2803           clarified sone points, added sections on how to add devices to the
2804           PIC14/PIC16 ports
2805
2806 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
2807
2808         * src/z80/peeph.def: fixed bug in rule 2
2809
2810 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
2811
2812         * src/port.h: added TARGET_MCS51_LIKE
2813         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
2814           take advantage of it too
2815         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
2816           (shiftR2Left2Result): Optimized: don't check shifting by 0
2817         * src/z80/peeph-z80.def,
2818         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
2819           modifications, see patch 1700823
2820         * src/mcs51/peep.c (): fixed bug 1712928
2821         * support/regression/tests/bug1712928.c: new, added
2822
2823 2007-05-05 Borut Razem <borut.razem AT siol.net>
2824
2825         * device/lib/pic16/Makefile.common.in,
2826           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
2827           removed bash dependencies
2828
2829 2007-05-01 Borut Razem <borut.razem AT siol.net>
2830
2831         * src/SDCCicode.c:
2832           fixed bug #1710507: --i-code-in-asm makes compile fail
2833           all iCode comments are now one liners
2834         * src/mcs51/gen.c: fixed memory leak
2835
2836 2007-05-01 Raphael Neider <rneider AT web.de>
2837
2838         * device/lib/pic/libdev/*.c
2839         * device/include/pic/*.h: regenerated all device libs from updated
2840           .inc files
2841         * support/scripts/inc2h.pl: documented usage, now uses strict to
2842           catch more bugs
2843
2844 2007-04-30 Borut Razem <borut.razem AT siol.net>
2845
2846         * doc/sdccman.lyx:
2847           fixed bug #1669175: Problem with space in output paths
2848           documented how to use paths with spaces for Windows users
2849
2850 2007-04-29 Borut Razem <borut.razem AT siol.net>
2851
2852         * Fixed svn:eol-style and svn:keywords properties
2853         * src/SDCCval.c: fixed bug
2854           #1592871: Segfault with "large" const arrays of characters
2855           replaced recursion with iteration
2856         * Removed svn:executable property from non-executable files
2857
2858 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
2859
2860         * src/mcs51/gen.c (genRet): fixed bug 1707003
2861
2862 2007-04-27 Raphael Neider <rneider AT web.de>
2863
2864         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
2865           createReachingDefinitions,assignValnums,pic16_destructDF,
2866           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
2867           prevent NULL pointer dereferences
2868         * device/lib/pic/libdev/pic16f886.c,
2869         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
2870           prevent building them, gputils do not really support them yet
2871
2872 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2873
2874         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
2875           helps printf_small. 32 bytes more __idata mem.
2876
2877 2007-04-27 Raphael Neider <rneider AT web.de>
2878
2879         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
2880           return early when pb or pb->pcHead is NULL (patch #1708427)
2881         * src/regression/empty.c,
2882         * src/regression/Makefile: added test with empty functions
2883         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
2884
2885 2007-04-27 Borut Razem <borut.razem AT siol.net>
2886
2887         * src/SDCCast.c: fixed feature request
2888           #1547512: Redundant strings linked when using sizeof("abc")
2889
2890 2007-04-23 Borut Razem <borut.razem AT siol.net>
2891
2892         * doc/sdccman.lyx, src/SDCCmain.c:
2893           peep-hole comments are generated only if --fverbose-asm option is
2894           specified and --no-peep-comments is not, as proposed by Frieder.
2895         * support/regression/Makefile.in: compile regression tests with
2896           --fverbose-asm option so one can "grep" whether a new (or an old)
2897           peephole is (still) applied; requested by Frieder.
2898
2899 2007-04-23 Kevin Buettner <kevin AT buettner.to>
2900
2901         * device/include/pic/pic16f886.h,
2902         * device/include/pic/pic16f887.h,
2903         * device/lib/pic/libdev/pic16f886.c,
2904         * device/lib/pic/libdev/pic16f887.c,
2905         * device/include/pic/pic14devices.txt,
2906         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
2907
2908 2007-04-23 Kevin Buettner <kevin AT buettner.to>
2909
2910         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
2911           fixes #1704666
2912
2913 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2914
2915         * device/lib/_memset.c: assembler version for mcs51
2916
2917 2007-04-22 Borut Razem <borut.razem AT siol.net>
2918
2919         * support/scripts/listerr.c: program to create the list of errors and
2920           warnings list from - added
2921         * doc/sdccman.lyx: removed the note
2922           "For list of warnings and corresponding codes, see err_warn.txt"
2923         * src/SDCCsymt.c: fixed bug #1699804:
2924           Bug with some uses of sizeof(static local array) (MCS51)
2925         * support/regression/tests/bug-1699804.c: added
2926
2927 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
2928
2929         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
2930           (main): added option -i,
2931           (asmbl, case S_INCL): use search_path_fopen,
2932           mostly from patch 1579668 by Peter Miller, thanks
2933         * src/z80/main.c: fixed typo --callee-saves-bc
2934         * device/include/mcs51/compiler.h: added sfrword for Tasking
2935
2936 2007-04-20 Borut Razem <borut.razem AT siol.net>
2937
2938         * src/z80/main.c: replaced reserved keyword asm with asmblr
2939
2940 2007-04-19 Borut Razem <borut.razem AT siol.net>
2941
2942         * src/port.h: use const pointers to strings
2943         * src/SDCCargs.h: declared getStringArg() and getIntArg()
2944         * src/pic16/main.c: include SDCCargs.h
2945         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
2946           const char, since the strings are dynamically allocated
2947         * src/SDCCmain.c: options.code_seg and options.const_seg are
2948           dynamically allocated; check port specific command line options
2949           before the general ones
2950         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
2951
2952 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
2953
2954         * device/include/ds400rom.h,
2955         * device/lib/ds390/lcd390.c,
2956         * device/lib/ds390/memcpyx.c,
2957         * device/lib/ds390/rtc390.c,
2958         * device/lib/ds400/ds400rom.c,
2959         * device/lib/ds400/memcpyx.c,
2960         * device/lib/hc08/_ret.c: more replacements of keywords with their
2961           double underscore equivalents
2962         * device/lib/ds390/Makefile.in,
2963         * device/lib/ds400/Makefile.in,
2964         * device/lib/gbz80/Makefile.in,
2965         * device/lib/hc08/Makefile.in,
2966         * device/lib/mcs51/Makefile.in,
2967         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
2968
2969 2007-04-17 Borut Razem <borut.razem AT siol.net>
2970
2971         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
2972           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
2973           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
2974           to --fverbose-asm, to be gcc'ish
2975
2976 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
2977
2978         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
2979
2980 2007-04-17 Borut Razem <borut.razem AT siol.net>
2981
2982         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
2983         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
2984           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
2985           with their double underscore equivalent
2986
2987 2007-04-14 Borut Razem <borut.razem AT siol.net>
2988
2989         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
2990           source"
2991
2992 2007-04-13 Borut Razem <borut.razem AT siol.net>
2993
2994         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
2995           C99 standard
2996         * device/examples/serialcomm/windows/serial.[ch],
2997           device/examples/serialcomm/windows/test_serialcomm.cpp:
2998           updated by Bela Torok
2999         * device/examples/serialcomm/windows/serialcomm.dsw,
3000           device/examples/serialcomm/windows/serialcomm.dsp: added
3001
3002 2007-04-13 Jan Waclawek <wek AT efton.sk>
3003
3004         * doc/sdccman.lyx: additions and changes at various places
3005           (submitted as #1697136).
3006           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
3007
3008 2007-04-10 Borut Razem <borut.razem AT siol.net>
3009
3010         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
3011           LyX file format changed to 245
3012         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
3013           "FreeWare" replaced with "free open source"
3014
3015 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
3016
3017         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
3018
3019 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
3020
3021         * device/include/pic16/pic18fregs.h,
3022         * device/lib/_bp.c,
3023         * device/lib/_decdptr.c,
3024         * device/lib/_divsint.c,
3025         * device/lib/_divslong.c,
3026         * device/lib/_divuint.c,
3027         * device/lib/_divulong.c,
3028         * device/lib/_fs2schar.c,
3029         * device/lib/_fs2sint.c,
3030         * device/lib/_fs2slong.c,
3031         * device/lib/_fs2uchar.c,
3032         * device/lib/_fs2uint.c,
3033         * device/lib/_fs2ulong.c,
3034         * device/lib/_fsadd.c,
3035         * device/lib/_fscmp.c,
3036         * device/lib/_fsdiv.c,
3037         * device/lib/_fseq.c,
3038         * device/lib/_fsget1arg.c,
3039         * device/lib/_fsget2args.c,
3040         * device/lib/_fsgt.c,
3041         * device/lib/_fslt.c,
3042         * device/lib/_fsmul.c,
3043         * device/lib/_fsneq.c,
3044         * device/lib/_fsnormalize.c,
3045         * device/lib/_fsreturnval.c,
3046         * device/lib/_fsrshift.c,
3047         * device/lib/_fssub.c,
3048         * device/lib/_fsswapargs.c,
3049         * device/lib/_gptrget.c,
3050         * device/lib/_gptrgetc.c,
3051         * device/lib/_gptrput.c,
3052         * device/lib/_logexpf.c,
3053         * device/lib/_modsint.c,
3054         * device/lib/_modslong.c,
3055         * device/lib/_moduint.c,
3056         * device/lib/_modulong.c,
3057         * device/lib/_mulint.c,
3058         * device/lib/_mullong.c,
3059         * device/lib/_schar2fs.c,
3060         * device/lib/_ser.c,
3061         * device/lib/_setjmp.c,
3062         * device/lib/_sint2fs.c,
3063         * device/lib/_slong2fs.c,
3064         * device/lib/_spx.c,
3065         * device/lib/_uchar2fs.c,
3066         * device/lib/_uint2fs.c,
3067         * device/lib/_ulong2fs.c,
3068         * device/lib/asincosf.c,
3069         * device/lib/atanf.c,
3070         * device/lib/calloc.c,
3071         * device/lib/ds390/tinibios.c,
3072         * device/lib/ds400/tinibios.c,
3073         * device/lib/expf.c,
3074         * device/lib/free.c,
3075         * device/lib/hc08/_mulint.c,
3076         * device/lib/logf.c,
3077         * device/lib/malloc.c,
3078         * device/lib/printf_fast.c,
3079         * device/lib/printf_tiny.c,
3080         * device/lib/printfl.c,
3081         * device/lib/realloc.c,
3082         * device/lib/ser_ir.c,
3083         * device/lib/serial.c,
3084         * support/regression/tests/libmullong.c: replaced all special keywords
3085           with their double underscore equivalent
3086         * support/regression/ports/mcs51-xstack-auto/spec.mk,
3087         * device/lib/Makefile.in: compile libs with --std-c99 instead of
3088           --std-sdcc99
3089         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
3090           (genRet): if the bit-symbol is ruonly it already is in the carry
3091         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
3092         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
3093         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
3094           type UCHAR if dest is not bit
3095
3096 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
3097
3098         * device/include/math.h,
3099         * device/lib/cotf.c,
3100         * device/lib/expf.c,
3101         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
3102
3103 2007-04-01 Borut Razem <borut.razem AT siol.net>
3104
3105         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
3106           fixed bug #1692042: input buffer overflow...scanner uses REJECT
3107         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
3108           gcc_unreachable() called internal_error()...
3109
3110 2007-03-30 Raphael Neider <rneider AT web.de>
3111
3112         * src/pic/ralloc.c (isData): suppress garbage debug output
3113
3114 2007-03-28 Borut Razem <borut.razem AT siol.net>
3115
3116         * doc/sdccman.lyx:
3117           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
3118           is developed, built and used worldwide, and the word "night" doesn't
3119           make any sense.
3120
3121 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
3122
3123         * device/include/mcs51/C8051F360.h: new, added
3124         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
3125
3126 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3127
3128         * src/SDCC.y (declaration_specifiers, function_specifier),
3129         * support/Util/SDCCerr.c,
3130         * support/Util/SDCCerr.h,
3131         * src/SDCCsymt.h,
3132         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
3133           inline keyword
3134         * src/SDCCmem.c (deallocParms),
3135         * src/SDCCast.c: support for function inlining, not quite complete
3136         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
3137           'restrict' qualifier
3138
3139 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3140
3141         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
3142           (saveRBank, unsaveRBank): don't save bits,
3143           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
3144         * support/regression/tests/bug1535242.c: new, added
3145         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
3146           thanks Alexey Shamrin <shamrin AT gmail.com>,
3147           made assert.h header ANSI compliant (added a check for NDEBUG macro,
3148           removed header guard)
3149         * .version,
3150         * sdcc.spec: bumped version to 2.6.5
3151         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
3152
3153 2007-03-22 Borut Razem <borut.razem AT siol.net>
3154
3155         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
3156           fixed bug #1653671: sdcdb integration into ddd is broken
3157
3158 2007-03-22 Raphael Neider <rneider AT web.de>
3159
3160         * src/pic/gen.c (popGetExternal): augmented to also create references
3161           to external variables (not only labels),
3162           (genCall): comment on plan to reduce PAGESEL overhead,
3163           (genFunction, genEndFunction): also save/restore FSR around interrupt
3164           handling code, removed lots of unused code
3165           (genDivOneByte): release acquired temp register
3166         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
3167           of popGetExternal
3168         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
3169           for registers that need to be saved during interrupts (FSR, STATUS,
3170           PCLATH; W needs special handling), currently only FSR is used
3171
3172 2007-03-22 Raphael Neider <rneider AT web.de>
3173
3174         * device/include/pic/pic14devices.txt: 16f688 has only one config word
3175
3176 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3177
3178         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
3179
3180 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
3181
3182         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
3183
3184 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
3185
3186         * as/link/aslink.h: added LKOBJEXT
3187         * as/link/hc08/link_hc08.dsp,
3188         * as/link/hc08/Makefile.bcc,
3189         * as/link/hc08/Makefile.in,
3190         * as/link/mcs51/aslink.dsp,
3191         * as/link/mcs51/Makefile.bcc,
3192         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
3193         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
3194         * as/link/lkaomf51.c: merged and moved
3195         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
3196         * as/link/z80/lkdata.c,
3197         * as/link/lkdata.c: merged and moved
3198         * as/link/hc08/lkmain.c,
3199         * as/link/mcs51/lkmain.c: cosmetic changes
3200         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
3201         * as/link/lklex.c: use LKOBJEXT
3202         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
3203           ANSI-fied functions, removed bubble-sorts
3204         * as/link/z80/lksym.c           as/link/lksym.c: merged,
3205           ANSI-fied functions
3206         * as/link/z80/linkgbz80.dsp,
3207         * as/link/z80/linkz80.dsp,
3208         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
3209           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
3210         * as/link/z80/lkhead.c,
3211         * as/link/z80/lklex.c: deleted
3212         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
3213         * as/link/z80/lkmain.c: added copyfile()
3214
3215 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3216
3217         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
3218
3219 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3220
3221         * device/lib/_strlen.c: assembler version for mcs51
3222
3223 2007-03-13 Raphael Neider <rneider AT web.de>
3224
3225         * device/include/pic16/pic18f2221.h,
3226         * device/include/pic16/pic18f2321.h,
3227         * device/include/pic16/pic18f2331.h,
3228         * device/include/pic16/pic18f4221.h,
3229         * device/include/pic16/pic18f4321.h,
3230         * device/include/pic16/pic18f4331.h: fixed config byte location names
3231         * support/scripts/inc2h-pic16.pl: removed debug output, emit
3232           consistently named config byte locations
3233
3234 2007-03-13 Borut Razem <borut.razem AT siol.net>
3235
3236         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3237           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
3238           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
3239           as/link/z80/Makefile.in, as/z80/Makefile.in:
3240           introduced LDFLAGS
3241
3242 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3243
3244         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
3245         * device/lib/printf_large.c: pointer was converted to generic
3246         pointer for mcs51 models other than model-small (Maarten noticed)
3247
3248 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3249
3250         * device/include/mcs51/ADuC84x.h: Added.
3251
3252 2007-03-10 Borut Razem <borut.razem AT siol.net>
3253
3254         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
3255           fixed RFE #1624219: double backslashes in filenames;
3256           functions hexEscape(), octalEscape() and copyStr() moved from
3257           SDCCval.c to SDCCutil.c and made them glovbally available
3258
3259 2007-03-09 Borut Razem <borut.razem AT siol.net>
3260
3261         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
3262           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
3263           1673361: Missaligned comments in output files
3264
3265 2007-03-09 Raphael Neider <rneider AT web.de>
3266
3267         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
3268
3269 2007-03-09 Raphael Neider <rneider AT web.de>
3270
3271         * src/pic/gen.c,
3272         * src/pic/glue.c,
3273         * src/pic/ralloc.c: suppress undesired debug output
3274         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
3275
3276 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3277
3278         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
3279
3280 2007-03-07 Borut Razem <borut.razem AT siol.net>
3281
3282         * device/lib/pic16/libdev/pic18f[24][34]31.c:
3283           search include files in the current directory
3284
3285 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
3286
3287         * src/SDCCglue.c (emitMaps, glue),
3288         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
3289           absolute xdata
3290         * support/regression/tests/absolute.c: added xdata test
3291
3292 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
3293
3294         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
3295           added condition to macro, fixes bug 1666080
3296
3297 2007-03-02 Raphael Neider <rneider AT web.de>
3298
3299         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
3300
3301 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3302
3303         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
3304         be cleared. Unconditionally set __XPAGE
3305         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
3306
3307 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3308
3309         * src/SDCCglobl.h,
3310         * src/SDCCmain.c,
3311         * src/mcs51/gen.c,
3312         * src/mcs51/rtrack.c,
3313         * src/ds390/gen.c,
3314         * doc/sdccman.lyx: added --no-gen-comments
3315         * src/mcs51/peeph.def: added 192.b, disabled 185
3316
3317 2007-02-25 Raphael Neider <rneider AT web.de>
3318
3319         * src/pic16/gen.c (genCast): fixed typo
3320         * device/lib/pic16/Makefile.subdir: only install existing files
3321         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
3322
3323 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
3324
3325         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
3326         * device/lib/mcs51/crtclear.asm,
3327         * device/lib/mcs51/crtxclear.asm: renumbered labels
3328         * device/lib/mcs51/Makefile.in: added crtcall.asm
3329         * doc/sdccman.lyx: documented mcs51 crt* library startup code
3330         * src/mcs51/gen.c (movc): removed,
3331           (aopGet, genPlusBits): clear a after loading the carry (possibly from
3332             acc.x or psw.x),
3333           (toCarry, genSend, genRet): added function toCarry,
3334           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
3335           (assignBit, genAssign, genCast): added function assignBit
3336         * src/mcs51/Makefile.bcc: added rtrack.c
3337         * src/mcs51/ralloc.h: made valueKnown a bitfield
3338         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
3339           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
3340           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
3341         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
3342         * src/z80/gen.c: added AOP_IS_PAIRPTR,
3343           (_pop): only pop valid pairs, see gencjneshort,
3344           (gencjneshort): return pair that still needs to be popped, restructured,
3345           (gencjne, genCmpEq): call _pop
3346
3347 2007-02-23 Raphael Neider <rneider AT web.de>
3348
3349         * device/include/pic/pic14devices.txt: 16f684 has only one config word
3350
3351 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3352
3353         * device/include/mcs51/P89LPC925.h: Added.
3354
3355 2007-02-18 Raphael Neider <rneider AT web.de>
3356
3357         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
3358
3359 2007-02-17 Borut Razem <borut.razem AT siol.net>
3360
3361         * support/cpp2/directives.c, support/cpp2/version.c:
3362           synchronized with GCC CPP 4.1.2
3363
3364 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3365
3366         * src/mcs51/rtrack.h,
3367         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
3368           by checking the strings passed by emitcode() to the assembler.
3369           Feel free to change. This in part addresses RFE #482179.
3370           Set environment variable SDCC_RTRACK to enable.
3371         * src/mcs51/gen.c: inserted hooks
3372         * src/mcs51/ralloc.h: added two members to struct regs
3373         * support/regression/tests/regtrack.c: added
3374
3375 2007-02-14 Borut Razem <borut.razem AT siol.net>
3376
3377         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
3378         * Makefile.in: applied patch from Makefile related part of
3379           #1469393: Compiler does not initialize static data
3380
3381 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
3382
3383         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
3384           for better fix of bug 1273984, compiles pic16 rand.c
3385
3386 2007-02-12 Borut Razem <borut.razem AT siol.net>
3387
3388         * src/pic16/main.c: fixed pic16 standard library directory bug
3389
3390 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3391
3392         * src/hc08/gen.c (genSwap): fix swap regression test
3393
3394 2007-02-10 Borut Razem <borut.razem AT siol.net>
3395
3396         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
3397           with same scope
3398         * support/regression/tests/bug-1654060.c: added regression test for
3399           #1654060
3400
3401 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
3402
3403         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
3404         bit moves in return statement
3405
3406 2007-02-09 Borut Razem <borut.razem AT siol.net>
3407
3408         * src/SDCC.y: fixed bug #1654060 typedef within function causes
3409           syntax error
3410
3411 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
3412
3413         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
3414         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
3415
3416 2007-02-07 Raphael Neider <rneider AT web.de>
3417
3418         * src/pic16/devices.inc,
3419         * device/include/pic16/pic18fregs.h,
3420         * device/include/pic16/pic18f[24][34]31.h,
3421         * device/lib/pic16/libdev/pic18f[24][34]31.c,
3422         * device/lib/pic16/pics.all: added 18f[24][34]31 family
3423         * device/lib/pic16/libio/i2c.ignore: do not build i2c
3424
3425 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
3426
3427         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
3428           can this have lived here for so many years?
3429         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
3430           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
3431         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
3432
3433 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
3434
3435         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
3436         appended by loop induction must be at the very end of the eBBlock
3437
3438 2007-02-05 Kevin Vigor
3439
3440         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
3441
3442 2007-02-05 Borut Razem <borut.razem AT siol.net>
3443
3444         * support/regression/fwk/lib/timeout.c: native WIN32 port,
3445           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
3446
3447 2007-02-03 Borut Razem <borut.razem AT siol.net>
3448
3449         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
3450           applied patch #1646602 option to set default signedness of char to
3451           unsigned, added -funsigned-char command line option,
3452           thanks to Gunther Jehle
3453         * device/lib/Makefile.in: added the -f option to rm so it doesn't
3454           prompt for file deletion a few hundred times (especially the
3455           subversion files, which have ro permissions so it asks for
3456           confirmation), thanks to Simon McAuliffe;
3457           added {} + option to find in order to remove multiple files from a
3458           single rm commad
3459
3460 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3461
3462         * device/include/mcs51/SST89x5xRDx.h: Added.
3463
3464 2007-02-02 Raphael Neider <rneider AT web.de>
3465
3466         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
3467         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
3468
3469 2007-02-01 Raphael Neider <rneider AT web.de>
3470
3471         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
3472           config words again
3473
3474 2007-01-31 Borut Razem <borut.razem AT siol.net>
3475
3476         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
3477           if compiled with GCC. Thanks to Raphael Neider
3478
3479 2007-01-31 Raphael Neider <rneider AT web.de>
3480
3481         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
3482             operand names, handles name and (name + n) for all n,
3483           (sameBank): restructured, also check bank allocation policy,
3484         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
3485           (pic14_operandsAllocatedInSameBank): check whether to operands
3486             will be allocated into the same bank (i.e., section) to reduce
3487             BANKSEL overhead, queried from pcode.c:sameBank,
3488           (pic14printLocals): reintroduced clustering registers into a single
3489             section: all compiler generated symbols will now reside in one
3490             bank (per file), reducing BANKSEL overhead and code size,
3491           (showAllMemmaps): use local dbuf where possible
3492
3493 2007-01-29 Raphael Neider <rneider AT web.de>
3494
3495         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
3496           (call_libraryfunc): retrieve/create symbol and mark as used,
3497           (genFunction): mark defined functions as non-extern and add again
3498            to code memmap for later output
3499         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
3500           (pic14printLocals): reworked for new symbol emission,
3501           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
3502           showAllMemmaps): reworked symbol output using dbufs, added handling
3503             of string literals (still incomplete),
3504           (picglue): removed symbol emission, moved into showAllMemmaps,
3505           (emitSymbolSet): new workhorse for symbol output,
3506           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
3507
3508 2007-01-29 Borut Razem <borut.razem AT siol.net>
3509
3510         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
3511           component contains the extension separator.
3512
3513 2007-01-28 Borut Razem <borut.razem AT siol.net>
3514
3515         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
3516           on WIN32
3517         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
3518           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
3519           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
3520           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
3521           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
3522           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
3523           src/z80/gen.c, support/Util/MySystem.c:
3524           accept slash and backslash as directory separator on WIN32 and
3525           Cygwin ports
3526
3527 2007-01-28 Raphael Neider <rneider AT web.de>
3528
3529         * src/pic16/devices.inc,
3530         * device/include/pic16/pic18f[24][23]21.h,
3531         * device/include/pic16/pic18fregs.h,
3532         * device/lib/pic16/libdev/pic18f[24][23]21.c,
3533         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
3534         * device/lib/pic16/libio/adc.ignore,
3535         * device/lib/pic16/libio/i2c.ignore,
3536         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
3537           family, as gputils do not yet support the devices
3538         * device/lib/pic16/Makefile.subdir: ignore errors on install
3539         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
3540           headers and libraries from gputils .inc files
3541
3542 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
3543
3544         * doc/sdccman.lyx: add printf_fast_f precision limitation note
3545
3546 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
3547
3548         * doc/sdccman.lyx: add printf benchmarks
3549
3550 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
3551
3552         * device/lib/printf_fast.c: fix %c, char promoted to int
3553         * device/lib/printf_tiny.c: fix %c, char promoted to int
3554
3555 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
3556
3557         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
3558
3559 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3560
3561         * support/regression/tests/swap.c: 64 bit hosts failed
3562         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
3563
3564 2007-01-25 Raphael Neider <rneider AT web.de>
3565
3566         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
3567           based on absolute register address, patch by Alex Blond
3568
3569 2007-01-22 Raphael Neider <rneider AT web.de>
3570
3571         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
3572           emitted, do not emit them again...
3573
3574 2007-01-22 Raphael Neider <rneider AT web.de>
3575
3576         * src/regression/bank1.c, src/regression/compare6.c,
3577           src/regression/add.c: cosmetic changes
3578         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
3579         * src/pic/gen.c: fixed global zero and one,
3580           (aopForSym): removed unued code,
3581           (aopGet): assert aop is defined, check and use `index' of
3582             pCodeImmd operands (fixes #1630908),
3583         * src/pic/pcode.c (get_op): added output of generic pointer tag,
3584           (register_reassign): prevent accidental register unification,
3585           (ReuseReg): cosmetic changes (also above)
3586         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
3587           pic14emitStaticSeg): do not emit initialized data,
3588           (printIval*): replaced with working versions,
3589           (pic14createInterruptVect,picglue): use idata for initialized data,
3590             now init data should work in all modules (not only main()),
3591         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
3592
3593 2007-01-21 Borut Razem <borut.razem AT siol.net>
3594
3595         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
3596           use -fPIC or -fpic if they are supported and not ignored
3597         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
3598         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
3599
3600 2007-01-20 Borut Razem <borut.razem AT siol.net>
3601
3602         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
3603           implemented RFE #1470316: allow "$" in variable names
3604
3605 2007-01-20 Raphael Neider <rneider AT web.de>
3606
3607         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
3608
3609 2007-01-20 Raphael Neider <rneider AT web.de>
3610
3611         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
3612         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
3613         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
3614         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
3615           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
3616         * device/lib/pic/libdev/pic*.c,
3617         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
3618         * device/lib/pic/libdev/Makefile.in: show progress
3619
3620 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
3621
3622         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
3623         * support/scripts/sdcc_cygwin_mingw32,
3624         * support/scripts/sdcc_mingw32,
3625         * support/scripts/build.mak: replaced --datadir by --datarootdir for
3626         conformance with autoconf 2.6
3627
3628 2007-01-19 Raphael Neider <rneider AT web.de>
3629
3630         * src/pic/device.c (register_map): fixed list construction
3631         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
3632           (genMod): removed case for genModbits,
3633           (genModbits): removed as now unused/unimplemented
3634         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
3635
3636 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3637
3638         * support/regression/tests/swap.c: added in response to #1638622
3639         * doc/sdccman.lyx: synced version, minor changes
3640
3641 2007-01-18 Borut Razem <borut.razem AT siol.net>
3642
3643         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
3644           thanks to Gunther Jehle
3645         * src/asm.c: don't die if the file drfined in #line couldn't be opened
3646         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
3647           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
3648           use filename in lineno instead.
3649         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
3650           print the file name in ast_print()
3651
3652 2007-01-18 Borut Razem <borut.razem AT siol.net>
3653
3654         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
3655           defined in MSVC
3656         * src/SDCC.lex: stringLiteral() returns const char pointer,
3657           EOF detection in stringLiteral(), fixed asmbuf memory leak,
3658           fixed column counting
3659         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
3660           accept const char pointer as parameter
3661         * src/SDCCdwarf2.c: corrected buffer size
3662
3663 2007-01-17 Borut Razem <borut.razem AT siol.net>
3664
3665         * support/Util/dbuf_string.c: fixed for amd64
3666
3667 2007-01-15 Borut Razem <borut.razem AT siol.net>
3668
3669         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
3670           removed terminal symbol ELIPSIS, since it was never generated by the
3671           lexer and it was wrongly used in parameter_identifier_list rule
3672
3673 2007-01-15 Raphael Neider <rneider AT web.de>
3674
3675         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
3676             code page and data banking description
3677         * src/pic/genarith.c,
3678         * src/pic/gen.h: removed bit arithmetic functions,
3679             updated exit(1) to exit(EXIT_FAILURE)
3680         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
3681         * device/include/pic16/pic18f2455.h,
3682         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
3683             TRISD and TRISE, fixed/added some bit names
3684         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
3685         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
3686             updated pic18f2455.{c,h} instead of duplicating them
3687
3688 2007-01-14 Borut Razem <borut.razem AT siol.net>
3689
3690         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
3691           Cannot debug files that contain spaces in the path name
3692           by converting spaces in asm file name to underscores
3693
3694 2007-01-13 Borut Razem <borut.razem AT siol.net>
3695
3696         * doc/sdccman.lyx: fixed format errors
3697
3698 2007-01-10 Borut Razem <borut.razem AT siol.net>
3699
3700         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
3701           codeseg/constseg #pragma fail
3702         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
3703         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
3704           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
3705           suppoprt/cpp2/sdcpp.[ch]: house cleaning
3706
3707 2007-01-09 Borut Razem <borut.razem AT siol.net>
3708
3709         * get rid of diagnistic.[ch], pretty-print.[ch],
3710           c-pretty-print.[ch], ... used just for error, warning, ...
3711           message formatting
3712         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
3713           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
3714           suppoprt/cpp2/pretty-print.[ch]:
3715           removed
3716         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
3717           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
3718           suppoprt/cpp2/sdcpp.dsp:
3719           changed
3720
3721 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
3722
3723         * device/lib/printf_large.c (output_float): removed recursion,
3724           use smaller buffer on stack for mcs51,
3725           fixed bug printing 1.96
3726         * support/regression/tests/snprintf.c: added test
3727
3728 2007-01-07 Borut Razem <borut.razem AT siol.net>
3729
3730         * use dynamic memory buffers instead temporary files
3731         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
3732           added
3733         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
3734           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
3735           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
3736           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
3737           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
3738           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
3739           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
3740           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
3741           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
3742           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
3743           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
3744           support/Util/dbuf.c, support/Util/dbuf.h:
3745           modified
3746         * .version, sdcc.spec: bumped version to 2.6.4
3747
3748 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
3749
3750         * src/port.h: added TARGET_Z80_LIKE macro
3751         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
3752           output PSEG location if --xram-loc or --xstack-loc was used
3753         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
3754
3755 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
3756
3757         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
3758         * as/as_z80.dsp,   as/z80/as_z80.dsp,
3759         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
3760         * sdcc.dsw: moved project files into subdir
3761         * as/hc08/as_hc08.dsp,
3762         * as/hc08/Makefile.bcc,
3763         * as/hc08/Makefile.in,
3764         * as/mcs51/Makefile.bcc,
3765         * as/mcs51/Makefile.in,
3766         * as/z80/Makefile.bcc,
3767         * as/z80/Makefile.in,
3768         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
3769         * as/hc08/asm.h,
3770         * as/mcs51/asm.h,
3771         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
3772         * as/hc08/asmain.c,
3773         * as/hc08/assym.c,
3774         * as/mcs51/asmain.c,
3775         * as/mcs51/assym.c,
3776         * as/z80/assym.c: removed include "strcmpi.h"
3777         * as/hc08/strcmpi.c,
3778         * as/hc08/strcmpi.h,
3779         * as/mcs51/strcmpi.c,
3780         * as/mcs51/strcmpi.h,
3781         * support/Util/strcmpi.c,
3782         * support/Util/strcmpi.h: removed files
3783         * as/strcmpi.c: added as_strncmpi()
3784
3785 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3786
3787         * sdcc.dsw: Added some dependencies on project config.dsp
3788
3789 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
3790
3791         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
3792           with [di]ram_start to fix a regresion
3793
3794 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
3795
3796         * configure.in: added missing mcs51 in status output
3797         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
3798         directory
3799         * debugger/mcs51/clean.mk (distclean): remove config.h
3800         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
3801         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
3802         options.h, s-options-h and options.c
3803         * support/cpp2/clean.mk: unused, removed
3804         * Makefile.common.in,
3805         * main_in.mk,
3806         * as/Makefile.in,
3807         * as/hc08/Makefile.in,
3808         * as/hc08/clean.mk,
3809         * as/mcs51/Makefile.in,
3810         * as/mcs51/clean.mk,
3811         * as/z80/clean.mk,
3812         * as/z80/conf.mk,
3813         * as/z80/Makefile.in,
3814         * as/z80/clean.mk,
3815         * as/link/Makefile.in,
3816         * as/link/hc08/Makefile.in,
3817         * as/link/hc08/clean.mk,
3818         * as/link/mcs51/Makefile.in,
3819         * as/link/mcs51/clean.mk,
3820         * as/link/z80/Makefile.in,
3821         * as/link/z80/clean.mk,
3822         * as/link/z80/conf.mk,
3823         * debugger/mcs51/Makefile.in,
3824         * debugger/mcs51/clean.mk,
3825         * device/include/Makefile.in,
3826         * device/lib/Makefile.in,
3827         * device/lib/mcs51/Makefile.in,
3828         * device/lib/pic/Makefile.in,
3829         * device/lib/pic/Makefile.common.in,
3830         * device/lib/pic/Makefile.subdir,
3831         * device/lib/pic/Makefile.rules,
3832         * device/lib/pic16/libio/Makefile.in,
3833         * device/lib/pic16/Makefile.subdir,
3834         * device/lib/pic16/libdev/Makefile.in,
3835         * device/lib/pic16/Makefile.rules,
3836         * device/lib/pic16/Makefile.common.in,
3837         * sim/ucsim/avr.src/Makefile.in,
3838         * sim/ucsim/main_in.mk,
3839         * sim/ucsim/cmd.src/Makefile.in,
3840         * sim/ucsim/doc/Makefile.in,
3841         * sim/ucsim/gui.src/Makefile.in,
3842         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
3843         * sim/ucsim/gui.src/serio.src/Makefile.in,
3844         * sim/ucsim/hc08.src/Makefile.in,
3845         * sim/ucsim/libltdl/Makefile.in,
3846         * sim/ucsim/s51.src/Makefile.in,
3847         * sim/ucsim/sim.src/Makefile.in,
3848         * sim/ucsim/sim.src/conf.mk,
3849         * sim/ucsim/xa.src/Makefile.in,
3850         * sim/ucsim/z80.src/Makefile.in,
3851         * src/Makefile.in,
3852         * src/clean.mk,
3853         * src/port.mk,
3854         * support/cpp2/Makefile.in,
3855         * support/librarian/Makefile.in,
3856         * support/librarian/clean.mk,
3857         * support/makebin/Makefile.in,
3858         * support/makebin/clean.mk,
3859         * support/packihx/Makefile.in,
3860         * support/regression/Makefile.in,
3861         * support/regression/ports/ds390/spec.mk,
3862         * support/regression/ports/gbz80/spec.mk,
3863         * support/regression/ports/hc08/spec.mk,
3864         * support/regression/ports/mcs51/spec.mk,
3865         * support/regression/ports/mcs51-large/spec.mk,
3866         * support/regression/ports/mcs51-medium/spec.mk,
3867         * support/regression/ports/mcs51-xstack-auto/spec.mk,
3868         * support/regression/ports/pic14/spec.mk,
3869         * support/regression/ports/pic16/spec.mk,
3870         * support/regression/ports/mcs51-stack-auto/spec.mk,
3871         * support/regression/ports/ucz80/spec.mk,
3872         * support/regression/ports/xa51/spec.mk,
3873         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
3874         adding a slash after $(top_builddir) and/or adding @datarootdir@
3875         * configure.in,
3876         * debugger/mcs51/configure.in,
3877         * device/lib/pic/configure.in,
3878         * device/lib/pic16/configure.in,
3879         * sim/ucsim/configure.in,
3880         * support/cpp2/configure.in,
3881         * support/packihx/configure.in: changed AC_PREREQ to 2.60
3882         * configure,
3883         * debugger/mcs51/configure,
3884         * device/lib/pic/configure,
3885         * device/lib/pic16/configure,
3886         * sim/ucsim/configure,
3887         * support/cpp2/configure,
3888         * support/packihx/configure: generated with autoconf 2.60
3889
3890 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
3891
3892         * as/link/hc08/lkihx.c (newArea),
3893         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
3894
3895 2007-01-02 Borut Razem <borut.razem AT siol.net>
3896
3897         * doc/sdccman.lyx: documented #pragma sdcc_hash
3898         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
3899           initialized to 0
3900         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
3901
3902 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
3903
3904         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
3905         empty 'while'-loop to work correctly, see regression test 'while.c'
3906         * support/regression/tests/while.c: added
3907
3908 2007-01-01 Borut Razem <borut.razem AT siol.net>
3909
3910         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
3911           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
3912           support/cpp2/libcpp/sdcpp.c:
3913           sdcpp specific pragma/directive/option handling moved to sdcpp.c
3914         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
3915         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
3916
3917 2006-12-31 Borut Razem <borut.razem AT siol.net>
3918
3919         * SDCPP synchronized with GCC CPP release version 4.1.1,
3920           currently the latest release:
3921         * support/cpp2/libcpp, support/cpp2/libcpp/include,
3922           support/cpp2/libcpp/include/cpp-id-data.h
3923           support/cpp2/libiberty/fopen_unlocked.c
3924           support/cpp2/libiberty/md5.c
3925           support/cpp2/md5.h
3926           support/cpp2/opt-functions.awk
3927           support/cpp2/opt-gather.awk
3928           support/cpp2/optc-gen.awk
3929           support/cpp2/opth-gen.awk:
3930           added
3931         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
3932           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
3933           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
3934           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
3935           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
3936           support/cpp2/diagnostic.h, support/cpp2/except.h,
3937           support/cpp2/hwint.h, support/cpp2/input.h,
3938           support/cpp2/intl.h, support/cpp2/move-if-change,
3939           support/cpp2/opts.c, support/cpp2/opts.h,
3940           support/cpp2/output.h, support/cpp2/prefix.c,
3941           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
3942           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
3943           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
3944           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
3945           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
3946           support/cpp2/version.c:
3947           modified
3948         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
3949           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
3950           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
3951           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
3952           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
3953           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
3954           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
3955           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
3956           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
3957           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
3958           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
3959           moved
3960         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
3961           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
3962           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
3963           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
3964           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
3965           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
3966           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
3967           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
3968           support/cpp2/hashtable.h, support/cpp2/line-map.c,
3969           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
3970           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
3971           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
3972           support/cpp2/system.h:
3973           deleted / moved
3974
3975 2006-12-31 Borut Razem <borut.razem AT siol.net>
3976
3977         * configure.in, configure: fixed bug #1538756: configure dies if bison
3978           and flex are not installed, 2nd try
3979
3980 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
3981
3982         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
3983         400.x for better code in RFE 899102
3984
3985 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
3986
3987         * src/SDCCpeeph.c (deadMove),
3988         * src/port.h,
3989         * src/mcs51/peep.h: renamed 'op' by 'reg'
3990         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
3991         (scan4op): small change for removeDeadMove(), added support for
3992         'callee saves' and/or PACLL function calls,
3993         (removeDeadMove): added, removes superflous 'mov r%1,%2',
3994         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
3995         left in new dispatcher mcs51DeadMove()
3996         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
3997         removeDeadMove()
3998         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
3999
4000 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4001
4002         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
4003           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
4004
4005 2006-12-30 Borut Razem <borut.razem AT siol.net>
4006
4007         * support/cpp2/spacs.h: deleted from svn
4008         * configure.in, configure: fixed bug #1538756: configure dies if bison
4009           and flex are not installed
4010
4011 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
4012
4013         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
4014           with this z80 passes printf float test when enabled
4015         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
4016
4017 2006-12-28 Borut Razem <borut.razem AT siol.net>
4018
4019         * support/cpp2/config.in, support/cpp2/configure.in,
4020           support/cpp2/configure, support/cpp2/Makefile.in:
4021           fix for the solaris build
4022
4023 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4024
4025         * src/SDCC.y (type_specifier2, pointer),
4026         * src/SDCCsymt.h,
4027         * src/SDCCsymt.c (mergeSpec, checkSClass),
4028         * support/Util/SDCCerr.c,
4029         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
4030         * support/valdiag/valdiag.py: Allow test cases to specify
4031           required language standard
4032         * support/valdiag/tests/restrict.c: New file to test restrict keyword
4033         * support/valdiag/tests/tentdecl.c: Supress empty source file error
4034
4035 2006-12-27 Borut Razem <borut.razem AT siol.net>
4036
4037         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
4038         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
4039           mbchar removed
4040         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
4041           fixed for borland C
4042         * support/cpp2/libiberty/Makefile.bcc: updated
4043         * src/pic16/main.c: fixed #pragma udata handling
4044         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
4045
4046 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
4047
4048         * src/SDCCpeeph.c: made labelHashEntry global,
4049         made pcDistance, FBYNAME static,
4050         (pcDistance): made static, use isComment and isLabel,
4051         (deadMove): added,
4052         (getLabelRef): added, extracted from labelRefCount(),
4053         (labelRefCount): use new getLabelRef(),
4054         (callFuncByName): made static, added deadMove,
4055         use isComment and isLabel,
4056         (newPeepRule): made static, set isLabel,
4057         (isLabelDefinition): added parameter isPeepRule to allow '%' in
4058         labels from peephole rules,
4059         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
4060         when isComment or isLabel is set
4061         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
4062         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
4063         to make them global
4064         * src/mcs51/peep.h: added
4065         * src/mcs51/peep.c: added, implements mcs51DeadMove()
4066         * src/port.h: added peep->deadMove to port structure
4067         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
4068         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
4069         deadMove, finally removed no. 1 and 2
4070         * src/mcs51/gen.c,
4071         * src/pic/gen.c,
4072         * src/z80/gen.c,
4073         * src/z80/ralloc.c,
4074         * src/pic16/gen.c,
4075         * src/ds390/gen.c,
4076         * src/hc08/gen.c: mark lines with isComment or isLabel
4077         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
4078         * .version,
4079         * sdcc.spec: bumped version to 2.6.3
4080
4081 2006-12-26 Borut Razem <borut.razem AT siol.net>
4082
4083         * support/cpp2/Makefile.in: added dependency on options.h
4084         * configure: regenerated
4085         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
4086         * support/cpp2/Makefile.in: added vasprintf.c
4087
4088 2006-12-25 Borut Razem <borut.razem AT siol.net>
4089
4090         * SDCPP synchronized with GCC CPP release version 3.4.6,
4091           the latest release before 4.x:
4092         * support/cpp2/Makefile.in, support/cpp2/config.h,
4093           support/cpp2/configure, support/cpp2/configure.in,
4094           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
4095           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
4096           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
4097           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
4098           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
4099           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
4100           support/cpp2/cpptrad.c, support/cpp2/except.h,
4101           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
4102           support/cpp2/hwint.h, support/cpp2/intl.h,
4103           support/cpp2/line-map.c, support/cpp2/line-map.h,
4104           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
4105           support/cpp2/output.h, support/cpp2/prefix.c,
4106           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
4107           support/cpp2/system.h, support/cpp2/version.c:
4108           modified
4109         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
4110           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
4111           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
4112           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
4113           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
4114           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
4115           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
4116           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
4117           support/cpp2/move-if-change, support/cpp2/opts.c,
4118           support/cpp2/opts.h, support/cpp2/opts.sh,
4119           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
4120           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
4121           support/cpp2/win32, support/cpp2/win32/dirent.c,
4122           support/cpp2/win32/dirent.h:
4123           added
4124         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
4125         * support/cpp2/sdcpp.h: renamed from sdcc.h
4126         * sdcppinit.c: deleted
4127
4128 2006-12-23 Borut Razem <borut.razem AT siol.net>
4129
4130         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
4131           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
4132           preproc.c: an other try to fix bug #982435: introduced
4133           -pedantic-parse-number command line option and pedantic_parse_number
4134           pragma
4135
4136 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
4137
4138         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
4139            BSEG handling,
4140           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
4141            corrected overlayed areax addresses, warn about memory overlaps
4142         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
4143         * src/avr/main.c,
4144         * src/ds390/main.c,
4145         * src/hc08/main.c,
4146         * src/mcs51/main.c,
4147         * src/pic16/main.c,
4148         * src/pic/main.c,
4149         * src/xa51/main.c,
4150         * src/z80/main.c,
4151         * src/port.h: added xabs_name and iabs_name
4152         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
4153           (glue, emitMaps): create and emit maps d_abs and i_abs
4154         * src/SDCCglue.h: cosmetic changes
4155         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
4156         * src/SDCCmem.h,
4157         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
4158           (allocDefault): put absolute, initialized globals in them
4159         * support/regression/tests/absolute.c: added absolute bdata test
4160         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
4161
4162 2006-12-20 Borut Razem <borut.razem AT siol.net>
4163
4164         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
4165         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
4166           added regression test for bug #982435
4167
4168 2006-12-18 Borut Razem <borut.razem AT siol.net>
4169
4170         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
4171         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
4172           small cosmetic changes
4173         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
4174         * support/regression/tests/bug-1351710.c: added regression test
4175
4176 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4177
4178         * doc/sdccman.lyx: added the long missed iCode table
4179           "<where is figure II?>", added links to wiki
4180
4181 2006-12-17 Borut Razem <borut.razem AT siol.net>
4182
4183         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
4184           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
4185           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
4186           unified table driven pragma handling, pragma argument type checking
4187         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
4188           current one - version 1.1.3
4189         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
4190
4191 2006-12-13 Raphael Neider <rneider AT web.de>
4192
4193         * src/pic/device.h: removed AssignedMemory structure and macros
4194         * src/pic/device.c: removed global finalMapping (linker assigns
4195             memory locations),
4196           (register_map): add SFRs to remembered memRanges
4197           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
4198           assignFixedRegisters,assignRelocatableRegisters): removed,
4199           (setMaxRAM,validAddress): adapted accordingly,
4200           (pic14_hasSharebank,pic14_getSharedStack): only report and use
4201             reasonably sized sharebanks,
4202         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
4203           (allDefsOutOfRange): removed unused code,
4204         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
4205             handling
4206         * src/pic/pcode.c (register_reassign): removed recursion warning,
4207             fired far too often,
4208         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
4209             to use existing pic14_stringInSet() to avoid duplicate symbols,
4210             tidied up the code a bit,
4211           (pic14printLocals): added in symmetry to printExterns, replaces
4212             writeUsedRegs more or less,
4213           (picglue): call new pic14_printLocals(),
4214         * device/include/pic/pic*.h: removed #pragma memmap directives,
4215             information gathered from include/pic/pic14devices.txt
4216         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
4217
4218 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
4219
4220         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
4221
4222 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4223
4224         * device/include/mcs51/cc2430.h: fixed missing ';'
4225
4226 2006-12-10 Raphael Neider <rneider AT web.de>
4227
4228         * device/lib/pic16/libc/stdio/vfprintf.c,
4229         * device/lib/pic16/libc/stdio/printf_small.c,
4230         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
4231           char arguments, as char varargs are cast to int by the caller,
4232           hopefully fixes #1604915 (other device libraries are still affected)
4233
4234 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4235
4236         * src/mcs51/ralloc.c (packRegsForAssign),
4237         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
4238
4239 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
4240
4241         * device/include/malloc.h: removed init_dynamic_memory
4242         * device/lib/malloc.c: made init_dynamic_memory static and automatically
4243           call it once from malloc. Also use _sdcc_heap[] from _heap.c
4244         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
4245         * device/lib/libsdcc.lib,
4246         * device/lib/Makefile.in,
4247         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
4248         * doc/sdccman.lyx: documented use of new _heap.c
4249         * support/regression/tests/malloc.c: removed init_dynamic_memory
4250         * src/cdbFile.c(spacesToUnderscores): new function,
4251           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
4252           1068030
4253         * device/include/tinibios.h: removed defines for putchar and getchar
4254         * device/lib/ds390/Makefile.in: added putchar.c
4255         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
4256
4257 2006-12-09 Borut Razem <borut.razem AT siol.net>
4258
4259         * support/cpp2/sdcc.h: prevent multiple inclusion
4260         * support/cpp2/options.h: deleted
4261
4262 2006-12-08 Borut Razem <borut.razem AT siol.net>
4263
4264         * support/cpp2/sdcc.h: removed x*alloc() macros
4265         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
4266         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
4267           support/cpp2/sdcpp.sdc: x*alloc files added to the project
4268         * support/cpp2/system.h: moved #include "sdcc.h"
4269         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
4270           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
4271           added
4272         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
4273           -funsigned-char options
4274         * support/cpp2/sdcppmain.c: fixed bug 1611411
4275
4276 2006-12-07 Borut Razem <borut.razem AT siol.net>
4277
4278         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
4279           directive
4280
4281 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4282
4283         * src/SDCCsymt.c (addDecl): fixed bug 1609244
4284         * src/SDCCmain.c (linkEdit): fixed bug 1609279
4285         * doc/sdccman.lyx,
4286         * .version: bumped to 2.6.2 because a) it's been a while
4287           b) the linker sources have moved c) the preprocessor is upgraded
4288
4289 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4290
4291         * support/regression/tests/snprintf.c: some checks
4292         * lib/src/printf_large.c: %bc: read char instead of int from stack
4293
4294 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
4295
4296         * device/include/mcs51/cc2430.h: inserted _XPAGE
4297
4298 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4299
4300         * device/include/mcs51/cc2430.h: added
4301
4302 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
4303
4304         * device/include/asm/default/features.h,
4305         * device/include/asm/ds390/features.h,
4306         * device/include/mcs51/at89s53.h,
4307         * device/include/ser.h,
4308         * device/include/ser_ir.h,
4309         * device/include/serial.h: changed keywords to double underscore variants,
4310           fixes bug 1590261 some more, thanks Steven Borley
4311
4312 2006-12-01 Raphael Neider <rneider AT web.de>
4313
4314         * src/pic/pcode.c (register_reassign): do not crash on recursive code
4315           but emit warning (recursion is not supported for pic14)
4316
4317 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4318
4319         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
4320         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
4321
4322 2006-11-30 Raphael Neider <rneider AT web.de>
4323
4324         * src/pic/device.c (dump_sfr): always emit symbols
4325         * src/pic/glue.c (pic14printPublics): fixed typo
4326
4327 2006-11-30 Raphael Neider <rneider AT web.de>
4328
4329         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
4330           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
4331           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
4332            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
4333            a sharebank, use a non-shared bank for the stack if none available
4334         * src/pic/device.h (struct memRange): added linked list next field,
4335           added prototypes for above functions
4336         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
4337           (typeRegWithIdx): accept fixed and unfixed stack registers
4338         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
4339           the stack, handle shared and banked stack (except for WSAVE),
4340           (insertBankSel): removed useless optimization (will never fire),
4341           (FixRegisterBanking): added optimization for devices with only one
4342           possibly aliased bank of memory, like 16f84
4343         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
4344           devices have no SHAREBANK in the linker script
4345         * device/include/pic/pic14devices.txt: documented memmap
4346         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
4347
4348 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4349
4350         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
4351           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
4352           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
4353           genhc08Code): switched most of the D (debug) macros to DD (detailed
4354           debug) macros to better control clutter in the generated .asm file.
4355         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
4356           genRightShift): fixed bug with non-constant bit shift stored to
4357           a volatile result (SF Open Discussion forum thread #1616749).
4358           Single byte case is not yet optimized.
4359
4360 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
4361
4362         * device/include/asm/mcs51/features.h,
4363         * device/include/malloc.h,
4364         * device/include/stdio.h: changed keywords to double underscore variants,
4365           fixes bug 1590261
4366
4367 2006-11-27 Borut Razem <borut.razem AT siol.net>
4368
4369         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
4370           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
4371           support/cpp2/output.h, support/cpp2/cppinit.c,
4372           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
4373           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
4374           support/cpp2/cppdefault.c, support/cpp2/system.h,
4375           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
4376           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
4377           support/cpp2/prefix.c, support/cpp2/except.h,
4378           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
4379           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
4380           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
4381           support/cpp2/version.c, support/cpp2/cppmain.c,
4382           support/cpp2/version.h, support/cpp2/hashtable.c,
4383           support/cpp2/cpperror.c:
4384           synchronized with GCC CPP release version 3.3.6,
4385           the latest where cppmain.c still exists.
4386         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
4387           support/cpp2/sdcppinit.c: added
4388
4389 2006-11-27 Borut Razem <borut.razem AT siol.net>
4390
4391         * support/cpp2/cpplex.c:
4392           fixed _asm ... _endasm handling bug, introduce with GCC CPP
4393           synchronization
4394         * support/cpp2/cpplib.c: removed definitions of unused variables
4395
4396 2006-11-26 Borut Razem <borut.razem AT siol.net>
4397
4398         * support/cpp2/libiberty.h: commented out x*alloc() declarations
4399           since they are redefined by macros in support/cpp2/sdcc.h
4400         * support/cpp2/sdcc.h: x*alloc macro redefinition
4401
4402 2006-11-25 Borut Razem <borut.razem AT siol.net>
4403
4404         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
4405           support/cpp2/configure, support/cpp2/Makefile.in,
4406           support/cpp2/cppfiles.c, support/cpp2/output.h,
4407           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
4408           support/cpp2/config.h, support/cpp2/cpplib.h,
4409           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
4410           support/cpp2/cppdefault.c, support/cpp2/config.in,
4411           support/cpp2/system.h, support/cpp2/cpplex.c,
4412           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
4413           support/cpp2/cppdefault.h, support/cpp2/prefix.c
4414           support/cpp2/hwint.h, support/cpp2/mbchar.h,
4415           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
4416           support/cpp2/configure.in, support/cpp2/intl.h,
4417           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
4418           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
4419           support/cpp2/version.c, support/cpp2/cppmain.c,
4420           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
4421           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
4422           support/cpp2/cpperror.c,
4423           support/cpp2/libiberty/safe-ctype.c,
4424           support/cpp2/libiberty/safe-ctype.h,
4425           support/cpp2/libiberty/splay-tree.c,
4426           support/cpp2/libiberty/obstack.c,
4427           support/cpp2/libiberty/lbasename.c,
4428           support/cpp2/libiberty/splay-tree.h,
4429           support/cpp2/libiberty/obstack.h:
4430           synchronized with GCC CPP release version 3.2.3,
4431           the latest before integration of cpp into gcc
4432         * support/cpp2/except.h, support/cpp2/line-map.c,
4433           support/cpp2/line-map.h,
4434           support/cpp2/libiberty/hex.c,
4435           support/cpp2/libiberty/concat.c,
4436           support/cpp2/libiberty/filenames.h: added
4437         * support/cpp2/intl.c: deleted
4438
4439 2006-11-24 Borut Razem <borut.razem AT siol.net>
4440
4441         * src/SDCC.y: enabled compilation of empty source file
4442         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
4443           "ISO C forbids an empty source file"
4444         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
4445           if all the code is ifdefed out.
4446
4447 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4448
4449         * src/hc08/gen.c (genPcall): fix for bug #1601032
4450
4451 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
4452
4453         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
4454         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
4455         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
4456         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
4457         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
4458         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
4459         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
4460         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
4461         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
4462         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
4463         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
4464         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
4465         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
4466         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
4467         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
4468           Renamed to all upper case as per the standard set by SiLabs
4469
4470 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
4471
4472         * device/include/mcs51/C8051F520.h: new, added
4473         * device/include/mcs51/compiler.h: added link about predefined macros
4474
4475 2006-11-23 Raphael Neider <rneider AT web.de>
4476
4477         * src/regression/Makefile: add -L path to fresh library
4478         * src/regression/simulate: emphasize FAILED output
4479         * src/regression/create_stc: output _failures from gpsim
4480         * src/regression/compare4.c,
4481         * src/regression/rotate6.c: fixed char literals,
4482           all compile, all run =8-D
4483
4484         * src/pic/pcode.h: added isPCASMDIR macro
4485         * src/pic/gen.c (genAnd): fixed bit offset
4486         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
4487           packBits): unified register numbering schemes,
4488           (newReg): do not insert stack registers into hash table,
4489           (initStack): unpinned pseudo stack, simplified,
4490           (typeRegWithIdx): fixed retrieval of stack registers,
4491         * src/pic/pcode.c (addpCodeComment,sameBank): added,
4492           (pCodeReplace): removed invalid assertion,
4493           (insertPCodeInstruction): fixed newly added labels,
4494           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
4495           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
4496           DumpFlow): removed unsed (broken?) code,
4497           (insertBankSel): prevent STATUS from being BANKSELed,
4498           (FixRegisterBanking): rewritten from scratch, implemented generic
4499             optimizations (suppress BANKSELs to same register and to registers
4500             present in all banks),
4501           (AnalyzeBanking): update flow after BANKSELection
4502
4503         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
4504             sharebank, let linker place it, mark STKxx symbols as emitted
4505
4506 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4507
4508         * src/regression/arrays.c,
4509         * src/regression/bank1.c,
4510         * src/regression/bool2.c,
4511         * src/regression/compare7.c,
4512         * src/regression/compare8.c,
4513         * src/regression/compare9.c,
4514         * src/regression/compare10.c,
4515         * src/regression/configword.c,
4516         * src/regression/for.c,
4517         * src/regression/mult1.c,
4518         * src/regression/pointer1.c,
4519         * src/regression/rotate6.c,
4520         * src/regression/string1.c,
4521         * src/regression/struct1.c,
4522         * src/regression/Makefile: make PIC14 regression tests run again
4523           (3 fail, 6 won't compile)
4524
4525 2006-11-21 Raphael Neider <rneider AT web.de>
4526
4527         * device/include/pic16/pic18f4550.h,
4528         * device/include/pic16/pic18f4455.h,
4529         * device/lib/pic16/libdev/pic18f4550.c,
4530         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
4531         * configure.in: removed superfluous closing bracket
4532
4533 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4534
4535         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
4536           always positive.
4537
4538 2006-11-21 Raphael Neider <rneider AT web.de>
4539
4540         * src/pic/device.{c,h}: added pic14_getPIC()
4541         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
4542           (genAnd): added PIC code for one case, fixes #1597044
4543         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
4544           SFRs that are present in all banks (e.g., STATUS)
4545
4546 2006-11-20 Raphael Neider <rneider AT web.de>
4547
4548         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
4549           INCFSZ/INCFSZW and declared them as changing Z bit,
4550           (insertPCodeInstruction): correctly invert the above instructions,
4551           fixes #1599333,
4552           (DoBankSelect): don't panic on po_immediates
4553
4554 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4555
4556         * as/link/aslink.h,
4557         * as/link/mcs51/lkihx.c (newArea),
4558         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
4559         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
4560
4561 2006-11-11 Raphael Neider <rneider AT web.de>
4562
4563         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
4564           bitfield symbols, fixes #1579535 (once more...).
4565
4566 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4567
4568         * support/regression/generate-cases.py,
4569         * support/regression/fwk/include/testfwk.h,
4570         * support/regression/fwk/lib/testfwk.c: used code pointers,
4571           (about 50kByte less code generated for mcs51)
4572
4573 2006-11-06 Borut Razem <borut.razem AT siol.net>
4574
4575         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
4576           debugger/mcs51/configure: fixed failed check because the function
4577           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
4578           who submitted the patch for gpsim.
4579         * debugger/mcs51/configure.in: removed the result message
4580         * debugger/mcs51/Makefile.in: fixed the config.status warning
4581           "... seems to ignore the --datarootdir setting"
4582
4583 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
4584
4585         * device/include/mcs51/c8051f020.h,
4586         * device/include/mcs51/c8051f040.h,
4587         * device/include/mcs51/c8051f060.h,
4588         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
4589         * src/z80/gen.c (gencjneshort),
4590         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
4591
4592 2006-10-31 Borut Razem <borut.razem AT siol.net>
4593
4594         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
4595           debugger/mcs51/configure: get readline version
4596
4597 2006-10-30 Borut Razem <borut.razem AT siol.net>
4598
4599         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
4600         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
4601           debugger/mcs51/configure: locate readline even when cross compiling
4602         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
4603
4604 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4605
4606         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
4607           serial port.
4608
4609 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
4610
4611         * device/include/malloc.h,
4612         * device/lib/calloc.c,
4613         * device/lib/free.c,
4614         * device/lib/malloc.c,
4615         * device/lib/realloc.c: moved definition of struct into sources
4616         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
4617
4618 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
4619
4620         * as/asx8051.dsp: corrected output directories
4621         * as/link/hc08: new directory for hc08 linker
4622         * as/hc08/aslink.h,             as/link/aslink.h,
4623         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
4624         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
4625         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
4626         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
4627         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
4628         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
4629         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
4630         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
4631         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
4632         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
4633         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
4634         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
4635         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
4636         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
4637         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
4638         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
4639         * as/link/hc08/conf.mk,
4640         * configure,
4641         * configure.in,
4642         * Makefile.in,
4643         * sdcc.dsw: moved hc08 linker to as/link/hc08
4644         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
4645         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
4646         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
4647         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
4648         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
4649         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
4650         * as/link/mcs51/aslink.dsp,
4651         * as/link/mcs51/Makefile.in: factored out the common files
4652         * as/hc08/lkstore.c: deleted, use the one already in as/link/
4653         * as/clean.mk: extra cleaning common files
4654         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
4655         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
4656         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
4657
4658 2006-10-29 Raphael Neider <rneider AT web.de>
4659
4660         * src/pic/ralloc.c (newReg): create aliases for registers with
4661           multiple names to fix #1579535 and #1584001,
4662           (regWithIdx,dirregWithName): resolve aliases on lookup
4663         * src/pic/pcode.c (DoBankSelect): die with error message on failing
4664           bankselect
4665         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
4666           to prevent build errors on small devices
4667
4668 2006-10-28 Raphael Neider <rneider AT web.de>
4669
4670         * src/pic/gen.c (genFunction,genCall): drop "same code page"
4671           assumption within interrupt handlers, fixes #1584940
4672         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
4673           "emitted" to avoid emitting them again in udata
4674
4675 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4676
4677         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
4678         Removed.
4679
4680 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4681
4682         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
4683         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
4684         on/off CR to CRLF conversion.
4685
4686 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4687
4688         * doc/sdccman.lyx: updated IRQ section
4689
4690 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4691
4692         * device/lib/serial_io.c: removed
4693         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
4694         replacements for serial_io.c
4695
4696 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
4697
4698         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
4699
4700 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4701
4702         * device/lib/serial_io.c: Default putchar() and getchar() for
4703           mcs51 uses serial port.
4704
4705 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
4706
4707         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
4708
4709 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4710
4711         * support/regression/ports/mcs51/support.c: smaller
4712         _sdcc_external_startup()
4713         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
4714
4715 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
4716
4717         * device/lib/gbz80/crt0.s,
4718         * device/lib/gbz80/crt0_rle.s,
4719         * device/lib/gbz80/div.s,
4720         * device/lib/gbz80/fstubs.s,
4721         * device/lib/gbz80/heap.s,
4722         * device/lib/gbz80/mul.s,
4723         * device/lib/gbz80/putchar.s,
4724         * device/lib/gbz80/stubs.s,
4725         * device/lib/z80/crt0.s,
4726         * device/lib/z80/crt0_rle.s,
4727         * device/lib/z80/div.s,
4728         * device/lib/z80/fstubs.s,
4729         * device/lib/z80/heap.s,
4730         * device/lib/z80/mul.s,
4731         * device/lib/z80/putchar.s,
4732         * device/lib/z80/stubs.s: reverted, I was mistaken
4733
4734 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4735
4736         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
4737         * support/regression/ports/mcs51/support.c: removed race
4738         condition on TI in _putchar allowing to use serial port mode 0
4739
4740 2006-10-20 Borut Razem <borut.razem AT siol.net>
4741
4742         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
4743
4744 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
4745
4746         * device/lib/gbz80/crt0.s,
4747         * device/lib/gbz80/crt0_rle.s,
4748         * device/lib/gbz80/div.s,
4749         * device/lib/gbz80/fstubs.s,
4750         * device/lib/gbz80/heap.s,
4751         * device/lib/gbz80/mul.s,
4752         * device/lib/gbz80/putchar.s,
4753         * device/lib/gbz80/stubs.s,
4754         * device/lib/z80/crt0.s,
4755         * device/lib/z80/crt0_rle.s,
4756         * device/lib/z80/div.s,
4757         * device/lib/z80/fstubs.s,
4758         * device/lib/z80/heap.s,
4759         * device/lib/z80/mul.s,
4760         * device/lib/z80/putchar.s,
4761         * device/lib/z80/stubs.s: removed all leading underscores from area names
4762
4763 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
4764
4765         * support/regression/ports/mcs51/support.c: use highest baudrate so the
4766           regression tests are not waiting in the simulator for simulated
4767           transmission of debug output
4768
4769 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4770
4771         * device/lib/printf_large.c: slightly smaller
4772         * doc/sdccman.lyx: do not use spaces within html links
4773
4774 2006-10-16 Borut Razem <borut.razem AT siol.net>
4775
4776         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
4777           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
4778           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
4779           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
4780           debugger/mcs51/configure:
4781           [ 1185668 ] add gnu readline support to sdcdb - enabled
4782
4783 2006-10-16 Raphael Neider <rneider AT web.de>
4784
4785         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
4786           fixes #1577882, removes close to all banking optimizations
4787
4788 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
4789
4790         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
4791           variables in code memory
4792         * support/regression/tests/absolute.c: added test for this
4793
4794 2006-10-15 Raphael Neider <rneider AT web.de>
4795
4796         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
4797           devices,
4798           (BankSelect): emit BANKSEL before touching linker-placed regs,
4799           fixes #1570934
4800
4801 2006-10-10 Raphael Neider <rneider AT web.de>
4802
4803         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
4804         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
4805         * src/pic/main.c (_pic14_parseOptions),
4806         * src/pic/main.h: mostly reverted to previous state, now use results
4807             from SDCCmain.c's argument parsing
4808
4809 2006-10-10 Borut Razem <borut.razem AT siol.net>
4810
4811         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
4812           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
4813           [ 1185668 ] add gnu readline support to sdcdb -
4814           prepared for READLINE, not enabled yet,
4815           thanks to <tal.bav AT gmail.com>
4816
4817 2006-10-10 Raphael Neider <rneider AT web.de>
4818
4819         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
4820         * src/pic16/devices.inc,
4821         * device/include/pic16 (pic18f[24]620.h),
4822         * device/include/pic18fregs.h,
4823         * device/lib/pic16/pics.all,
4824         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
4825             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
4826             Gary Plumbridge and Anton Strobl
4827
4828 2006-10-10 Raphael Neider <rneider AT web.de>
4829
4830         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
4831           --stack-siz=NUM options to configure the argument passing stack
4832         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
4833         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
4834           (pic14_getSharebankSize): obey --stack-siz=NUM,
4835           (pic14_getSharebankAddress): obey --stack-loc=NUM
4836
4837 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4838
4839         * doc/sdccman.lyx: added to the manual
4840         * doc/figures/ddd_example.png: added (neither pdflatex nor
4841         most browsers seem to like the .eps file)
4842
4843 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
4844
4845         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
4846         to /tmp and /var/tmp acc. LSB
4847         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
4848         RESULT_TYPE_IFX
4849         * support/regression/tests/onebyte.c: added test
4850
4851 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4852
4853         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
4854
4855 2006-10-05 Borut Razem <borut.razem AT siol.net>
4856
4857         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
4858           thanks to dfulab:
4859           - sdcc.dsw: changed property eol-style to CRLF
4860           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
4861
4862 2006-10-04 Raphael Neider <rneider AT web.de>
4863
4864         * device/include/pic/{pic16f84.h,pic16f84a.h},
4865         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
4866           from patch #1522504, thanks to Robas Teodor
4867
4868 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
4869
4870         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
4871           fixes bug 1566015
4872
4873 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
4874
4875         * src/pic16/glue.c (pic16emitMaps),
4876         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
4877         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
4878         * device/lib/pic16/libc/string/memcpypgm2ram.c,
4879         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
4880           Philipp Krause
4881         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
4882         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
4883
4884 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4885
4886         * support/librarian/sdcclib.c: Added option -l.
4887         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
4888           usage totals.
4889         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
4890           using Windows command prompt.
4891
4892 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
4893
4894         * device/lib/libsdcc.lib: added module rand
4895         * src/ds390/ralloc.c (rematStr),
4896         * src/hc08/ralloc.c (rematStr),
4897         * src/mcs51/ralloc.c (rematStr),
4898         * src/z80/ralloc.c (rematStr): made output more consistent
4899         * src/mcs51/gen.c: cosmetic changes
4900
4901 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
4902
4903         * src/port.h: added mem.cabs_name to PORT
4904         * src/ds390/main.c,
4905         * src/hc08/main.c,
4906         * src/mcs51/main.c,
4907         * src/pic16/main.c,
4908         * src/pic/main.c,
4909         * src/xa51/main.c,
4910         * src/z80/main.c: added cabs_name initializers
4911         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
4912           constants
4913           (emitMaps): emit absolutes in code memory into cabs_name
4914         * src/SDCCmem.c,
4915         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
4916         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
4917         * support/regression/fwk/include/testfwk.h: added define for at
4918         * support/regression/tests/absolute.c: added, new
4919
4920 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
4921
4922         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
4923           optimizations, see also patch 887161 by Stas Sergeev
4924         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
4925           to be necessary anymore,
4926           (102, 103, 104, 127): renamed all occurances of bp to _bp
4927
4928 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
4929
4930         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
4931           thanks Weston T. Schmidt for patch 1555221
4932         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
4933         * src/SDCCicode.c(geniCodeMultiply): small optimization
4934
4935 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4936
4937         * device/include/stdlib.h: added rand prototypes
4938         * device/lib/rand.c: new, added
4939         * device/lib/Makefile.in: added rand.c
4940         * src/z80/peeph.def,
4941         * src/z80/peeph-gbz80.def,
4942         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
4943
4944 2006-09-20 Raphael Neider <rneider AT web.de>
4945
4946         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
4947
4948 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
4949
4950         * as/link/aslink.h: cosmetic changes
4951         * as/link/mcs51/Makefile.in,
4952         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
4953
4954 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
4955
4956         * as/link/aslink.h,
4957         * as/link/mcs51/aslink.h,
4958         * as/link/z80/aslink.h: merged and moved to as/link/
4959         * as/link/lkstore.c,
4960         * as/link/mcs51/lkstore.c: moved to as/link/
4961         * as/link/clean.mk: remove *.o
4962         * as/link/mcs51/alloc.h: deleted
4963         * as/link/mcs51/lkarea.c: added lnksect prototype
4964         * as/link/mcs51/lkdata.c,
4965         * as/link/mcs51/lklex.c,
4966         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
4967         * as/link/mcs51/lkmem.c,
4968         * as/link/mcs51/lknoice.c: removed include strcmpi.h
4969         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
4970         * as/link/mcs51/aslink.dsp,
4971         * as/link/mcs51/Makefile.aslink,
4972         * as/link/mcs51/Makefile.bcc,
4973         * as/link/mcs51/Makefile.in: updated for moved files
4974         * as/link/z80/lkarea.c,
4975         * as/link/z80/lkhead.c,
4976         * as/link/z80/lklex.c,
4977         * as/link/z80/lklibr.c,
4978         * as/link/z80/lklist.c,
4979         * as/link/z80/lkmain.c,
4980         * as/link/z80/lkrloc.c,
4981         * as/link/z80/lksym.c: synced with mcs51
4982         * as/link/z80/lkdata.c,
4983         * as/link/z80/lkeval.c,
4984         * as/link/z80/lkihx.c,
4985         * as/link/z80/lks19.c: cosmetic changes
4986         * as/link/z80/Makefile.in,
4987         * as/link/z80/linkgbz80.dsp,
4988         * as/link/z80/linkz80.dsp: updated for moved files
4989
4990 2006-09-16 Borut Razem <borut.razem AT siol.net>
4991
4992         * debugger/mcs51/sdcdb.c: partially fixed
4993           [ 1203664 ] sdcdb fails to open files w. two "." periods
4994         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
4995           debugger/mcs51/symtab.h: fixed indenting
4996         * configure.in, configure: up to date with latest Maarten's changes
4997
4998 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
4999
5000         as/link/mcs51
5001         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
5002         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
5003         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
5004         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
5005         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
5006         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
5007         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
5008         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
5009         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
5010         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
5011         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
5012         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
5013         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
5014         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
5015         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
5016         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
5017         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
5018         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
5019         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
5020         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
5021         as/link/mcs51/alloc.h,
5022         as/link/mcs51/clean.mk,
5023         as/link/mcs51/conf.mk,
5024         as/link/mcs51/Makefile.bcc,
5025         as/link/mcs51/Makefile.in,
5026         as/link/mcs51/readme.390,
5027         as/link/mcs51/strcmpi.c,
5028         as/link/mcs51/strcmpi.h,
5029         as/mcs51/clean.mk,
5030         as/mcs51/Makefile.bcc,
5031         as/mcs51/Makefile.in,
5032         configure,
5033         Makefile.in,
5034         sdcc.dsw: moved mcs51 linker to as/link/mcs51
5035
5036 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
5037
5038         * as/link,
5039         * as/link/Makefile.in,
5040         * as/link/z80/linkgbz80.dsp,
5041         * as/link/z80/linkz80.dsp,
5042         * configure,
5043         * link,
5044         * link/clean.mk,
5045         * link/Makefile.in,
5046         * link/README,
5047         * link/z80,
5048         * link/z80/aslink.h,
5049         * link/z80/clean.mk,
5050         * link/z80/conf.mk,
5051         * link/z80/linkgbz80.dsp,
5052         * link/z80/linkz80.dsp,
5053         * link/z80/lkarea.c,
5054         * link/z80/lkdata.c,
5055         * link/z80/lkeval.c,
5056         * link/z80/lkgb.c,
5057         * link/z80/lkgg.c,
5058         * link/z80/lkhead.c,
5059         * link/z80/lkihx.c,
5060         * link/z80/lklex.c,
5061         * link/z80/lklibr.c,
5062         * link/z80/lklist.c,
5063         * link/z80/lkmain.c,
5064         * link/z80/lkrloc.c,
5065         * link/z80/lks19.c,
5066         * link/z80/lksym.c,
5067         * link/z80/Makefile.in,
5068         * Makefile.in,
5069         * sdcc.dsw: moved link/ to as/link/
5070
5071 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
5072
5073         * as/mcs51/i51mch.c (machine): fixed warning
5074
5075 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5076
5077         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
5078
5079 2006-09-09 Borut Razem <borut.razem AT siol.net>
5080
5081         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
5082           sdcdb WIN32 native port
5083         * src/clean.mk: fixed
5084
5085 2006-09-08 Borut Razem <borut.razem AT siol.net>
5086
5087         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
5088
5089 2006-09-08 Raphael Neider <rneider AT web.de>
5090
5091         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
5092         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
5093             to gplink to disable processor mismatch warning and to allow
5094             the use of devices with only aliased (shared) memory banks,
5095           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
5096
5097 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5098
5099         * doc/sdccman.lyx: Some re-formating plus example on using
5100           #pragma preproc_asm +/-
5101
5102 2006-09-07 Borut Razem <borut.razem AT siol.net>
5103
5104         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
5105           section
5106
5107 2006-09-06 Borut Razem <borut.razem AT siol.net>
5108
5109         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
5110           line at sdcc.nsi:153
5111         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
5112
5113 2006-09-05 Borut Razem <borut.razem AT siol.net>
5114
5115         * configure.in, configure: support for winsock2
5116         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
5117           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
5118           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
5119           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
5120           debugger/mcs51/symtab.h: sdcdb WIN32 native port
5121
5122 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
5123
5124         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
5125           and OP_DEFS
5126         * support/regression/tests/bug1551947.c: new, added
5127         * src/SDCCsymt.h: strings are char* not byte*
5128
5129 2006-09-05 Raphael Neider <rneider AT web.de>
5130
5131         * device/lib/pic16/libdev/pic18f4550.c,
5132           device/include/pic16/pic18f4550.h: added PORTD/TRISD
5133             declarations/definitions from patch #1520949
5134
5135 2006-09-05 Raphael Neider <rneider AT web.de>
5136
5137         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
5138           byte-aligned bitfields, fixes #1539278
5139
5140 2006-09-05 Raphael Neider <rneider AT web.de>
5141
5142         * src/pic/gen.c (genReceive): skip unreferenced arguments,
5143           fixes #1544120
5144
5145 2006-09-04 Borut Razem <borut.razem AT siol.net>
5146
5147         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
5148         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
5149           -mno-cygwin is a part of the compiler name
5150         * support/scripts/sdcc_mingw32: don't disable ucsim
5151
5152 2006-09-03 Borut Razem <borut.razem AT siol.net>
5153
5154         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
5155         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
5156
5157 2006-09-03 Raphael Neider <rneider AT web.de>
5158
5159         * src/pic/ralloc.c,
5160         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
5161           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
5162           fixes #1550049
5163
5164 2006-09-01 Borut Razem <borut.razem AT siol.net>
5165
5166         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
5167           to make ppc-osx happy
5168
5169 2006-08-31 Borut Razem <borut.razem AT siol.net>
5170
5171         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
5172         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
5173         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
5174         * support/regression/ports/ds390/spec.mk,
5175           support/regression/ports/mcs51/spec.mk,
5176           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
5177           To run regression tests in mingw environment:
5178           make DEV_NULL=NUL CC=gcc
5179
5180 2006-08-30 Borut Razem <borut.razem AT siol.net>
5181
5182         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
5183           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
5184           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
5185           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
5186           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
5187           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
5188           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
5189           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
5190           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
5191           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
5192           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
5193           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
5194           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
5195           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
5196           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
5197           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
5198           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
5199           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
5200           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
5201           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
5202           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
5203           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
5204           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
5205           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
5206           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
5207           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
5208           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
5209           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
5210           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
5211           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
5212           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
5213           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
5214           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
5215           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
5216           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
5217           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
5218           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5219           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
5220           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
5221           ucsim WIN32 native port
5222
5223 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5224
5225         * doc/sdccman.lyx: added note on dynamic memory heap initialization
5226
5227 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5228
5229         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
5230         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
5231
5232 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
5233
5234         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
5235         * support/regression/tests/bug1546986.c: new, added
5236         * as/mcs51/.cvsignore,
5237         * debugger/mcs51/.cvsignore,
5238         * src/.cvsignore: deleted
5239
5240 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5241
5242         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
5243           definitions)
5244
5245 2006-08-20 Borut Razem <borut.razem AT siol.net>
5246
5247         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
5248           removed cl_listen_console::match(), cl_console::match(),
5249           restructured cl_commander::proc_input()
5250
5251 2006-08-16 Borut Razem <borut.razem AT siol.net>
5252
5253         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
5254           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
5255           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
5256
5257 2006-08-14 Borut Razem <borut.razem AT siol.net>
5258
5259         * support/regression/Makefile.in,
5260           support/regression/ports/pic14/gpsim.cmd,
5261           support/regression/ports/pic14/spec.mk,
5262           support/regression/ports/pic14/support.c:
5263           added pic14 regression test
5264
5265 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
5266
5267         * as/doc/asxhtm.html: documented changed ABS behaviour
5268         * as/doc/README: fixed some typos
5269
5270 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
5271
5272         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
5273           not defined on host
5274
5275 2006-08-12 Borut Razem <borut.razem AT siol.net>
5276
5277         * support/regression/fwk/include/testfwk.h,
5278           support/regression/fwk/lib/testfwk.c,
5279           support/regression/generate-cases.py,
5280           support/regression/Makefile.in:
5281           regression test framework does not depend on function pointers and
5282           variable arguments
5283
5284 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
5285
5286         * device/include/stddef.h: c temporary hack to fix bug 1518273
5287
5288 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5289
5290         * device/include/mcs51/cc2510fx.h: added
5291         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
5292           to projects.
5293
5294 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
5295
5296         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
5297         * as/z80/Makefile.in: added strcmpi.c
5298         * as/z80/z80adr.c: added upper case registers and lower case conditionals
5299         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
5300
5301 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
5302
5303         * device/lib/gbz80/asm_strings.s,
5304         * device/lib/gbz80/crt0_rle.s,
5305         * device/lib/gbz80/div.s,
5306         * device/lib/gbz80/mul.s,
5307         * device/lib/gbz80/shift.s,
5308         * device/lib/z80/asm_strings.s,
5309         * device/lib/z80/crt0_rle.s,
5310         * device/lib/z80/div.s,
5311         * device/lib/z80/mul.s,
5312         * device/lib/z80/shift.s: changed to all lower case menmonics except the
5313           flags which are all upper case
5314
5315 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
5316
5317         * as/z80/asm.h: made CASE_SENSITIVE 1
5318         * link/z80/aslink.h: made CASE_SENSITIVE 1
5319         * src/z80/gen.c (throughout): made all conditionals upper case
5320         * support/regression/tests/bug1503067.c: new
5321
5322 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
5323
5324         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
5325           (shiftIntoPair): added case 2 for PAIR_IY,
5326           (setupToPreserveCarry): replaced parameters with iCode and check if
5327            PAIR_DE is in use to fix bug 1399290,
5328           (genPlus, genMinus): updated call to setupToPreserveCarry
5329         * support/regression/tests/bug1399290.c: new
5330
5331 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
5332
5333         * device/lib/Makefile.in (Z80SOURCES): enabled float support
5334         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
5335         * src/ds390/gen.c (shiftRLong),
5336         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
5337         * src/mcs51/gen.c (sameReg): changed to sameByte,
5338           (xch_a_aopGet): new,
5339           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
5340            shiftRLong): fixed bug 1533966
5341         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
5342           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
5343         * support/regression/Makefile.in: disabled z80, enabled ucz80
5344         * support/regression/tests/float_trans.c: enabled test for z80 and host
5345         * support/regression/tests/shifts2.c: new, for testing bug 1533966
5346
5347 2006-08-01 Borut Razem <borut.razem AT siol.net>
5348
5349         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
5350           comparison is always false due to limited range of data type
5351           on PPC64 machine (openpower-linux1) where "char = unsigned char"
5352
5353 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
5354
5355         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
5356         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
5357         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
5358         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
5359
5360 2006-07-31 Borut Razem <borut.razem AT siol.net>
5361
5362         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
5363           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
5364           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
5365           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
5366           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
5367           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
5368           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
5369           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
5370           enable ucsim mingw compilation. Serial port is disabled,
5371           since it uses termios.h API, which is not available on native
5372           WIN32
5373
5374 2006-07-31 Borut Razem <borut.razem AT siol.net>
5375
5376         * Small Device C Compiler 2.6.0 released
5377         * support/scripts/sdcc.nsi: added FULL_DOC option
5378         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
5379
5380 2006-07-28 Borut Razem <borut.razem AT siol.net>
5381
5382         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
5383         * doc/INSTALL.txt: updated
5384
5385 2006-07-27 Borut Razem <borut.razem AT siol.net>
5386
5387         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
5388           device/lib/pic/libdev/Makefile.in: fixed bug
5389           [ 1438354 ] pic libsdcc: distclean doesn't work
5390         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
5391           device/lib/pic16/libio/Makefile.in: fixed bug
5392           [ 1438344 ] pic16 lib: clean doesn't work properly
5393         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
5394
5395 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
5396
5397         * device/lib/pic/libsdcc/fsdiv.c,
5398         * device/lib/pic/libsdcc/fsmul.c,
5399         * device/lib/pic16/libsdcc/float/fsdiv.c,
5400         * device/lib/pic16/libsdcc/float/fsmul.c,
5401         * device/lib/_fsdiv.c,
5402         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
5403         * support/regression/tests/bug1520966.c: added
5404         * doc/knownbugs.html: removed [ 1520966 ] from the list
5405
5406 2006-07-25 Borut Razem <borut.razem AT siol.net>
5407
5408         * configure.in, configure, sdccconf_in.h: fixed bug
5409           [ 1519095 ] regression test onebyte.c fails on ppc64 host
5410         * doc/knownbugs.html: removed [ 1519095 ] from the list
5411
5412 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
5413
5414         * doc/knownbugs.html: added, contains list of known bugs at release
5415         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
5416
5417 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5418
5419         * device/include/mcs51/compiler.h: added SFRX for xdata based special
5420           function registers and corrected defaults with additional warning
5421         * device/lib/malloc.c: cosmetic changes
5422         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
5423         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
5424           (fillGaps): and used it
5425
5426 2006-07-20 Raphael Neider <rneider AT web.de>
5427
5428         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
5429           output unless SDCCPICDEBUG is set
5430         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
5431           output if SILENT is set
5432
5433 2006-07-11 Borut Razem <borut.razem AT siol.net>
5434
5435         * doc/README.txt: updated
5436
5437 2006-07-10 Borut Razem <borut.razem AT siol.net>
5438
5439         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
5440           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
5441           in WIN32 installation
5442         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
5443           release candidate 1
5444
5445 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
5446
5447         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
5448         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
5449
5450 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
5451
5452         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
5453
5454 2006-07-06 Borut Razem <borut.razem AT siol.net>
5455
5456         * support/regression/tests/bitfields.c:
5457           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
5458         * support/regression/tests/constantRange.c:
5459           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
5460
5461 2006-07-04 Borut Razem <borut.razem AT siol.net>
5462
5463         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
5464           src/port.mk,
5465           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
5466           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
5467           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
5468           reverted changes from 2006-07-03
5469         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
5470         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
5471           added CPPFLAGS, used by the host port
5472
5473 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
5474
5475         * support/regression/valdiag/tests/switch.c,
5476         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
5477         * support/regression/tests/libmullong.c: fixed for host
5478         * support/regression/ports/host/spec.mk: disable all warnings for host,
5479         SDCC runs with --less-pedantic too
5480
5481 2006-07-03 Borut Razem <borut.razem AT siol.net>
5482
5483         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
5484           defined CPPFLAGS
5485         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
5486         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
5487           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
5488           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
5489           include ../port.mk
5490         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
5491           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5492           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
5493           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
5494
5495 2006-07-02 Raphael Neider <rneider AT web.de>
5496
5497         * src/pic16/devices.inc,
5498         * device/include/pic16/pic18fregs.h,
5499         * device/include/pic16/pic18f4550.h,
5500         * device/lib/pic16/pics.all,
5501         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
5502
5503 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
5504
5505         * as/hc08/lkaomf51.c (OutputName),
5506         * as/mcs51/lkaomf51.c (OutputName),
5507         * as/z80/asmain.c (asmbl),
5508         * src/ds390/main.c (asmLineNodeFromLineNode),
5509         * src/hc08/ralloc.c (hc08_assignRegisters),
5510         * src/mcs51/main.c (asmLineNodeFromLineNode),
5511         * src/xa51/ralloc.c (checkRegMask),
5512         * src/xa51/gen.c (emitcode),
5513         * src/z80/gen.c (_emit2),
5514         * src/SDCCast.c (searchLitOp),
5515         * src/SDCCglobl.h,
5516         * support/packihx/packihx.c,
5517         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
5518         * src/ds390/gen.c (aopPutUsesAcc),
5519         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
5520         * support/regression/tests/libmullong.c (mullong_wrapper),
5521         * src/SDCCsymt.c (powof2),
5522         * src/SDCCast.c,
5523         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
5524         * src/SDCCsymt.h: added TYPE_TARGET_*
5525         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
5526         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
5527         SDCCast because 1) header problems 2) this is the right place
5528         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
5529         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
5530         prototype
5531
5532 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
5533
5534         * src/SDCCicode.h: removed buggy semicolon in unused macro
5535         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
5536         search for previous definiton of auto symbols too,
5537         (findPrevUse): fixed logic of emitWarnings
5538
5539 2006-06-26 Raphael Neider <rneider AT web.de>
5540
5541         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
5542           PCLATH and PCLATU on interrupts, potentially fixes #1505141
5543
5544 2006-06-25 Raphael Neider <rneider AT web.de>
5545
5546         * device/lib/pic/libm: NEW, added math library functions
5547         * device/lib/pic/libsdcc: NEW; added float support functions
5548         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
5549         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
5550           NEW, added math related headers
5551         * device/include/asm/pic/features.h: NEW
5552         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
5553           (popGet): allow larger offsets for AOP_PCODE,
5554           (genDataPointerSet): handle literals explicitly, more debug output,
5555           (genAssign): fixed for float using aopLiteral ;-)
5556         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
5557           GOTO initialisation routine
5558         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
5559           flag on registers, fixes #1469043 (local variables do not work)
5560         * src/pic/main.c (_pic14_do_link),
5561         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
5562           available
5563
5564 2006-06-25 Borut Razem <borut.razem AT siol.net>
5565
5566         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
5567           characters printed (not including the trailing '\0' used to end
5568           output to strings). Problem detected in regression test bug-927659.c.
5569           NOTE: printf() family functions should return int instead
5570           unsigned int!
5571         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
5572           specifier are printed as themselves
5573         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
5574           support flags, width and precision specifiers
5575
5576 2006-06-24 Borut Razem <borut.razem AT siol.net>
5577
5578         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
5579           to the list of sdcc tagrets not supporting bit type
5580         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
5581           testfor pic16 due to bug:
5582           [ 1511794 ] pic16: regression test bug-895992.c fails
5583
5584 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
5585
5586         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
5587         * src/SDCCglue.c (initPointer), fixed bug 1496419
5588         * support/regression/tests/bug1496419.c: new, added
5589
5590 2006-06-22 Borut Razem <borut.razem AT siol.net>
5591
5592         * support/regression/ports/pic16/support.c: use gpsim usart module from
5593           libgpsim_modules library
5594
5595 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5596
5597         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
5598         IP0H to IPH0.
5599
5600 2006-06-19 Raphael Neider <rneider AT web.de>
5601
5602         * src/pic/glue.h,src/pic16/glue.h: added prototypes
5603         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
5604           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
5605           (pic14printExterns,pic14printPublics,pic16printPublics,
5606           pic16_printExterns): use new functions to emit symbols
5607           (picglue,pic16glue): emit publics before emitting externs
5608         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
5609           locally defined functions to avoid bug #1443651
5610         * support/regression/tests/bug-716242.c: removed pic16 workaround
5611         * support/regression/ports/pic16/spec.mk: ignore errors during build
5612
5613 2006-06-19 Raphael Neider <rneider AT web.de>
5614
5615         * src/pic/glue.h: added pic14aopLiteral prototype
5616         * src/pic/glue.c (pic14aopLiteral): return unsigned int
5617         * src/pic/gen.c: removed stdint.h dependency
5618           (aopGet): use Safe_strdup()
5619           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
5620           (genDataPointerSet): use pic14aopLiteral()
5621         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
5622           for pic16; thanks to Bernhard and Maarten
5623
5624 2006-06-18 Borut Razem <borut.razem AT siol.net>
5625
5626         * support/regression/tests/structflexarray.c: flexible array members
5627           not supported by gcc < 3
5628         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
5629           GUI tool by default
5630         * src/pic/gen.c: don't include [p]strdin.h on solaris
5631         * support/Util/pstdint.h: addad svn attributes
5632         * support/regression/tests/constantRange.c,
5633           support/regression/tests/rotate.c: include inttypes.h instead
5634           stdint.h on solaris, addad svn attributes
5635
5636 2006-06-18 Raphael Neider <rneider AT web.de>
5637
5638         * src/SDCCsymt.c (initCSupport): change return type of divschar to
5639           int for PIC16
5640         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
5641           (pic16_genMinusBits): simplified sign-extension
5642           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
5643             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
5644             adjusted to correctly handle mixed-signed operands, disabled
5645             now unused multiplciation routines
5646         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
5647           (assignResultValue): added argument denoting the size of the result
5648             as returned by the function (fixes upcasts in assigning from
5649             function calls: char foo(); int i = foo();)
5650           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
5651             function result to assignResultValue
5652           (genMult): disabled inlined multiplication code
5653           (genDiv): augmented to also handle the modulus operator, fixed to
5654             handle mixed-signed operands correctly
5655           (genMod): simply call genDiv, disabled unused code
5656           (genAssign): fixed missing (sign-)extension on result
5657         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
5658             valid char operands, allow signed operands for native code, added
5659             division and modulo operator handling
5660         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
5661
5662         As a consequence, onebyte.c (if split into two files) and muldiv.c
5663         pass regression tests.
5664
5665 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5666
5667         * doc/Makefile.in: two runs of makeindex seem needed to get
5668         correct page references in the index of sdccman.pdf
5669         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
5670
5671 2006-06-17 Borut Razem <borut.razem AT siol.net>
5672
5673         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
5674
5675 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5676
5677         * doc/sdccman.lyx: updated, added (porting source code, debugging),
5678         mentioned ec2drv and paulmon
5679
5680 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
5681
5682         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
5683           consecutive abs areas
5684           (find_empty_space, allocate_space): added map to handle codemap or
5685            xdatamap,
5686           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
5687            absolute idata and xdata
5688         * as/mcs51/lkmem.c (summary2): updated legend
5689
5690 2006-06-16 Raphael Neider <rneider AT web.de>
5691
5692         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
5693
5694 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
5695
5696         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
5697           1208515
5698         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
5699
5700 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
5701
5702         * src/port.h (struct PORT): added field gp_tags, to hold the tag
5703         value of generic pointers,
5704         * src/avr/main.c,
5705           src/ds390/main.c,
5706           src/hc08/main.c,
5707           src/izt/i186.c,
5708           src/izt/tlcs900h.c,
5709           src/mcs51/main.c,
5710           src/pic/main.c,
5711           src/pic16/main.c,
5712           src/xa51/main.c,
5713           src/z80/main.c: PORT structure, added elements for gp_tags field,
5714         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
5715         fields in the PORT structure of each port,
5716         * src/SDCCast.c (decorateType): allow processing of generic pointers
5717         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
5718         S_FIXED symbols
5719
5720 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
5721
5722         * link/z80/lkgb.c,
5723         * link/z80/lkgg.c,
5724         * src/pic16/gen.c,
5725         * src/pic16/main.c,
5726         * src/pic16/pcode.c,
5727         * src/pic/main.c,
5728         * src/pic/pcoderegs.c,
5729         * src/SDCCicode.c,
5730         * src/SDCCmain.c,
5731         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
5732           bug 1504689 on minGW
5733
5734 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5735
5736         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
5737
5738 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
5739
5740         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
5741
5742 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
5743
5744         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
5745           for optimization
5746
5747 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
5748
5749         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
5750         to a char variable. Fixed bug #1504211
5751         * device/include/pic16/adc.h,
5752         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
5753         and fixed bug #1364390
5754
5755 2006-06-10 Borut Razem <borut.razem AT siol.net>
5756
5757         * CVSROOT: removed the CVS left-over
5758
5759 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
5760
5761         * as/hc08/asmain.c (asexit),
5762         * as/hc08/lkmain.c (lkexit),
5763         * as/mcs51/asmain.c (asexit),
5764         * as/mcs51/lkmain.c (lkexit),
5765         * src/SDCCglue.c (DEFSETFUNC),
5766         * src/SDCCmain.c (linkEdit, assemble),
5767         * support/librarian/sdcclib.c (AddRel),
5768           replaced unlink() by standard C remove()
5769         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
5770         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
5771           gatherImplicitVariables): new, added to fix bug 608752,
5772           (createFunction): added gatherImplicitVariables()
5773         * src/SDCCast.h: added createRMW prototype
5774         * src/SDCCsymt.h (struct symbol): added infertype
5775         * support/regression/tests/bug608752.c: new, added
5776
5777 2006-06-10 Raphael Neider <rneider AT web.de>
5778
5779         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
5780           multibyte dummy reads (fixes #1503234)
5781
5782 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
5783
5784         * device/include/mcs51/compiler.h: new, added header file to enable
5785           creating common sfr definition header files for different compilers
5786
5787 2006-06-05 Raphael Neider <rneider AT web.de>
5788
5789         * src/pic16/{pcode.h,genarith.c}:
5790           introduced pCodeOp combining any two pCodeOps (previously only
5791           two register operands could be combined), removed pcop2 from
5792           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
5793         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
5794         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
5795           rewritten to use new PO_TWO_OPS
5796         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
5797         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
5798           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
5799           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
5800           (pic16_get_op): embraced return arg to allow #define return(x),
5801             added new case for combined opcodes
5802           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
5803           (pic16_pCode2str,pic16_getRegFrompCodeOp,
5804            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
5805
5806 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
5807
5808         * src/SDCCval.c (checkConstantRange): added
5809         * src/SDCCval.h: added checkConstantRange
5810         * support/Util/SDCCerr.c,
5811         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
5812         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
5813         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
5814         * src/SDCCast.c (decorateType): added checkConstantRange,
5815         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
5816         can be emitted with the correct always true/false warning,
5817         added optimization for double '!';
5818         result of decorateType() must be assigned back to the tree, because
5819         decorateType() can change the tree
5820         * src/SDCCicode.c (geniCodeLogic),
5821         (geniCodeAssign): replaced new checkConstantRange, added warnings,
5822         (checkConstantRange): removed, it was only a fragment which never
5823         emitted a warning
5824         * src/SDCCsymt.c (computeType): fixed promotion for
5825         "-1 < (unsigned bit) b"
5826         * src/pic/ralloc.c (packRegsForAssign),
5827         * src/pic16/ralloc.c (packRegsForAssign),
5828         * src/hc08/ralloc.c (packRegsForAssign),
5829         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
5830         from mcs51
5831         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
5832         * support/regression/tests/constantRange.c: added
5833         * support/valdiag/tests/constantRange.c: added
5834         * support/valdiag/valdiag.py: added -DPORT_HOST=1
5835
5836 2006-06-02 Borut Razem <borut.razem AT siol.net>
5837
5838         * support/regression/ports/pic16/support.c: increase stack size
5839           to 255 bytes
5840         * support/regression/Makefile.in: sort tests by name so that the
5841           resutlts can be compared on different machines / platforms
5842
5843 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5844
5845         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
5846         * src/ds390/gen.c (emitLabel): new, added,
5847           (genDjnz): fixed stack overflow bug,
5848           (throughout): cosmetic changes to sync with mcs51/gen.c,
5849           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
5850         * src/mcs51/gen.c (genEndFunction): small optimization,
5851           (throughout): cosmetic changes to sync with ds390/gen.c
5852
5853 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5854
5855         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
5856           (_print_format): fixed printing pointers
5857         * src/mcs51/gen.c (emitLabel, movb): new, added,
5858           (genAssign): small optimization,
5859           (genDjnz): fixed stack overflow bug,
5860           (throughout): replaced sprintf with SNPRINTF,
5861           replaced mcs51_regWithIdx with REG_WITH_INDEX,
5862           replaced emitcode("mov", "b,...") with MOVB(...),
5863           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
5864           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
5865         * src/mcs51/peeph.def: added rules 140 and 264
5866         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
5867           so they may get optimized into registers
5868
5869 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
5870
5871         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
5872           immediately when encountered,
5873           (printUsage): always use stderr even on windows
5874
5875 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
5876
5877         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
5878         (processParms): fixed bug #1247551
5879         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
5880         parseCmdLine, main): print '--version' to stdout,
5881         print 'help' to stdout if --help is given,
5882         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
5883         arguments are given; fixed --help
5884
5885 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
5886
5887         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
5888         * support/regression/tests/bug-1493710.c: added
5889
5890 2006-05-27 Borut Razem <borut.razem AT siol.net>
5891
5892         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
5893           static instead auto
5894         * support/regression/ports/pic16/support.c: increase stack size
5895           from default 64 bytes to 128 bytes
5896         * support/regression/tests/staticinit.c,
5897           support/regression/tests/float.c: regression tests fully enabled
5898           for pic16 port by putting the initialized data arrays into the code
5899           section
5900         * support/regression/ports/pic16/spec.mk: don't link default libraries.
5901           This was changed by mistake in the previous version.
5902
5903 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
5904
5905         * src/pic16/gen.c (genFunction, genEndFunction): some
5906         beautifications, fixed bug with falsely restoring FSR2 in large
5907         stack model, thanks to Beau E. Cox for reporting the bug
5908
5909 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5910
5911         * debugger/mcs51/break.c,
5912         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
5913           use %p to print pointers, made address variables unsigned
5914         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
5915         * debugger/mcs51/symtab.c (parseSymbol): must return something
5916         * src/mcs51/gen.c (aopForSym): small optimization,
5917            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
5918           (freeAsmop): added missing break,
5919           (aopPut): removed parameter bvolatile, determine it inside the function,
5920           (saveRegisters, unsaveRegisters): small optimization,
5921           (genIpush): removed pointless check,
5922           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
5923           replaced sprintf with SNPRINTF,
5924           replaced strcpy with strncpyz,
5925           updated aopPut calls,
5926           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
5927         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
5928
5929 2006-05-24 Borut Razem <borut.razem AT siol.net>
5930
5931         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
5932           modification of test for the pic16 port, put the array to the code
5933           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
5934
5935 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5936
5937         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
5938         * support/Util/pstdint.h: added
5939
5940 2006-05-22 Borut Razem <borut.razem AT siol.net>
5941
5942         * src/regression/Makefile: removed bool2.c test, added -q linker option
5943         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
5944           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
5945           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
5946           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
5947           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
5948           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
5949           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
5950           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
5951           define SUPPORT_BIT_TYPES 0, removed unused bit variables
5952
5953 2006-05-22 Raphael Neider <rneider AT web.de>
5954
5955         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
5956           bug #1492360 (problematic due to generic pointers, see code)
5957
5958 2006-05-22 Borut Razem <borut.razem AT siol.net>
5959
5960         * support/regression/ports/pic16/specs.mk: removed stack size linker
5961           directive
5962         * support/regression/tests/array.c,
5963           support/regression/tests/bitopcse.c,
5964           support/regression/tests/bug-908454.c,
5965           support/regression/tests/malloc.c: modified for pic16 regression test
5966         * support/regression/tests/bitfields.c:
5967           pic16 - excluded bitfileds of size > 8
5968         * support/regression/tests/bp.c: pic16 - reduced data size
5969         * support/regression/tests/bug-221100.c: pic16 - reduced data size
5970         * support/regression/tests/bug-460010.c:
5971           pic16 - used the absolute address the fits in memory
5972         * support/regression/tests/bug-716242.c:
5973           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
5974         * support/regression/tests/float.c:
5975           pic16 - excluded - data size too big
5976         * support/regression/tests/onebyte.c:
5977           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
5978         * support/regression/tests/shifts.c:
5979           pic16 - function names probably have to differ in first X characters
5980           (gpasm limitation?)
5981         * support/regression/tests/staticinit.c:
5982           pic16 - excluded some tests due error: no target memory available for
5983           section ".idata"
5984
5985 2006-05-22 Borut Razem <borut.razem AT siol.net>
5986
5987         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
5988           second try. Thanks Stas Sergeev once more.
5989
5990 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5991
5992         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
5993           (genLeftShift, genRightShift): fixed bug 1491627
5994         * src/hc08/peeph.def (rules 7, 8.x): added
5995         * support/regression/tests/shifts.c (ShiftLeftByParam,
5996           ShiftRightByParam, testShiftByParam): added to test variable shifting
5997
5998 2006-05-20 Raphael Neider <rneider AT web.de>
5999
6000         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
6001         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
6002           (allocReg): add only new registers to dynAllocRegs,
6003           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
6004             #1489055, #1445850, and probably #1483693
6005
6006 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
6007
6008         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
6009         bug in for-loop that didn't emit the last of CONFIG and ID registers
6010
6011 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
6012
6013         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
6014           with offset
6015         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
6016           1489016, 1434401 and 1490124
6017         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
6018           1489016, 1434401 and 1490124
6019
6020 2006-05-17 Borut Razem <borut.razem AT siol.net>
6021
6022         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
6023           thanks Stas Sergeev
6024
6025 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6026
6027         * device/include/mcs51/P89c51RD2.h,
6028         * device/include/mcs51/P89LPC901.h,
6029         * device/include/mcs51/P89LPC922.h,
6030         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
6031
6032 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6033
6034         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
6035         to fix missing stack pragma in compiled binary object file,
6036
6037 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
6038
6039         * support/packihx/configure.in,
6040         * support/packihx/configure: removed warning, autoconf >= 2.5x can
6041         determine sizeof basic types even while cross compiling
6042
6043 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
6044
6045         * src/avr/gen.c (aopop),
6046         * src/ds390/gen.c (aopOp),
6047         * src/hc08/gen.c (aopOp),
6048         * src/mcs51/gen.c (aopop),
6049         * src/pic16/gen.c (pic16_aopOp),
6050         * src/pic/gen.c (aopOp),
6051         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
6052         if size of operand is smaller than spill location
6053
6054 2006-05-12 Borut Razem <borut.razem AT siol.net>
6055
6056         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
6057           have to have CR/LF line endings even if they are checked out on *nix
6058           or on WIN32 in cygwin binmode
6059
6060 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
6061
6062         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
6063         * device/include/ds80c390.h: added sfr16 definitions
6064         * src/ds390/gen.c,
6065         * src/ds390/gen.h,
6066         * src/ds390/main.c,
6067         * src/ds390/ralloc.c,
6068         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
6069           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
6070           bit returning functions
6071         * support/regression/tests/sfr16.c: enabled test on ds390
6072
6073 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6074
6075         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
6076         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
6077
6078 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
6079
6080         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
6081         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
6082           (cl_address_space constructor): removed expensive initialization,
6083           (cl_address_space::get_cell): extended for late initialization,
6084           (cl_address_space::*): use late initialization,
6085           (cl_address_decoder::activate): removed expensive initialization,
6086           This reduced regression test running time by 25%
6087
6088 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
6089
6090         * packihx/,
6091         * configure.in,
6092         * configure,
6093         * sdcc.dsw,
6094         * Makefile.bcc,
6095         * Makefile.in,
6096         * support/packihx/Makefile.in,
6097         * support/packihx/clean.mk,
6098         * support/packihx/Makefile.bcc,
6099         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
6100
6101 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6102
6103         * src/SDCCval.c (valNot): fix for regression test failure
6104           of not.c on big endian hosts
6105
6106 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
6107
6108         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
6109
6110 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6111
6112         * device/lib/mcs51/Makefile.in: changed string comparison operator
6113           to = for POSIX compliance; == is bash extension
6114
6115 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
6116
6117         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
6118           kosmonaut_pirx
6119
6120 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
6121
6122         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
6123         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
6124         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
6125         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
6126         bug report #1478657,
6127
6128 2006-05-05 Borut Razem <borut.razem AT siol.net>
6129
6130         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
6131           making the html
6132
6133 2006-05-02 Borut Razem <borut.razem AT siol.net>
6134
6135         * doc/Makefile.in: removed *.ind dependency since there is no rule to
6136           create *.ind, which made make to fail if invoked with -j 2
6137
6138 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
6139
6140         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
6141           Hubert Sack for patch 1479782
6142
6143 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
6144
6145         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
6146
6147 2006-05-01 Raphael Neider <rneider AT web.de>
6148
6149         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
6150           (create_pic): store only prefix-free device name,
6151           (init_pic): check for device names with "16" prefix,
6152           (list_valid_pics),
6153         * src/pic/device.h (struct PIC_device),
6154         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
6155             stored device name,
6156         * device/include/pic/pic12f{635,675,629,683}.h,
6157         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
6158         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
6159         * device/include/pic/pic16f505.h,
6160         * device/lib/pic/libdev/pic16f505.c: removed
6161         * device/include/pic/pic14devices.txt: added support for pic12f
6162             devices, removed unsupported non 16-bit devices
6163             [above changes provided by patch from Zik Saleeba]
6164         * src/pic/*, src/pic16/*, device/include/pic16/*,
6165           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
6166
6167 2006-05-01 Borut Razem <borut.razem AT siol.net>
6168
6169         * configure.in, configure, doc/Makefile.in:
6170           sync with nightly build makefile - latex, dvipdf and dvips
6171           not needed any more
6172
6173 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
6174
6175         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
6176         in the library source
6177
6178 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
6179
6180         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
6181
6182 2006-04-28 Raphael Neider <rneider AT web.de>
6183
6184         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
6185         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
6186           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
6187         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
6188
6189 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
6190
6191         * device/lib/pic/libdev/Makefile.in,
6192         * device/lib/hc08/Makefile.in,
6193         * device/lib/gbz80/Makefile.in,
6194         * device/lib/z80/Makefile.in,
6195         * device/lib/ds390/Makefile.in,
6196         * device/lib/ds400/Makefile.in: added srcdir to include search path,
6197         thanks to Borut for the bug report
6198         * configure.in,
6199         * configure: always create doc/Makefile independent from --enable-doc
6200         * Makefile.in: always install from directory doc independent from
6201         --enable-doc
6202         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
6203         removed
6204         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
6205         * doc/Makefile.in: install *.txt if present
6206         * device/include/Makefile.in (install): added installation of pic/*.inc
6207         and pic/*.txt files again, they were erroneously removed
6208
6209 2006-04-28 Raphael Neider <rneider AT web.de>
6210
6211         * src/pic/{gen.c,main.h,pcode.c},
6212         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
6213             concerning signedness with casts
6214
6215 2006-04-28 Raphael Neider <rneider AT web.de>
6216
6217         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
6218             definition of an interrupt handler,
6219         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
6220             interrupt handler stuff from picglue() to separate routine,
6221           (picglue): enabled definition of intr handlers in files w/o main()
6222
6223 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6224
6225         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
6226           compilation with MSVC 2005 Express Edition (VC8)
6227
6228 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
6229
6230         * device/lib/Makefile: fixed build of gbz80 lib
6231
6232 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6233
6234         * support/regression/tests/bug-460010.c,
6235         * support/regression/tests/bug-524691.c,
6236         * support/regression/tests/bug-716242.c: removed conditional defines
6237           that are already in testfwk.h
6238
6239 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6240
6241         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
6242           (AccAXRsh1): added, shift right by 1,
6243           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
6244            AccAXLrl1
6245         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
6246
6247 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
6248
6249         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
6250         remove cast to same type
6251         * src/SDCCast.c (decorateType): fix for RFE 1475742,
6252         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
6253         * as/z80/Makefile,
6254         * link/z80/Makefile: removed, they have moved to
6255         Makefile.in files
6256         * configure,
6257         * configure.in: replaced duplicate message about ucsim by missing sdcpp
6258         * install-sh: fix bug #1204398 by setting umask 0022
6259         * device/lib/Makefile: separate build of z80 and gbz80 lib
6260
6261 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
6262
6263         Enabled VPATH feature: changed nearly all Makefiles (149 files).
6264         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
6265
6266         One basic decision: e.g. src/clean.mk includes further files. In order
6267         to make this work there are two solutions:
6268         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
6269           run configure on them. This way they can use
6270           'include $(srcdir)/port-clean.mk'
6271         - always include clean.mk by the Makefile at the same level. To avoid
6272           that `make clean` tries to include and build Makefile.dep the
6273           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
6274           implemented, because now even `make uninstall` doesn't create
6275           Makefile.in. clean.mk could be eliminated by pasting it in
6276           Makefile.in.
6277
6278         * debugger/mcs51/Makefile.in: build own objects from library sources
6279         (SLIB, SDCC) in current directory
6280
6281         * configure, configure.in: renamed --disable-device-lib-build in
6282         --disable-device-lib; added --enable-doc, the required tools are
6283         searched by configure; added result message; the toolchain for the
6284         belonging ports are now only built, if the port is enabled.
6285
6286         * support/regression/*: all output is written in directory gen, because
6287         the fwk and ports directories don't livet in the build tree using vpath
6288
6289         * doc/sdccman.lyx: renamed --disable-device-lib-build to
6290         --disable-device-lib, added --enable-doc, added section VPATH
6291
6292         * sim/ucsim/configure.in,
6293         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
6294         z80 are enabled by default
6295
6296 2006-04-24 Raphael Neider <rneider AT web.de>
6297
6298         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
6299             to config word, "pic14_"-prefixed some extern functions
6300           (pic14_emitConfigWord): emit __config directive(s) if assignment to
6301             config word has been found
6302         * src/pic/device.h: added prototypes
6303         * src/pic/pcode.c: added "pic14_"-prefix where needed
6304         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
6305             fixup
6306         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
6307             words,
6308           (pic14emitRegularMap): ignore config words,
6309           (pic14createInterruptVect): moved generating __config directives away
6310           (picglue): have __config directives emitted
6311
6312 2006-04-24 Borut Razem <borut.razem AT siol.net>
6313
6314         * doc/Makefile: sync with nightly build makefile
6315
6316 2006-04-24 Raphael Neider <rneider AT web.de>
6317
6318         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
6319             registers that have not been assigned proper liveranges,
6320             fixes #1469504 and #1474602,
6321           (pCodeRegOptimizeRegUsage): fixed typo in comment
6322
6323 2006-04-24 Borut Razem <borut.razem AT siol.net>
6324
6325         * device/examples/main8051.c: deleted - it was removed from CVS
6326           24.mar.2000 and after that modified 18.feb.2001, so it reappered
6327           after the transition to Subversion
6328         * src/SDCCalloc.h: deleted - it was removed  from CVS
6329           3.feb.2001 and after that modified 18.feb.2001, so it reappered
6330           after the transition to Subversion
6331         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
6332           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
6333           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
6334           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
6335
6336 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
6337
6338         * as/asx8051.dsp: added mcs51/strcmpi.h
6339         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
6340         * as/hc08/aslink.h: updated lnksect prototype
6341         * as/hc08/asm.h,
6342         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
6343         * as/hc08/asmain.c,
6344         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
6345           (newdot): handle A_ABS
6346         * as/hc08/asout.c,
6347         * as/mcs51/asout.c (outarea): output address
6348         * as/hc08/lkaomf51.c,
6349         * as/mcs51/lkaomf51.c: disabled unused array UsageType
6350         * as/hc08/m08pst.c,
6351         * as/mcs51/i51pst.c,
6352         * as/z80/z80pst.c: "ABS" is not A_OVR
6353         * as/hc08/lkarea.c (newarea): read a_addr,
6354           (lnkarea): added codemap array, sort absolute areas to the front,
6355            combine all GSINITx/GSFINAL,
6356           (find_empty_space, allocate_space): new functions,
6357           (lnksect): return next address, handle absolute sections
6358         * as/mcs51/lkarea.c (newarea): read a_addr,
6359           lnksect2 prototype changed,
6360           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
6361           (find_empty_space, allocate_space): new, factored out of lnksect2,
6362           (lnksect2): return next address, handle absolute sections
6363         * as/hc08/lkhead.c,
6364         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
6365         * as/hc08/lklibr.c (addfile, fndsym),
6366         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
6367           index out of range and detect both '\' and '/'
6368         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
6369         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
6370           regression tests (ds390 cannot return bool yet)
6371         * doc/sdccman.lyx: changed version number, document changed --no-peep,
6372           document critical interrupts on z80, document changed SDCC define
6373         * src/asm.c (_asxxxx_mapping): fixed .org directive,
6374           (_a390_mapping): added .org directive
6375         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
6376           (genMultOneByte): fixed warnings
6377         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
6378           ones
6379         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
6380         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
6381           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
6382         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
6383         * src/pic16/main.c: removed newReg prototype
6384         * src/pic16/pcode.c,
6385         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
6386           warnings
6387         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
6388           ones
6389         * src/pic16/ralloc.c
6390         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
6391           to fix warnings
6392         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
6393           from short to PIC_OPTYPE
6394         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
6395         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
6396           optype from short to PIC_OPTYPE
6397         * src/port.h: made int_size unsigned to fix warnings
6398         * src/SDCC.y: fixed warning on MSVC
6399         * src/SDCCicode.c (getArraySizePtr): return unsigned int
6400         * src/SDCCopt.c (convertToFcall): fixed warnings
6401         * src/SDCCsymt.h: removed double prototype for genSymName
6402         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
6403           offset int to fix warnings
6404
6405 2006-04-22 Borut Razem <borut.razem AT siol.net>
6406
6407         * doc/sdccman.lyx, */Makefile, */Makefile.in:
6408           references to CVS replaced with Subversion
6409
6410 2006-04-21 Borut Razem <borut.razem AT siol.net>
6411
6412         * doc/sdccman.lyx, */Makefile, */Makefile.in:
6413           references to CVS replaced with Subversion
6414
6415 2006-04-19 Borut Razem <borut.razem AT siol.net>
6416
6417         * src/version.awk: adapted for svn
6418         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
6419           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
6420           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
6421           /binutils-avr/etc/*.vi, *.jin: removed all properties
6422           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
6423
6424 2006-04-19 Borut Razem <borut.razem AT siol.net>
6425
6426         * CVS to Subversion migration completed
6427
6428 2006-04-18 Borut Razem <borut.razem AT siol.net>
6429
6430         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}/lib/pic/*.o,
6431           ${DEV_ROOT}/lib/src/pic/libdev/*.S, ${DEV_ROOT}/lib/src/pic/libdev/*.inc
6432
6433 2006-04-17 Borut Razem <borut.razem AT siol.net>
6434
6435         * device/include/Makefile.in: added pic/*.inc to the installation
6436
6437 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
6438
6439         * support/regression/collate-results.py: fixed output in case of
6440         a valdiag error
6441         * support/regression/generate-cases.py: fixed splitting of pathnames
6442         with dots
6443         * as/hc08/lklibr.c (addfile),
6444         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
6445
6446 2006-04-11 Raphael Neider <rneider AT web.de>
6447
6448         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
6449         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
6450         * src/pic16/pcode.c (assignValnums): fixed #1460578
6451
6452 2006-04-11 Raphael Neider <rneider AT web.de>
6453
6454         * device/lib/pic/libdev/*.c,
6455         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
6456           fixes #1468739, enables compilation in --std-c99 mode
6457         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
6458
6459 2006-04-11 Raphael Neider <rneider AT web.de>
6460
6461         * src/pic/device.c (find_device): removed debug output
6462           (list_valid_pics): enabled verbose listing of supported devices
6463         * device/include/stdbool.h: define bool as char for pic14/16 as well
6464
6465 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6466
6467         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
6468
6469 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6470
6471         * .version: bumped version to 2.5.6
6472         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
6473
6474 2006-04-06 Raphael Neider <rneider AT web.de>
6475
6476         * .version: bumped version to 2.5.6 (pic14 ABI changed)
6477         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
6478         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
6479           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
6480             pic14_constructAbsMap
6481           (pic14printPublics): declare absolute global symbols as global
6482           (pic14createInterruptVect),
6483         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
6484           (newReg): assume new registers unused, use correct name in
6485             hashtable (reg->name instead of name), more debugLog output
6486         * src/pic/device.h (PIC_device): added fields for verbose output
6487         * src/pic/device.c: moved device definition to pic14devices.txt,
6488             added routines for runtime parsing of pic14devices.txt,
6489             added support for second config word
6490         * src/pic/main.c (_process_pragma): removed #pragma maxram,
6491           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
6492           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
6493           (_pic14_parseOptions): moved pCodeInitRegisters here
6494           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
6495         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
6496           (pCodeInitRegisters): rewrapped comments, perpared new approach to
6497             handling the pseudo stack
6498         * device/lib/Makefile.in: ignore failures in objects-pic16,
6499         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
6500         * device/lib/pic/NEWS: document new dependency on picXXX.lib
6501         * device/lib/pic/Makefile.subdir,
6502         * device/lib/pic16/Makefile.subdir: improved clean rules
6503         * device/lib/pic/libdev/: NEW, pic14 device libraries
6504         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
6505         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
6506         * device/include/Makefile.in: create subdir and install pic14 headers
6507         * device/include/pic/p16f_common.inc: removed unused declarations
6508         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
6509             PICs from inc2h.pl v1.6,
6510             replaced BIT_AT macros with struct declarations
6511         * device/include/pic/pic14devices.txt: definition of supported devices,
6512             all above improvements contributed by Zik Saleeba, thanks
6513         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
6514         * support/scripts/sdcc.nsi: also install pic14 device libraries and
6515             headers
6516
6517 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6518
6519         * device/include/mcs51/c8051f410.h: added interrupt numbers,
6520         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
6521           thanks to Charles Olds
6522
6523 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6524
6525         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
6526
6527 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6528
6529         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
6530         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
6531         * support/regression/bug1464657.c: added, new test
6532
6533 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
6534
6535         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
6536           version number
6537
6538 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
6539
6540         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
6541           --no-peep and --peep-file <file> are used don't use default rules but
6542           do use the <file>
6543
6544 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
6545
6546         * src/mcs51/gen.c (genCall): fixed bug 1457608
6547
6548 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6549
6550         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
6551         changes seem to cause (trigger?) problems with the build system.
6552
6553 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
6554
6555         * src/SDCCpeeph.c (operandsLiteral): new, added,
6556           (callFuncByName): inserted operandsLiteral
6557         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
6558
6559 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6560
6561         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
6562         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
6563
6564 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6565
6566         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
6567           implemented patch 1120823 Thanks to Willy De la Court (normal
6568           interrupts need an interrupt number now if they are made critical),
6569           and enabled nesting of critical functions though not for gbz80
6570           (genCritical, genEndCritical): added functions
6571           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
6572         * src/z80/mappings.i: added "ei" to all mappings
6573
6574 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6575
6576         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
6577         submitted by the Debian SDCC maintainer Aurelien Jarno:
6578         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
6579         archive with gcc 4.1 on mips and wrote the patch"
6580
6581 2006-03-16 Raphael Neider <rneider AT web.de>
6582
6583         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
6584           the left operand is shorter than the result (c* = lit-c* + int),
6585           fixes bug #1450796
6586         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
6587           OP_SYMBOL
6588
6589 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6590
6591         * src/.version: increased version number to 2.5.5
6592         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
6593         linking is done manually in pic16 port's _linkEdit,
6594         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
6595         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
6596         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
6597         allocate asmop as AOP_ACC,
6598         (aopForRemat): added parameter 'bool result' in function declaration,
6599         (pic16_aopGet): return AOP_ACC when accessing WREG,
6600         (pic16_popGetTempReg): minor modification,
6601         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
6602         'pic16_allocWithIdx',
6603         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
6604         calling function in absolute addresses,
6605         (genAssign): take into account AOP_ACC asmop,
6606         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
6607         * src/pic16/pcoderegs.c: some debug functions and lines added,
6608         * src/pic16/ralloc.c (decodeRegType): added but commented out,
6609         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
6610         register too,
6611         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
6612         call to allocReg, not by manually allocating a new one,
6613         (pic16_assignRegisters): now before going through the register
6614         allocating functions mark all registers as free. This eliminates some
6615         side effects resulting from peephole parser done earlier in the backbone
6616
6617 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
6618
6619         * src/SDCCicode.c (geniCodeLogic),
6620         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
6621
6622 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
6623
6624         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
6625           (genSend): bugfix, do not allocate and free twice,
6626           (shiftRLong): handle partially overlapping aops
6627         * support/regression/tests/bitopcse.c: fixed warning redefined idata
6628
6629 2006-03-08 Borut Razem <borut.razem AT siol.net>
6630
6631         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
6632           for pic16
6633
6634 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
6635
6636         * support/regression/tests/bug1409955.c: new, added
6637         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
6638         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
6639           (aopForSym, aopOp): increment asmop.allocated if reused,
6640           (freeAsmop): decrement asmop.allocated and check for zero instead of
6641           using asmop.freed,
6642           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
6643           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
6644            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
6645            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
6646            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
6647            genSignedRightShift, genRightShift, genDataPointerGet,
6648            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
6649            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
6650             in reverse order from allocation,
6651           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
6652             added swappedLR to keep track
6653         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
6654           pdata & code for GCC, z80, gbz80 & hc08
6655         * support/regression/tests/zeropad.c: moved defines to testfwk.h
6656
6657 2006-03-08 Raphael Neider <rneider AT web.de>
6658
6659         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
6660
6661 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
6662
6663         * device/include/mcs51/c8051f410.h: new SiLabs mcu
6664         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
6665         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
6666
6667 2006-03-06 Borut Razem <borut.razem AT siol.net>
6668
6669         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
6670           made the linker quiet
6671
6672 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6673
6674         * src/pic16/gen.c (genPcall): fixed bug #1443644
6675         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
6676         which dumps before the function entry point a data byte which represents
6677         the number of the local variables used by the specified function, added
6678         'xinst' for initial support for Extended Instruction Support,
6679         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
6680         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
6681         port->fun_prefix anymore (may change later),
6682         (genFunction, genEndFunction): do not store/restore local registers for
6683         _main (this should take care the --main-return command line option in
6684         the future),
6685         (genOr): removed some legacy pic-port instructions,
6686         * src/pic16/genarith.c (genAddLit): re-enabled old code because
6687         performing operations with SFR's causes data to be written more than
6688         once to each SFR. Perhaps SFRs should be handled in special cases...
6689         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
6690         pcode.h
6691         * src/pic16/main.c (_process_pragma): stack bound checking did not take
6692         into account for stack starting position,
6693         (struct OPTIONS pic16_optionsTable): added command line argument
6694         --extended or -y for Extended Instruction Support,
6695         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
6696         (deassignLRs): *** perhaps the most important change, old 'for' code
6697         (commented out for reference), didn't account for some registers which
6698         were left marked 'not free' after a pointer operation. The change
6699         reduces register usage a lot in some cases
6700
6701 2006-03-04 Borut Razem <borut.razem AT siol.net>
6702
6703         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
6704           _clean
6705         * support/regression/tests/bug-524697.c: decreased array size for
6706           mcs51 to fit into the internal RAM
6707         * support/regression/Makefile.in: a little bit more verbose
6708
6709 2006-03-03 Borut Razem <borut.razem AT siol.net>
6710
6711         * support/regression/fwk/lib/testfwk.c,
6712           support/regression/fwk/include/testfwk.h: introduced function
6713           _prints(), nonrecursive _printn(), call _initEmu() from main()
6714         * support/regression/ports/gbz80/support.asm,
6715           support/regression/ports/ucz80/support.asm,
6716           support/regression/ports/z80/support.asm,
6717           support/regression/ports/ds390/support.c,
6718           support/regression/ports/hc08/support.c,
6719           support/regression/ports/host/support.c,
6720           support/regression/ports/mcs51/support.c,
6721           support/regression/ports/xa51/support.c: added empty _initEmu()
6722           function
6723         * support/regression/ports/pic16/gpsim.cmd,
6724           support/regression/ports/pic16/spec.mk,
6725           support/regression/ports/pic16/support.c,
6726           support/regression/Makefile.in: added pic16 regression test
6727
6728 2006-03-01 Raphael Neider <rneider AT web.de>
6729
6730         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
6731           genConstPointerGet): use safe way of generating MOVFF to cover
6732             literals as well as registers, fixes bug #1440527
6733         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
6734             dereference
6735           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
6736             more correctly, fixes bug #1232186
6737           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
6738         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
6739             gplink guess the correct processor in more cases, applied patch
6740             from Till Riedel attached to and fixing bug #1436552
6741
6742 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6743
6744         * support/regression/tests/array.c: added, contains check for #1434401
6745         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
6746
6747 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
6748
6749         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
6750         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
6751         * device/include/mcs51/c8051f326.h,
6752         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
6753         * device/include/mcs51/c8051f000.h,
6754         * device/include/mcs51/c8051f018.h,
6755         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
6756           PCON_IDLE,PCON_STOP and added sfr16 definitions
6757
6758 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
6759
6760         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
6761           genGetWord): fixed bug 1409955
6762
6763 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
6764
6765         * device/include/hc08/mc68hc908gp32.h,
6766         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
6767
6768 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
6769
6770         * src/SDCCast.c (constExprValue): return NULL if not a value
6771         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
6772         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
6773         * support/regression/tests/bitfields.c: enabled signed bitfield for all
6774
6775 2006-02-13 Borut Razem <borut.razem AT siol.net>
6776
6777         * src/regression/ptrarg.c: added, fails due to bug #1430967
6778         * src/regression/Makefile: ptrarg.c added, ...
6779
6780 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
6781
6782         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
6783         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
6784
6785 2006-02-11 Borut Razem <borut.razem AT siol.net>
6786
6787         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
6788           print "Processor: xxx" message to stdout only if --verbose
6789
6790 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6791
6792         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
6793         * support/regression/tests/bug1426356.c: added
6794         * support/regression/tests/bitfields.c: removed 2 tests
6795
6796 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6797
6798         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
6799         * device/include/mcs51/c8051f330.h,
6800         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
6801           PCON_IDLE,PCON_STOP and added sfr16 definitions
6802         * device/lib/_divsint.c,
6803         * device/lib/_divuint.c,
6804         * device/lib/_divulong.c,
6805         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
6806           register bank bug for small stackauto
6807
6808 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6809
6810         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
6811
6812 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
6813
6814         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
6815         * all.dsp: corrected several bin paths
6816         * device/include/mcs51/c8051f120.h,
6817         * device/include/mcs51/c8051f300.h,
6818         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
6819           to PCON_IDLE,PCON_STOP
6820         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
6821         * device/lib/printf_large.c (output_float): fixed bug 1388703
6822         * support/regression/tests/bug1057979.c: added test for bug 1388703
6823
6824 2006-02-08 Raphael Neider <rneider AT web.de>
6825
6826         * src/pic/pcode.c (pciTRIS): fixed typo,
6827           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
6828           (LinkFlow): fixed handling of flows that end in a call,
6829           (ReuseReg): perform safety check earlier
6830         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
6831             to work with flows at the beginning of a pBlock,
6832             fixes #1426557 (Symbol not previously defined),
6833           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
6834             usage information
6835           (RemoveUnusedRegisters): update register usage info
6836         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
6837             created, reuse existing ones instead
6838         * src/pic/gen.c (genPcall): fixed #1424719
6839
6840 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
6841
6842         * link/z80/lkmain.c,
6843         * link/z80/lklex.c,
6844         * link/z80/lkdata.c,
6845         * link/z80/aslink.h: fixed build on current cygwin:
6846         replaced getline() by lk_getline()
6847
6848 2006-02-01 Borut Razem <borut.razem AT siol.net>
6849
6850         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
6851           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
6852           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
6853           src/regression/bool1.c, src/regression/bool2.c,
6854           src/regression/bool3.c, src/regression/call1.c,
6855           src/regression/compare.c, src/regression/compare10.c,
6856           src/regression/compare2.c, src/regression/compare3.c,
6857           src/regression/compare4.c, src/regression/compare5.c,
6858           src/regression/compare6.c, src/regression/compare7.c,
6859           src/regression/compare8.c, src/regression/compare9.c,
6860           src/regression/configword.c, src/regression/for.c,
6861           src/regression/inline.c, src/regression/mult1.c,
6862           src/regression/nestfor.c, src/regression/or1.c,
6863           src/regression/pointer1.c, src/regression/ptrfunc.c,
6864           src/regression/rotate1.c, src/regression/rotate2.c,
6865           src/regression/rotate3.c, src/regression/rotate4.c,
6866           src/regression/rotate5.c, src/regression/rotate6.c,
6867           src/regression/rotate7.c, src/regression/string1.c,
6868           src/regression/struct1.c, src/regression/sub.c,
6869           src/regression/sub2.c, src/regression/switch1.c,
6870           src/regression/while.c, src/regression/xor.c,
6871           src/regression/create_stc, src/regression/simulate,
6872           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
6873           regression tests
6874         * src/regression/gpsim_assert.h: added
6875
6876 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
6877
6878         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
6879         ((void (code *) (void)) 0) ();
6880         * as/hc08/aslex.c,
6881         * as/hc08/aslink.h,
6882         * as/hc08/asm.h,
6883         * as/hc08/asmain.c,
6884         * as/hc08/lkdata.c,
6885         * as/hc08/lklex.c,
6886         * as/hc08/lkmain.c,
6887         * as/mcs51/aslex.c,
6888         * as/mcs51/aslink.h,
6889         * as/mcs51/asm.h,
6890         * as/mcs51/asmain.c,
6891         * as/mcs51/lkdata.c,
6892         * as/mcs51/lklex.c,
6893         * as/mcs51/lkmain.c,
6894         * as/z80/aslex.c,
6895         * as/z80/asm.h,
6896         * as/z80/asmain.c: fixed build on current cygwin:
6897         replaced getline() by as_getline()
6898
6899 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6900
6901         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
6902         declarator in the symbol chain
6903         * src/SDCCsymt.h,
6904         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
6905         parameter list for function pointers
6906         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
6907         * support/regression/tests/bug-716242.c: added
6908
6909 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
6910
6911         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
6912         offset if possible
6913         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
6914
6915 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
6916
6917         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
6918         inifinitely recurseable, added static
6919         * support/regression/tests/bug-1408066.c: added
6920
6921 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
6922
6923         * src/SDCCicode.h,
6924         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
6925         renamed, added possibility to create "postLoopLbl"-labels
6926         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
6927         newiTempLoopHeaderLabel
6928         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
6929         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
6930         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
6931         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
6932         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
6933         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
6934         (basicInduction): fixed bug #136564, made static,
6935         (loopInduction): changed parameter of basicInduction, made static,
6936         (addPostLoopBlock): added
6937         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
6938         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
6939         findLoopEndSeq
6940         * support/regression/tests/bug-136564.c: added
6941         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
6942         --std-sdcc99 to LIBSDCCFLAGS
6943
6944 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
6945
6946         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
6947         while loop
6948         * support/regression/tests/bug-1406131.c: added
6949
6950 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
6951
6952         * src/SDCCast.c (decorateType): fix promotion of unary minus
6953         * src/SDCCsymt.c (computeType): beautified
6954         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
6955         (valUnaryPM, valComplement): fix sign and promotion,
6956         (valNot): ANSI: result type is int (SDCC: unsigned char)
6957         * support/regression/tests/uminus.c: speedup by removing superflous
6958         test case 'int'
6959         * support/regression/tests/onebyte.c: added promotion and signedness
6960         tests for unary minus
6961         * support/regressions/tests/bug-477927.c: disable warning about
6962         uninitialized variables
6963         * support/regression/tests/not.c: added
6964
6965 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
6966
6967         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
6968         * src/mcs51/gen.c (gen51Code): show final register usage after
6969         fillGaps in asm with --i-code-in-asm
6970         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
6971         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
6972         incUsed, rliveClear, adjustIChain): made static,
6973         (setFromRange): excluded because it's unused,
6974         (findPrevUseSym, markWholeLoop): added,
6975         (findPrevUse): rewritten; fixes bug 895992; now a complete search
6976         through all branches of predecessors enables sdcc to emit the warning
6977         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
6978         (rlivePoint): made static, added parameter emitWarnings which is only
6979         true during the first run out of two,
6980         (findRecursiveSucc, findRecursivePred): removed,
6981         (computeLiveRanges): made static, added parameter emitWarnings,
6982         (dumpIcRlive): added for debugging only
6983         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
6984         removed prototype of setFromRange()
6985         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
6986         in call of computeLiveRanges()
6987         * support/regression/tests/bug-895992.c: added
6988         * support/regression/tests/bug-971834.c: added
6989         * support/valdiag/tests/bug-895992.c: added
6990         * support/valdiag/tests/bug-971834.c: added
6991
6992 2005-12-18 Raphael Neider <rneider AT web.de>
6993
6994         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
6995           (genUnpackBits): improved code for direct operands,
6996           (genPackBits): improved code for literal assignment to bitfields
6997             and for direct destination operands (no FSR indirection),
6998             prevented redundant AND, fixes #1362800,
6999           (AccLsh): added parameter to disable masking of the result
7000         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
7001           skip instructions with side-effects (like incfsz),
7002           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
7003         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
7004         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
7005           fixes #1375263
7006
7007 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
7008
7009         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
7010         volatile variables as spill location
7011
7012 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
7013
7014         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
7015         replacing literals
7016         * support/regression/tests/bug-1376320.c: added
7017
7018 2005-12-08 Raphael Neider <rneider AT web.de>
7019
7020         * src/pic/device.c: renamed is_shared to pic14_is_shared
7021         * src/pic/gen.c (genIfx): re-enabled handling of sbits
7022         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
7023           (is_valid_identifier): added for above workaround
7024
7025 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
7026
7027         * device/lib/Makefile.in: fixed to enable port-specific-objects
7028         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
7029           char, thanks Hubert Sack
7030         * doc/sdccman.lyx: documented --xstack-loc,
7031           elaborated a bit more on interrupts and pitfalls,
7032           removed "setjmp/longjmp unsupported",
7033           documented some unsupported C99 features
7034         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
7035         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
7036           if, thanks Hubert Sack
7037         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
7038         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
7039           make make_library
7040         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
7041           regression tests can report resource usage (rfe 700441)
7042         * support/regression/collate-results.py: report resource usage
7043         * support/regression/ports/ds390/spec.mk,
7044         * support/regression/ports/hc08/spec.mk,
7045         * support/regression/ports/mcs51/spec.mk,
7046         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
7047         * support/regression/ports/ds390/uCsim.cmd,
7048         * support/regression/ports/hc08/uCsim.cmd,
7049         * support/regression/ports/mcs51/uCsim.cmd,
7050         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
7051         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
7052           library, use the default one
7053         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
7054           building the library
7055
7056 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
7057
7058         * config.dsp: added dependency on .version and configure_vc.awk
7059         * device/include/setjmp.h: updated for --stack-auto and --xstack
7060         * device/include/mcs51/at89c51snd1c.h: corrected line endings
7061         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
7062         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
7063         * device/lib/libsdcc.lib: added _setjmp
7064         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
7065           (decorateType): fixed bug 1372851,
7066           (optimizeGetHbit): fixed warning
7067         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
7068           array initialisation
7069         * support/regression/tests/bug1057979.c: added test for bug 1358192
7070         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
7071
7072 2005-12-03 Borut Razem <borut.razem AT siol.net>
7073
7074         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
7075           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
7076
7077 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
7078
7079         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
7080         createIval): implement symbol independant "flexible array member",
7081         (createIvalCharPtr): implemented flexible array initialisation with a
7082         string
7083         * src/SDCCsymt.c (copyStruct): removed,
7084         (getSize): fixed misleading comment,
7085         (getAllocSize): removed, the additional allocation size is now in
7086         sym->flexArrayLength,
7087         (checkStructFlexArray): new, syntax checks for flexible array members,
7088         (compStructSize): added syntax checks for "flexible array members"
7089         (copyStruct): removed,
7090         (copyLinkChain): removed inefficient fix for bug 770487
7091         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
7092         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
7093         symbol->flexArrayLength
7094         * src/SDCCerr.c,
7095         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
7096         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
7097         * support/regression/tests/structflexarray.c: added
7098         * support/valdiag/tests/structflexiblearray.c: added
7099
7100 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
7101
7102         * src/SDCCast.c (decorateType): fixed bug 1368489
7103         * support/Util/SDCCerr.c,
7104         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
7105
7106 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7107
7108         * device/include/mcs51/at89c51snd1c.h: added file submitted by
7109           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
7110
7111 2005-11-27 Borut Razem <borut.razem AT siol.net>
7112
7113         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
7114           support/cpp2/mkdeps.h: added command line option
7115           -obj-ext=<extension> to SDCPP to define object file externion, used
7116           for generation of make dependencies (-M)
7117         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
7118
7119 2005-11-26 Borut Razem <borut.razem AT siol.net>
7120
7121         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
7122           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
7123           added pic and pic16 libraries
7124
7125 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7126
7127         * device/include/float.h: Corrected typo in prototype of __fsgt
7128
7129 2005-11-25 Borut Razem <borut.razem AT siol.net>
7130
7131         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
7132           added creation of model-mcs51-stack-auto libraries
7133
7134 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
7135
7136         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
7137         and fields-list too
7138         * src/SDCCast.c (createIvalArray): removed obsolete comment
7139
7140 2005-11-24 Borut Razem <borut.razem AT siol.net>
7141
7142         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
7143           added missing device/lib/mcs51/crt*.asm sources
7144
7145 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
7146
7147         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
7148
7149 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
7150
7151         * device/lib/_fs2schar.c,
7152         * device/lib/_fs2sint.c,
7153         * device/lib/_fs2slong.c: optimized inline asm
7154
7155 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7156
7157         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
7158           Better handling of floats between -1.0 and 0.0.
7159
7160 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7161
7162         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
7163           (the missing "if"s prohibited removal of redundant labels)
7164
7165 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7166
7167         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
7168           Properly convert floats between -1.0 and 0.0 to long, int, and char
7169           types (max integer value of negative floats tends to zero).
7170         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
7171           Removed changes made so to work properly with floats between
7172           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
7173           and _fs2char.c
7174
7175 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
7176
7177         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
7178         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
7179         (genCast) cosmetic change
7180         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
7181         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
7182         from mcs51
7183         * support/regression/tests/bitfields (testSignedBitfields): added
7184
7185 2005-11-18 Borut Razem <borut.razem AT siol.net>
7186
7187         * sdcc/device/lib/Makefile.in: remove all unnecessary files
7188         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
7189           introduced SILENT option to make building of pic16 libraries less
7190
7191 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7192
7193         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
7194           Now they work properly with floats between -1.0 and 0.0
7195         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
7196
7197 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7198
7199         * src/SDCCicode.c (printOperand): added missing else
7200
7201 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
7202
7203         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
7204         reformatted for better readability
7205         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
7206         signed bitfields
7207
7208 2005-11-17 Borut Razem <borut.razem AT siol.net>
7209
7210         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
7211           introduced SILENT option to make building of pic16 libraries less
7212           verbose - used for nightly snapshot build
7213         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
7214           available on Win32 platforms.
7215         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
7216           medium, large, pic and pic16
7217
7218 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7219
7220         * device/lib/printf_large.c: Temporary patch for bug 1358192:
7221           printf("%f"...) sets fraction to zero.
7222
7223 2005-11-16 Raphael Neider <rneider AT web.de>
7224
7225         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
7226           fixes #1357221
7227         * src/pic/gen.c (genIfx): implemented for CARRY bit
7228         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
7229           to generic pointers, fixes #1357332,
7230           (pic16_movLit2f): NEW,
7231           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
7232
7233 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7234
7235         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
7236
7237 2005-11-11 Raphael Neider <rneider AT web.de>
7238
7239         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
7240         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
7241           compute pointer's type from operand,
7242           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
7243           improved single bit reads, fixes bug #1353379
7244
7245 2005-11-09 Borut Razem <borut.razem AT siol.net>
7246
7247         * support/scripts/sdcc.nsi: added lib/pic to the package
7248
7249 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
7250
7251         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
7252
7253 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7254
7255         * support/regression/tests/bug1348008.c: added
7256         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
7257         * support/regression/tests/bug1337835.c: updated comment
7258
7259 2005-11-06 Borut Razem <borut.razem AT siol.net>
7260
7261         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
7262           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
7263           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
7264           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
7265           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
7266           dynamic construction of cl_error_class and derivates - 2.nd try
7267
7268 2005-11-05 Borut Razem <borut.razem AT siol.net>
7269
7270         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
7271           bug, which caused Bus Errors on sparc solaris
7272
7273 2005-11-04 Borut Razem <borut.razem AT siol.net>
7274
7275         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
7276           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
7277           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
7278           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
7279           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
7280           and derivates to resolve the initialization problem on OSX
7281
7282 2005-11-02 Borut Razem <borut.razem AT siol.net>
7283
7284         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
7285           corrected typo - #include <winsock2.h>
7286
7287 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
7288
7289         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
7290           (_asxxxx_mapping): added org directive for future enhancements
7291
7292 2005-11-01 Borut Razem <borut.razem AT siol.net>
7293
7294         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
7295           enabled sockets on WIN32
7296         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
7297
7298 2005-10-31 Borut Razem <borut.razem AT siol.net>
7299
7300         * support/regression/generate-cases.py: escape backslashes in {testcase}:
7301           WIN32 backslash path delimiters should be escaped when used in C strings
7302         * support/regression/tests/bitfields.c: exclude failing assertions for
7303           __CYGWIN32__ and __MINGW32__ hosts
7304
7305 2005-10-30 Borut Razem <borut.razem AT siol.net>
7306
7307         * src/SDCCutil.c: corrected double comparison typo
7308
7309 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
7310
7311         * device/lib/medium/Makefile: added for new memory model medium
7312         * device/include/asm/mcs51/features.h: updated for medium/pdata
7313         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
7314           added Multiply & Accumulate sbit's and MAC0_PAGE define
7315         * device/include/mcs51/c8051f300.h: added sfr16 definitions
7316         * device/include/mcs51/c8051f310.h: added sfr16 definitions
7317         * device/lib/_mullong.c: update for medium model
7318         * device/lib/incl.mk: added medium model
7319         * doc/sdccman.lyx: documented medium model
7320         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
7321         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
7322         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
7323         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
7324           (allocParms): set SCLS and OCLS to pdata for medium model
7325         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
7326           for pdata,
7327           (powof2): return <0 if not power of 2
7328         * src/avr/gen.c (genBitWise): use updated powof2
7329         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
7330           (shiftR2Left2Result): small optimization in setup, save acc when storing,
7331           (shiftLLeftOrResult): use B if necessary
7332         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
7333         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
7334         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
7335         * support/regression/Makefile.in: added test-mcs51-medium
7336         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
7337
7338 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
7339
7340         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
7341         specifier unsigned
7342         * device/lib/time.c (mktime): fixed bug 1334315
7343
7344 2005-10-28 Raphael Neider <rneider AT web.de>
7345
7346         * device/include/pic/p16f_common.inc: added common declarations
7347         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
7348
7349 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
7350
7351         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
7352           (aopPutUsesAcc): added to predict accumulator use,
7353           (assignResultValue): save acc if necessary,
7354           (genMinusDec): store result if indirectly addressed,
7355           (genDivOneByte):  save acc if necessary,
7356           (movLeft2Result): bugfix if left already in acc,
7357           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
7358             attention to accumulator use (esp. pdata),
7359           (genReceive): receive pdata correctly
7360         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
7361         * src/SDCCicode.h: added isOperandInPagedSpace prototype
7362
7363 2005-10-27 Raphael Neider <rneider AT web.de>
7364
7365         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
7366
7367 2005-10-27 Raphael Neider <rneider AT web.de>
7368
7369         * .version: changed version to 2.5.4
7370         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
7371         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
7372           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
7373             arithmetics support routines
7374         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
7375         * device/lib/Makefile.in: also create installdir for pic
7376
7377         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
7378           pic14 port as well
7379         * src/pic/device.c (dump_sfr): rewritten to delegate register
7380           placement to the linker (use `extern sym' rather than sym EQU addr),
7381           (validAddress): fixed to check last specified address
7382         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
7383           (popGetLit): truncate literal value to 8 bit,
7384           (popGet): moved assert to more appropriate place
7385           (popGetExternal): create pCode operand from and mark the according
7386             symbol as being `extern'
7387           (popGetAddr): added sanity check on immediate's offset, provide
7388             GPOINTER tag on demand
7389           (aopPut): fixed for immediates,
7390           (mov2w_op): move operand's address or contents to WREG (depending on
7391             operand type), safer variant of mov2w,
7392           (movwf,call_libraryfunc): NEW, handy abbreviations,
7393           (get_argument_pcop,get_return_val_pcop,pass_argument,
7394           get_returnvalue): interface for accessing function parameters and
7395             return values,
7396           (assignResultValuei,genRet): use new parameter/return value interface
7397           (pic14_getDataSize): back to old version handling generic pointers,
7398           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
7399             provided implementation and/or fixed old one,
7400           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
7401             calls, removed legacy 8051 reference code
7402           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
7403           (loadSignToC): NEW, move the operands sign bit to CARRY,
7404           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
7405             genRightShiftSigned, accepts negative shift counts,
7406           (setup_fsr): load FSR and adjust IRP (indirect memory access),
7407           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
7408             generic pointers, __data pointers and __code pointers,
7409           (genUnpackBits,genPackBits): rewritten to work with generic pointers
7410             and signed bitfields, limit bitfields to 8 bit,
7411           (genDataPointerGet): fixed number of bytes read,
7412           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
7413           (genPointerGet,genPointerSet): fixed handling of __code pointers,
7414             pointers to constant data are no longer assumed to point to __code
7415             space, removed invalid pointer types,
7416           (bitpatternFromVal): retrieve the PICs representation of an integer
7417             or float literal,
7418           (genDataPointerSet): fixed assigning to po_immediate operands,
7419           (genGenPointerSet): implemented as library call,
7420           (genIfx): fixed incorrect condition,
7421           (genAddrOf): limit generic pointers' addresses to 2 bytes,
7422             provide GPOINTER tag according to destination's storage class,
7423           (genCast): added code to handle casting to generic pointers, added
7424             sign-/zero extension of the result
7425           (aop_isLitLike,op_isLitLike): fixed handling of immediates
7426         * src/pic/gen.h: added macros to access IRP bit in STATUS register
7427         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
7428           extend the result
7429         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
7430           address/register resides in the shared banks
7431           (emitSymbolToFile): improved to handle global and `pinned' symbols,
7432             put all variables into separate sections (have the linker arrange
7433             them)
7434           (picglue): put init code and interrupt handlers in separate sections
7435         * src/pic/main.c: added port specific options table, modified to PORT
7436           structure to make GPOINTERs 3 byte, added pic14_options
7437           (_pic14_do_link): private linking routine (update paths to libraries,
7438             add libsdcc.lib by default)
7439         * src/pic/main.h: declare pic14_options
7440         * src/pic/pcode.c: fixed instructions i/o relations,
7441           (RegCond): reverted to correct version,
7442           (newpCodeOpLit): truncate literals to 8 bit,
7443           (genericPrint): added debug output,
7444           (getRegFromInstruction): fixed for various operand types, simplified
7445           (BuildFlow): fixed broken handling of isntructions with labels
7446           (LinkFlow): start at last instruction in flow (skip trailing comments),
7447             pass the flow on to the next instruction after CALL
7448           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
7449           (insertPCodeInstruction): fixed inserting after a skip instruction,
7450           (DoBankSelect): fixed for labeled instructions
7451           (OptimizepBlock): honor --nopeep switch
7452           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
7453         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
7454         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
7455           (pCodeOptime2pCodes): allow disabling this optimization via
7456             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
7457             but is still buggy), started implementation of a dataflow based
7458             pCode optimization (CSE + dead code elimination)
7459           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
7460         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
7461           names are independant of the stack location and therefore portable across
7462           devices
7463
7464 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
7465
7466         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
7467           (selectSpil): fixed bug 1337835 by not spilling bit variables
7468         * support/regression/tests/bug1337835.c: added test for this bug
7469         * src/mcs51/peeph.def: restart after rule 3.c,
7470           addded rules 263.x to optimize loading constants
7471
7472 2005-10-26 Raphael Neider <rneider AT web.de>
7473
7474         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
7475         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
7476           (genAssign): emit warning when casting literals to generic pointer
7477             type, also applies when taking the address of a fixed variable,
7478           (genCast): improved casting to generic pointers
7479         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
7480           extern variables, added verbose error message
7481         * device/include/pic16/{string.h,errno.h}: added #pragma library c
7482
7483 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
7484
7485         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
7486         carry must be complemented too
7487         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
7488         could be emitted by genMinus
7489         * src/SDCCval.c (constVal): fixed bug 1305065
7490
7491 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
7492
7493         * src/SDCCast.c (addCast): added promotion for bit variables
7494         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
7495         promotion casts + optimisation
7496         (optimizeGetWord): fix warning 'i' might be used uninitialized
7497         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
7498         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
7499
7500 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
7501
7502         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
7503         all chars are promoted to int; promotion should be handled in SDCCast.c
7504
7505 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7506
7507         * device/lib/_strcmp.c: Fixed bug 1326457
7508
7509 2005-10-11 Raphael Neider <rneider AT web.de>
7510
7511         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
7512         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
7513
7514 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7515
7516         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
7517         * support/regression/tests/sfr16.c: added test for the sfr32 bug
7518
7519 2005-10-04 Raphael Neider <rneider AT web.de>
7520
7521         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
7522           device/lib/pic16/pics.all: added pic18f1320
7523         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
7524
7525 2005-09-30 Raphael Neider <rneider AT web.de>
7526
7527         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
7528         * src/pic16/devices.inc: NEW, provides device descriptions
7529         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
7530
7531 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
7532
7533         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
7534           GETHBIT
7535
7536 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
7537
7538         * doc/sdccman.lyx: updated Highest Order Bit documentation,
7539           documented Any Order Bit, Higher Order Byte and Higher Order Word
7540         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
7541         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
7542           (optimizeGetAbit): new, to get any bit, not only the high bit,
7543           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
7544           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
7545           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
7546           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
7547             RIGHT_OP: also try GETBYTE, GETWORD optimization,
7548             GETABIT, GETBYTE, GETWORD: decorate them,
7549           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
7550           (ast_print): added GETABIT, GETBYTE, GETWORD
7551         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
7552         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
7553           (geniCodeBinary): new generic binary icode,
7554           (ast2iCode): added GETABIT, GETBYTE, GETWORD
7555         * src/port.h: updated comment for PORT.hasExtBitOp
7556         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
7557           (genGetByte): new, to get a single byte,
7558           (genGetWord): new, to get a word from a long,
7559           (gen51Code): added GETABIT, GETBYTE, GETWORD
7560         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
7561
7562 2005-09-23 Raphael Neider <rneider AT web.de>
7563
7564         * configure.in, configure: have device/lib/pic configured
7565         * device/lib/Makefile.in: added model-pic14
7566         * device/lib/clean.mk: added pic/ to clean rule
7567         * device/lib/pic: added rudimentary pic14 library providing support
7568           functions for multiplication/division/generic pointer access
7569         * src/SDCCopt.c (convilong): mark support functions as extern
7570           for pic14 port as well
7571         * src/pic/gen.c (genMult): added assertions,
7572           (genpic14Code): emit warning on unhandled iCodes
7573         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
7574         * src/pic/pcode.c (pCodeOpCopy),
7575         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
7576           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
7577           SFR_REGISTER}), made safe for future extensions
7578         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
7579           instructions even if preceeded by SKIP instructions (also remove
7580           them); removed unused code
7581         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
7582           prevents leaving parts of the structure uninitialized after copying
7583
7584 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
7585
7586         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
7587           ago by me
7588         * support/regression/tests/addsub.c: added test for the bug
7589
7590 2005-09-21 Raphael Neider <rneider AT web.de>
7591
7592         * device/include/pic16/pic18f1220.h,
7593           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
7594         * device/lib/pic16/Makefile.rules: added missing opening paren
7595         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
7596           are provided in genutils.c,
7597           (genUminusFloat,genUminus,genCmpEq): added asserts on different
7598           operand/result sizes,
7599           (genCmp): assert on NULL pointers first, then check deref'ed values
7600         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
7601           result size
7602
7603 2005-09-18 Raphael Neider <rneider AT web.de>
7604
7605         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
7606           as these are now unused,
7607           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
7608         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
7609           local, avoids uninitialized pointer dereference on r->name
7610         * src/pic16/ralloc.c (newReg): fixed indentation
7611
7612 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
7613
7614         * src/SDCCval.c (constVal): fixed bug 730366
7615         * support/Util/SDCCerr.c,
7616         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
7617
7618 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
7619
7620         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
7621
7622 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
7623
7624         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
7625
7626 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7627
7628         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
7629           (hex2dec): made hex_digit unsigned char, removed ascii dependance
7630         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
7631           (hex2dec): made hex_digit unsigned char, removed ascii dependance
7632         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
7633         * packihx/packihx.c (hexDigit): made c unsigned char
7634         * as/mcs51/lklibr.c (fndsym),
7635         * link/z80/lkgb.c (gb),
7636         * link/z80/lklibr.c (fndsym),
7637         * link/z80/lkrloc.c (relr),
7638         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
7639         * src/SDCC.lex (checkCurrFile, process_pragma),
7640         * src/SDCCglue.c (spacesToUnderscores),
7641         * src/SDCCmain.c (setParseWithComma, processFile),
7642         * src/asm.c (tvsprintf, printCLine),
7643         * src/avr/gen.c (emitcode, aopPut),
7644         * src/ds390/gen.c (emitcode),
7645         * src/hc08/gen.c (emitcode, emitinline),
7646         * src/mcs51/gen.c (emitcode, genInline),
7647         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
7648           tokenizeLineNode),
7649         * src/pic/ralloc.c (debugLog),
7650         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
7651           tokenizeLineNode),
7652         * src/pic16/ralloc.c (debugLog),
7653         * src/z80/main.c (_process_pragma):
7654            made all ctype.h function calls safe
7655         * src/SDCCopt.c: include math.h for fabs
7656         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
7657           and used them throughout the code to make ctype.h function calls safe
7658         * src/ds390/main.c (asmLineNodeFromLineNode),
7659         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
7660         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
7661            unsigned char*
7662         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
7663           (newpCodeAsmDir): made ctype.h function calls safe
7664         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
7665           pic16_emitcode):  made lbp unsigned char*
7666         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
7667           (pic16_newpCodeAsmDir): made ctype.h function calls safe
7668         * src/xa51/gen.c (emitcode),
7669         * src/z80/gen.c (_emit2): made lbp unsigned char*
7670         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
7671            char*
7672
7673 2005-09-05 Raphael Neider <rneider AT web.de>
7674
7675         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
7676           access bank splitpoint
7677
7678 2005-09-05 Raphael Neider <rneider AT web.de>
7679
7680         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
7681
7682 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
7683
7684         * .version: changed to version 2.5.3
7685         * doc/sdccman.lyx: changed version to 2.5.3,
7686           documented --codeseg and --constseg and pragma codeseg and constseg,
7687           documented bit parameters (reentrant) and bit returning
7688         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
7689            currFunc->recvSize, but is this ok for all ports?
7690           (ast2iCode): result of ~ on unsigned char must be cast to int for
7691            bool to work
7692         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
7693           function pointers in bit space
7694         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
7695           (processFuncArgs): call port.reg_parm() with reentrancy info
7696         * src/port.h,
7697         * src/avr/main.c,
7698         * src/ds390/main.c,
7699         * src/hc08/main.c,
7700         * src/pic/main.c,
7701         * src/pic16/main.c,
7702         * src/xa51/main.c,
7703         * src/z80/main.c: port.reg_parm prototype extended with
7704           "bool reentrant" parameter
7705         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
7706           options.stackAuto for allocating bit register parameters
7707         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
7708           (genSend): set BitBankUsed if it is,
7709           (selectRegBank): factored out of genCall for use in genPcall,
7710           (genCall): removed redundant dtype assignmen, use selectRegBank,
7711           (genPcall): handle returning in Carry properly, save in F0 if needed,
7712           (genReceive): handle bit register parameters
7713         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
7714           (mcs51_assignRegisters): enable bit registers for all reentrant
7715            functions and don't set BitBankUsed unconditionally
7716         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
7717         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
7718         * support/regression/tests/funptrs.c: added tests for BOOL and for return
7719
7720 2005-08-27 Borut Razem <borut.razem AT siol.net>
7721
7722         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
7723         ppc-osx (Darwin) does not support -u option. It seems that it is
7724         supported only on Linux - GNU cp
7725
7726 2005-08-25 Borut Razem <borut.razem AT siol.net>
7727
7728         * sim/ucsim/gui.src/serio.src/Makefile.in,
7729           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
7730           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
7731           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
7732           install and strip, since the strip at /usr/ccs/bin should be used
7733           on solaris
7734
7735 2005-08-24 Borut Razem <borut.razem AT siol.net>
7736
7737         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
7738
7739 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
7740
7741         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
7742         ffffffffu
7743
7744 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
7745
7746         * as/mcs51/aslink.h: completed lkrloc.c prototypes
7747         * as/mcs51/lkmain.c (link_main): fixed warning
7748         * device/include/stdbool.h: ds390 has no advanced bit support yet
7749         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
7750         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
7751         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
7752           and updated their macros
7753         * src/SDCCval.c (constVal): updated comment for renamed b_long
7754
7755 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
7756
7757         * as/mcs51/asdata.c: changed ctype['['] to BINOP
7758         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
7759           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
7760           (oprio): set priority for '['
7761         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
7762            and adb_24_bit
7763         * as/mcs51/asm.h: added defines R_BIT and S_BIT
7764         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
7765         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
7766         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
7767           added overlayable BIT_BANK area
7768         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
7769           (summary2): explain 'T' in legenda
7770         * as/mcs51/lkrloc.c: replaced old K&R style,
7771           (relr): added R_BIT processing,
7772           (errmsg): added "Bit-addressable relocation error",
7773           (adb_bit): added for converting from byte- to bit-addressable space,
7774           (adb_24_bit): added for converting from byte- to bit-addressable space
7775         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
7776            used in reentrant functions now even as return value
7777         * device/lib/_gptrput.c (_gptrput): removed obsolete code
7778         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
7779           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
7780         * src/SDCCglobl.h: added indicator BitBankUsed
7781         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
7782            the bit registers b0-b7
7783         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
7784           (geniCodeCast): fixed bug 1263853,
7785           (geniCodeLogicAndOr): put result in bool or char,
7786           (geniCodeReceive): added parameter func for accessing the return type,
7787           (geniCodeFunctionBody): pass func to geniCodeReceive
7788         * src/SDCCmain.c: added indicator BitBankUsed
7789         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
7790         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
7791           (checkSClass): don't put automatic bool/bit on stack,
7792           (checkFunction): removed check on function cannot return bit
7793         * src/SDCCsymt.h: added newBoolLink prototype
7794         * src/mcs51/gen.c (rb1regs): added bit registers,
7795           (movc): created for assigning to carry,
7796           (pushReg, popReg): created for pushing registers,
7797           (sameRegs): check both AOP_REG and AOP_CRY types,
7798           (aopOp): handle bit registers,
7799           (aopPut): optimization no self-assign,
7800           (saveRegisters): push reg->base (bits) only once for bit registers,
7801            and use pushReg,
7802           (unsaveRegisters): pop reg->base only once and use popReg,
7803           (assignResultValue): added parameter func and return in carry for bits,
7804           (genIpush): optimization no reload in A if not changed,
7805           (genSend): bit parameters in reentrant functions are passed in bit
7806            registers by first assigning to bits in B, then save registers and
7807            copy B to bits,
7808           (genCall): handle returning in Carry properly, save it in F0 if needed,
7809           (genPcall): updated assignResultValue call, this is not safe yet for bit
7810            returning function !!!
7811           (genFunction): don't generate equ's for bit registers and use pushReg,
7812           (genEndFunction): take care of bit returning functions and use popReg,
7813           (genRet): return bit in Carry,
7814           (genIfx): optimize bit registers and other directly addressable bits,
7815           (genReceive): updated assignResultValue call
7816         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
7817           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
7818            registers when using stack-auto
7819         * src/mcs51/ralloc.c (_G): added allBitregs,
7820           (regs8051): added the bit registers,
7821           (createStackSpil): use macro IS_BIT,
7822           (getRegBit): added to allocate a bit register, else spill,
7823           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
7824           (updateRegUsage): factored out to ease stepping while debugging,
7825           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
7826            also allocate bit registers,
7827           (fillGaps): handle bit registers,
7828           (findAllBitregs): added to create bit vector with all bit registers,
7829           (mcs51_allBitregs): returns this bit vector,
7830           (mcs51_assignRegisters): when using stack-auto use bit registers for
7831            passing parameters and creating local variables
7832         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
7833
7834 2005-08-22 Borut Razem <borut.razem AT siol.net>
7835
7836         * device/lib/Makefile.in: replaced find option -or with -o
7837           to make it run on solaris
7838
7839 2005-08-22 Raphael Neider <rneider AT web.de>
7840
7841         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
7842           fixes #1265442 (crash on Solaris)
7843
7844 2005-08-20 Borut Razem <borut.razem AT siol.net>
7845
7846         * configure, configure.in: added tests for libsocket and libnsl libraries,
7847           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
7848           from support/regression/Makefile.in
7849         * support/regression/Makefile.in: added
7850         * device/lib/pic16/Makefile.common.in: force make to use bash shell
7851         * sim/ucsim/libtool: regenerated on sparc-solaris
7852         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
7853           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
7854           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
7855           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
7856           sparc-solaris, which doesn't use GNU ld linker
7857         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
7858         * as/Makefile: find on sparc-solaris does not support -maxdepth option
7859
7860 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
7861
7862         * src/mcs51/peeph.def: updated comments
7863
7864 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7865
7866         * device/lib/_gptrget.c,
7867         * device/lib/_gptrput.c: slightly shorter
7868         * doc/sdccman.lyx: incremented version
7869         * src/mcs51/peeph.def: moved peephole comments to the line of first
7870           change to better keep line correlation, reanimated 186.e
7871         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
7872
7873 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7874
7875         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
7876           David Saxton with quotes around file name.
7877
7878 2005-08-15 Borut Razem <borut.razem AT siol.net>
7879
7880         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
7881           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
7882           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
7883           make tests run on x86_64 platform
7884
7885 2005-08-13 Raphael Neider <rneider AT web.de>
7886
7887         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
7888           as it might be executed DURING a build (parallel make is wonderful)
7889
7890 2005-08-13 Raphael Neider <rneider AT web.de>
7891
7892         * device/lib/Makefile.in (port-specific-objects-pic16):
7893           revert to cp $(PORT)/bin/*.* $(PORTDIR)
7894         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
7895           dependency
7896         * device/lib/pic16/Makefile.rules: build subdirs before creating
7897           the library, removed builddir rule, create $(builddir) early in
7898           recurse rule, use empty recurse rule for leaf directories
7899         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
7900           mkdir errors (race condition), removed duplicate suffix "hex"
7901           from clean rules
7902         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
7903         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
7904           prevents mkdir -p from aborting on Alpha
7905
7906 2005-08-12 Raphael Neider <rneider AT web.de>
7907
7908         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
7909           db-statements in order to allow for arrays of pointers in code
7910           sections to be placed without interspersed 0-padding, fixes
7911           bug #1256215
7912         * (emitStatistics): fixed division by zero for pic18f1220
7913         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
7914           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
7915         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
7916         * (pic16_pCodeConstString): keep track of already emitted string
7917           literals to prevent "duplicate definitions of symbol _str_NR"
7918         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
7919           debug message
7920         * device/lib/Makefile.in: ignore failing PIC16 library builds
7921         * device/lib/pic16/Makefile: do not build if gputils are missing
7922         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
7923
7924 2005-08-10 Raphael Neider <rneider AT web.de>
7925
7926         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
7927           my last commit)
7928
7929 2005-08-10 Raphael Neider <rneider AT web.de>
7930
7931         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
7932           Rokas' patch to add the new fixed point type "__fixed16x16"
7933         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
7934           functions for __fixed16x16 arithmetics
7935         * device/lib/pic16: reimplemented the build system to support
7936           a separate build directory, better handling of libio (create
7937           the library in a separate subdir for each architecture) and
7938           easier configuration (centralized in Makefile.common)
7939
7940 2005-08-07 Raphael Neider <rneider AT web.de>
7941
7942         * src/pic16/gen.c (genrshTwo): fixed sign extension
7943         * src/pic16/device.c: added pic18f2320, 4220 and 4320
7944         * device/include/pic16/pic18f2220.h: changed some bit definitions,
7945           added T0CONbits
7946         * device/include/pic16/pic18f4220.h: NEW, header for
7947           pic18f4220 and pic18f4320
7948         * device/include/pic16/pic18fregs.h: added new devices,
7949           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
7950         * device/include/pic16/signal.h: resolved name clashes
7951           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
7952           to also allow testing for interrupt enable bits, added
7953           comments on how to use the macros
7954         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
7955         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
7956           register definitions for the devices
7957         * device/lib/pic16/pics.all: added new devices
7958         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
7959           allocated memory
7960         * device/lib/pic16/libc/stdlib/memfree: do not count
7961           the block header as free memory
7962         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
7963           simplified and added missing end-of-blocklist-marker
7964           (reported by Peter Onion, fixes #1252814)
7965         * (_mergeHeapBlock): fixed loop condition
7966         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
7967           len==0, restructured code
7968         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
7969           up a bit, reduced bitfield accesses, prevent endless loops
7970           in case of heap corruption
7971         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
7972           "unreferenced arguments/must return a value" warnings
7973         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
7974           replaced BAUDREG with SPBRG
7975         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
7976           device/lib/pic16/debug/gstack/gstack.c: replaced
7977           _naked, _asm, _endasm with __naked, __asm, __endasm
7978
7979 2005-08-05 Raphael Neider <rneider AT web.de>
7980
7981         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
7982           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
7983
7984 2005-08-05 Borut Razem <borut.razem AT siol.net>
7985
7986         * device/lib/Makefile.in: added missing ';'
7987         * configure: removed ^M characters
7988
7989 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7990
7991         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
7992           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
7993           License
7994
7995 2005-08-04 Borut Razem <borut.razem AT siol.net>
7996
7997         * configure.in: pic16 libraries build 2nd try - enable running
7998           configure in device/lib/pic16
7999         * configure: regenerated from configure.in
8000         * device/lib/Makefile.in: create $(PORT)/bin directory
8001
8002 2005-08-03 Raphael Neider <rneider AT web.de>
8003
8004         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
8005           to get/set values via pointers
8006         * (genUnpackBits,genPackBits): changed detection of
8007           ptr->bitfield vs. sym.bitfield, fixed access via generic
8008           pointers, removed dead (wrong) code for multibyte bitfields
8009         * (genNearPointerGet, genGenPointerGet): removed useless code,
8010           fixed bitfield detection, fixes #1250594
8011         * (genNearPointerSet): removed useless code
8012         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
8013           and introduced macro pic16_emitpcode that conditionally emits
8014           the origin of the following pCode (useful for debugging SDCC)
8015         * src/pic16/pcode.c: changed (and disabled) some debug outputs
8016         * (createDefmap): fixed handling of LFSR for --optimize-df
8017
8018 2005-08-02 Borut Razem <borut.razem AT siol.net>
8019
8020         * device/lib/Makefile.in: pic16 libraries build enabled since
8021           gputils-0.13.2 are now localy installed at sourceforge's compile farm
8022
8023 2005-08-02 Raphael Neider <rneider AT web.de>
8024
8025         * src/pic16/gen.c (genPackBits): removed deprecated warning
8026         * (genGenPointerSet): fixed bitfield detection
8027
8028 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8029
8030         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
8031
8032 2005-07-31 Raphael Neider <rneider AT web.de>
8033
8034         * device/lib/pic16/libdev/pic18f458.c,
8035           device/include/pic16/pic18f458.h: added missing T0CONbits
8036
8037 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8038
8039         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
8040
8041 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
8042
8043         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
8044
8045 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8046
8047         * device/include/mcs51/at89c51ed2.h: added.
8048
8049 2005-07-23 Raphael Neider <rneider AT web.de>
8050
8051         * src/pic/gen.h: added emitpcode macro for debugging
8052         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
8053           and replace by macro adding debug information on demand
8054         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
8055         * (gencjne): tried to fix; replaced with correct (slower) code
8056         * (gen{Unp,P}ackBits): fixed single bit access
8057         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
8058         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
8059           previous instruction
8060         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
8061           register has to be handled with care (forbidding movement
8062           of assignments/uses, removing assignments completely, ...)
8063         * (pCodeOptime2pCodes): make use of regIsSpecial
8064         * added lots of debugging output (commented out)
8065         * src/pic/rallloc.c (deassignLRs): prevent operand registers
8066           from being reused as result UNLESS it is known to work
8067
8068 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
8069
8070         * support/Util/dbuf.h: include <stddef.h> for size_t
8071         * .version: changed to version 2.5.2
8072
8073 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8074
8075         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
8076
8077 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8078
8079         * src/hc08/gen.c (genMinus): fixed bug #1241835,
8080           (genModOneByte): removed needless psha/pula
8081
8082 2005-07-22 Raphael Neider <rneider AT web.de>
8083
8084         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
8085           have PIC14 handled like PIC16, fixes broken pic14 linker calls
8086         * src/pic/gen.c (resolveIfx): do not "invent" labels
8087         * (genSkipc): changed to positive logic
8088         * (genSkipCond): removed as no longer needed
8089         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
8090           backport from PIC16
8091         * (genLeftShift): check operands are in different registers
8092         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
8093           INCF does not update CARRY...
8094         * src/pic/main.c: fixed _linkCmd
8095         * src/pic/pcode.c (unlinkpCode): added inactive code
8096         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
8097           alive (do not assign result and operand overlapping registers)
8098
8099 2005-07-22 Raphael Neider <rneider AT web.de>
8100
8101         * src/pic/device.c (dump_sfr): replaced register declaration with
8102           call to emitSymbolToFile() to avoid duplicate symbols
8103         * (assignRelocatableRegisters): do not declare external symbols
8104         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
8105           right (take size of type, not etype)
8106         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
8107         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
8108         * (packRegsForAccUse): disabled assignment of WREG as
8109           the result reg to prevent occurence of just fixed #1235003,
8110           fixes #1242954
8111         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
8112           symbols (avoids duplicate symbols in .asm file)
8113         * (pic14emitRegularMap): use emitSymbolToFile()
8114         * src/pic/gen.c (aopOp): fixed spillLocation handling
8115         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
8116         * (genDataPointerSet): removed unneccessary variables/output
8117
8118 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
8119
8120         * as/mcs51/lkarea.c: enlarged codemap for banked memory
8121         * device/lib/mcs51/crtbank.asm: added # to 0x0F
8122
8123 2005-07-21 Raphael Neider <rneider AT web.de>
8124
8125         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
8126           architecture cannot handle them efficiently, fixes bug #1235003
8127         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
8128           check for empty sets before using them (fixes bug #1232190)
8129
8130 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
8131
8132         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
8133           (lnksect2): generate warnings for memory overlap
8134         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
8135           constseg to set the name of these segments so you can instruct the linker
8136           to place them in banks
8137         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
8138         * src/SDCCglobl.h: added MODEL_HUGE to enum,
8139           added code_seg and const_seg to options
8140         * src/SDCCglue.c (emitMaps): use options.const_seg,
8141           (createInterruptVect): put interrupt vectors in segment HOME,
8142           (glue): put HOME before static segment and put the main glue in HOME,
8143           (glue): use options.code_seg
8144         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
8145         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
8146           these segments so you can instruct the linker to place them in banks
8147           (linkEdit): use code_loc for HOME segment which should be the first
8148           segment in code memory now
8149         * src/SDCCmem.c: fixed more stuff like bug 1238386
8150         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
8151           (changePointer): don't change function pointers to code pointers for
8152           banked functions,
8153           (compareType): added exceptional check for banked function pointers
8154         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
8155         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
8156           after static in code memory
8157         * src/mcs51/gen.c: added aopLiteralLong prototype,
8158           (aopForSym): use getSize for functions,
8159           (genCall): generate banked calls over one trampoline __sdcc_banked_call
8160           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
8161           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
8162           the segment,
8163           (genPcall): use call for literal function pointers and generate banked
8164           calls over the one trampoline so there's only one place for the user to
8165           modify according to his/hers hardware,
8166           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
8167           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
8168         * src/mcs51/main.c: added keyword banked,
8169           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
8170         * support/Util/SDCCerr.c,
8171         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
8172           needed for passing the bank and address to the trampoline
8173         * device/lib/mcs51/crtbank.asm: added for bankswitching
8174         * device/lib/mcs51/Makefile: added crtbank
8175
8176 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8177
8178         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
8179           for fields at offset 0 of a struct or union as reported
8180           on 2005-07-07 in the developer mailing list.
8181
8182 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
8183
8184         * src/SDCCmem.c: fixed bug 1238386
8185
8186 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8187
8188         * src/mcs51/peeph.def: added labelrefcounting for peepholes
8189           (patch #1144962), added peephole 300, enabled 259.x
8190         * doc/sdccman.lyx: removed screenshot and provided link instead
8191
8192 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8193
8194         * doc/sdccman.lyx: added section about debugging with ddd
8195         * doc/figures/ddd_example.eps: screenshot of debugging session
8196
8197 2005-07-04 Raphael Neider <rneider AT web.de>
8198
8199         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
8200           like CODE pointers, fixes #1115683
8201         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
8202           call, fixes bugs #1232211, #1228110,
8203           fixed wrong casts to pCodeFlow from pCodeInstructions
8204
8205 2005-07-04 Raphael Neider <rneider AT web.de>
8206
8207         * src/pic/gen.c (popGet): changed assert to allow for
8208           bit operands
8209         * (popGetAddr): changed signature to provide
8210           an additional index, patched all call sites
8211         * (genCmpEq): handle literal-like operands correctly
8212         * (genAddrOf): added sanity checks on __code/__data pointers
8213         * (genAssign): added handling of symbols from __code section
8214         * (gencjne): do not generate code for comparisons whose result
8215           is neither stored nor used, fixes bug #1171114
8216         * (AccLsh, AccRsh): operate on operand instead of WREG
8217         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
8218           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
8219           by known count
8220         * rewrote complete shift-by-literal logic, commented unused
8221           functions out
8222         * (genConstPointerGet): get multiple bytes (if result size > 1),
8223           fixed handling of non-immediate addresses
8224         * (genPointerGet): handle CODE pointers like CONST pointers
8225         * (genpic14Code): insert C-SRC lines as Cource-pCodes
8226         * ({aop,op}_isLitLike): NEW, single place to decide whether an
8227           operand is to be treated as a literal or not
8228         * (mov2w,genPcall,genCmpEq),
8229           src/pic/genarith.c: use aop_isLitLike() to decide between
8230           literal/register contents
8231         * (addSign): added missing offset
8232         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
8233           only emit comment in debug-mode,
8234           use {aop,op}_isLitLike throughout the file
8235         * src/pic/glue.c: fix initializers for pointers (work in progress)
8236         * src/pic/pcode.c (get_op): honor index on _const symbols
8237         * ({reset,dump}pCodeStatistics): NEW, estimate code size
8238         * (dumppBlock): added pCode size estimation
8239         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
8240           check for IS_SYMOP before OP_SYMBOL'ing
8241         * fixed indentation, compacted switch-statements
8242         * (allocReg): find free register and allocate it instead of
8243           allocating new registers all the time
8244         * (deassignLRs): prevent POINTER_GET's from being assigned the same
8245           registers as its operands (necessary only for multibyte GETs)
8246
8247 2005-07-01 Raphael Neider <rneider AT web.de>
8248
8249         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
8250           debugging .asm-output macros FENTRY + FEXIT
8251         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
8252           way... I wonder...
8253         * (emitpComment): NEW, printf to pCode
8254         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
8255           offset handling
8256         * (popGetAddr): NEW, variant of popGet to access an immediates
8257           high(er) bytes instead of the n'th byte of memory they reference,
8258           replaced popGet with popGetAddr where neccessary
8259         * (genDataPointerGet): reactivated and fixed implementation
8260         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
8261           accesses
8262         * (genDataPointerSet): fixed multibyte assignments
8263         * (genpic14Code): fixed --i-code-in-asm handling
8264         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
8265         * (genPlus): fixed index-out-of-bounds error
8266         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
8267         * src/pic/ralloc.c: added debugging output macro FENTRY2
8268         * (spillThis): fixed indentation, enbraced for-body for clarity
8269         * (rematStr): commented out as now unused
8270         * (regTypeNum): commented out special spill case (overwrites
8271           arbitrary values)
8272         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
8273
8274 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
8275
8276         * doc/sdccman.lyx: documented sfr16/sfr32,
8277           added example for using storage class with function pointers
8278         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
8279
8280 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
8281
8282         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
8283         * device/lib/_itoa.c,
8284         * device/lib/_ltoa.c: optimized codesize
8285         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
8286           but don't know how to suppress the double warning.
8287         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
8288         * support/Util/SDCCerr.c,
8289         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
8290
8291 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
8292
8293         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
8294           fixed old K&R prototypes
8295         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
8296         * device/lib/_gptrget.c,
8297         * device/lib/_gptrgetc.c,
8298         * device/lib/_gptrput.c: changed versions for new memory indicator values,
8299           also new versions for small generic pointers and banked generic pointers
8300         * src/port.h: added const_name
8301         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
8302         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
8303         * src/SDCCcse.c (findPrevIc): check all associative operators
8304         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
8305         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
8306         * src/SDCCmem.c: updated comments,
8307           set far-space to 0 for pdata, results in optimized code
8308         * src/SDCCmem.h: added macro CONST_NAME
8309         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
8310           moving the info into the highest bits, see also gptrget/gptrput
8311         * src/src.dsp: added sdcc.ico to project files
8312         * src/avr/gen.c (genCast): fixed bug 0x%d
8313         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
8314         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
8315           relation between ptr_type and DCL_TYPE,
8316           (genCast): fixed bug 0x%d
8317         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
8318           (CODE)" for const_name
8319         * src/hc08/gen.c (genCast): fixed bug 0x%d
8320         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
8321           (hc08_port): added "CONST (CODE)" for const_name
8322         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
8323           (aopForRemat, adjustArithmeticResult): disconnected direct relation
8324           between ptr_type and DCL_TYPE,
8325           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
8326           operand* and took AOP() inside function so sfr-ness can be checked,
8327           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
8328           new prototype,
8329           (genFunction, genEndFunction): optimized stack setup,
8330           (genMinus): optimized for literals with ending zeroes (in bytes),
8331           (genCast): fixed bug 0x%d
8332         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
8333           (mcs51_port): added "CONST (CODE)" for const_name
8334         * src/mcs51/peeph.def: made rule 226 more generic
8335         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
8336         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
8337         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
8338         * src/z80/main.c (z80_port): added NULL for const_name,
8339           (gbz80_port): added NULL for const_name
8340         * support/regression/tests/bug663539.c,
8341         * support/regression/tests/sfr16.c: new tests
8342
8343 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8344
8345         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
8346
8347 2005-06-24 Raphael Neider <rneider AT web.de>
8348
8349         * device/lib/pic16/libdev/pic18f[68][567]20.c:
8350           corrected typos...
8351         * device/include/pic16/signal.h: added USBIF
8352           and SIG_USB
8353
8354 2005-06-24 Raphael Neider <rneider AT web.de>
8355
8356         * device/lib/pic16/libdev/pic18f2455.c,
8357           device/include/pic16/pic18f2455.h: NEW
8358         * device/include/pic16/pic18fregs.h,
8359           device/lib/pic16/pics.all,
8360           src/pic16/device.c: added 18f2455
8361         * device/lib/pic16/libdev/pic18f[68][567]20.c,
8362           device/include/pic16/{pic18f[68][567].h,usart.h}:
8363           replaced MULTIPLE_USARTS define with more relaible
8364           compatibility sfrs (for USART access)
8365
8366 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
8367
8368         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
8369           and the output asm file line is printed on two lines.
8370
8371 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8372
8373         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
8374           BGT, BLE, BHI, and BLS instructions
8375         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
8376           genCmpEq): removed
8377         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
8378           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
8379           fixes bug #1216342
8380         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
8381
8382 2005-06-15 Raphael Neider <rneider AT web.de>
8383
8384         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
8385         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
8386         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
8387           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
8388           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
8389
8390 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8391
8392         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
8393           Marcel Telka in bug #1215704
8394
8395 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
8396
8397         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
8398           located in shared memory bank.
8399
8400 2005-05-31 Raphael Neider <rneider AT web.de>
8401
8402         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
8403           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
8404           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
8405
8406 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
8407
8408         * device/lib/_strncpy.c: fixed the fix
8409
8410 2005-05-26 Raphael Neider <rneider AT web.de>
8411
8412         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
8413           initializers with \0, bug #1208187
8414         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
8415           intializers with \0, bug #1208187
8416
8417 2005-05-26 Raphael Neider <rneider AT web.de>
8418
8419         * src/pic16/glue.c (pic16_printIvalChar): fixed string
8420           initializers with \0, bug #1208187
8421         * src/pic16/main.c (_process_pragma): added sanity checks
8422           for stack position and size, emit warnings when appropriate
8423
8424 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
8425
8426         * device/lib/_strncpy.c: fixed not filling with \0
8427
8428 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8429
8430         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
8431           createFunction),
8432         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
8433           compound_statement),
8434         * src/SDCCsymt.h,
8435         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
8436
8437 2005-05-24 Raphael Neider <rneider AT web.de>
8438
8439         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
8440
8441 2005-05-24 Raphael Neider <rneider AT web.de>
8442
8443         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
8444           TRISE definitions, closes bug #1162453
8445
8446 2005-05-22 Raphael Neider <rneider AT web.de>
8447
8448         * src/pic16/main.c (_process_pragma): check for missing
8449           arguments to pragmas code and udata
8450         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
8451           consistency fixes to match other headers (thanks to Jim Paris)
8452         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
8453
8454 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
8455
8456         * src/SDCCicode.c (isOperandEqual): fixed missing ;
8457
8458 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
8459
8460         * support/regression/tests/bug1198642.c: new test
8461         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
8462         * src/SDCCcse.c (findPrevIc): added comment, please have a look
8463         * support/scripts/resource.h,
8464         * support/scripts/resource.rc,
8465         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
8466         * support/scripts/sdcc.ico: added 32x32 icon
8467
8468 2005-05-18 Raphael Neider <rneider AT web.de>
8469
8470         * device/lib/pic16/libdev/pic18f*.c,
8471         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
8472           keywords to "__sfr" and "__at (X)"
8473         * device/include/pic16/pic18fregs.h: added pic18f4520
8474         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
8475           #1203088 (MPLAB compatibility)
8476
8477 2005-05-17 Raphael Neider <rneider AT web.de>
8478
8479         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
8480         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
8481         * device/lib/pic16/pics.all: added new devices
8482         * src/pic16/device.c: added support for pic18f4520
8483
8484 2005-05-16 Raphael Neider <rneider AT web.de>
8485         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
8486         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
8487         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
8488           convenience function for bit access
8489
8490 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8491
8492         * device/lib/printf_large.c: fixed bug 1193299
8493         * support/regression/tests/bug1057979.c: added test %3.3s
8494
8495 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8496
8497         * device/include/mcs51/8051.h,
8498         * device/include/mcs51/8052.h: made parseable with lint
8499         * device/include/mcs51/lint.h: added include file for (sp)lint
8500         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
8501         * doc/cdbfileformat.lyx,
8502         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
8503
8504 2005-05-14 Raphael Neider <rneider AT web.de>
8505
8506         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
8507         * device/lib/pic16/libc/stdlib/itoa.c (new)
8508         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
8509         * device/lib/pic16/libio/Makefile: exclude subdir according to
8510           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
8511         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
8512         * src/pic16/gen.c (genFunction): prevent annoying warning
8513         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
8514           nameclashes on BeOS
8515         * support/cpp2/cppmain.c (cpp_output_string): new
8516         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
8517           fixes bug 1116802
8518
8519 2005-05-13 Borut Razem <borut.razem AT siol.net>
8520
8521         * src/SDCCmain.c (linkEdit): fixed bug 1195202
8522
8523 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8524
8525         * .version: changed to version 2.5.1; back to bleeding edge development
8526
8527 2005-05-11 Borut Razem <borut.razem AT siol.net>
8528
8529         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
8530           generate PDF version 1.3 documents
8531
8532 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8533
8534         * .version: changed to version 2.5.0
8535
8536 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8537
8538         * doc/sdccman.lyx: updated weblinks, index and smaller updates
8539
8540 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8541
8542         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
8543         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
8544         well as many smaller updates.
8545         * .version: changed to version 2.5.0-pre1
8546
8547 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8548
8549         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
8550
8551 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
8552
8553         * support/regression/tests/bug1185672.c: added
8554         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
8555           bug 1185672
8556         * src/mcs51/gen.c (genCall): added comments, made it look safer
8557         * src/mcs51/gen.c (genEndFunction): simplified
8558
8559 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
8560
8561         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
8562
8563 2005-04-14 Borut Razem <borut.razem AT siol.net>
8564
8565         * fixed bug 1045046 - SIGSEGV with really simple code?:
8566           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
8567           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
8568
8569 2005-04-14 Borut Razem <borut.razem AT siol.net>
8570
8571         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
8572           src/pic16/device.h: temporarily disabled experimental #inline pragma
8573           for 2.5.0 release
8574
8575 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
8576
8577         * device/include/z80/stdio.h,
8578         * device/include/z80/string.h: removed these highly incomplete files so
8579           SDCC can use the default ones in device/include/
8580
8581 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8582
8583         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
8584         gcc warning.
8585         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
8586         fix sdcpp warnings.
8587
8588 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
8589
8590         * device/include/malloc.h: removed redundant __reentrant prototypes
8591         * device/lib/_mullong.c: added working xstack variant in asm (C version
8592           doesn't pass regression tests)
8593         * device/lib/bpx.c: used __data and made bpx char for mcs51
8594         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
8595           (createFunction): fixed bug with xstackPtr
8596         * src/SDCCcse.c: corrected comments
8597         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
8598           (killDeadCode, eBBlockFromiCode): removed unused code
8599         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
8600           corrected comments
8601         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
8602           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
8603           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
8604           (genModOneByte): fixed warning in MSVC
8605         * src/mcs51/main.c (): added comments
8606         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
8607
8608 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
8609
8610         * src/SDCCmain.c (linkEdit): oops, changed one line too many
8611
8612 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
8613
8614         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
8615
8616 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
8617
8618         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
8619         characters arrays of larger size than the declared one.
8620
8621 2005-04-10 Borut Razem <borut.razem AT siol.net>
8622
8623         * src/pic/gen.c (genInline),
8624           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
8625           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
8626           (findNextInstruction), (findPrevInstruction),
8627           (findInstructionUsingLabel),
8628           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
8629         * src/pic/pcode.c (findLabel): added missing '\n'
8630         * src/src.dsp: added SDCCdwarf2.c to the project
8631
8632 2005-04-09 Borut Razem <borut.razem AT siol.net>
8633
8634         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
8635
8636 2005-04-08 Raphael Neider <rneider AT web.de>
8637
8638         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
8639           into the chain after a given one) and mergeDefmapSymbols (combine
8640           defmap entries for each symbol per pcode)
8641         * (createDefmap): have defmap entries merged in the end
8642         * (defmapReplaceSymRef): split defmap entries covering two accesses to
8643           a symbol before replacing one access type's symbol, merge symbols in
8644           the end (replacement symbol might already have an entry)
8645         * (assignValnums): keep reference to written WREG intact
8646
8647 2005-04-08 Raphael Neider <rneider AT web.de>
8648
8649         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
8650           Alpha)
8651
8652 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
8653
8654         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
8655         bytes
8656
8657 2005-04-07 Raphael Neider <rneider AT web.de>
8658
8659         * device/include/pic16/usart.h: added compatibility defines for
8660           devices with more than one USART
8661         * device/include/pic16/pic18f[68][567]20.h: activated above defines
8662
8663 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8664
8665         * device/lib/Makefile.in: updated for port specific include
8666
8667 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8668
8669         * support/regression/ports/mcs51/spec.mk: added mcs51 include
8670
8671 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8672
8673         * device/include/8051.h,
8674         * device/include/8052.h,
8675         * device/include/at89S8252.h,
8676         * device/include/at89c55.h,
8677         * device/include/at89x051.h,
8678         * device/include/at89x51.h,
8679         * device/include/at89x52.h,
8680         * device/include/mcs51reg.h,
8681         * device/include/reg51.h,
8682         * device/include/reg764.h,
8683         * device/include/regc515c.h,
8684         * device/include/sab80515.h: (re)moved these 12 files
8685         * device/include/mcs51/8051.h,
8686         * device/include/mcs51/8052.h,
8687         * device/include/mcs51/at89S8252.h,
8688         * device/include/mcs51/at89c55.h,
8689         * device/include/mcs51/at89x051.h,
8690         * device/include/mcs51/at89x51.h,
8691         * device/include/mcs51/at89x52.h,
8692         * device/include/mcs51/mcs51reg.h,
8693         * device/include/mcs51/reg51.h,
8694         * device/include/mcs51/reg764.h,
8695         * device/include/mcs51/regc515c.h,
8696         * device/include/mcs51/sab80515.h: and added them here
8697
8698 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
8699
8700         * device/include/stdarg.h: changed SDCC specific keywords to double
8701           underlined form.
8702         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
8703           mcs51 and ds390.
8704         * device/include/hc08/mc68hc908gp32.h,
8705         * device/include/hc08/mc68hc908jb8.h,
8706         * device/include/hc08/mc68hc908jkjl.h,
8707         * device/include/hc08/mc68hc908qy.h: fixed comments
8708         * device/include/mcs51/README: updated
8709         * device/include/mcs51/c8051f120.h: added PINRSF
8710         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
8711         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
8712           amidst code. Also inline is not supported.
8713
8714 2005-04-06 Raphael Neider <rneider AT web.de>
8715
8716         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
8717         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
8718           callers stack/frame pointers
8719
8720 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
8721
8722         * device/include/pic16/usart.h: added, missing in previous commit,
8723         * device/include/pic16/adc.h: fixed typo,
8724         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
8725         commit,
8726         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
8727         <p18fxxx.inc>
8728         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
8729         uninitialized because a bug appears with gplink
8730         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
8731         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
8732         complains for unrecognised option
8733
8734 2005-04-05 Raphael Neider <rneider AT web.de>
8735
8736         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
8737           structs as well (using memcpy)
8738         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
8739           on ISRs (GOTO has no label)
8740         * src/pic16/device.h: added OF_OPTIMIZE_DF
8741         * src/pic16/main.c: added compiler switch --optimize-df to enable the
8742           new data flow analysis/optimization
8743         * src/pic16/pcode.c: added (prototypes for and implementation of)
8744           dataflow analysis functions, fixed pCodeInstructions' inCond and
8745           outCond values, made RCALL a branch instruction
8746         * (pic16_unlinkpCode): keep C line if possible
8747         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
8748           C line moved if possible
8749         * (pic16_getRegFrompCodeOp): NEW, improved version of...
8750         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
8751           to use new pic16_getRegFrompCodeOp (works for more SFRs)
8752         * (pic16_BuildFlow): fixed skip instructions with label (did not start
8753           new flow)
8754         * (pic16_getJumptabpCode): NEW, needed in...
8755         * (LinkFlow): fixed handling of jumptables, calls and conditional
8756           branches
8757         * (pic16_InsertCommentAfter): NEW
8758         * (pic16_pCodeReplace): made verbose and flow preserving
8759         * (AnalyzeFlow): added call to data flow analysis
8760         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
8761         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
8762         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
8763
8764 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8765
8766         * src/SDCCast.c (decorateType): fixed bug #1105626
8767
8768 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
8769
8770         * device/include/asm/pic16/features.h,
8771         * pic18f*.h headers,
8772         * device/include/pic16/adc.h,
8773         * device/include/pic16/delay.h,
8774         * device/include/pic16/i2c.h,
8775         * device/include/pic16/malloc.h,
8776         * device/include/pic16/stdio.h,
8777         * device/include/pic16/stdlib.h,
8778         * device/include/pic16/string.h,
8779         * device/lib/pic16/libc/stdio/printf_tiny.c,
8780         * device/lib/pic16/libc/stdio/printf_small.c,
8781         * device/lib/pic16/libc/stdio/strmgpsim.c,
8782         * device/lib/pic16/libc/stdio/strmmssp.c,
8783         * device/lib/pic16/libc/stdio/strmusart.c,
8784         * device/lib/pic16/libc/stdio/vfprintf.c,
8785         * device/lib/pic16/libc/stdlib/ltoa.c,
8786         * device/lib/pic16/libc/stdlib/putchar.c,
8787         * device/lib/pic16/libc/stdlib/x_ftoa.c,
8788         * device/lib/pic16/libc/stdlib/memchrpgm.c,
8789         * device/lib/pic16/libc/stdlib/memchrram.c,
8790         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
8791         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
8792         * device/lib/pic16/libio/adc/adcbusy.c,
8793         * device/lib/pic16/libio/adc/adcread.c,
8794         * device/lib/pic16/libio/adc/adcsetch.c,
8795         * device/lib/pic16/libio/usart/ubaud.c,
8796         * device/lib/pic16/libio/usart/ubusy.c,
8797         * device/lib/pic16/libio/usart/udrdy.c,
8798         * device/lib/pic16/libio/usart/uopen.c,
8799         * device/lib/pic16/libio/usart/uputc.c,
8800         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
8801         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
8802         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
8803         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
8804         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
8805         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
8806         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
8807         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
8808         specific keywords to double underlined form,
8809         * device/lib/pic16/libc/Makefile.rules,
8810         * device/lib/pic16/libsdcc/Makefile.rules,
8811         * device/lib/pic16/libm/Makefile,
8812         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
8813         to compile with C standard set in Makefile.common
8814         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
8815         rand.c and crc.c in compilation process,
8816         * device/lib/pic16/libsdcc/int/divuint.c,
8817         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
8818         `c' from signed to unsigned,
8819         * device/lib/pic16/startup/crt0.c,
8820         * device/lib/pic16/startup/crt0i.c,
8821         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
8822         keywords to double underlined form, bug fixes in _do_cinit function
8823         which prevented the correct initialization of the .idata segment,
8824         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
8825         core to enter a infinite loop
8826         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
8827
8828 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8829
8830         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
8831
8832 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8833
8834         * device/include/Makefile.in: add support for hc08 subdirectory
8835         * device/include/hc08/: new subdirectory
8836         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
8837         Lucas Loizaga, thanks!
8838         * device/include/hc08/mc68hc908qy.h,
8839         * device/include/hc08/mc68hc908gp32.h,
8840         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
8841         their own directory. Changed internal macro names to use the compiler
8842         reserved namespace. Changed SDCC specific keywords to double
8843         underlined form.
8844         * device/include/math.h,
8845         * device/include/malloc.h,
8846         * device/include/stdarg.h,
8847         * device/include/stdbool.h
8848         * device/include/string.h,
8849         * device/include/tinibios.h,
8850         * device/include/ds400rom.h,
8851         * device/include/8051.h,
8852         * device/include/8052.h,
8853         * device/include/80c51xa.h,
8854         * device/include/at89c55.h,
8855         * device/include/at89S8252.h,
8856         * device/include/at89x51.h,
8857         * device/include/at89x52.h,
8858         * device/include/ds80c390.h,
8859         * device/include/reg764.h,
8860         * device/include/regc515c.h,
8861         * device/include/sab80515.h,
8862         * device/include/mcs51/c8051f000.h,
8863         * device/include/mcs51/c8051f018.h,
8864         * device/include/mcs51/c8051f020.h,
8865         * device/include/mcs51/c8051f040.h,
8866         * device/include/mcs51/c8051f060.h,
8867         * device/include/mcs51/c8051f120.h,
8868         * device/include/mcs51/c8051f300.h,
8869         * device/include/mcs51/c8051f310.h,
8870         * device/include/mcs51/c8051f320.h,
8871         * device/include/mcs51/c8051f330.h,
8872         * device/include/mcs51/c8051f350.h,
8873         * device/include/z180.h: Changed SDCC specific keywords to double
8874         underlined form.
8875
8876 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
8877
8878         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
8879         18F4455,
8880         * (pic16_assignConfigWordValue): disable testing of configuration
8881         register value with config mask,
8882         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
8883         function with port->fun_prefix,
8884         * (genFunction): when generating a naked interrupt function never
8885         create an absolute segment placed in interrupt vector address, place
8886         the actual interrupt function at IVA instead, when an interrupt
8887         function is generated with unspecified interrupt then do not create
8888         the absolute section,
8889         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
8890         code for generating a call to generic pointer get/put function with
8891         a call to function pic16_callGenericPointer(),
8892         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
8893         the call to the generic pointer get/put functions with prefixing the
8894         function name with port->fun_prefix,
8895         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
8896         * src/pic16/main.c (_process_pragma): prefix function with
8897         port->fun_prefix,
8898         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
8899         calling assembler, old 18Fxxxx macro is deprecated,
8900         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
8901         PC_ASMDIR in while condition,
8902         * (findInstruction): add PC_ASMDIR in while condition,
8903         * (buildCallTree): prefix main with port->fun_prefix,
8904         * (pic16_pCode2str): fixed bug that didn't emit the memory access
8905         identifier for variable with banked access in instructions BTFSS,
8906         BTFSC, BCF, BSF, BTG
8907         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
8908         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
8909         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
8910         perform optimization when enviroment variable NO_REG_OPT is set,
8911         * (insideLRBlock): NEW, return 1 if register is inside an
8912         INF_LOCALREGS block,
8913         * (RemoveRegFromLRBlock): remove a register that is completely
8914         eliminated by register optimization, but it is still left in local
8915         register store/restore in/from stack block,
8916         * (Remove2pcodes): after removing register, check to see if it
8917         should be removed from local register store/restore in/from stack
8918         block,
8919         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
8920         DUMMY_READ_VOLATILE,
8921
8922         * device/include/pic16/adc.h: minor prototype modifications and
8923         update,
8924         * device/include/pic16/malloc.h: added GPL notice various
8925         modifications,
8926         * device/include/pic16/stdint.h: NEW, standard header for ints
8927         * device/include/pic16/delay.h: NEW, header for delay functions,
8928         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
8929         delay1mtcy,
8930         * device/include/pic16/signal.h: NEW, header providing helper macros
8931         for implementing signal handlers,
8932         * device/include/pic16/stdio.h: added prototypes for functions,
8933         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
8934         prototypes for stdin and stdout, added macro PUTCHAR to
8935         automatically implement putchar function prototype,
8936         * device/include/pic16/usart.h: modified and updated USART library,
8937         * device/lib/pic16/libio/adc/,
8938         * device/lib/pic16/libio/i2c: some modifications to improve library
8939         performance,
8940         * device/lib/pic16/libc/stdio/: modifications for the new printf*
8941         family of functions,
8942         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
8943         family of functions and other sources,
8944         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
8945         of the PIC18Fxx[28] devices,
8946         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
8947         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
8948         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
8949         _do_cinit function, because the previous failed when local variables
8950         where not placed in the same memory bank,
8951         * device/lib/pic16/libsdcc/char/: various modifications to improve
8952         library performance,
8953         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
8954         information on the new functions of the c library and more...
8955
8956 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8957
8958         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
8959
8960 2005-03-26 Raphael Neider <rneider AT web.de>
8961
8962         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
8963           if condition == CARRY)
8964         * (genCmp): adapted to new genSkipc semantics
8965         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
8966           on rIfx (genCmp was broken)
8967
8968 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8969
8970         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
8971         * src/z80/main.c (_keywords[]),
8972         * src/SDCCglobal.h (struct options),
8973         * src/SDCC.y,
8974         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
8975         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
8976         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
8977         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
8978         always available in leading double underscore form. The C99 support is
8979         mostly missing, but it's a start.
8980         * support/regression/tests/bug-227710.c: fixed nonconforming use of
8981         reserved identifier "__data".
8982
8983 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
8984
8985         * src/mcs51/peeph.def: fixed bug 1170013
8986
8987 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
8988
8989         * device/include/mcs51reg.h: fixed bug 842007
8990
8991 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8992
8993         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
8994         last time.
8995
8996 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8997
8998         * src/port.h (struct PORT),
8999         * src/avr/ralloc.c (avr_assignRegisters),
9000         * src/avr/main.c,
9001         * src/ds390/ralloc.c (ds390_assignRegisters),
9002         * src/ds390/main.c,
9003         * src/hc08/ralloc.c (hc08_assignRegisters),
9004         * src/hc08/main.c,
9005         * src/mcs51/ralloc.c (mcs51_assignRegisters),
9006         * src/mcs51/main.c,
9007         * src/pic/ralloc.c (pic14_assignRegisters),
9008         * src/pic/main.c,
9009         * src/pic16/ralloc.c (pic16_assignRegisters),
9010         * src/pic16/main.c,
9011         * src/xa51/ralloc.c (xa51_assignRegisters),
9012         * src/xa51/main.c,
9013         * src/z80/ralloc.c (z80_assignRegisters),
9014         * src/z80/ralloc.h,
9015         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
9016         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
9017         * src/SDCCcse.h,
9018         * src/SDCCdflow.c (computeDataFlow),
9019         * src/SDCCdflow.h,
9020         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
9021         * src/SDCCloop.h,
9022         * src/SDCCcflow.c (*),
9023         * src/SDCCcflow.h,
9024         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
9025         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
9026         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
9027         immedDom() returning wrong block; probably fixes bug #1160833)
9028
9029 2005-03-20 Borut Razem <borut.razem AT siol.net>
9030
9031         * support/scripts/inc2h.pl: WIN32 port
9032
9033 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
9034
9035         * device/lib/makefile.in: added abs.c and labs.c
9036
9037 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
9038
9039         * device/include/stdint.h: added
9040         * device/lib/abs.c: added
9041         * device/lib/labs.c: added
9042         * device/include/stdlib.h: added abs() and labs() prototypes
9043         * device/lib/libsdcc.lib: added abs and labs
9044         * device/include/float.h,
9045         * device/lib/_fsmul.c,
9046         * device/lib/printf_fast.c,
9047         * device/lib/printf_tiny.c: updated comments
9048
9049 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9050
9051         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
9052         bug #1164313
9053
9054 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9055
9056         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
9057         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
9058
9059 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
9060
9061         * device/lib/printf_large.c: removed inline assembly for portability and
9062           readability. Use printf_fast if speed or size are more important.
9063         * src/pic16/gen.c: removed conditions around use of DEBUGpc
9064         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
9065
9066 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
9067
9068         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
9069         prevent compiler warning
9070
9071 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
9072
9073         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
9074         moved to level 0 and declared as static. Also they are explicit
9075         placed in access bank. This was necessery because some times they
9076         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
9077         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
9078         optimizations. Currently only compare to unsigned char is implemented,
9079         * src/pic16/gen.c: added fReturnIdx array,
9080         * (struct resolvedIfx) is moved to gen.h and made public,
9081         * (struct _G): added sregsAlloc and sregsAllocSet fields,
9082         * (aopForSym): added an optimization to directly store in stack of
9083         the operand of a SEND iCode,
9084         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
9085         but as registers instead (AOP_REG) using the fReturnIdx array,
9086         * (pic16_freeAsmop): remove the freed register from the
9087         _G.sregsAlloc field,
9088         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
9089         a compare of 'WREG',
9090         * (pic16_popGetTempRegCond): changed function prototype, now
9091         function takes also a bitVector argument v which holds the current
9092         set of registers that are allocated for stack access by aopForSym,
9093         registers allocated in aopForSym for accessing stack symbols are not
9094         any more part of the functions usedRegs field,
9095         * (genCall): some times aopOp is called for a stack variable to be
9096         send, aopForSym might perform the push, if this is true make sure
9097         that genCall doesn't push the variable twice by testing _G.resDirect,
9098         * (genFunction): changed testing for unspecified interrupt number
9099         from 256 to INTNO_UNSPEC,
9100         * modified selection scheme of frame pointer generation. Previously
9101         if function did use local registers a frame pointer was generated,
9102         now a frame pointer is generated only if function has arguments
9103         (that need PLUSW2 register access), or has stack arguments, or the
9104         compiler is not instructed to omit the frame pointer,
9105         * (genEndFunction): before restoring local registers that were saved
9106         in the function preamble, also restore the registers that *might*
9107         have been allocated for stack access,
9108         * (genRet): removed some old comments,
9109         * (genCmp, the active (RN's) version): added a call to the
9110         pic16_genCmp_special function to perform the compare with a more
9111         robust and optimized way,
9112         * (genInline): a feature has been added in inline code generation,
9113         which allows a wildcard variable substitution when writing inline
9114         assembly. Code is incomplete and experimental therefore undocumented,
9115         * (genCast): changed order of aopOp for result and right to allow
9116         aopForSym to directly load the result if possible,
9117         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
9118         perform an optimized compare on some selected special occasions,
9119         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
9120         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
9121         generate an IVT any more,
9122         * src/pic16/main.c (pic16_optionsTable): added command line option
9123         --optimize-cmp,
9124         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
9125         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
9126         macros,
9127         * src/pic16/NOTES: Raphael Neider added in list of active developers
9128         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
9129         jumptable_end to prevent bug #,
9130         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
9131         inCond and outCond fields,
9132         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
9133         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
9134         turn off register spilling,
9135         * (packRegsForOneUse): synced with other ports' versions although it
9136         is not used currently,
9137         * (pic16_packRegisters): added an optimization while reading
9138         structure bitfields, some registers may be saved (malloc code is
9139         decreased by 80 bytes)
9140
9141 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
9142
9143         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
9144         left is a bitfield, if yes, then don't optimize assignment. Perhaps
9145         this can be optimized more?
9146
9147 2005-03-10 Raphael Neider <rneider AT web.de>
9148
9149         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
9150           genNearPointerGet): (hopefully) fixed access to bitfields via
9151           pointers (p->bitN = x; and x = p->bitN; failed)
9152
9153 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
9154
9155         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
9156
9157 2005-03-09 Raphael Neider <rneider AT web.de>
9158
9159         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
9160
9161 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
9162
9163         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
9164         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
9165           (regTypeNum): set REG_BIT type if necessary
9166         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
9167         * support/regression/tests/critical.c: check bug 1144613
9168
9169 2005-03-02 Raphael Neider <rneider AT web.de>
9170
9171         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
9172
9173 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9174
9175         * src/avr/ralloc.c (serialRegAssign),
9176         * src/ds390/ralloc.c (serialRegAssign),
9177         * src/hc08/ralloc.c (serialRegAssign),
9178         * src/mcs51/ralloc.c (serialRegAssign),
9179         * src/pic/ralloc.c (serialRegAssign),
9180         * src/pic16/ralloc.c (serialRegAssign),
9181         * src/xa51/ralloc.c (serialRegAssign),
9182         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
9183
9184 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
9185
9186         * src/SDCCast.c (decorateType): fixed bug 1124787
9187
9188 2005-02-20 Hubert Sack <sack AT digiplan.de>
9189         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9190
9191         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
9192         patch #1121755
9193
9194 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9195
9196         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
9197         to keep the correct label reference count when adding/removing references
9198         to labels. A peephole file using this is appended to patch #1144962.
9199
9200 2005-02-14 Raphael Neider <rneider AT web.de>
9201
9202         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
9203         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
9204         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
9205           retrievals of result operand's value on assignment
9206
9207 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
9208
9209         * device/include/pic16/string.h: modified prototype for memccpy()
9210         to memccpy(void *, void *, char, size_t)
9211         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
9212         check whether to omit frame pointer or not,
9213         * (genInline): convert all occurences of "\n" to LF in inline
9214         assembler blocks, this helps formatting the inline text,
9215         * (pic16_loadFSR0): modified prototype,
9216         * (genNearPointerGet, genNearPointerSet): reorganization of code,
9217         removed some 8051 legacy code,
9218         * (genPackBits): enabled handling bitfields exceeding one byte in size,
9219         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
9220         before allocating temporary registers in functions,
9221
9222 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
9223
9224         * support/regression/tests/bitvars.c: corrected the "fix"
9225
9226 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
9227
9228         * support/regression/tests/bitvars.c,
9229         * support/regression/tests/bitwise.c,
9230         * support/regression/tests/rotate.c: "fixed" problems on Alpha
9231
9232 2005-02-10 Raphael Neider <rneider AT web.de>
9233
9234         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
9235           different size for Alpha
9236         * src/pic16/gen.c (genCmpEq) : improved compare with 0
9237
9238 2005-02-09 Raphael Neider <rneider AT web.de>
9239
9240         * src/SDCC.lex(doPragma) : save and restore warning options as well
9241           (also added new stack plus clone- and copyAndFreeSDCCERRG())
9242         * have #pragma less_pedantic set the errorlevel to WARNING
9243           (fixes #1117001)
9244         * (cloneOptimize) : fixed wrong malloc's size
9245         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
9246           facilitate correct handling of #pragma (save|restore)
9247
9248 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
9249
9250         * src/mcs51/gen.c: removed non-standard C nameless struct/union
9251
9252 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
9253
9254         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
9255
9256 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
9257
9258         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
9259
9260 2005-02-02 Raphael Neider <rneider AT web.de>
9261
9262         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
9263         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
9264         * (pic16_storeForReturn): fixed to allow returning function pointers
9265         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
9266         * device/include/pic16/{stddef.h,stdbool.h}: added
9267
9268 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
9269
9270         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
9271
9272 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
9273
9274         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
9275         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
9276          appeared to be required
9277
9278 2005-01-31 Borut Razem <borut.razem AT siol.net>
9279
9280         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
9281           include/mcs51 and include/z80 directories to the package
9282
9283 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9284
9285         * src/hc08/gen.c (genFunction): fixed bug #1112752
9286
9287 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9288
9289         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
9290
9291 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9292
9293         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
9294
9295 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
9296
9297         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
9298
9299 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
9300
9301         * device/include/c8051fxxx.h: removed these 6 files
9302         * device/include/mcs51/c8051fxxx.h: added these 11 new files
9303
9304 2005-01-26 Raphael Neider <rneider AT web.de>
9305
9306         * src/pic16/gen.c (genAssign): fixed assignment from longs
9307           in codespace (were cut to three bytes)
9308         * (genDummyRead): implemented (except for CODESPACE...),
9309           fixed bug #1108575
9310         * src/pic16/glue.c (emitStatistics): beautified
9311         * device/lib/pic16/libm/Makefile: added include path
9312
9313 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9314
9315         * src/z80/gen.c (aopPut): fixed bug #1103902
9316
9317 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9318
9319         * device/lib/expf.c: fixed bug #1095792
9320
9321 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
9322
9323         * device/lib/pic16/libm: added Math library sources
9324
9325 2005-01-24 Raphael Neider <rneider AT web.de>
9326
9327         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
9328           to enable upcast to pCodeOpReg2 (there is no type tag to
9329           differenciate the two and pic16_popGet2p cast into PCOR2)
9330         * src/pic16/main.c (_process_pragma): fixed another malloc bug
9331           (sizeof(sectNames) changed to sizeof(sectName))
9332           Both patches fix segfaults under MinGW.
9333
9334 2005-01-23 Raphael Neider <rneider AT web.de>
9335
9336         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
9337           Safe_[mc]?alloc()'ed variables
9338         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
9339           of (byte sized) temporaries (assign them to WREG for now)
9340         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
9341           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
9342           this might fix SIGSEGVs on MinGW...
9343         * src/SDCCopt.c (killDeadCode): restored original behaviour
9344           (volatile operands might get thrown away though)
9345
9346 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
9347
9348         * src/pic16/gen.c: fixed bug #1106975,
9349         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
9350         pointer update, INTCON is saved, global interrupts are disabled and
9351         restored after updateing TOS.
9352         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
9353         * added function attribute 'shadowregs' to take advantage of shadow
9354         registers,
9355         * added function attribute 'wparam' as an alternative to the wparam
9356         pragma,
9357         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
9358         user declares a non-ISR function as 'shadowregs',
9359         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
9360
9361 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
9362
9363         * .version: bumped version number to 2.4.8
9364         * device/lib/pic16/pics.all: list of PIC18F devices supported by
9365         pic16 port,
9366         * device/lib/pic16/libio/i2c/: I2C module support library,
9367         * device/include/pic16/i2c.h: I2C support library header,
9368         * device/lib/pic16/libc/stdio/: standard IO support sources,
9369         * (printf_small.c): printf_small() source, supports float print,
9370         * (printf_tiny.c): printf_tiny() source, does not support floats,
9371         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
9372         enable global optimizations for entire library source, other
9373         Makefiles in the source tree are also modified to reflect this,
9374         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
9375         function,
9376         * doc/sdccman.lyx: updated to reflect new changes,
9377         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
9378         sym->onStack if-case,
9379         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
9380         sbit, idata, _idata, xdata, _xdata,
9381         * added pragma library, to link an external library, (see doc),
9382         * removed command line options, --pomit-config-words, --pomit-ivt,
9383         --pleave-reset-vector,
9384         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
9385         when calling assembler to reflect memory model used, also define
9386         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
9387         reflect stack model used,
9388         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
9389         on stack return NULL,
9390
9391 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
9392
9393         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
9394           of the operands is volatile. Fixes #1020220
9395
9396 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
9397
9398         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
9399         * (OptimizeRegUsage): make sure that there is really no other flow where
9400           the first pCode is used
9401
9402 2005-01-22 Raphael Neider <rneider AT web.de>
9403
9404         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
9405           to fix #1106967 (pCode->seq are not set up correctly)
9406
9407 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9408
9409         * src/SDCCglue.c (glue): make sure code area is declared before the
9410         static initialization area.
9411
9412 2005-01-21 Raphael Neider <rneider AT web.de>
9413
9414         * device/lib/Makefile.in: fixed test for pic16 install dir
9415         * device/lib/pic16/*/Makefile*: modified compile flags to enable
9416           optimizations
9417         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
9418           added --optimize-goto compiler switch and pragma wparam documentation
9419         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
9420         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
9421           and PRODH closing bug #1071770 (peephole optimizer)
9422
9423 2005-01-19 Raphael Neider <rneider AT web.de>
9424
9425         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
9426           cmdLine buffers (used when calling sdcpp...) are large enough
9427           (MAX_PATH=256 truncates arguments leading to system halts when
9428           used in MinGW...)
9429         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
9430         * (genUminus): rewritten to for efficiency
9431         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
9432           used uninitialized in some cases)
9433         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
9434           copy the third byte from the int -- now assumes 0x80 (data memory)
9435         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
9436           operands (genAddLit expects the iCode's operands to swapped as
9437           well), fixed leftover bytes (crashed for short left operands)
9438         * (pic16_genMinusDec): performance improvements, removed false
9439           PIC14 emitSKPNCs
9440         * (pic16_genMinus): fixed to cope with differently sized operands
9441         * src/pic16/glue.c (pic16_glue): added new banksel optimization
9442           for --obanksel > 1
9443         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
9444         * src/pic16/graph.[ch]: implementation of directed graphs, used by
9445           new banksel optimization
9446         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
9447           analysis for temporary registers (segfaults...)
9448         * src/pic16/peeph.def: added rule
9449
9450 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
9451
9452         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
9453         which converts a float number to its ASCII representation
9454         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
9455         functions to convert the fractional and integer part of a float to ASCII,
9456         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
9457         realloc.c): added _MALLOC_SPEC to explicit place variables in data
9458         ram
9459         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
9460         _STATMEM macros,
9461         * device/include/pic16/adc.h: added GPL info,
9462         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
9463         a pCodeOp as tested operand,
9464         * (genNearPointerGet): optimized bit testing, does not use
9465         intermediate register for bit value, test directly instead with
9466         BTFSS, BTFSC, works only for single bits,
9467         * (genpic16Code): dump the name of the iCode in the asm,
9468         * src/pic16/ralloc.c (decodeOp): removed static declaration and
9469         renamed to pic16_decodeOp,
9470         * (serialRegAssign): do not allocate a temporary register for iCode
9471         sequences that test a single bit for 1/0
9472
9473 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
9474
9475         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
9476         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
9477         access stack and frame pointers. They are initially assigned to
9478         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
9479         accessing SFRs. Updated all occurences of modification of stack or
9480         frame pointer in gen.c and pcode.c,
9481         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
9482         assigning of a literal value to pointers,
9483         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
9484         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
9485         selected
9486
9487 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
9488
9489         * doc/sdccman.lyx: update documentation about stack pragma, added
9490         some info for stack memory models
9491
9492 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9493
9494         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
9495
9496 2005-01-08 Raphael Neider <rneider AT web.de>
9497
9498         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
9499           udata sections to fix bug #1097823
9500
9501 2005-01-05 Raphael Neider <rneider AT web.de>
9502
9503         * src/pic16/gen.c (genGenericShift): added handling of differently
9504           sized left operand and result
9505
9506 2005-01-04 Raphael Neider <rneider AT web.de>
9507
9508         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
9509         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
9510           to hold the condition bit)
9511         * added new version of genCmp (old code available via #define)
9512         * added new version of genShiftLeft/genShiftRight in a generic
9513           way, now supports shifting by negative values
9514         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
9515           shiftCount (expected by genGenericShift)
9516         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
9517         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
9518           dump
9519         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
9520           is an invalid literal too...)
9521
9522 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
9523
9524         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
9525         from Raphael Neider,
9526         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
9527         for 8-bit literals. This fixes some literal operands which are sign
9528         extended to 16-bits ints when instruction needs only 8-bits.
9529
9530 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
9531
9532         * device/lib/logf.c: added mcs51 assembly version
9533         * device/lib/expf.c: added mcs51 assembly version
9534         * device/lib/_logexpf.c: new shared asm code for expf and logf
9535         * device/include/math.h: add defines for assembly math library
9536         * device/lib/Makefile.in: build new _logexpf.c
9537         * device/lib/libfloat.lib: use new _logexpf.c
9538
9539 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
9540
9541         * src/pic/device.c
9542         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
9543           device types which have less than 0x7f registers.
9544
9545 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
9546
9547         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
9548
9549 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
9550
9551         * device/lib/printf_fast.c: only build on supported arch.
9552         * device/lib/printf_tiny.c: only build on supported arch.
9553         * device/lib/printf_fast_f.c: only build if asm float lib
9554         * device/lib/_fsget1arg.c: only build if asm float lib
9555         * device/lib/_fsget2args.c: only build if asm float lib
9556         * device/lib/_fsnormalize.c: only build if asm float lib
9557         * device/lib/_fsreturnval.c: only build if asm float lib
9558         * device/lib/_fsrshift.c: only build if asm float lib
9559         * device/lib/_fsswapargs.c: only build if asm float lib
9560         * device/include/stdio.h: don't provide print_fast,
9561           print_fast_f, print_tiny prototypes if --xstack used
9562
9563 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
9564
9565         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
9566         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
9567           to the SOURCES
9568
9569 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
9570
9571         * device/lib/printf_fast_f.c: same as printf_fast, but
9572           with floating point enabled
9573         * device/lib/printf_fast.c: minor tweaks
9574         * device/include/stdio.h: add printf_fast_f
9575
9576 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
9577
9578         * src/SDCCmain.c: make --float-reent default for mcs51
9579         * device/lib/_fsadd.c: added mcs51 assembly version
9580         * device/lib/_fssub.c: added mcs51 assembly version
9581         * device/lib/_fsmul.c: added mcs51 assembly version
9582         * device/lib/_fsdiv.c: added mcs51 assembly version
9583         * device/lib/_fseq.c: added mcs51 assembly version
9584         * device/lib/_fsneq.c: added mcs51 assembly version
9585         * device/lib/_fsgt.c: added mcs51 assembly version
9586         * device/lib/_fslt.c: added mcs51 assembly version
9587         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
9588         * device/lib/Makefile.in: add _fscmp to build
9589         * device/lib/libfloat.lib: add _fscmp to build
9590
9591 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
9592
9593         * device/lib/_fs2slong.c: added mcs51 assembly version
9594         * device/lib/_fs2sint.c: added mcs51 assembly version
9595         * device/lib/_fs2schar.c: added mcs51 assembly version
9596         * device/lib/_fs2ulong.c: added mcs51 assembly version
9597         * device/lib/_fs2uint.c: added mcs51 assembly version
9598         * device/lib/_fs2uchar.c: added mcs51 assembly version
9599         * device/lib/_slong2fs.c: added mcs51 assembly version
9600         * device/lib/_sint2fs.c: added mcs51 assembly version
9601         * device/lib/_schar2fs.c: added mcs51 assembly version
9602         * device/lib/_ulong2fs.c: added mcs51 assembly version
9603         * device/lib/_uint2fs.c: added mcs51 assembly version
9604         * device/lib/_uchar2fs.c: added mcs51 assembly version
9605         * device/include/float.h: added #define to select asm vs c
9606
9607 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
9608
9609         * device/lib/printf_fast.c: improvements to float output
9610         * device/include/float.h: add defines for assembly float library
9611         * device/lib/_fsget1arg.c: receive 1 float arg
9612         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
9613         * device/lib/_fsnormalize.c: normalize a float
9614         * device/lib/_fsreturnval.c: return float, various helper routines
9615         * device/lib/_fsrshift.c: right shift a float's mantissa
9616         * device/lib/_fsswapargs.c: swap 2 floats
9617         * device/lib/Makefile.in: build these 6 new files for mcs51
9618         * device/lib/libfloat.lib: add these 6 files to the library
9619
9620 2004-12-26 Borut Razem <borut.razem AT siol.net>
9621
9622         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
9623           built by gcc 3.4.2
9624
9625 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
9626
9627         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
9628           and fully reentrant and register bank neutral.
9629         * device/lib/printf_fast.c: added float (not enabled by default),
9630           added compact/slower integer (also not enabled by default),
9631           improved size/speed of fast integer code, other minor changes
9632         * device/include/stdio.h, device/lib/Makefile.in,
9633           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
9634
9635 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
9636
9637         * src/pic16/pcode.c: declaring variables other than at the start of a
9638           block is not supported in C by VC6.
9639
9640 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
9641
9642         * applied a previous patch from Raphael Neider that wasn't included
9643         in the previous commits, which fixes infinite loops within jumptable
9644         improvements,
9645         * made some fixes that previous patches introduced
9646
9647 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
9648
9649         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
9650         that fixes an issue with AOP_PCODE asmop's offset,
9651         * (pic16_popCopyReg): update instance field too,
9652         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
9653         function of pic port,
9654         * (genCmp, genAnd, genAssign),
9655         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
9656
9657 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
9658
9659         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
9660         variables initial values to idata section,
9661         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
9662         variables in some functions. This utilizes parmBytes field of iCode
9663         structure to hold the offset of the variable in stack. (might be
9664         able to use the stack field too?)
9665         * applied patch from Raphael Neider # ### , # ###
9666         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
9667         variable initial values in idata section,
9668         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
9669         for static variables with initial value
9670         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
9671         applied fix in while loop from Raphael Neider.
9672
9673 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
9674
9675         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
9676         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
9677         * src/ds390/ralloc.c (serialRegAssign): spill bits
9678         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
9679         * support/Util/SDCCerr.c,
9680         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
9681         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
9682         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
9683
9684 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
9685
9686         * device/include/sdcc-lib.h: inserted LGPL, added includes
9687           asm/ds390/features.h and asm/mcs51/features.h
9688         * device/include/asm/default/features.h,
9689         * device/include/asm/gbz80/features.h,
9690         * device/include/asm/z80/features.h: added empty _AUTOMEM
9691           and _STATMEM
9692         * device/include/asm/ds390/features.h,
9693         * device/include/asm/mcs51/features.h: added files with defines for
9694           _AUTOMEM and _STATMEM indicating automatic and static storage class
9695         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
9696         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
9697         * src/SDCCicode.c (geniCodeCast),
9698         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
9699         * src/SDCCloop.c (loopInduction): removed unused variable lr
9700         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
9701           to convertToFcall to include char modulo (RFE 1065037), added check
9702           if left operand is unsigned and use abs of literal value
9703         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
9704           as it doesn't work after conversion from peephole.def to peephole.rul
9705         * src/mcs51/gen.c (toBoolean): added check for size,
9706           (genModOneByte): optimized code for signed char modulo a literal
9707           power of 2 (thanks to Hubert Sack),
9708           (genRRC): removed unnecessary "clr c",
9709           (genRLC): replaced "add a,acc" with cheaper "rlc a"
9710         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
9711           jump optimization,
9712           swapped rules 256.c and 256.d,
9713           extended 256.d by using new multiple checks (thanks Erik),
9714           added rules 256.e and 256.f,
9715           updated rule 261.a and 261.b to new generated code
9716         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
9717
9718 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9719
9720         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
9721           induction related bugs, including first part of bug #1074377
9722
9723 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
9724
9725         * applied patch from bug-report #1076292,
9726         * applied patches for genAnd and Goto-optimizations for Raphael
9727         Neider,
9728         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
9729         dump a less iCode information,
9730         * src/pic16/device.h (pic16_options_t): added field debgen,
9731         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
9732         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
9733         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
9734         puclic,
9735         * (various functions): added macros FENTRY and FENTRY2 to functions,
9736         to emit function prologue,
9737         * (various functions): fixed indentation,
9738         * (genNearPointerGet): fixed loading of FSR0,
9739         * (genPackBits): applied patch from Raphael Neider to fix updating
9740         of FSR0 and touching only the modified bits,
9741         * src/pic16/genarith.c (various functions): added macros FENTRY to
9742         emit function prologue in comments,
9743         * src/pic16/pcode.h: added functions debugf2, debugf3,
9744         * src/pic16/ralloc.c: partial fix for packForPush caused
9745         segmentation fault,
9746
9747 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9748
9749         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
9750           <stsp AT users.sourceforge.net> with reversed byte order
9751         * support/regression/tests/rotate.c: added (ds390 skips some tests)
9752
9753 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9754
9755         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
9756           bug #1074377
9757         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
9758         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
9759
9760 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
9761
9762         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
9763
9764 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9765
9766         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
9767           conditions,
9768           (setFromConditionArgs): friendly operand parser for peephole rules,
9769           (operandBaseName, operandsNotRelated): new peephole condition
9770           "operandsNotRelated" -- similar to "operandsNotSame", but takes
9771           architecture specific register naming into account, handles n-way
9772           comparisons, and supports quoted literals
9773         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
9774
9775 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9776
9777         * src/mcs51/peeph.def: fixed bug #1076940
9778
9779 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
9780
9781         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
9782
9783 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9784
9785         Adding support for replacing ljmps with sjmps in jumptables
9786         generated for switch statements. For now you need to set the
9787         environment variable SDCC_SJMP_JUMPTABLE to enable this.
9788         Now 4 algorithms for mcs51 jumptable generation are used:
9789         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
9790         addresses loaded pc-relative for up to 112 cases and stack-pushing
9791         target addresses loaded with offset from dptr for up to 256 cases.
9792
9793         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
9794         * src/mcs51/main.c: adapted constants for switch table generation
9795         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
9796
9797 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
9798
9799         * device/lib/printf_large.c (_print_format): fixed bug 1073386
9800         * support/regression/tests/bug1057979.c: added test for bug 1073386
9801
9802 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
9803
9804         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
9805         compilers
9806
9807 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
9808
9809         * src/pic16/device.h,
9810         * src/pic16/genarith.c,
9811         * src/pic16/glue.c,
9812         * src/pic16/main.c,
9813         * src/pic16/pcode.c: applied patches #1068154 and #1070213
9814
9815 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
9816
9817         Large cummulative patch for pic16 port.
9818         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
9819         to call when a stack overflow occurs,
9820         * (malloc.h): added CVS Id tag,
9821         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
9822         variable,
9823         * added libc directory. The current version of LibC contains string
9824         functions, ctype functions and macros and some functions of the
9825         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
9826         be extensively tested in the future. Standard disclaimer here.
9827         Library is not automatically build yet. But one can build it by
9828         invoking 'make' inside the libc directory.
9829         * added ADC library under libio. Preliminary version yet.
9830
9831         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
9832         * src/pic16/gen.c (aopForRemat): asmop size is filled by
9833         aopForRemat() now and not by pic16_aopOp(),
9834         * (pic16_popGetTempReg): removed warning messgae when allocating
9835         temporary registers, its a buggy feature and will be removed,
9836         * (pic16_popGet): set register instance field in AOP_CRY,
9837         * (pic16_outBitC): fixed for results in size greater than 1,
9838         * (genUminusFloat): fixed for pic16, ported code from mcs51,
9839         * (pic16_storeForReturn): optimized return of 0,
9840         * (genCmp): experimental code for new genCmp which uses PIC18's
9841         special compare&skip instructions. Initial tests fail some times
9842         with variables grater than 1 byte in size, so new code is disabled,
9843         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
9844         a single bit,
9845         * (genCast): began a fix to optimize the casting of a bit to another
9846         bit, now assigning a bitfield to another bitfield will fail, sorry,
9847         * src/pic16/main.c: disabled the use of lr-support feature,
9848         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
9849         * added some function prototypes, added function _debugf prototype,
9850         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
9851         bits with offset (case PO_GPR_BIT),
9852         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
9853         command line,
9854         * (isBankInstruction): modified to return 0 for no banking instruction,
9855         and 1 for banking instruction,
9856         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
9857         caused stop processing pCodes after a inline assembly block,
9858         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
9859         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
9860         registers when it shouldn't,
9861         * src/pic16/ralloc.c (allocReg): add preliminary support for
9862         supporting a limited set of temporary registers,
9863
9864 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9865
9866         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
9867           genDataPointerSet): ensure assignments always copy in MSB to LSB
9868           order,
9869           (loadRegFromAop): recognize CLRH optimization,
9870           (genFunction): optimize RECEIVE iCodes in reentrant functions
9871
9872 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9873
9874         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
9875           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
9876           selected.
9877         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
9878         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
9879           contiguous with data
9880
9881 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9882
9883         * device/lib/_gptrget.c (_gptrget),
9884         * device/lib/_gptrgetc.c (_gptrgetc),
9885         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
9886           instead of sjmp to ret
9887         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
9888           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
9889
9890 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
9891
9892         * .version: bumped version to 2.4.7
9893         * device/lib/_gptrget.c (_gptrget): is now _naked
9894         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
9895         * device/lib/_gptrput.c (_gptrput): is now _naked
9896         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
9897           (createFunction): fixed xstack
9898         * src/SDCCglue.c (emitMaps): set allocation required for bit area
9899         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
9900           or bit either,
9901           (geniCodeCritical): store original interrupt state in an iTemp bit
9902           var unless stack-auto
9903         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
9904         * src/SDCCmain.c (setIncludePath): added include/target to search path
9905         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
9906         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
9907           prototype,
9908           (processFuncArgs): put bit vars in bit area
9909         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
9910           unsaveRBank): fixed xstack,
9911           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
9912           (genFunction, genEndFunction): fixed xstack,
9913           (genAssign): optimization don't walk backwards through mem
9914         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
9915         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
9916         * support/regression/Makefile: also make library (for stack-auto) when
9917           making "all" and added "test-mcs51-xstack-auto"
9918         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
9919         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
9920         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
9921         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
9922         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
9923           make-library by MAKE_LIBRARY
9924         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
9925           regression tests for xstack
9926         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
9927         * support/regression/tests/critical.c: test for critical on mcs51
9928
9929 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9930
9931         * support/regression/ports/ucz80/spec.mk: use include and lib files from
9932           built version of sdcc instead of installed version
9933
9934 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
9935
9936         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
9937         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
9938           vprintf.c now
9939         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
9940         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
9941           WARNING: remove device/lib/build/z80/printf.o by hand when
9942           updating from previous build!
9943         * device/lib/z80/printf.c: updated comment
9944         * support/regression/tests/bug1057979.c: test all ports now
9945         * support/regression/tests/bug1065458.c: file added
9946
9947 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9948
9949         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
9950           *_start and *_end symbols for static functions
9951
9952 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
9953
9954         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
9955           and search crt0.o in all library paths,
9956           (setIncludePath): proper handling of --nostdinc,
9957           (setLibPath): proper handling of --nostdlib
9958         * support/regression/Makefile,
9959         * support/regression/ports/ds390/spec.mk,
9960         * support/regression/ports/gbz80/spec.mk,
9961         * support/regression/ports/hc08/spec.mk,
9962         * support/regression/ports/mcs51/spec.mk,
9963         * support/regression/ports/mcs51-large/spec.mk,
9964         * support/regression/ports/mcs51-stack-auto/spec.mk,
9965         * support/regression/ports/z80/spec.mk: use include and lib files from
9966           built version of sdcc instead of installed version
9967         * doc/sdccman.lyx: fixed typo in --nostdinc
9968
9969 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
9970
9971         * src/pic/pcode.c,
9972         * src/pic/device.c,
9973         * src/pic/ralloc.c,
9974         * src/pic/gen.c : added support to generate code for struct bit fields.
9975
9976 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
9977
9978         * as/xa51/xa_version.h,
9979         * device/include/errno.h,
9980         * device/include/regc515c.h,
9981         * device/lib/_itoa.c,
9982         * device/lib/_ltoa.c,
9983         * device/lib/ser_ir_cts_rts.c,
9984         * sim/ucsim/xa.src/glob.cc,
9985         * sim/ucsim/xa.src/inst_gen.cc,
9986         * sim/ucsim/xa.src/xa_bit.cc,
9987         * sim/ucsim/xa.src/xa_sfr.cc,
9988         * sim/ucsim/z80.src/inst_dd.cc,
9989         * sim/ucsim/z80.src/inst_fdcb.cc,
9990         * support/scripts/keil2sdcc.pl,
9991         * src/pic16/pic16.dsp,
9992         * src/pic16/pic16a.dsp: corrected cvs line endings
9993         * device/lib/printf_large.c: fixed bug 1057979
9994         * src/pic16/gen.c: fixed non-C standard code
9995         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
9996         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
9997         * support/regression/ports/mcs51/support.c: reload T1 asap
9998         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
9999           pdata use and clear idata startup behaviour
10000         * support/regression/tests/bug1057979.c: added
10001
10002 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
10003
10004         * device/examples/ds390/ow390/ad26.h,
10005         * device/examples/ds390/ow390/cnt1d.h,
10006         * device/examples/ds390/ow390/crcutil.c,
10007         * device/examples/ds390/ow390/ownet.h,
10008         * device/examples/ds390/ow390/owsesu.c,
10009         * device/examples/ds390/ow390/swt12.h,
10010         * device/examples/ds390/ow390/swtoper.c,
10011         * device/examples/ds390/ow390/temp10.h,
10012         * device/examples/ds390/ow390/thermodl.c,
10013         * device/examples/ds390/tinitalk/tinitalk.dsp,
10014         * device/examples/ds390/tinitalk/tinitalk.dsw,
10015         * device/examples/mcs51/clock/hw.h,
10016         * device/examples/mcs51/simple2/go.bat,
10017         * device/examples/serialcomm/windows/serial.h,
10018         * device/examples/xa51/dummy.c,
10019         * device/examples/xa51/hello.c,
10020         * device/include/80c51xa.h,
10021         * device/include/at89x051.h: corrected cvs line endings
10022
10023 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
10024
10025         * src/pic16/main.c (options): added command line --gstack, to trace
10026         stack over/under flows,
10027         * added pragma 'wparam' to allow passing first byte of function
10028         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
10029         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
10030         call to __gstack_test function and sets up the symbol as extern,
10031         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
10032         * popaop): added call to pic16_testStackOverflow,
10033         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
10034         wparamList list,
10035         * (genCall, genPcall): now all parameters are passed via stack
10036         except in functions that are pass to wparam pragma in which WREG is
10037         used too,
10038         * (genPcall): REENTRANT flag is checked to see if variable prototype
10039         contains reentrant keyword, don't call a non-reentrant function, via
10040         a reentrant function pointer or vice versa, functions are never
10041         passed via WREG,
10042         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
10043         D.Winkler,
10044         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
10045         SIGSEGV when accessing a NULL register stucture,
10046         * (pic16_printGPointerType): modified to handle UPPER modifier for
10047         function initializers, changed prototype of function to simpler one,
10048         * (pic16_printIvalFuncPtr): check to see if function is already
10049         added in externs list,
10050         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
10051         optimized a move from W to SFR with a move to the same register
10052         later after a CALL,
10053         * device/lib/pic16/debug: NEW directory, contains debug features
10054         which are enabled when linking with libdebug.lib, currently command
10055         line option --gstack enables stack pointer tracing for over/under
10056         flow, corresponding sources are in debug/gstack
10057
10058 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
10059
10060         * doc/sdccman.lyx: updated SDCC version,
10061         * (PIC16 port): update list of command line options,
10062         * src/pic16/device.h (structure pic16_options_t): added field gstack
10063         to enable stack overflow tracing on push/pops,
10064         * src/pic16/device.c (statistics structure): added statistics
10065         structure,
10066         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
10067         pic16_dump_int_registers): increase statistics counters for each
10068         * variable which is encountered
10069         * (pic16_dump_usection): emit each .udata variable to its own udata
10070         section,
10071         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
10072         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
10073         parameters via stack, otherwise use old scheme,
10074         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
10075         assembler output file,
10076         * src/pic16/main.c: added command line options --gstack to enable
10077         push/pop tracing for stack overflow,
10078         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
10079         instructions): added size of each instruction,
10080         * (pic16_countInstruction): estimate size of instructions in
10081         the_pFile list, inline assembly blocks are not counted,
10082         * (pic16_FixRegisterBanking): trace previous register usage, when
10083         banksel optimizations is greater than 0, don't emit a redudant
10084         banksel directive,
10085
10086 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
10087
10088         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
10089         * src/pic16/ralloc.c : applied same fix for pic16.
10090         * src/pic/gen.c : tidied it up a little.
10091
10092 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10093
10094         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
10095         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
10096
10097 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10098
10099         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
10100
10101 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10102
10103         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
10104         non-reentrant function __modsint in the interrupt function (thus
10105         corrupting math operations during serial I/O)
10106         * device/lib/ser_ir.c: as above, changed buffersize
10107         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
10108         256.c,d for zeroing
10109         * doc/Makefile: added option -t for rsync
10110
10111 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10112
10113         * src/SDCCast.h (struct ast),
10114         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
10115
10116 2004-10-20 Borut Razem <borut.razem AT siol.net>
10117
10118         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
10119         package
10120
10121 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
10122
10123         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
10124         makefile targets,
10125         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
10126         support functions to replace long sequences of MOVFF's from access
10127         bank registers to stack and vice versa,
10128         * src/pic16/device.h: added new field opt_flags, where optimization
10129         flags can be set to enable certain features,
10130         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
10131         * pBlock, (genFunction, genEndFunction): surroung loop for
10132         saving/loading used registers in stack with PC_INFO pCodes,
10133         INF_LREGS. Code in between can then be optimized by pCode optimizer
10134         to support function calls,
10135         * (genDataPointerSet): fixed bug which loaded float fields in
10136         structures with corrupt data,
10137         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
10138         in a standard way debug info on stderr. Feature used for developing
10139         and debugging only,
10140         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
10141         obsolete chunks of code,
10142         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
10143         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
10144         * pic16/src/pcode.c (pic16_newpCodeInfo,
10145         * (pic16_newpCodeOpLocalRegs),
10146         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
10147         feature,
10148         * (pic16_pCodeConstString): printing of the initial value of a
10149         symbol as a comment is inhibited since parsing was already done by
10150         copyStr and output is corrupt,
10151         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
10152
10153 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10154
10155         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
10156
10157 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
10158
10159         * as/mcs51/lkarea.c: removed old K&R style,
10160           (lnksect): changed check on boundary error,
10161           (lnksect2): changed check on boundary error,
10162           (lnksect2): extend XSTK to end of page if size = 1
10163         * as/mcs51/lkmain.c: removed old K&R style,
10164           (Areas51): create l_IRAM symbol
10165         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
10166         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
10167           model-mcs51-stack-auto, added model-mcs51-xstack-auto
10168         * device/lib/_mullong.c: added version to be compiled with xstack
10169         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
10170         * device/lib/mcs51/crtxclear.asm: clear pdata as well
10171         * device/lib/mcs51/crtxstack.asm: fixed comment
10172         * src/SDCCglue.c: maxInterrupts defaults to 0,
10173           (emitMaps): added pdata,
10174           (createInterruptVect): (re)moved default,
10175           (glue): added pdata,
10176           (glue): moved __start__xstack to XSTK with default size 1
10177         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
10178           and options.float_rent when options.stackAuto is set,
10179           (linkEdit): only write XDATA_NAME if provided on command line
10180         * src/SDCCmem.h,
10181         * src/SDCCmem.c: added pdata
10182         * src/port.h: added pdata_name to PORT
10183         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
10184           (saveRegisters, unsaveRegisters): removed usage of B,
10185           (genMinus): fixed accumulator clash,
10186           (genJumpTab): added comment, this needs another look
10187         * src/mcs51/gen.c: added check for "B in use" paranoia,
10188           added pushB() and popB()
10189         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
10190           chance
10191         * src/avr/main.c,
10192         * src/ds390/main.c,
10193         * src/hc08/main.c,
10194         * src/mcs51/main.c,
10195         * src/pic/main.c,
10196         * src/pic16/main.c,
10197         * src/xa51/main.c,
10198         * src/z80/main.c: (reset_regparms) made void parameter explicit and
10199           added PSEG (PAG,XDATA) or NULL to port specifier
10200         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
10201         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
10202           (_mcs51_genInitStartup): removed __start__xstack equ,
10203           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
10204         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
10205         * src/z80/gen.c (_rleAppend): fixed warnings
10206         * support/regression/tests/zeropad.c: added pdata test
10207         * .version: bumped to 2.4.6
10208
10209 2004-10-17 Borut Razem <borut.razem AT siol.net>
10210
10211         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
10212         as a part of nightly build
10213
10214 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
10215
10216         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
10217         WREG holds the first byte function parameters,
10218         * (aopForSym): take special case for symbols which are in FARSPACE
10219         but in CODESPACE too,
10220         * (assignResultValue): modified to take into account _G.useWreg,
10221         * (genCall): don't use wreg for parameter passing when function is
10222         declared as reentrant, too, added optimization INCF to stack
10223         pointer when stack parameter count is 1,
10224         * (genFunction, genEndFunction): refurnished and fixed to not using
10225         wreg for passing parameters when function has varargs or is
10226         reentrant, fixed bug with symbol name compare for generating
10227         functions in absolute address,
10228         * (pic16_storeForReturn): refurnished,
10229         * (genCmp): began writing a new version of the function, not ready
10230         yet, therefore it is disabled,
10231         * (genAssign): do not read code memory when assigning a function to
10232         a pointer function,
10233         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
10234         array of characters, not pointer,
10235         * (pic16initialComments): in debug mode emit an .ident directive for
10236         the assembler,
10237         * (_process_pragma): emit a new warning type (internal to pic16)
10238         when setting stack to default length, emit a similar warning when
10239         placing a function at absolute address and address is not word aligned
10240         * (_pic16_parseOptions): added 'return TRUE' statement,
10241         * (_pic16_linkEdit): if compiling a source, then add the source's
10242         file object, first in the list of objects to link,
10243
10244 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
10245
10246         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
10247         * src/pic/main.c : removed VC warning.
10248         * src/pic/gen.c : changed comment.
10249
10250 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
10251
10252         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
10253         reference to a deprecated symbol _GPTRREG was causing failure to
10254         link. Thanks G. M. Gallant for the info.
10255
10256 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
10257
10258         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
10259         comments for Bugs item #954788.
10260
10261 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
10262
10263         * src/pic16/device.c (pic16_dump_gsection,
10264         * pic16_groupRegistersInSection): handle symbols declared to be in
10265         access bank differently,
10266         * src/pic16/gen.c (struct _G): added field resDirect,
10267         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
10268         send values read from stack directly to result and don't allocate
10269         temporary values,
10270         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
10271         same registers,
10272         * (pic16_sameRegsOfs): NEW,
10273         * (freeAsmop): if _G.resDirect is set then do not mark registers as
10274         free because they were not allocated from temporary pool,
10275         * pic16_popRegFromString): workaround to fix a problem with
10276         allocating variables twice or never,
10277         * (genGenPointerGet): using PRODL instead of FSR0H,
10278         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
10279         instead of FSR0H,
10280         * (genAssign): take advantage of the _G.resDirect flag,
10281         * (genCast): around line 11844, use mov2f instead of directly
10282         MOVFF'ing between operands to account for literal values,
10283         * src/pic16/genutils.c: some new debug functions for gpsim have been
10284         added,
10285         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
10286         float with integer part only,
10287         * src/pic16/main.c (_process_pragma): handle pragma udata access to
10288         place variables in access bank
10289         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
10290         updated sources to reflect recent changes in gen.c
10291
10292 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
10293
10294         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
10295         sources that searched for headers in installation path, now the
10296         device/include/pic16 is used,
10297         * src/pic16/glue.c (pic16glue),
10298         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
10299         .line directives if not in debug mode, this suppresses assembler's
10300         warnings for ignored directives
10301
10302 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
10303
10304         * src/port.h: made reset_regparms prototype void parameter explicit.
10305         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
10306         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
10307         * doc/sdccman.lyx: documented warning disabling and how to use
10308           printf_large to make it print floats.
10309         * device/include/stdbool.h: NEW
10310         * device/lib/_atof.c,
10311         * device/lib/_divuint.c,
10312         * device/lib/_divulong.c,
10313         * device/lib/expf.c,
10314         * device/lib/printf_large.c,
10315         * device/lib/sincosf.c,
10316         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
10317         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
10318           a completely reentrant lib.
10319
10320 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
10321
10322         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
10323         * device/include/pic16/stdio.h: fixed bug with colon
10324
10325 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
10326
10327         * device/include/pic16/stdio.h,
10328         * device/include/pic16/stdlib.h,
10329         * device/include/pic16/math.h: NEW
10330         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
10331         declared as _naked to reduce overhead
10332         * device/lib/Makefile.in (target port-specific-objects-pic16):
10333         changed * to *.* so to ignore the CVS directory,
10334         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
10335         stacked variables back in stack,
10336         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
10337         corruption
10338
10339 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
10340
10341         * .version: bumped version number to 2.4.5
10342         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
10343         * support/Util/SDCCerr.c (messages structure): added entry for
10344         W_POSSBUG2
10345
10346         Large cumulative patch for pic16 port and libraries.
10347         * device/include/pic16/sdcc-lib.h,
10348         * device/include/pic16/stdarg.h,
10349         * device/include/asm/pic16/features.h,
10350         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
10351         * device/include/pic16/float.h: changes reentrant keyword with
10352         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
10353         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
10354         updated target build-libraries to include objects from gptr,
10355         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
10356         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
10357         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
10358         all function headings,
10359         * src/SDCCmain.c: added global parameter userIncDirsSet,
10360         * (parseCmdLine): when option -I is encountered add directory to
10361         userIncDirsSet too,
10362         * src/version.awk: added space between control and long,
10363         * src/pic16/NOTES: added some notes for the port,
10364         * src/pic16/gen.c: added prototype for mov2fp function,
10365         * (fReturnpic16[]): properly named return value registers,
10366         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
10367         * (aopForSym): added code to handle symbols with onStack flag set,
10368         symbols onStack are allocated PTRSIZE bytes,
10369         * (aopFreeAsmop): handles special case where asmops are stack objects,
10370         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
10371         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
10372         added argument lock to trace flaws in allocating temporary registers
10373         when developing port,
10374         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
10375         * (pic16_popRegFromString): reenabled allocating a direct register
10376         from string,
10377         * (assignResultValue): various beautifications,
10378         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
10379         referenced function argument,
10380         * (genIpush): reenabled to allow stacked arguments, handles only
10381         ic->parmPush iCodes,
10382         * (genCall, genPcall): major changes to allow for variable argument
10383         functions, fixed a bug with falsely restoring stack pointer after
10384         returning from call,
10385         * (genFunction): pending code for critical function,
10386         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
10387         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
10388         * (genNearPointerGet): fixed bug with indirect reading, was always
10389         reading from INDF0
10390         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
10391         pointers,
10392         * (genAddrOf): rewrote code to take address of a stacked function parameter
10393         * (genCast): fixed casting to generic pointer type,
10394         * src/pic16/gen.h: added AOP_STA,
10395         * (struct asmop): added field stk,
10396         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
10397         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
10398         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
10399         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
10400         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
10401         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
10402         generic pointers,
10403         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
10404         and library paths,
10405         * (pic16_port structure): generic pointer size is set to 3,
10406         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
10407         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
10408         compiler warning,
10409         * src/pic16/ralloc.c (allocReg): prevent allocating register when
10410         operand is an iTemp,
10411
10412 2004-09-24 Martin Helmling <mh AT octo-soft.de>
10413
10414         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
10415         * debugger/mcs51/simi.c: addapt new syntax of s51
10416
10417 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
10418
10419         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
10420         * src/pic16/pcode.c: commented out some calls to free() in order to
10421         fix bug #989576,
10422
10423 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10424
10425         * src/SDCCicode.h,
10426         * src/SDCCicode.c (isiCodeInFunctionCall),
10427         * src/avr/ralloc.c (selectSpil),
10428         * src/pic/ralloc.c (selectSpil),
10429         * src/pic16/ralloc.c (selectSpil),
10430         * src/ds390/ralloc.c (selectSpil),
10431         * src/hc08/ralloc.c (selectSpil),
10432         * src/xa51/ralloc.c (selectSpil),
10433         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
10434         stack in the middle of a function call sequence (fixes bug #1020268)
10435         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
10436         costs associated with the minimum switch case.
10437
10438 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10439
10440         * src/SDCC.lex: fixed bug #1030549
10441
10442 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10443
10444         * src/SDCCcse.h (struct cseDef),
10445         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
10446         over a function call if the CSE is derived from a symbol whose
10447         address has been taken (fixes bug #1029883)
10448         * support/regression/tests/bug-1029883: a new regression test for
10449         this bug
10450
10451 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10452
10453         * src/hc08/gen.c (emitinline): fixed bug #1029778
10454         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
10455         to a cast object is no longer a syntax error ("fixes" bug #1030006,
10456         and starts toward RFE #905167)
10457
10458 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
10459
10460         * src/pic16/gen.c (mov2f): New function to move an operand to
10461         another without considering if it is a literal or a register,
10462         * (pic16_sameRegs): don't check if they are both AOP_REG,
10463         * (AccRsh): removed andmask=0 lines,
10464         * (genLeftShift): duplicated to be improved in future versions,
10465         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
10466         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
10467         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
10468         * (pic16initMnemonics): added initialization for POC_INFSNZW,
10469         * (insertBankSwitch): fixed inserting banksel directives algorithm
10470         for instructions that follow a skip instruction, this fixes a report
10471         for broken subtraction code generation,
10472         * src/pic16/ralloc.c (deassignLRs): do not free register if current
10473         iCode is a left op, just in case result and right share the same
10474         registers
10475
10476 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10477
10478         * src/hc08/main.c,
10479         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
10480         preservation of HX
10481         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
10482         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
10483         on 2004-09-12; it was buggy
10484
10485 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
10486
10487         * src/SDCCsymt.h: removed RESULT_CHECK
10488         * src/SDCCast.c,
10489         * src/SDCCglue.c,
10490         * src/SDCCval.c,
10491         * src/pic/glue.c,
10492         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
10493
10494 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
10495
10496         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
10497         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
10498         configuration values no more rejected by compiler, they are assigned
10499         to configuration registers with a warning message instead,
10500         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
10501         the for-loop so last conf register is emitted too,
10502         * (_pic16_initPaths): link library libsdcc.lib by default,
10503         * (_hasNativeMulFor): modified test for multiplication according to
10504         Raphael Neider's remarks. Integer multiplication is also done with
10505         support functions,
10506         * device/include/pic16/pic18fregs.h: corrected type error in while
10507         testing and including 18f6720 header file
10508
10509 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
10510
10511         * src/pic16/device.h (pic16_options): removed field use_crt,
10512         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
10513         until an optimization to handle single bits is added,
10514         * (pic16_loadFSR0): moved before genUnpackBits,
10515         * (genAnd): some white lines removed,
10516         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
10517         leave_reset flags in pic16_options when using crt modules,
10518
10519 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
10520
10521         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
10522           for bugs 898889 & 979599. Also used some safer print instructions.
10523
10524 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
10525
10526         * src/pic16/device.h (pic16_options_t): added field use_crt,
10527         crt_name, no_crt,
10528         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
10529         catch a probable future bug,
10530         * src/pic16/gen.c: aopIdx function commented out,
10531         * (genAssign): commented out old code which used aopIdx,
10532         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
10533         code, added if conditionals to take into account the --use-crt
10534         command line options,
10535         * src/pic16/main.c (pic16_optionsTable): added new command line
10536         options, --use-crt= and --no-crt,
10537         * (_pic16_linkEdit): now the proper crt object is added in the
10538         linker command line except than when --no-crt is specified,
10539         * src/pic16/pcode.c,
10540         * src/pic16/pcode.h: added some structures and functions for a new
10541         optimization scheme to compansate for instruction overhead between
10542         same iCodes, this scheme is currently under development and is not
10543         working in any way,
10544         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
10545         to && operator,
10546         * device/lib/pic16/startup/crt0i.c,
10547         * device/lib/pic16/startup/crt0iz.c: added global char variable
10548         __uflags to force the generation of an idata section
10549
10550 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
10551
10552         * doc/Makefile,
10553         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
10554         * doc/sdccman.lyx: updated sdcc version to 2.4.4
10555
10556 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10557
10558         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
10559         Frieder) and clarified the default code optimization mode
10560
10561 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10562
10563         * src/SDCC.lex (doPragma, process_pragma),
10564         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
10565         "opt_code_size", and "opt_code_balanced"
10566         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
10567         regrouped options by category, added support for category headers
10568         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
10569         and "--opt-code-size"
10570         * doc/sdccman.lyx: documented these new options and pragmas
10571         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
10572         preference into account
10573
10574 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
10575
10576         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
10577           geniCodePreDec): Fixed bug 904237 by generating a warning
10578         * src/SDCCerr.h,
10579         * src/SDCCerr.c: added warning W_SIZEOF_VOID
10580
10581 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
10582
10583         * src/pic/device.c : When no max ram set validate full memory range.
10584         * src/pic/pcode.c,
10585         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
10586
10587 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
10588
10589         * device/lib/_gptrget.c,
10590         * device/lib/_gptrput.c: updated comment
10591         * device/lib/calloc.c,
10592         * device/lib/free.c,
10593         * device/lib/malloc.c,
10594         * device/lib/realloc.c: added LGPL, made them reentrant-safe
10595         * src/SDCCcse.c (cseBBlock),
10596         * src/SDCCicode.c (printOperand, geniCodeArray),
10597         * src/SDCCicode.h (struct operand): fixed bug 868103
10598         * support/regression/tests/bug-868103.c: added
10599         * src/SDCCast.c (searchLitOp),
10600         * src/SDCCcse.h (struct cseDef),
10601         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
10602         * src/SDCCicode.h (struct operand),
10603         * src/SDCCsymt.h (struct sym_link),
10604         * src/avr/gen.c (hasInc),
10605         * src/ds390/gen.c (hasInc),
10606         * src/hc08/gen.c (genPlusIncr, hasInc),
10607         * src/mcs51/gen.c (hasInc),
10608         * src/pic16/glue.c (pic16_printIvalChar),
10609         * src/pic16/ralloc.c (regWithIdx),
10610         * src/xa51/gen.c (hasInc) : removed warnings
10611         * src/SDCCast.c (createBlock): added comment ???
10612         * src/hc08/ralloc.c: updated comments
10613
10614 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10615
10616         * doc/sdccman.lyx: updated section on switch statements, added
10617         section about semaphore locking
10618         * doc/Makefile: added option -info for latex2html
10619         * device/lib/_gptrget.c,
10620         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
10621
10622 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
10623
10624         * src/pic/device.h,
10625         * src/pic/device.c,
10626         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
10627          maxram is less than 0x100.
10628
10629 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
10630
10631         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
10632
10633 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10634
10635         * src/port.h,
10636         * src/mcs51/main.c,
10637         * src/ds390/main.c,
10638         * src/z80/main.c,
10639         * src/hc08/main.c,
10640         * src/pic/main.c,
10641         * src/pic16/main.c,
10642         * src/avr/main.c,
10643         * src/xa51/main.c
10644         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
10645         a jump table is the best form for a switch statement, including
10646         automatic insertion of missing cases to make the case range
10647         continuous. Developed in collaboration with Frieder Ferlemann.
10648
10649 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10650
10651         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
10652         accumulator result if it needs sign extension
10653
10654 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10655
10656         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
10657
10658 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10659
10660         * device/lib/gbz80/printf.c,
10661         * device/lib/z80/printf.c: removed define for NULL
10662
10663 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10664
10665         * as/xa51/xa_link.c,
10666         * device/examples/ds390/ow390/ad26.c,
10667         * device/examples/ds390/ow390/cnt1d.c,
10668         * device/examples/ds390/ow390/counter.c,
10669         * device/examples/ds390/ow390/ds2480.h,
10670         * device/examples/ds390/ow390/ds2480ut.c,
10671         * device/examples/ds390/ow390/findtype.c,
10672         * device/examples/ds390/ow390/gethumd.c,
10673         * device/examples/ds390/ow390/owllu.c,
10674         * device/examples/ds390/ow390/ownetu.c,
10675         * device/examples/ds390/ow390/swt12.c,
10676         * device/examples/ds390/ow390/swtloop.c,
10677         * device/examples/ds390/ow390/temp.c,
10678         * device/examples/ds390/ow390/temp10.c,
10679         * device/examples/ds390/ow390/thermo21.c,
10680         * device/examples/ds390/ow390/tinilnk.c,
10681         * device/examples/ds390/ow390/tstfind.c,
10682         * device/examples/serialcomm/windows/serial.cpp,
10683         * device/examples/serialcomm/windows/test_serialcomm.cpp,
10684         * device/include/reg51.h: fixed line endings for cvs
10685
10686 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10687
10688         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
10689         packRegsForAccUse, packRegisters): new accumulator register
10690         packing algorithm
10691         * support/regression/ports/hc08/support.c (_putchar): suppress
10692         warning of unused variable
10693         * src/SDCCicode.c: added SWAP entry to codeTable
10694
10695 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
10696
10697         * device/lib/sprintf.c: forgot to add this file before previous commit
10698
10699 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
10700
10701         * src/pic16/gen.c (genPackBits): added operand right in function
10702         parameters, load result directly if p_type is POINTER (that is
10703         called by genNearPointerSet)
10704         * (genUnPackBits): added operand left in function parameters,
10705         * (genNearPointerGet, genNearPointerSet): prevent the loading of
10706         FSR0 if accessing bitfields,
10707
10708 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
10709
10710         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
10711           _print_format; updated printf, sprintf, vsprintf
10712         * device/include/asm/default/features.h: corrected comment/define
10713         * device/lib/Makefile.in: added sprintf.c
10714         * device/lib/libsdcc.lib: added sprintf module
10715         * device/lib/printf_large.c,
10716         * device/lib/vprintf.c,
10717         * device/lib/sprintf.c: totally refactored printf_large and vprintf
10718           into these 3 files
10719         * support/regression/Makefile: changed ALL_PORTS into a usefull default
10720         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
10721         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
10722           hc08 test
10723         * support/regression/tests/zeropad.c: define idata as data for hc08
10724
10725 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10726
10727         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
10728         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
10729         labels are referenced at least once (even if a reference is not found)
10730         * src/hc08/gen.c (emitcode): set isComment flag for comments
10731         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
10732         loads), rules 6a..6b (optimize jumps to return)
10733
10734 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10735
10736         * device/lib/acosf.c (acosf),
10737         * device/lib/asinf.c (asinf),
10738         * device/lib/atanf.c (atanf),
10739         * device/lib/ceilf.c (ceilf),
10740         * device/lib/cosf.c (cosf),
10741         * device/lib/coshf.c (coshf),
10742         * device/lib/cotf.c (cotf),
10743         * device/lib/fabsf.c (fabsf),
10744         * device/lib/floorf.c (floorf),
10745         * device/lib/log10f.c (log10f),
10746         * device/lib/logf.c (logf),
10747         * device/lib/sinf.c (sinf),
10748         * device/lib/sinhf.c (sinhf),
10749         * device/lib/sqrtf.c (sqrtf),
10750         * device/lib/tanf.c (tanf),
10751         * device/lib/tanhf.c (tanhf),
10752         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
10753         replaced all instances of "reentrant" in the library functions
10754         defined in math.h with this macro.
10755         * support/regression/tests/float_trans.c: reenabled test for hc08
10756
10757 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
10758
10759         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
10760         erroneously deleted
10761
10762 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10763
10764         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
10765         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
10766         multi-byte volatile operands are used
10767         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
10768         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
10769         initialization to area GSINIT0 so that it would always precede
10770         any static initializers in GSINIT
10771         * support/regression/tests/zeropad.c: fixed idata define for hc08
10772         * support/regression/tests/bug-927659.c,
10773         * support/regression/tests/float_trans.c: disabled tests for hc08
10774         pending missing library routines
10775         * .version: increased version number to 2.4.4 - hc08 port now passes
10776         regression tests
10777
10778
10779 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
10780
10781         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
10782         * Makefile.common.in,
10783         * as/Makefile,
10784         * as/hc08/Makefile.in,
10785         * as/mcs51/Makefile.in,
10786         * as/z80/Makefile.in,
10787         * debugger/mcs51/Makefile.in,
10788         * device/include/Makefile.in,
10789         * device/lib/Makefile.in,
10790         * doc/Makefile,
10791         * link/Makefile,
10792         * link/z80/Makefile.in,
10793         * packihx/Makefile.in,
10794         * sim/ucsim/main_in.mk,
10795         * sim/ucsim/avr.src/Makefile.in,
10796         * sim/ucsim/doc/Makefile.in,
10797         * sim/ucsim/gui.src/serio.src/Makefile.in,
10798         * sim/ucsim/hc08.src/Makefile.in,
10799         * sim/ucsim/s51.src/Makefile.in,
10800         * sim/ucsim/xa.src/Makefile.in,
10801         * sim/ucsim/z80.src/Makefile.in,
10802         * src/Makefile.in,
10803         * support/cpp2/Makefile.in,
10804         * support/librarian/Makefile,
10805         * support/makebin/Makefile: added DESTDIR to the install path proposed
10806         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
10807         * doc/sdccman.lyx: added DESTDIR documentation
10808
10809 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
10810
10811         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
10812         instruction for interrupt handlers, use fast returns when returning
10813         from high priority interrupts
10814
10815 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10816
10817         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
10818         code generation
10819         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
10820         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
10821         bugs, ported much of Bernhard's code from mcs51
10822         * src/mcs51/gen.c (genSend),
10823         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
10824         than one when calling a reentrant function
10825         * device/lib/_mullong.c: defined an alternate struct layout for big
10826         endian ports (hc08)
10827
10828 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10829
10830         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
10831         test
10832
10833 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10834
10835         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
10836         are sane and complete before asking the port its prefered parameter
10837         passing method (fixes bug #1017633)
10838         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
10839         and _ret3
10840
10841 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10842
10843         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
10844         problem in bitfields >= 8 bits.
10845
10846 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10847
10848         * src/SDCCsymt.c: undid changes that were not meant to be committed
10849
10850 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10851
10852         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
10853
10854 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10855
10856         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
10857           copied and wrong bit got inverted
10858
10859 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10860
10861         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
10862         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
10863         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
10864         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
10865         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
10866         assignments to bitfields at known addresses
10867         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
10868         reads from bitfields at known addresses
10869         * src/hc08/ralloc.c (packRegisters),
10870         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
10871         genhc08Code): optimize pointer get values used as conditionals
10872         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
10873         and branch
10874
10875 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10876
10877         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
10878         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
10879         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
10880         as conditionals
10881
10882 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10883
10884         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
10885
10886 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10887
10888         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
10889         related problems
10890
10891 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
10892
10893         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
10894
10895 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10896
10897         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
10898         mcs51 port
10899
10900 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
10901
10902         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
10903
10904 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10905
10906         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
10907         cases use more compact code.
10908
10909 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
10910
10911         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
10912
10913 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10914
10915         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
10916
10917 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10918
10919         * src/SDCCsymt.h,
10920         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
10921         parameter of changePointer() from symbol* to sym_link*
10922         * src/SDCCast.c (decorateType): call changePointer() for CAST op
10923         * src/SDCCsymt.c (compareType): void* type is castable to other
10924         pointers, but not necesarily an exact match.
10925         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
10926         is no longer blindly treated as an exact match.
10927         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
10928
10929 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
10930
10931         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
10932
10933 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
10934
10935         * src/pic/gen.c,
10936         * src/pic/pcode.c,
10937         * src/pic/ralloc.h,
10938         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
10939
10940 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
10941
10942         * src/pic/device.c,
10943         * src/pic/device.h,
10944         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
10945
10946 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10947
10948         * src/mcs51/gen.c (emitcode): fixed bug #992819
10949
10950 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
10951
10952         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
10953           there's no need to make it worse
10954
10955 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10956
10957         * src/mcs51/ralloc.c (deassignLR),
10958         * src/ds390/ralloc.c (deassignLR),
10959         * src/hc08/ralloc.c (deassignLR),
10960         * src/z80/ralloc.c (deassignLR),
10961         * src/pic/ralloc.c (deassignLR),
10962         * src/pic16/ralloc.c (deassignLR),
10963         * src/avr/ralloc.c (deassignLR),
10964         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
10965         rlivePoint): fixed another part of bug #971834
10966
10967 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10968
10969         * src/z80/main.c: enabled "critical" keyword
10970         * src/z80/mappings.i,
10971         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
10972         functions (fixes bug #979646)
10973         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
10974
10975 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10976
10977         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
10978           such as c:\mydir.
10979
10980 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
10981
10982         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
10983           doesn't disable too much optimizations
10984
10985 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
10986
10987         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
10988
10989 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
10990
10991         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
10992
10993 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
10994
10995         * src/pic/gen.c tidied up tabs
10996         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
10997         * src/pic/main.c tidied up tabs
10998         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
10999         * src/pic/pcoderegs.c tidied up tabs
11000         * src/pic/ralloc.c tidied up tabs
11001
11002 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
11003
11004         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
11005         to S_FIXED for pic16 port and when symbol is not in level 0,
11006         allocate for S_REGISTER storage class and pic16 port, too,
11007         * src/pic16/device.h: prototype for checkSym,
11008         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
11009         * (pic16_assignConfigWordValue): test the value and the mask to
11010         validate that the value is suitable for the configuration word,
11011         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
11012         collect extern declared symbols, don't emit symbol twice, check
11013         first if symbol is in publics set first,
11014         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
11015         * added command line '--fstack' which enables an experimental
11016         feature for stack access, too buggy to be used yet...
11017         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
11018         * (pic16_allocDirReg): when register has storage class S_REGISTER
11019         allocate in pic16_dynAccessRegs,
11020         * device/include/pic16/pic18f????.h: modified configuration word
11021         naming convention, words started as CONFIG0H but should be CONFIG1H
11022
11023 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
11024
11025         * device/include/mcs51reg.h: fixed bug 970993
11026
11027 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
11028
11029         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
11030         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
11031         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
11032         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
11033         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
11034         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
11035           error/warning numbers,
11036           added function setWarningDisabled()
11037         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
11038         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
11039           _memcmp.c _memmove.c calloc.c realloc.c free.c
11040         * support/regression/tests/malloc.c: added tests for new functionality
11041         * support/regression/tests/zeropad.c: added tests for truncated initializers
11042           and initialized char arrays starting with '\x0'
11043         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
11044
11045 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
11046
11047         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
11048
11049 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11050
11051         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
11052         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
11053         peephole 177.e. Thanks to anonymous
11054
11055 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
11056
11057         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
11058         function isn't used in the source but referenced as a
11059         variable initializer then declare it as extern in .asm file
11060
11061 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
11062
11063         * .version: increased version number to 2.4.3
11064
11065         Adding version extension according to ChangeLog CVS revision
11066         * src/Makefile.in (target all): added dependency 'version.h'
11067         * (rule version.h): added rule to create version.h from ChangeLog,
11068         * (rule dep): added dependency version.h,
11069         * src/version.awk: AWK script to create version.h
11070         * src/SDCCdwarf2.c (dwWriteModule),
11071         * src/SDCCglue.c (initialComments),
11072         * src/SDCCmain.c (printVersionInfo): modified to write after
11073         version string the version extension number,
11074         * src/SDCCutil.c: included "version.h"
11075         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
11076         number,
11077         * src/SDCCutil.h: added prototype for getBuildNumber
11078
11079         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
11080         includeDirsSet, too,
11081         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
11082         const char [] is found in function prototype...
11083
11084         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
11085         moving to WREG with source is already in WREG,
11086         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
11087         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
11088         * (aopForSym): stack'ed symbols are partially supported, added
11089         if-clause to support symbols in FARSPACE,
11090         * (sameRegs): added test for AOP_ACC to see if registers are same,
11091         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
11092         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
11093         * (pic16_popRegFromString): will not allocate a new register if it
11094         doesn't find one by name, bug may have introduced...
11095         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
11096         * (genIpush): revived to use pic16 port's stack,
11097         * (genAddrOf): added incomplete case for stack'ed operand,
11098         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
11099         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
11100         can handle multibyte operands,
11101         * src/pic16/glue.c (pic16_printIval*): some debug info added,
11102         * (pic16initialComments): added message for MPLAB compatibility
11103         mode enabled,
11104         * src/pic16/main.h: prototype for pic16_mplab_comp,
11105         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
11106         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
11107         * (_pic16_linkEdit): NEW, handles link stage, transferred here
11108         because of increased complexity of procedure,
11109         * (_process_pragma): stack pragma changed to format 'stack pos len',
11110         emit symbol '_stack_end' to conform with gplink,
11111         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
11112         to search for register,
11113         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
11114         PO_GPR_REGISTER,
11115         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
11116         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
11117         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
11118         case for PO_GPR_REGISTER,
11119         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
11120         dies, the new era is ahead !...
11121         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
11122         pic16_dynInternalRegs,
11123         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
11124         * (pic16_allocDirReg): minor optimizations and bug fixes,
11125         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
11126
11127         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
11128         load stack and frame pointer with address of 'stack_end' symbol
11129
11130 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
11131
11132         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
11133         without source code but only variable initializers
11134
11135 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
11136
11137         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
11138         external are not declared as extern to reduce overhead while linking
11139
11140 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
11141
11142         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
11143
11144 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
11145
11146         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
11147           Yee Keat for the patch
11148         * src/SDCCast.c (decorateType): fixed bug #979599
11149         * src/ds390/gen.h: removed local fReturnSizeDS390
11150         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
11151         * src/ds390/gen.c (genAnd, genOr, genXor),
11152         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
11153
11154 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
11155
11156         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
11157         add relFilesSet to $3, manipulate $2 to handle linking of object
11158         files without source files in command line,
11159         * device/include/pic16 (all headers): added ID location macros,
11160         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
11161         entries for ID location bytes,
11162         * (pic16_assignIdByteValue): NEW,
11163         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
11164         added field dumpcalltree to pic16_options_t,
11165         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
11166         is used instead of pic16_Gstack_base_addr, check if (ifx) before
11167         emitting rFalseIfx label after check_carry label,
11168         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
11169         pic16_emitDIRegs), NEW
11170         * (pic16glue): dump .calltree file when option --calltree found,
11171         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
11172         * (_pic16_genAssemblerPreamble): emit ID locations after
11173         configuration registers,
11174         * (pic16_linkCmd): modifications of the link command,
11175         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
11176         * (pic16_pCodeInitRegisters): don't init stack registers,
11177         * (pic16_findPrevInstruction): fixed bug,
11178         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
11179         bug with immediate registers,
11180         * (buildCallTree): traces stack push and pop,
11181         * (pct2): dump also stack usage for each function,
11182         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
11183         * (pic16_allocDirReg): various modifications,
11184         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
11185         fixed to 1,
11186
11187 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
11188
11189         * src/pic16/pcode.c: removed buggy double colon
11190
11191 2004-07-01 Borut Razem <borut.razem AT siol.net>
11192
11193         * support/scripts/sdcc.nsi: added include/pic16 to setup
11194
11195 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
11196
11197         * device/lib/Makefile.in: fixed bug in target objects-pic16,
11198         * device/lib/pic16/Makefile: prefixed with dash (-) command under
11199         target 'clean',
11200         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
11201         specific command line arguments. Also added sample lkr script
11202         for placing a variable at a specific memory bank.
11203         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
11204         at a specific memory bank,
11205         * (pic16_dump_isection): fixed bug which caused string literals to
11206         be omitted when dumping idata section,
11207         * (pic16_groupRegistersInSection): added code to handle registers
11208         in specific memory banks,
11209         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
11210         public, all references are renamed too,
11211         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
11212         AOP_DPTR2,
11213         * (pic16_storeForReturn): added case to handle when dest is WREG,
11214         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
11215         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
11216         pic16_rel_udata, check to see if that register is marked as being
11217         a member of a specific memory bank,
11218         * (pic16_printIvalCharPtr): added code to add string literals either
11219         to code or the idata sections,
11220         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
11221         also accept the 'udata' pragma,
11222         * src/pic16/main.h: new structure types sectName and sectSym
11223         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
11224         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
11225         * (pic16_findPrevInstruction): fixed, it returned nothing,
11226         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
11227         instruction combinations,
11228         * (pic16_FixRegisterBanking): heavily reorganised,
11229         * (pic16_AnalyzeBanking): if generating banksel directives is
11230         disabled, then don't call FixRegisterBanking at all,
11231         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
11232         completely removed,
11233         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
11234
11235 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
11236
11237         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
11238         Phuah Yee Keat <yk.phuah AT nestac.com>
11239
11240 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
11241
11242         * src/pic16/glue.c (pic16createInterruptVect): function now emits
11243         correctly the IVT even if it is relocated to some other location
11244
11245 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
11246
11247         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
11248         * device/include/pic16/pic18f2220.h: NEW,
11249         * device/lib/pic16/libdev/pic18f2220.c: NEW,
11250         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
11251         * src/pic16/device.c (struct Pics16): added info for 18f2220,
11252         * src/pic16/device.h (struct pic16_options): added ivt_loc and
11253         nodefaultlibs, ivt_loc is the location of the interrupt vector
11254         table, and nodefaultlibs signs that default libraries should not be
11255         linked in link stage,
11256         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
11257         according to --ivt-loc argument,
11258         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
11259         when pragma stack is found,
11260
11261 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11262
11263         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
11264         256 (range check), 257 (do while), 258.a-f (bit banging
11265         f.e. on 3-wire SPI bus)
11266
11267 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11268
11269         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
11270         variables used exclusively within a loop
11271
11272 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
11273
11274         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
11275
11276 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11277
11278         * src/SDCClrange.c (computeClash): fixed bug #971834
11279
11280 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11281
11282         * src/mcs51/gen.c (genCmp): fixed bug #975903
11283         * src/hc08/gen.c (operandsEqu),
11284         * src/ds390/gen.c (operandsEqu),
11285         * src/z80/gen.c (operandsEqu),
11286         * src/pic/gen.c (operandsEqu),
11287         * src/pic16/gen.c (operandsEqu),
11288         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
11289         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
11290
11291 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11292
11293         * src/SDCCcse.c (cseBBlock): fixed bug #966963
11294
11295 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
11296
11297         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
11298         default case in switch statement,
11299         * glue.c (pic16_initPointer): expr is initialised via decoarteType
11300         to eliminate problem with initialisation of pointers, but problem
11301         still exists,
11302         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
11303         * (emitStaticSegment): removed various lines emitting debug info,
11304         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
11305         added processor registers for utilizing EEPROM,
11306         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
11307         configurable and set 8
11308
11309 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
11310
11311         * .version: increased version number to 2.4.2,
11312
11313         Cumulative patch for pic16 port
11314         * src/pic16/device.c: changed scheme to dump initial values for
11315         variables in idata segment, all print_idata* functions were removed,
11316         now the pic16_printIval* will be called,
11317         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
11318         * _pic16_printPointerType, pic16_printPointerType,
11319         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
11320         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
11321         NEW, similar to the respective functions in SDCCglue.c,
11322         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
11323         way, emitting hex bytes,
11324         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
11325
11326 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11327
11328         * src/avr/ralloc.c (serialRegAssign),
11329         * src/xa51/ralloc.c (serialRegAssign),
11330         * src/pic/ralloc.c (serialRegAssign),
11331         * src/pic16/ralloc.c (serialRegAssign),
11332         * src/hc08/ralloc.c (serialRegAssign),
11333         * src/z80/ralloc.c (serialRegAssign),
11334         * src/ds390/ralloc.c (serialRegAssign),
11335         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
11336
11337 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11338
11339         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
11340         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
11341
11342 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
11343
11344         Cumulative patch for pic16 port:
11345         * src/pic16/device.h (typedef PIC16_device) modified fields for
11346         defining microcontrollers,
11347         * src/pic16/device.c: added new info for all devices in Pics16 array,
11348         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
11349         to be optimised out by the pCode optimiser,
11350         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
11351         specially, bug reported by G.M. Gallant,
11352         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
11353         as force'd so that cannot be optimised out by pCode optimiser,
11354         * src/pic16/pcode.c,
11355         * src/pic16/pcodepeeph.c,
11356         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
11357         they are disabled by default, but can be enabled explicit with
11358         command argument --denable-peeps, for testing,
11359         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
11360         --pomit-ivt in COMPILE_FLAGS
11361
11362 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
11363
11364         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
11365           compilation on MSVC
11366
11367 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
11368
11369         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
11370
11371 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11372
11373         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
11374         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
11375
11376 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
11377
11378         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
11379         would only assign 0x300001 register.
11380
11381 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
11382
11383         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
11384         in COMPILE_FLAGS. Thanks to G. Gallant for report.
11385
11386 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11387
11388         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
11389         for ds80c400
11390         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
11391         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
11392         added peephole 254 (left shift), 255 (jump table)
11393
11394 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
11395
11396         * device/lib/Makefile.in: removed comment line with model-pic16,
11397         * (target port-specific-objects-pic16): the libraries and objects
11398         are copied to the build directory form the device/lib/pic16/bin
11399         directory
11400
11401         Cumulative patch concerning pic16 port:
11402         * library directory has been re-organized,
11403         * added support for PIC18F1220,
11404         * added headers and library sources for chips 18f1220,18f6520,
11405         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
11406
11407         * configuration registers setting has changed, now each supported
11408         device has a complete description of the registers it uses,
11409         * all initialisations are moved to idata sections, these section
11410         can be absolute or relocatable,
11411         * fixed initialisation of codespace variables,
11412         * fixed warning about PCLATU and gpsim,
11413         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
11414         * (genAssign): use table reads when assigning from variables in codespace,
11415         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
11416         char/int variables placed in codespace,
11417         * (pic16_emitConfigRegs): NEW, emits a list with configuration
11418         registers set in .asm file, no need for --pomit-config-words anymore,
11419         * (pic16glue): some 8051 legacy segments are commented out
11420         (to be removed completely),
11421         * added support for alternative assembler and linker with --asm=
11422         and --link= command line arguments,
11423         * peepholes are disabled automatically in the port, no need to
11424         specify on command line,
11425         * port supports natively char/int/long multiplication, but converts
11426         all divisions to support functions,
11427         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
11428         to the file set in variable $2,
11429         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
11430         strings in ASCII format and not in hex,
11431         * ralloc.c (serialRegAssign): added a triplet of conditional calls
11432         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
11433         allocate proper register if iCodes aren't temporary,
11434
11435 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
11436
11437         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
11438
11439 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
11440
11441         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
11442         is commented out
11443
11444 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11445
11446         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
11447         computed address is reused
11448         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
11449         multi-byte bitfields
11450
11451 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
11452
11453         * src/z80/gen.c: (genArrayInit): must check for pointers too
11454
11455 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
11456
11457         * support/regression/tests/zeropad.c: never meant to commit the
11458           nestedstruct test: removed, added check for GCC version
11459
11460 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
11461
11462         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
11463         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
11464         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
11465           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
11466           bugs 928906 and 954082 half-empty initializers
11467         * src/SDCCsymt.h,
11468         * src/SDCCsymt.c (getAllocSize): added for above fix
11469         * src/z80/gen.c (genArrayInit): fixed bug 741044
11470         * support/regression/tests/zeropad.c: added tests
11471
11472 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
11473
11474         * src/pic16/device.c (pic16_dump_section): corrected bug which
11475         caused some symbols of the libraries to be misplaced
11476
11477 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
11478
11479         * src/pic16/glue.c,
11480         * src/pic16/ralloc.h,
11481         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
11482         to fix conflict with pic port
11483
11484 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
11485
11486         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
11487         externs configuration variables,
11488         * src/pic16/ralloc.h,
11489         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
11490         prototype in header, commented out some debug messages
11491
11492 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
11493
11494         * src/pic16/glue.c,
11495         * src/pic16/main.c,
11496         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
11497         for gpasm COFF object generation. Thanks to D. Hawkins for
11498         his patch info
11499
11500 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11501
11502         * src/ds390/main.c,
11503         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
11504         Brock for spotting this)
11505         * src/ds390/gen.c (genEndFunction),
11506         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
11507         interrupt handler and critical. Disable push/pop optimizations when
11508         peephole optimizations disabled.
11509
11510 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
11511
11512         Updated pic16 library sources and headers.
11513         * device/lib/pic16/pic18f*/ ,
11514         * device/include/pic16/*.h: modified to handle structured SFR
11515         definitions
11516
11517 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
11518
11519         * src/port.h (PORT structure): added hook initPaths, now each
11520         port can declare its own default search paths,
11521         which can been seen with the --print-search-dirs option,
11522         see pic16 port for example,
11523         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
11524         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
11525         * (doPrintSearchDirs): NEW, replaces in a central manner the
11526         printing of search dirs which was split in set*Paths functions,
11527         * (main): added call to port->initPaths and doPrintSearchDirs,
11528         * src/avr/main.c,
11529         * src/ds390/main.c,
11530         * src/hc08/main.c,
11531         * src/izt/i186.c,
11532         * src/izt/tlcs900h.c,
11533         * src/mcs51/main.c,
11534         * src/pic/main.c,
11535         * src/pic16/main.c: modified port structures to reflect addition of
11536         initPaths hook,
11537
11538         * src/pic16/device.c (regCompare): registers are finally sorted by name,
11539         * (pic16_dump_section): for registers in same address reserve memory once,
11540         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
11541         to no_banksel,
11542         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
11543         result is greater in size than right or left,
11544         * (pic16_genUMult8X8_8): there are some cases where the result can
11545         be 16 bits size, so handle these,
11546         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
11547         * (pic16_outBitC): modified to emit pcodes,
11548         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
11549         or not,
11550         * (genDivOneByte): implemented algorithm to divide 8-bits,
11551         * (genCmp): uncommented goto, but issues still exist,
11552         * (genAnd): fixed a bug with variables >8bits,
11553         * (genPackBits): optimization added that uses BCF/BSF to change a
11554         single bit,
11555         * (genAssign): fixed bug when assigning floating point literals,
11556         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
11557         __sdcc_gsinit_startup label,
11558         * src/pic16/main.c (_pic16_init): removed search directory
11559         initialisations,
11560         * (_pic16_initPaths): NEW, used to initialise search directories,
11561         * (_hasNativeMulFor): support functions for all except char/int
11562         multiplication, and char division,
11563         * (PIC16_port struct): modified entry for native mul support,
11564         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
11565         no_banksel option,
11566         * (buildCallTree): call to register_usage is ifdef'ed out,
11567
11568 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11569
11570         * device/include/string.h: applied Stas Sergeev's patch to make this
11571         header file compatible with the preprocessor -Wundef option
11572         * src/SDCCmain.c (main): abort compilation if preprocessor reports
11573         failure (fixes bug #941458)
11574
11575 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11576
11577         * src/SDCCopt.c (killDeadCode): fixed bug #907733
11578         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
11579         that the variable, not the function, should be static
11580         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
11581         to be consistent with non-literal case
11582
11583 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11584
11585         * src/SDCCast.c (isConformingBody): fixed bug #949967
11586         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
11587         convilong): fixed bug #952086
11588
11589 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11590
11591         * src/SDCCmem.c (allocVariables): fixed bug #955321
11592
11593 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11594
11595         * src/hc08/main.c (_hc08_genAssemblerEnd),
11596         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
11597         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
11598         completely eliminated the use of a temporary file
11599         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
11600         when more than one file linked
11601         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
11602
11603 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11604
11605         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
11606         which fixes bug #543481
11607         * support/regression/tests/bug-751703.c: fixed comments left from a
11608         cut and paste error
11609         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
11610         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
11611         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
11612         scopes
11613         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
11614         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
11615         are now changed to underscores in moduleName
11616
11617 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11618
11619         * as/mcs51/lkmem.c: better fix for bug #954173
11620
11621 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
11622         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11623
11624         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
11625         * device/include/c8051f000.h,
11626         * device/include/c8051f120.h,
11627         * device/include/c8051f300.h,
11628         * device/include/c8051f310.h,
11629         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
11630         PWM16) and detab'ed
11631
11632 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11633
11634         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
11635         and mailing lists, doc'ed --no-peep-comments, removed reference
11636         to knoppix (newest version has no LyX/LaTeX), other minor changes
11637         * src/SDCCglue.c (glue): save 2 bytes stack space with
11638         option --main-return. The ljmp could probably be avoided too
11639
11640 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11641
11642         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
11643
11644 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11645
11646         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
11647         * src/SDCCopt.c (isLocalWithoutDef),
11648         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
11649         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
11650         (credit to Maarten Brock for patch #949363, on which this is based)
11651         * support/regression/tests/bug-751703.c: some test cases of extern used
11652         within inner scopes.
11653
11654 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11655
11656         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
11657         SPEC_STRUCT
11658         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
11659         struct definitions
11660         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
11661         dwWriteLabel): fix to create valid debugger symbols even when
11662         the module name has non-alphanumeric symbols in it
11663         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
11664         when a variable's allocation has been optimized away
11665
11666
11667 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11668
11669         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
11670         * src/hc08/main.c,
11671         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
11672         * src/mcs51/main.c,
11673         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
11674         * src/ds390/main.c,
11675         * src/z80/gen.c (z80_emitDebuggerSymbol),
11676         * src/z80/main.c,
11677         * src/pic/gen.c (pic14_emitDebuggerSymbol),
11678         * src/pic/main.c,
11679         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
11680         * src/pic16/main.c,
11681         * src/avr/gen.c (avr_emitDebuggerSymbol),
11682         * src/avr/main.c,
11683         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
11684         * src/xa51/main.c,
11685         * src/SDCCdebug.c (emitDebuggerSymbol),
11686         * src/SDCCdebug.h,
11687         * src/port.h: added a debugger struct to the port struct. Added a
11688         callback for defining debugger symbols
11689
11690         * src/SDCCast.c (createLabel),
11691         * src/SDCC.y (labeled_statement): mark all compiler generated labels
11692         with isitmp = 1
11693         * src/SDCCicode.h,
11694         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
11695         iCode back to the ast for the function
11696
11697         * src/hc08/ralloc.c (hc08_assignRegisters),
11698         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
11699         unneeded fields from the regs struct.
11700         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
11701         pushReg() & pullReg() functions instead of emitcode()
11702
11703         * src/hc08/gen.c (genLabel, genhc08Code),
11704         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
11705
11706         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
11707         debugger hooks
11708
11709         * src/hc08/gen.c (genEndFunction, genhc08Code),
11710         * src/hc08/gen.h,
11711         * src/mcs51/gen.c (genEndFunction, gen51Code),
11712         * src/mcs51/gen.h,
11713         * src/ds390/gen.c (genEndFunction, gen390Code),
11714         * src/ds390/gen.h,
11715         * src/z80/gen.c (genEndFunction, genZ80Code),
11716         * src/z80/gen.h,
11717         * src/z80/z80.h,
11718         * src/pic/gen.c (genEndFunction, genpic14Code),
11719         * src/pic/gen.h,
11720         * src/pic16/gen.c (genEndFunction, genpic16Code),
11721         * src/pic16/gen.h,
11722         * src/avr/gen.c (genEndFunction, genAVRCode),
11723         * src/avr/gen.h,
11724         * src/xa51/gen.c (genEndFunction, genXA51Code),
11725         * src/xa51/gen.h,
11726         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
11727         specific code to cdbFile.c and out of the backend code generators
11728
11729         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
11730         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
11731         starting address is now 0
11732
11733         * as/hc08/asm.h,
11734         * as/hc08/m08pst.c,
11735         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
11736         assembler directive for DWARF support
11737         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
11738
11739         * src/src.dsp,
11740         * src/Makefile.in,
11741         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
11742
11743 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11744
11745         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
11746         and inappropriate peephole optimization in jump tables
11747
11748 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11749
11750         * as/hc08/m08pst.c,
11751         * src/SDCCglue.c: sdccopt works for the hc08 port now
11752
11753 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
11754
11755         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
11756
11757 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11758
11759         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
11760
11761 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11762
11763         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
11764         rules
11765         * src/SDCCmain.c,
11766         * src/SDCCglobl.h,
11767         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
11768         comments from the peephole optimizer replacement rules
11769         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
11770         symbols
11771         * src/SDCCcse.c (updateSpillLocation),
11772         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
11773         equivalents
11774         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
11775         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
11776         objects far pointers
11777
11778 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11779
11780         * src/SDCCsymt.h: a missing part of my last change
11781         * src/pic/ralloc.c (regTypeNum),
11782         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
11783
11784 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11785
11786         * src/SDCCicode.h,
11787         * src/SDCCicode.c (aggrToPtrDclType),
11788         * src/SDCCptropt.h,
11789         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
11790         ptrPseudoSymConvert),
11791         * src/pic/ralloc.c (regTypeNum),
11792         * src/pic16/ralloc.c (regTypeNum),
11793         * src/hc08/ralloc.c (regTypeNum),
11794         * src/ds390/ralloc.c (regTypeNum),
11795         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
11796         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
11797
11798 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11799
11800         * link/z80/lkmain.c (afile),
11801         * as/hc08/lkmain.c (afile),
11802         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
11803         prevent a pointer problem when a filename has no directory and
11804         no extension specified.
11805
11806 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11807
11808         * link/z80/lkmain.c (afile): allow periods in directory names
11809         * link/z80/lkmain.c (afile),
11810         * as/mcs51/lkmain.c (afile),
11811         * as/hc08/lkmain.c (afile): allow linker script file to have an
11812         extension other than ".lnk"
11813         * link/z80/lklex.c (getfid),
11814         * link/z80/lkmain.c (parse),
11815         * as/mcs51/lklex.c (getfid),
11816         * as/mcs51/lkmain.c (parse),
11817         * as/hc08/lklex.c (getfid),
11818         * as/hc08/lkmain.c (parse): Support comments in the linker script
11819         file on lines by themselves and after filenames
11820
11821 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11822
11823         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
11824
11825 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11826
11827         * src/z80/peeph-z80.def: removed some peephole rules that don't
11828         work with multibyte arithmetic (fixed bug #937126)
11829         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
11830         to registers and not global variables
11831         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
11832         geniCodePreInc, geniCodePostDec, geniCodePreDec,
11833         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
11834         checking for assignments not internally generated (fixed bug #931895)
11835         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
11836         structure member (fixed bug #930072)
11837
11838 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11839
11840         * src/SDCCmain.c (linkEdit),
11841         * src/hc08/main.c (_hc08_parseOptions),
11842         * as/hc08/Makefile.in,
11843         * as/hc08/aslink.h,
11844         * as/hc08/asm.h,
11845         * as/hc08/m08pst.c,
11846         * as/hc08/lkrloc.c (relr, rele),
11847         * as/hc08/lkarea.c (lnkarea)
11848         * as/hc08/lkmain.c (afile, parse),
11849         * as/hc08/lkelf.c: support for ELF output
11850         * as/hc08/lks19.c (s19),
11851         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
11852
11853 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11854
11855         * as/mcs51/lkihx.c: Fixed bug #899105.
11856
11857 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11858
11859         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
11860         .dsp files from Unix to DOS.
11861
11862 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11863
11864         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
11865         function pointers; we have been compliant for several months now.
11866         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
11867         change that was accidently commented out
11868         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
11869         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
11870         bug #922319
11871
11872 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11873
11874         * src/hc08/gen.c: output of all of the internal debugging information
11875         is now controlled by the D() macro; it is disabled by default
11876
11877 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11878
11879         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
11880         harder to keep the same registers during a CAST iCode
11881         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
11882         long via int can be done in a single cast, if the signedness is
11883         correct.
11884         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
11885         putchar() in tinibios.c in ds390's library
11886
11887 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
11888
11889         * src/SDCCast.c (decorateType): fixed bug #898889,
11890         cast result of a literal complement too
11891         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
11892         fixed check for bitfields
11893
11894 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
11895
11896         * src/SDCCicode.c (geniCodeLogic): made it static,
11897         (geniCodeLogicAndOr): added in order to fix bug #905492,
11898         (ast2iCode): fixed bug #905492
11899         * support/regression/tests/bug-905492.c: added
11900         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
11901         (processParms): fixed bug #927659: don't copy parms, this will clear
11902         decorated flag
11903         * support/regression/tests/bug-927659.c: added
11904
11905 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
11906
11907         * src/SDCCast.c (addCast): don't cast float to char
11908         * device/lib/libsdcc.lib: added _memmove
11909
11910 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
11911
11912         * device/lib/large/Makefile: fixed parallel execution by
11913         replacing `make` by `$(MAKE)`
11914
11915 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11916
11917         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
11918         offsets (fixes bug #923936)
11919
11920 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
11921
11922         * device/lib/small/Makefile: fixed parallel execution by
11923         replacing `make` by `$(MAKE)`
11924
11925 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
11926
11927         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
11928
11929 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
11930
11931         * src/pic/gen.c (genCpl): multi-byte complements were not working.
11932         * src/regression/Makefile: Regression test was not running.
11933
11934 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
11935
11936         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
11937         complement if possible
11938         * src/SDCCval.c (valComplement),
11939         * src/SDCCicode.c (operandOperation): fixed complement of literal
11940         * support/regression/tests/onebyte.c (testComplement): added
11941
11942 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
11943
11944         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
11945         return an optimized tree; actually replace actParm with the new tree
11946         * src/SDCCast.h: added some parantheses to remove side effects
11947         * support/regression/tests/bug-920866.c
11948
11949 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
11950         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
11951         Bit operands were not being handled properly in the pic14 port.
11952         (now src/regression/add.c passes again).
11953
11954 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11955
11956         * src/SDCC.y (labeled_statement): case and default no longer require
11957         a following statement (RFE #893037)
11958
11959 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11960
11961         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
11962         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
11963         disabled (fixes bug #916294)
11964         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
11965         "mov a,acc"; patch provided by Lenny Story
11966         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
11967
11968 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11969
11970         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
11971         functions
11972         * src/ds390/gen.c (genFunction, genEndFunction),
11973         * src/ds390/ralloc.c (ds390_assignRegisters),
11974         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
11975         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
11976         pushed if there are parameters passed on the stack. Also, a cleaner
11977         way to decide if r0/r1 should be pushed/popped. (Together they fix
11978         bug #918693)
11979
11980 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11981
11982         * doc/sdccman.lyx,
11983         * device/lib/mcs51/crtpagesfr.asm,
11984         * device/lib/mcs51/crtxinit.asm,
11985         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
11986         to avoid confusion with Si Lab's SFRPAGE register.
11987
11988 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11989
11990         * src/SDCCglue.c (emitMaps): allow public sfr variables
11991         * src/SDCCglue.c (initialComments): include compiler build date
11992         with compiler version and put the timestamp of the generated
11993         assembly file on a serperate line to be less confusing.
11994         * src/port.h: added genInitStartup hook
11995         * src/avr/main.c,
11996         * src/ds390/main.c,
11997         * src/hc08/main.c,
11998         * src/pic/main.c,
11999         * src/pic16/main.c,
12000         * src/xa51/main.c,
12001         * src/z80/main.c: genInitStartup initialize as NULL (default to
12002         historical behaviour)
12003         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
12004         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
12005         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
12006         library instead of hard coding it into the compiler.
12007         * support/regression/ports/mcs51-stack-auto/spec.mk,
12008         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
12009         * device/lib/mcs51/Makefile,
12010         * device/lib/small/Makefile,
12011         * device/lib/large/Makefile,
12012         * device/lib/mcs51/crtpagesfr.asm,
12013         * device/lib/mcs51/crtstart.asm,
12014         * device/lib/mcs51/crtxclear.asm,
12015         * device/lib/mcs51/crtxinit.asm,
12016         * device/lib/mcs51/crtclear.asm,
12017         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
12018         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
12019         and into user configurable files.
12020         * device/lib/clean.mk: clean mcs51 directory too
12021         * support/regression/tests/longlit.c: added static to T1 declaration
12022         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
12023         accesses in the initialization code
12024
12025 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12026
12027         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
12028         OSCTRIMVAL as noted in bug #916008
12029
12030 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12031
12032         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
12033         in loops with multiple exits (reported as incorrect registers
12034         used by Martin Helmling in Sdcc-user list)
12035
12036 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12037
12038         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
12039         made ds390 register extensions look less like error messages
12040
12041 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12042
12043         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
12044         reported by Adam Wozniak in Sdcc-user list
12045
12046 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
12047
12048         * src/SDCCast.c (decorateType): fixed with bug and promotion in
12049         arithmetic optimizations, added debug output
12050
12051 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
12052
12053         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
12054         * sdcc.spec: updated and split sdcc into 3 rpms
12055         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
12056         needed for literals of LEFT_OP and '+'
12057         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
12058         introduced RESULT_TYPE_NOPROM
12059         (geniCodeMultiply): fixed logic for decision if mul is optimized to
12060         left shift
12061         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
12062         limited promotion to int only for '*'
12063         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
12064
12065 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
12066
12067         * src/pic16/gen.c (genSkip),
12068         (genc16bit2lit), (gencjneshort): commented out
12069         (is_LitOp): new helper function, checks operand type
12070         (genCmpEq): rewritten
12071
12072 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
12073
12074         * support/regression/tests/bug-908454.c: added
12075
12076 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
12077
12078         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
12079         * src/SDCCicode.c (usualBinaryConversions): op needs int type
12080         (geniCodeCast): cosmetic, don't preserve bit storage class
12081         (geniCodeLeftShift): added promotion
12082         (geniCodeLogic): fixed regression
12083         * src/SDCCsymt.c (computeTypeOr): accept bits too
12084         (compareType): 2nd part of fix for bug #908454, needed for bitfields
12085
12086 2004-03-07  Borut Razem <borut.razem AT siol.net>
12087
12088         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
12089
12090 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
12091
12092         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
12093         version of pic16_genPackRegisters which does not check if ic is a
12094         CAST operator,
12095         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
12096         function cause string1.c regression test fails
12097
12098 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
12099
12100         * sim/ucsim/configure.in,
12101         * sim/ucsim/configure,
12102         * sim/ucsim/doc/Makefile.in: use docdir
12103         * src/SDCC.y: fixed sbit atrributes
12104         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
12105         * src/SDCCast.c (decorateType): |^& need special promotion handling
12106         * src/SDCCast.h,
12107         * src/SDCCsymt.h: moved definition of RESULT_TYPE
12108         * src/SDCCsymt.h (computeType),
12109         * src/SDCCicode.c: computeType() needs op
12110         * src/SDCCsymt.c (checkTypeSanity),
12111         * doc/sddman.lyx: "plain" bitfields are unsigned
12112         * src/SDCCsymt.c (computeTypeOr): added
12113         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
12114         |^& ops
12115         * src/SDCCval.c (val*): computeType() needs op
12116         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
12117         * support/regression/tests/onebyte.c: added tests for |^&
12118
12119 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
12120
12121         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
12122         for writing icode into asm output.
12123
12124 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
12125
12126         * src/pic16/device.c: added some debug lines enabled
12127         with macro DEBUG_CHECK,
12128         * src/pic16/genarith.c: more debug in genPlus,
12129         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
12130         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
12131         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
12132         * (aopForSym): onStack symbols are re-placed in data memspace,
12133         and onStack flag is cleared,
12134         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
12135         copy temporary pcodeop,
12136         * (genPcall): added warning for not updating PCLATU,
12137         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
12138         always true for pic16 port,
12139         * (genMultOneWord): NEW, supports integer multiplication,
12140         * (genMult): modified to call genMultOneWord,
12141         * (ifxForOp): added warning when return NULL,
12142         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
12143         flag is set before call to operandFromSymbol for implicit
12144         added structures,
12145         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
12146         options.intlong_rent are set by default,
12147         * (_hasNativeMulFor): modified to allow port generation of integer
12148         multiplication,
12149         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
12150         set regtype to REG_SFR for all registers, restricting seting the
12151         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
12152
12153 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12154
12155         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
12156         more than 500 times in the regression tests
12157
12158 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12159
12160         * support/Util/SDCCerr.h,
12161         * support/Util/SDCCerr.c,
12162         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
12163         enumerator_list),
12164         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
12165         for symbol conflicts.
12166         * support/valdiags/tests/enum.c,
12167         * support/valdiags/tests/tentdecl.c,
12168         * support/valdiags/tests/struct.c: expect possible error messages
12169         referring to original symbol definitions.
12170         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
12171         * src/SDCCsymt.h,
12172         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
12173
12174 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
12175
12176         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
12177
12178 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
12179
12180         * src/pic16/ralloc.c (newReg): fixed bug #908929
12181
12182 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12183
12184         * src/ds390/gen.c: added missing #include "main.h"
12185
12186 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
12187
12188         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
12189         checking if symbol is already in set,
12190         * src/pic16/device.h: prototype for checkAddSym,
12191         * src/pic16/gen.c: (_G): added entry interruptvector,
12192         * (assignResultValue): removed some commented out lines,
12193         * (genFunction): check for ISR via sym->type, absolute section for
12194         interrupt code is created via a new pBlock, the goto instruction is
12195         placed now correctly at the interrupt vector position, changed all
12196         references from ivec to _G.interruptvector,
12197         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
12198         is the interrupt is a high priority one, same for return from ISR,
12199         * src/pic16/glue.c: changed all calls of addSetHead for publics and
12200         externs to calls of checkAddSym,
12201         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
12202         pic16_pcode_verbose flag is set,
12203         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
12204         * src/pic16/pcoderegs.c: message about how many registers are saved
12205         will only be emitted if pic16_pcode_verbose flag is set,
12206
12207 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12208
12209         * src/ds390/ralloc.h,
12210         * src/ds390/ralloc.c (ds390_regWithIdx),
12211         * src/ds390/gen.c (emitcode),
12212         * src/ds390/main.h,
12213         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
12214         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
12215         ds390operandCompare, getRegsRead, getRegsWritten,
12216         initializeAsmLineNode): customized instruction size calculation for
12217         ds390, started basis for some register optimizations
12218         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
12219         corresponding assembly output
12220         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
12221         missing push/pop of r0/r1. Optimized push/pops
12222
12223 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12224
12225         * src/mcs51/main.c (instructionSize): fixed ACALL size
12226         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
12227
12228 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
12229
12230         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
12231         the sorting of rlist with NULL elements
12232         * (print_idataType, print_idata): NEW to create idata sections
12233         * src/pic16/device.h: idataSymSet new variable
12234         * src/pic16/gen.c (genFunction): fixed some bugs in string
12235         comparing, improved the absolute section creation for ISRs,
12236         added FSR0L/FSR0H in registers that are saved in an ISR,
12237         * (genInline): fixed the processing of inline snippets,
12238         now they undergo no process by the peephole optimizer
12239         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
12240         are placed in idataSymSet,
12241         * (pic16emitStaticSeg): extern symbols are added in externs,
12242         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
12243         switching when aboslute variables are placed in access bank memory
12244         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
12245         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
12246         commented out with #if,
12247         * (pic16_packRegisters): reintroduce the check for CAST because some
12248         symbols are not correctly handled,
12249         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
12250         pCodeInstruction instead of pCode,
12251         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
12252         pCodeAsmDir definition,
12253         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
12254         directive, then the argument directive is emitted without the leading
12255         tab, hack for inline labels which must be in the first column,
12256         * (compareLabel,pic16_findNextInstruction),
12257         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
12258         * (insertBankSwitch): modified for the new pCodeAsmDir,
12259
12260 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12261         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
12262
12263         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
12264         instance,
12265         * (pushSide): commented out with #if,
12266         * (assignResultValue): fixed some typos in saving
12267         registers,
12268         * (genPcall): FIXED and sync'ed with genCall,
12269         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
12270         * (genNearPointerGet): fixed to handle some more cases,
12271         implementation scheme via table reads,
12272         * (genConstPointerGet): modified to access code memory correct,
12273         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
12274         and improved to handle some cases
12275         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
12276         instead of "RETLW" for init data
12277         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
12278         not IN_DIRSPACE, work around to reduce bank switching when aboslute
12279         variables are placed in access bank memory (<0x80 and >=0xf80),
12280         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
12281         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
12282         TBLWT_POSTDEC,TBLWT_PREINC
12283         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
12284         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
12285         directives
12286         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
12287         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
12288         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
12289         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
12290
12291 2004-02-29  Borut Razem <borut.razem AT siol.net>
12292
12293         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
12294         support/Util/findme.h, support/Util/system.h: enhance binary relative
12295         search for lib and include by using findProgramPath()
12296
12297 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12298
12299         * src/SDCCpeeph.h,
12300         * src/SDCCpeeph.c (pcDistance),
12301         * src/port.h,
12302         * src/mcs51/ralloc.h,
12303         * src/mcs51/ralloc.c (mcs51_regWithIdx),
12304         * src/mcs51/main.h,
12305         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
12306         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
12307         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
12308         size calculation port specific, started basis for some register
12309         optimizations
12310         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
12311         missing push/pop of r0/r1. Optimized push/pops
12312         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
12313         * device/lib/_modsint.c (_modsint),
12314         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
12315         and stack version so regression tests pass
12316
12317 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
12318
12319         * src/Makefile.in (dep): include SLIBOBJS in dependency check
12320         * src/SDCCast.c (decorateType): catch another small optimization
12321         with '?' operator
12322         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
12323         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
12324         modified to finally use computeType() all over SDCC,
12325         see Feature Request #877103
12326         * src/SDCCval.h: cosmetic
12327         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
12328         valCompare(); regression tested in muldiv.c
12329         * support/regression/tests/muldiv.c (testMod): mod sign follows
12330         dividend only
12331
12332 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
12333
12334         * src/SDCCast.c (decorateType): fixed bug #902362
12335         * doc/INSTALL.txt: fixed install instructions for win32
12336
12337 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
12338
12339         * device/include/Makefile.in (install): fixed by replacing spaces
12340         by tabs
12341         * doc/README.txt,
12342         * doc/INSTALL.txt: updated for release
12343         * doc/sdccman.lyx: added warning for --xstack being buggy
12344
12345 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
12346
12347         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
12348         to eliminate build warnings.
12349         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
12350
12351 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
12352            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12353
12354         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
12355         removed -penable-stack, added comment for stack pragma, added
12356         warning for not initializing the stack/frame registers, removed
12357         comment at interrupts section
12358
12359         Stack is made permanent, there is no ability to disable stack usage.
12360         * src/pic16/device.h,
12361         * src/pic16/device.c: removed all references to USE_STACK macro,
12362         * src/pic16/device.c (pic16_dump_section): when no elements in
12363         rlist, free rlist before return,
12364         * (pic16_dump_int_registers): NEW, internal registers are a new set
12365         of general purpose registers reused by each function,
12366         * (checkAddReg): returns 1 if registers is added to set,
12367         * (pic16_groupRegistersInSection): when a registers is of type
12368         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
12369         * src/pic16/device.h: memRange and Assigned Memory are deleted,
12370         SRCASECMP macro is moved here from device.c
12371         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
12372         PO_PCLATU, PO_PRODL, PO_PRODH,
12373         * (pic16_pCodeOpType, genMinus,
12374         changed compares to "a" register, with AOP_ACC,
12375         * (pic16_genPlus): fixed some bugs and indented properly,
12376         * (pic16_addSign): changed size to size+offset in the MOVWF
12377         instruction,
12378         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
12379         multiply 8-bit operand by literal, result is 8-bit,
12380         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
12381         multiply 2 8-bit operand, result is 8-bit,
12382         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
12383         genUMult8X*_16,
12384         * src/pic16/gen.c: changed accUse to contain WREG only,
12385         * (pic16_emitcomment): renamed to pic16_emitpcomment,
12386         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
12387         true, do not use immediate addressing any more unless sym is a
12388         pointer in codespace,
12389         * (aopForRemat): do not use immediate addressing when symbol not in
12390         codespace and when symbol's address is requested,
12391         * (aopOp): for-loop in if(sym->accUse) is modified for the new
12392         accUse size (= 1),
12393         * (aopGet): added case for AOP_ACC and don't return "accumulator
12394         bug" but WREG instead,
12395         * (popGetTempReg): pushes contents of temporary register in stack,
12396         * (popReleaseTempReg): pops contents of temporary register from
12397         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
12398         * (pic16_popGet): separated case AOP_ACC to return register WREG
12399         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
12400         or PO_IMMEDIATE and initializes their instance/offset appropriately,
12401         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
12402         the use of immediate pointers to certain cases only.
12403
12404         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
12405         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
12406         * (assignResultValue, genCall, genRet): modified to use the new
12407         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
12408         genPcall is still broken,
12409         * (genFunction): added code to create 'A' type pBlocks when
12410         interrupt functions are generated, code not extensively tested yet,
12411         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
12412         * (genEndFunction): modified so ISRs pop stored registers from stack,
12413         * (genMultOneByte): cleanup,
12414         * (AccRsh): added flag andmask, to and result with appropriate mask,
12415         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
12416         * (genDataPointerGet): fixed and reenabled its use,
12417         * (genNearDataPointerGet): bugs fixed,
12418         * (genDataPointerSet): bugs fixed,
12419         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
12420         pic16_DumpSymbol, pic16_DumpOp,
12421         * src/pic16/genutils.h: function prototypes for the above functions,
12422         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
12423         pointers,
12424         * (pic16emitRegularMap): many many many improvements, but needs a
12425         major cleanup,
12426         * src/pic16/main.c: enable_stack in pic16_options is removed,
12427         * (_pic16_parseOptions): removed command line options -penable-stack,
12428         * (_process_pragma): emit stack symbol only when stack pragma is
12429         processed,
12430         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
12431         redirected to FSR0L/FSR0H pair,
12432         * (pic16_get_op, pic16_get_op2): modifications and improvements,
12433         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
12434         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
12435         for immediates,
12436         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
12437         * (dumpPicOptype): NEW,
12438         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
12439         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
12440         with movff instruction,
12441         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
12442         added pic16_int_regs, some packRegsFor* functions are commented out,
12443         because produce errors,
12444         * src/pic16/NOTES: minor modifications
12445
12446 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12447
12448         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
12449         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
12450         --pack-iram.
12451         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
12452         * as/mcs51/lkaomf51.c: fixed bug #895763
12453
12454 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
12455
12456         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
12457
12458 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12459
12460         * doc/sdccman.lyx: added details about the HC08 storage classes and
12461         interrupts, fixed the register usage info for z80 & gbz80
12462
12463 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
12464
12465         * doc/sdccman.lyx: added more pic16 port documentation
12466         * device/include/pic16/: added header pic18fregs.h
12467
12468 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
12469
12470         * doc/sdccman.lyx: added Vangelis' contribution
12471
12472 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12473
12474         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
12475         extend to the next CALL or PCALL, not just to the next CALL.
12476
12477 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
12478
12479         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
12480
12481 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12482
12483         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
12484         bug #895752 and a better fix for bug #716790
12485
12486 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12487
12488         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
12489
12490 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12491
12492         * doc/sdccman.lyx: minor changes, minor changed
12493
12494 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
12495
12496         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
12497         which can't handle SDCC_NEWONEBYTEOPS,
12498         (geniCodeMultiply): removed conversion from mult to shift for pic14
12499         and pic16
12500
12501 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12502
12503         * src/hc08/gen.h,
12504         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
12505         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
12506         thus fixing bug #895406
12507
12508 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
12509
12510         * device/lib/_modsint.c,
12511         * device/lib/_modslong.c: sign follows divisor only
12512         * src/hc08/gen.c (genMultOneByte): if result size is 1,
12513         signs or signedness can be ignored
12514         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
12515         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
12516         added optimization for IFX,
12517         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
12518         arguments;
12519         reenabled optimization for IFX, which was removed on 2004-01-11
12520         * src/SDCCast.h: added return type IFX
12521         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
12522         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
12523         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
12524         SDCC_OLDONEBYTEOPS selects the old behaviour
12525         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
12526         changed again and commented promotion rule
12527         * src/SDCCval.c (valDiv): promotion no longer necessary
12528         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
12529         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
12530         rewritten
12531         * support/regression/tests/onebyte.c: added
12532
12533 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
12534
12535         * gen.c (genInline): reverted to old code for assemnling inline
12536         code because of bug reported James Chadd
12537
12538 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
12539
12540         * ralloc.h: missing declarations from previous patch,
12541         seems that patch for ralloc.h was never applied, fixed
12542
12543 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12544            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
12545
12546         * pcode.c,
12547         * pcode.h,
12548         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
12549         indirect addressing. Marked FSR0 as deprecated
12550         * gen.c (pointerCode): commented out, not needed now
12551         (pic16_popGet2p): new MOVFF helper function
12552         (genGenPointerGet),
12553         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
12554         (shiftRLong): removed duplicate debugging info
12555
12556 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12557
12558         * src/ds390/gen.c (genNearPointerGet),
12559         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
12560         optimization with bits, but not bitfields.
12561         * src/ds390/ralloc.c (packRegisters),
12562         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
12563
12564 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
12565
12566         * src/SDCCcse.c (algebraicOpts): copy operands before modification
12567
12568 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12569
12570         * src/SDCCsymt.h,
12571         * src/SDCCicode.c (operandFromSymbol),
12572         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
12573         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
12574         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
12575         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
12576         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
12577         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
12578         bug #892038
12579         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
12580         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
12581         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
12582         * src/SDCCsymt.c (newSymbol),
12583         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
12584         enumerator_list),
12585         * src/SDCCval.h,
12586         * src/SDCCval.c (newiList): fixed bug #885705
12587
12588 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12589
12590         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
12591         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
12592
12593 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12594
12595         * device/include/c8051f120.h,
12596         * device/include/c8051f300.h,
12597         * device/include/c8051f310.h: added/updated header files for Silicon
12598         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
12599         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
12600         in new section Submitting patches
12601
12602 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12603
12604         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
12605         genFarPointerGet, genCodePointerGet, genGenPointerGet,
12606         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
12607         genGenPointerSet),
12608         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
12609         genFarPointerGet, genCodePointerGet, genGenPointerGet,
12610         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
12611         genGenPointerSet),
12612         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
12613         genFarPointerGet, genCodePointerGet, genGenPointerGet,
12614         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
12615         genGenPointerSet),
12616         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
12617         genFarPointerGet, genCodePointerGet, genGenPointerGet,
12618         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
12619         genGenPointerSet): fixed bug #892400
12620         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
12621         to eliminate build warnings.
12622         * src/SDCCast.c (processParms),
12623         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
12624         fixed bug 751859
12625         * support/valdiag/valdiag.py: added GCC to the list of defines active
12626         when compiling with gcc
12627
12628 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12629
12630         * support/Util/SDCCerr.h,
12631         * support/Util/SDCCerr.c,
12632         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
12633         with an incomplete type (fixed bug #883734)
12634         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
12635
12636 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12637
12638         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
12639
12640 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12641
12642         * src/SDCCast.c (decorateType),
12643         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
12644         function pointer implementation
12645         * support/regression/tests/funptrs.c: added tests to verify both forms
12646         of function pointers work correctly. Added tests to verify parameters
12647         are passed in the correct order.
12648
12649 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
12650
12651         * device.c (regCompare): registers are sorted by ascending
12652         address and increasing size,
12653         * main.c (_pic16_finaliseOptions): removed the declaration
12654         of compiler macro MCU. Now a macro of the format pic18fxxxx
12655         will be defined from the command line
12656
12657 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12658             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
12659
12660         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
12661         PCOP_RLCF was overwritten!
12662         * gen.c (genSkip): commented out calls to pic16_emitcode,
12663         * (genCmpEQ): fixed "long" compares, only high word did get compared,
12664         * (genlshTwo),
12665         * (genRRC): added debugging info,
12666         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
12667         overwritten while shifting,
12668         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
12669         overwritten while shifting,
12670         * (AccLsh),
12671         * (AccRsh),
12672         * (shiftLLeftOrResult),
12673         * (shiftRLeftOrResult),
12674         * (shiftRLong),
12675         * (shiftLLong): Implemented with pic16_emitpcode
12676         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
12677         * (genLeftShift): Fixed bug, operand for shift by variable always
12678         was "and"ed with 0x0f,
12679         * (genLeftShiftLiteral),
12680         * (genrshTwo),
12681         * (genRightShiftLiteral): added debugging info,
12682         * (genrshFour): added comment,
12683         * (genRightShift): determined signedness from operand "left"
12684         instead of "result"
12685
12686 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12687
12688         * src/SDCCicode.c (geniCodeParms),
12689         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
12690         function pointers, fixed function pointer bugs #861242 and #861896
12691
12692 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12693
12694         * device/include/c8051f000.h,
12695         * device/include/c8051f120.h,
12696         * device/include/c8051f300.h: added header files for Silicon
12697         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
12698
12699 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
12700
12701         * src/SDCCast.c (processParams): added new type flow and restructured
12702         (gatherAutoInit): added new type flow
12703         (addCast): cosmetic changes
12704         (getLeftResultType): added new type flow for array indices, patch
12705         provided by Stas, see FR #877103
12706         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
12707         array index patch by Stas
12708         * src/SDCCast.h: added prototype getResultTypeFromType()
12709         * src/SDCCval.h,
12710         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
12711         * src/pic/glue.c (pic14emitStaticSeg),
12712         * src/pic16/glue.c (pic16emitStaticSeg),
12713         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
12714         for initialization of symbols
12715         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
12716         * support/Util/SDCCerr.h:
12717         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
12718         * .version: bumped version number to 2.3.8
12719         * device/include/Makefile.in (install),
12720         * doc/Makefile (install): changed to 'rm `find ...`' construct to
12721         avoid warnings
12722
12723 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
12724
12725         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
12726         Slade Rich fixed an optimization bug
12727         * src/pic/pcodepeep.c,
12728         * src/pic/pcoderegs.c
12729         * doc/Makefile (install): added test for directory
12730
12731 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12732
12733         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
12734         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
12735         * src/pic/ralloc.c (getRegPtr, getRegGpr),
12736         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
12737         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
12738         * as/mcs51/asexpr.c (term),
12739         * as/hc08/asexpr.c (term): fixed bug #887146
12740
12741 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12742
12743         * src/z80/gen.c (genMult): handle single byte result product
12744         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
12745         DUMMY_READ_VOLATILE (fixed bug #886367)
12746
12747 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
12748
12749         * support/regression/tests/libmullong.c: fixed logic, on little endian
12750         hosts we ended without a mullong_wrapper()
12751
12752 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12753
12754         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
12755         virus/worm forged address usage.
12756
12757 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
12758
12759         Fixed promotion, it should be done on AST level:
12760         * src/SDCCast.c (addCast): added promotion to int
12761         (decorateType): updated call to upCast()
12762         * src/SDCCicode.c (geniCodeLeftShift): removed call to
12763         usualUnaryConversions()
12764
12765 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
12766
12767         * support/regression/tests/literalop.c (mulWrapper): Added a
12768         wrapper to remove integer overflow warnings.
12769
12770         * support/regression/tests/float_trans.c: Made work on host.
12771
12772         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
12773         location of sz80.
12774
12775         * support/regression/generate-cases.py (main): Changed from inline
12776         to a main method.
12777
12778         * doc/Makefile (install): Changed to depth first to get rid of
12779         missing directory install warning.
12780
12781         * as/Makefile (install-doc): Made work on Mac.
12782
12783 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
12784
12785         * src/SDCCast.c: added an additional type flow in decorateType() of
12786         opposite direction, see feature request #860006; it's enabled at runtime
12787         by setting the environment variable SDCC_NEWTYPEFLOW
12788         * src/SDCCast.h: changed prototype of decorateType()
12789         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
12790         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
12791         'char' to 'int' can be omitted, if both operands are 'unsigned char';
12792         see feature request #877103
12793         * src/SDCCval.c: updated call of decorateType()
12794         (valBitwise): fixed bug #882876
12795         (valMinus): added promotion
12796         (valLogicAndOr): result is unsigned
12797         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
12798         * src/SDCCsymt.c (computeType),
12799         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
12800         must not cause an unsigned operation
12801         * src/pic/glue (pic14emitRegularMap),
12802         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
12803
12804 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
12805
12806         * src/pic/pcode.c (PCodeID): commented out left over debug code
12807
12808 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
12809
12810         * support/valdiag/tests/overflow.c: added shift tests
12811         * src/pic/device.c,
12812         * src/pic/gen.c,
12813         * src/pic/gen.h,
12814         * src/pic/glue.c,
12815         * src/pic/main.c,
12816         * src/pic/pcode.c,
12817         * src/pic/pcode.h,
12818         * src/pic/pcodepeep.c,
12819         * src/pic/pcoderegs.c,
12820         * src/pic/ralloc.c,
12821         * src/pic/ralloc.h: applied patch from Slade Rich;
12822         added support for multiple code pages and multiple RAM banks on the
12823         PIC 14 port. The ASM files now no longer simply assume all the
12824         code / RAM are in the same page / bank. This means the linker can
12825         safely allocate code/RAM of separate ASM files to different pages/banks.
12826         * doc/sdccman.lyx: added Slade's tips
12827         * src/mcs51/peeph.def: fixed bug #880768
12828
12829 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12830
12831         * src/hc08/ralloc.c (rematStr): fixed bug #879282
12832         * src/SDCCast.c (decorateType): fixed bug #880197
12833
12834 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
12835
12836         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
12837         getopt.h.
12838
12839         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
12840         strtof is not part of C89 and isn't included with Mac OS X.
12841
12842 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12843
12844         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
12845         shiftL2Left2Result): fixed bug #879326
12846         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
12847         (genMultOneByte): fixed bug in signed vs unsigned multiplication
12848         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
12849         address fetch for clr instruction
12850         * device/lib/hc08/_mulint.c: created optimized assembly version
12851         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
12852
12853 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
12854
12855         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
12856         proposed in FR #877103
12857
12858 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
12859
12860         * src/SDCCval.c (cheapestVal): added missing checks
12861         * src/SDCCicode.c (usualBinaryConversions): fixed condition
12862         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
12863
12864 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
12865
12866         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
12867         equal operands
12868
12869 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
12870
12871         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
12872         loaded with the linker search paths (-L arguments) and the libraries
12873         to be linked with the current source (-l arguments). Changes
12874         currently will affect only the pic16 port.
12875         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
12876         include path the port specific paths and port specific libraries,
12877         * gplink command now contains the $3 argument,
12878         * src/pic16/device.h,
12879         * src/pic16/device.c,: structure PIC_device is made public and
12880         renamed to PIC16_device, the same for variable Pics which is renamed
12881         to Pics16. Updated all references to them.
12882         * src/pic16/glue.c (pic16glue): corrected bug with code
12883         initialization which bypassed the variable initializations block.
12884
12885         * device/lib/pic16/Makefile.rules: removed --penable-stack from
12886         COMPILE_FLAGS and added the --nostdinc option
12887
12888 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12889
12890         * device/include/mc68hc908jb8.h: Register defs for another member
12891         of the hc08 family. Contributed by Bjorn Bringert - thanks!
12892
12893 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
12894
12895         Documenting changes from previous commits.
12896         * configure.in (version 1.56),
12897         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
12898         when generating output files to configure the pic16 library,
12899         but now I've commented it out, since gputils aren't installed in the
12900         SF compile farm, so library won't compile
12901
12902         * device/lib/Makefile.in (version 1.56): initially I've added in
12903         target 'all' the prerequestive 'model-pic16' so it compiled the
12904         pic16 library, but now I've commented it out for the same reasons
12905         above,
12906         * added targets 'model-pic16' and 'objects-pic16' to compile the
12907         library
12908         * added target 'port-specific-objects-pic16' to handle the
12909         generated libraries and copy them into the build/ directory
12910         * added target 'clean-intermediate-pic16' to clean intermediate
12911         files into pic16 directory
12912         * in target 'installdirs' added line to create directory pic16 in
12913         the installation path
12914
12915         * device/include/Makefile.in (version 1.11): in target 'install'
12916         added lines to copy all header files to installation path,
12917         * in target 'installdirs' added line create directory for pic16
12918         headers in the installation path
12919
12920 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
12921
12922         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
12923          a function call
12924
12925 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
12926
12927         * configure,
12928         * device/lib/configure.in,
12929         * device/lib/configure: fixed for autoconf 2.57
12930
12931 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12932
12933         * src/z80/main.c (_parseOptions): fixed the portmode= command line
12934         option so that it actually works. Made it specific to the z80, since
12935         the gbz80 doesn't have these kinds of I/O ports.
12936
12937 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12938
12939         * device/include/z180.h,
12940         * device/lib/_memcpy.c,
12941         * device/lib/_memmove.c,
12942         * device/lib/_mulint.c,
12943         * device/lib/ser_ir.c,
12944         * device/lib/ser_ir_cts_rts.c,
12945         * device/lib/_strcmp.c,
12946         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
12947         * src/z80/main.c (_process_pragma): add support for pragmas bank and
12948         portmode; added deprecation warning for bank= and protmode= forms.
12949         Also, guard against buffer overflow.
12950         * src/z80/gen.c (aopGet): generate better code for sfr banked read
12951
12952 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12953
12954         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
12955         changed interrupt vector table generation to only emit declared vectors.
12956         * device/include/Makefile.in: added missing backslash
12957         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
12958
12959 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
12960
12961         Mainly changes to support compilation of the device libraries
12962         * src/pic16/device.c: stack is allocated via symbol and not
12963         via literal number. The symbol is placed in the corresponding
12964         position of the data ram
12965         * (pic16_dump_section): relocatable and absolute uninitialized
12966         data are now emitted in sorted order to reduce section naming,
12967         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
12968         weren't marked as being in the access bank,
12969
12970 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
12971
12972         Added portion of GNU PIC Library under the directory
12973         device/include/pic16 and device/lib/pic16. These files
12974         contain the declarations of SFRs for the PIC18Fxx2 devices.
12975         The directory is initialized via configure from toplevel.
12976
12977 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
12978
12979         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
12980         the spilllocations to be compared correctly
12981
12982 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
12983
12984         * src/SDCCast.c (decorateType): fixed bug introduced today
12985
12986 2004-01-12  Borut Razem <borut.razem AT siol.net>
12987
12988         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
12989         doc/sdccman.lyx: upper case pragmas are deprecated
12990
12991 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
12992
12993         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
12994         in simpler and even better code
12995
12996 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
12997
12998         * src/SDCCicode.c (operandOperation): fixed bug #874819
12999         * src/SDCCast.c (decorateType): fixed
13000         char foo (unsigned long ul) { return ul > 0; }
13001
13002 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13003
13004         * doc/sdccman.lyx: Moved and added some sections, small changes
13005         all over. Telling LaTeX to be less strict with word spacing
13006         to better keep the right margin. Changed some notes about
13007         maintainance of the ports in section 3.2.1 - is it OK like this?
13008
13009 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
13010
13011         SDCC source changes:
13012         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
13013         convilong): modified to inform the pic16 port that builtin functions
13014         are external
13015
13016         PIC16 PORT specific changes:
13017         * src/pic16/device.c pic16_dump_equates() added,
13018         processor registers declared internally by the port are emitted in
13019         the translation as equates,
13020         * src/pic16/gen.c: inline code is passed unprocessed to the
13021         translation,
13022         * (pic16_popGetLit2): fnuction modified to take second operand as
13023         pCodeOp pointer and not as literal,
13024         * (popRegFromIdx): prefixed with pic16_,
13025         * (pic16_popCombine2): modified to receive already allocated pCode
13026         operands,
13027         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
13028         * (genFunction): initializes local stack frame and pushes on stack
13029         all the registers used by this function,
13030         * (genEndFunction): restores all registers from stack and restores
13031         stack frame,
13032         * src/pic16/glue.c (pic16emitRegularMap): various changes and
13033         improvements,
13034         * (pic16glue): changed the program startup sequence,
13035         * added new dbName code 'A' for functions placed in absolute section
13036         * src/pic16/main.c: added function attribute _naked,
13037         * added pragma 'code' to place a fnuction at an absolute address,
13038         * added command line arguments --debug-ralloc and --pcode-verbose,
13039         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
13040         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
13041         * (pic16_newpCodeOpLit2): modified to take the second operand as
13042         pCodeOp pointer,
13043         * (pic16_printpBlock): modified to emit each function in a separate
13044         section,
13045         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
13046         UPPER for immediate operands,
13047         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
13048         instruction,
13049         * src/pic16/peeph.def: all peepholes with movff are commented out,
13050         because there is a problem in the pcode peep optimizer,
13051         * src/pic16/ralloc.c: the register allocator can now reuse local
13052         function symbols for another function. This saves register usage.
13053         * src/pic16/ralloc.h: added flag isLocal in structure regs,
13054
13055         Added file src/pic16/NOTES with information about program writing on
13056         the current port version.
13057
13058 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13059
13060         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
13061         and peephole 252 (array access)
13062
13063 2004-01-09  Borut Razem <borut.razem AT siol.net>
13064
13065         * src/SDCCmain.c : fixed #872250: -l command line defined library
13066           files are scanned before standard library files
13067
13068 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13069
13070         * src/SDCCast.c (decorateType): fixed bug #874046
13071
13072 2004-01-09  Borut Razem <borut.razem AT siol.net>
13073
13074         * support/scripts/sdcc.nsi: remove previous installation
13075
13076 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13077
13078         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
13079         bytes for last interrupt vector (mcs51)
13080         * sdcc.spec: fixed typo
13081
13082 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13083
13084         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
13085         gen51Code): more efficient parameter receive for --model-large
13086         ("bug" #845294)
13087
13088 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13089
13090         * src/ds390/main.c,
13091         * src/z80/main.c: added missed needLinkerScript flags (more than
13092         one port structure defined in these file)
13093         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
13094         bug #795325
13095
13096 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
13097
13098         * src/SDCCmain.c: removed various references to DEFAULT_PORT
13099         * src/port.h: added flag needLinkerScript in port->linker
13100         structure to inform whether to create a .lnk file or not,
13101         * src/avr/main.c,
13102         * src/ds390/main.c,
13103         * src/hc08/main.c,
13104         * src/mcs51/main.c,
13105         * src/pic/main.c,
13106         * src/pic16/main.c,
13107         * src/xa51/main.c,
13108         * src/z80/main.c: changed appropriately to configure
13109         needLinkerScript flag
13110         * src/pic/gen.c,
13111         * src/pic16/gen.c (genAddrOf): fixed bug #863624
13112         * src/pic/glue.c: added variable udata_section_name to
13113         override default uninitialized data segment definition for
13114         devices only with SHAREBANK memory (reported from Erik Epetrich)
13115         * (pic14emitOverlay): modified to emit a commented overlay segment
13116         directive when no overlay data exist
13117         * (picglue): modified to emit uninitialized data segment
13118         according to udata_section_name
13119         * src/pic/main.c (_pic14_parseOptions): added command line
13120         options --udata-section-name=[name] to override default
13121         udata definition name
13122         * modified _linkCmd and _asmCmd to include compiler passed
13123         arguments via -W option
13124         * src/pic16/main.c: added $l in _asmCmd, changed extension for
13125         object file from '.rel' to '.o' in port->linker structure,
13126         changed size of fptr from 2 to 3 in port structure
13127
13128 2004-01-07  Borut Razem <borut.razem AT siol.net>
13129
13130         * support/scripts/sdcc.nsi: update PATH
13131         * support/scripts/sdcc.ico: craeted
13132
13133 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
13134
13135         * device/include/Makefile.in: fix install
13136         * doc/Makefile: fix install
13137
13138 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13139
13140         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
13141         in bug #860505
13142         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
13143         how the function variable allocation summary is displayed; also
13144         include information about variables allocated to the overlay
13145         segment
13146
13147 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13148
13149         * as/mcs51/lkmain.c: Help about -Y option
13150         * as/mcs51/lkarea.c: Fixed gcc warnings
13151
13152 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
13153
13154         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
13155         fixed warning
13156         * support/valdiag/tests/overflow.c: added
13157         * src/SDCCast.c (decorateType),
13158         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
13159         LEFT_OP (left shift)
13160
13161 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13162
13163         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
13164         (default behaviour).
13165
13166 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13167
13168         A python script to validate compiler diagnostic messages. It can be
13169         used to verify that sdcc complains about bad c source code and
13170         gives a good location of the error.
13171         * support/valdiag/Makefile,
13172         * support/valdiag/valdiag.py,
13173         * support/valdiag/tests/*
13174
13175 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13176
13177         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
13178         * src/SDCCsymt.c (newEnumType),
13179         * src/SDCCsymt.h
13180         * support/Util/SDCCerr.c,
13181         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
13182         enum related bugs.
13183         * support/regression/tests/enum.c: added test for enum values that
13184         require at least 2 bytes of storage.
13185
13186 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
13187
13188         * src/common.h: added ifndef/define/endif macros
13189         around the header file.
13190         Bug reported from Jesus Calvino-Fraga
13191
13192 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
13193
13194         * sdcc.spec: updated
13195         * device/include/Makefile.in: don't install CVS directories
13196         * device/lib/Makefile.in: added removal of CVS directories after install
13197         * doc/Makefile: fixed install, added local_icons
13198         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
13199         * src/mcs51/gen.c (genRightShift): fixed bug #870788
13200         * src/ds390/gen.c (genRightShift): fixed bug #870788
13201         * src/SDCCast.c (decorateType): fixed bug #870781
13202
13203 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
13204
13205         PIC16 port related changes:
13206         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
13207         added variable stackPos,
13208
13209         * gen.c: genCall, assignResultValue: added support for
13210         pushing/retrieving function parameters to/from stack,
13211         genFunction,genEndFunction: setup stack frame for the
13212         generated function,
13213         genAddrOf: will be changed according to bug 863624
13214
13215         * added files genutils.c and genutils.h which contain gen*
13216         debugged and optimised functions extracted from gen.c
13217
13218         * glue.c: added variable 'externs' which holds extern symbols,
13219         pic16emitRegularMap: is modified to properly handle relocatable
13220          symbols under the new scheme,
13221         pic16createInterruptVect: is modified
13222         pic16printPublics: is modified to emit 'global' assembler directives,
13223         added pic16_printExterns to print extern symbols,
13224         pic16glue: initializes stack/frame pointer in the beginning of
13225         the assembly output. Temporary hack, will be corrected later,
13226         because gplink yet does not support stack and SDCC does not
13227         yet support a type of crt0.o object to create the final binary.
13228
13229         * Removed many lines that contain 8051 legacy code.
13230         * The code is finally placed under a 'code' directive.
13231         * Added port specific options.
13232
13233         * _process_pragma: simplified since now we do not need *special*
13234         include file to define SFR registers. But a separate header
13235         will be needed. This will be developed later.
13236         * _pic16_parseOptions: added, parses port specific options:
13237         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
13238         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
13239         --preplace-udata-with=
13240
13241         * _pic16_setDefaultOptions: modified to initialize section names,
13242         but hack is temporarly out of order since it needs improvement.
13243         * _pic16_genAssemblerPreamble: configuration words are emitted by
13244         their address instead of their name. This part is incomplete and
13245         supports only the 18Fxx2 devices. Other devices will emit an error
13246         during assembly since they do not contain the same set of config
13247         registers
13248         * _pic16_genIVT: is modified,
13249
13250         * pcode.c: added definitions for some hardware registers that are needed
13251         for stack support
13252         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
13253         All PCI entries are updated. Now LFSR is supported.
13254         * Removed pic16_pciTRIS is mentioned by mdubuc in source
13255         * added pic16_newpCodeOpLit2 to support instructions with
13256         two literal arguments
13257         * pic16_pCode2str: corrected code that emits assembler instructions
13258         with two literal operands and those that have an access bit modifier
13259         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
13260         this fixes a bug which caused some labels to be lost, when an
13261         assembler directive was added, i.e. banksel,
13262         * pic16_FixRegisterBanking: improved logic that causes the insertion
13263         of bank switching,
13264         * InlineFunction: functions that are called once, are not any more
13265         inlined. This can be a port option in the future,
13266
13267         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
13268
13269         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
13270         hold the corresponding uninitialized symbols,
13271         * pic16_allocProcessorRegister: registers have explicit marked the
13272         accessBank field,
13273         * pic16_allocInternalRegister: registers are explicit marked as
13274         not used,
13275         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
13276         processing list, so bit registers were lost,
13277         *
13278
13279         * ralloc.h: added field 'accessBank' and original symbol operand
13280         in register definition,
13281         * removed the field isMapped from register definition,
13282
13283         ** Several functions have been removed from various sources:
13284         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
13285         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
13286         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
13287         pic16_assignRelocatableRegisters
13288
13289         ** others have been introduced:
13290         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
13291         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
13292
13293 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
13294
13295         * support/scripts/inc2h.pl: changed definition of BIT_AT
13296         to emit 'sbit at' instead of 'bit at'. This was a request.
13297
13298         PIC16 port related preliminary changes:
13299         * gen.c: prefixed function popRegFromString with
13300         pic16_ and all references to it corrected
13301         * pcode.c: all pic16_pc_* hardware registers prefixed
13302         with underscore (_),
13303         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
13304         * ralloc.c: newReg(): when register is REG_SFR then
13305         set address to rIdx,
13306         pic16_allocProcessorRegister(): marks register wasUsed=0
13307         pic16_writeUsedRegs(): added a call to assign processor
13308         registers via pic16_assignFixedRegisters
13309
13310 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13311
13312         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
13313         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
13314         variables in unused register banks.  Also the SSEG is placed
13315         wherever there is enough space for it, and IDATA can be anywhere
13316         in internal RAM.  For now compile using -Wl-Y[stack_size].
13317         The mem file is different for this option as well, since it
13318         makes no sense of talking about DSEG lenght.
13319
13320 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
13321
13322         * src/SDCClrange.c: fixed bug 869095 that caused segfault
13323         in certain cases, e.g. when ROM assignment, patch provided
13324         from Albert den Haan.
13325
13326 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
13327
13328         Many signedness and type propagation fixes:
13329         * src/SDCCicode.c: made geniCodeCast() static
13330         replaced SPEC_ by IS_ (cosmetic)
13331         (operandOperation): fixed div and mod operation
13332         (usualBinaryConversions): added support for promotion of char
13333         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
13334         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
13335         (geniCodeAdd): an array index will stay unsigned, even if promoted
13336         from char to int
13337         (geniCodeArray): ditto
13338         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
13339         * src/SDCCsymt.c (computeType): added more support for char;
13340         promotion of char is selectable by promoteCharToInt, fixed signedness
13341         for all cases
13342         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
13343         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
13344         * src/SDCCval (val*): replaced signedness calculation by
13345         computeType()
13346         rearranged if-branches (cosmetic)
13347         (valShift): added warning W_SHIFT_CHANGED
13348         (valCompare): fixed problem with different types
13349         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
13350         * support/regression/tests/literalop.c: added many cases
13351         * support/regression/tests/ast_constant_folding.c: changed finally to
13352         'unsigned int'
13353         * .version: new year, new version: 2.3.7
13354         * src/SDCCmain.c (main): applied patch #866468
13355         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
13356         provided by Scott Bronson
13357         * doc/sdccman.lyx: updated documentation for sdcdb
13358         updated and added chapter tips
13359
13360 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13361
13362         * src/SDCCsymt.h: missing from yesterday's commits
13363
13364 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13365
13366         * src/SDCC.y (struct_or_union_specifier),
13367         * support/Util/SDCCerr.c,
13368         * support/Util/SDCCerr.h: verify that struct & union tags are used
13369         as declared.
13370
13371 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13372
13373         * src/SDCCglobl.h: missing from yesterday's commits
13374
13375 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13376
13377         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
13378         sft_attributes, struct_declaration, parameter_declaration,
13379         type_name, start_block, declaration_list),
13380         * src/SDCC.lex (check_type): support redefinition of typedef names
13381
13382 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13383
13384         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
13385         aligned xdata arrays. Erik helped me with the if clause.
13386
13387 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13388
13389         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
13390         warning
13391
13392 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13393
13394         * src/SDCCast.h,
13395         * src/SDCCast.c (newAst_),
13396         * src/SDCCicode.h,
13397         * src/SDCCicode.c (ast2iCode, newiCode),
13398         * src/SDCCglobl.h,
13399         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
13400         expr, statement, expression_statement, selection_statement,
13401         iteration_statement, expr_opt, jump_statement): foundation for tracking
13402         sequence points
13403         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
13404         point code too)
13405
13406 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13407
13408         * support/Util/SDCCerr.c,
13409         * src/SDCCast.h,
13410         * src/SDCCast.c (createCase, createDefault, decorateType),
13411         * src/SDCClabel.c (labelUnreach),
13412         * src/SDCC.y (labeled_statement, jump_statement): More improvements
13413         to error messages.
13414         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
13415         (with thanks to Stas Sergeev)
13416         * device/include/time.h,
13417         * device/lib/time.c (CheckTime): suppress unreachable code warning
13418
13419 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13420
13421         * src/SDCCast.c (createIvalCharPtr),
13422         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
13423         bug #753752)
13424         * support/regression/tests/nullstring.c: tests for these two bugs
13425
13426 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13427
13428         * support/Util/SDCCerr.h,
13429         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
13430         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
13431         about storage class and 'at' used inside struct or union
13432         * src/SDCCBBlock.c (iCodeFromeBBlock),
13433         * src/SDCCcse.c (ifxOptimize),
13434         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
13435         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
13436         printIval, emitStaticSeg, emitOverlay),
13437         * src/SDCClabel.c (deleteIfx),
13438         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
13439         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
13440         gatherAutoInit, processParms),
13441         * support/Util/SDCCerr.h,
13442         * support/Util/SDCCerr.c (werrorfl): Support for better error location
13443         reporting for post-parse errors.
13444
13445 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13446
13447         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
13448         implicit casts via union; they don't work on big endian systems
13449         (possible fix for bug #861138)
13450
13451 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13452
13453         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
13454         * src/mcs51/main.c: fixed the fix for bug #737001
13455
13456 2003-12-15  Borut Razem <borut.razem AT siol.net>
13457
13458         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
13459
13460 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13461
13462         * support/makebin/makebin.c: put output in binary mode
13463
13464 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13465
13466         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
13467         xdata and data memory on startup. Set the environment variable
13468         SDCC_NOGENRAMCLEAR to disable this.
13469         * src/mcs51/peephole.def,
13470         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
13471         (allows non-interrupt and interrupt code to safely compete for a resource
13472         without the non-interrupt code having to disable interrupts)
13473
13474 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13475
13476         * src/SDCCicode.c (geniCodeAdd),
13477         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
13478         with valFromType if type might be a pointer and host is big endian).
13479         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
13480         types, not just integer types.
13481         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
13482         multiply defined with mismatching "at" address.
13483
13484 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13485
13486         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
13487         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
13488         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
13489         with embedded nulls (fixed bug #753752)
13490
13491 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13492
13493         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
13494         Apparently this did not see much testing (endless loop)
13495
13496 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13497
13498         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
13499
13500 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13501
13502         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
13503         gracefully handle NULL memmap pointers
13504
13505 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13506
13507         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
13508         instead of deleting the iCode when an operand is volatile
13509         * src/z80/gen.c (genDummyRead),
13510         * src/mcs51/gen.c (genDummyRead),
13511         * src/ds390/gen.c (genDummyRead),
13512         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
13513         not just IC_RIGHT
13514         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
13515         * src/SDCC.y: fixed bug #850420
13516
13517 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13518
13519         Applied z80 i/o port patch from Peter Townson and fixed some operators
13520         to better handle operands in A register.
13521         * device/include/z180.h
13522         * src/SDCC.y
13523         * src/SDCCglue.c
13524         * src/z80/gen.c
13525         * src/z80/gen.h
13526         * src/z80/main.c
13527         * src/z80/peeph-z80.def
13528         * src/z80/peeph.def
13529         * src/z80/z80.h
13530
13531 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13532
13533         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
13534
13535 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13536
13537         * device/lib/hc08/_mullong.c: Removed extra #endif
13538
13539 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13540
13541         * sim/ucsim/hc08.src/inst.cc,
13542         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
13543         carries from x to h
13544         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
13545         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
13546         * device/include/stdarg.h: fixed varargs for hc08
13547         * device/lib/Makefile.in,
13548         * device/lib/hc08/Makefile,
13549         * device/lib/hc08/_mulint.c,
13550         * device/lib/hc08/_mullong.c: fixed some endian problems
13551
13552 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13553
13554         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
13555         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
13556         * device/lib/_gptrget.c,
13557         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
13558
13559 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13560
13561         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
13562         * src/SDCCast.c (astErrors): fixed bug #846007
13563         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
13564
13565 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13566
13567         * src/SDCCast.c (decorateType): disabled a transformation I added in
13568         revision 1.188 (access to fields of a structure at an absolute address);
13569         it breaks with bitfields, extern declarations, and gcse analysis.
13570         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
13571         could be assigned through a pointer, so don't complain.
13572         * src/SDCCast.c (astErrors),
13573         * src/SDCCast.h,
13574         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
13575
13576 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
13577
13578         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
13579         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
13580         output of __config directives, since gpasm now supports them
13581         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
13582         pre-processor macro, i.e. -DMCU=p18f452
13583         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
13584         and modified to handle 'cast' icode similarly to '=' icode
13585         * src/pic16/device.h (typedef struct PIC_device): added field
13586         'extMIface' to indicate that chip has external memory interface
13587         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
13588         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
13589         18F8720
13590
13591 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13592
13593         * src/SDCC.y (pointer): fixed bug #846006
13594         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
13595         * src/SDCCast.c (decorateType): fixed bug #846009
13596         * src/ds390/peeph.def,
13597         * src/ds390/gen.c (genAnd, genOr),
13598         * src/mcs51/peeph.def,
13599         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
13600
13601 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13602
13603         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
13604         * src/SDCCdflow.c
13605         * src/SDCCcse.c
13606         * src/SDCCcse.h
13607         * src/SDCCBBlock.h
13608         * src/SDCCBBlock.c
13609
13610 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
13611
13612         fixed bug #845089
13613         * src/SDCCbitv.h,
13614         * src/SDCCbitv.c: added function to free a bitvector
13615         * src/SDCClrange.h,
13616         * src/SDCClrange.c: added function to recompute the liveranges
13617         * src/avr/ralloc.c,
13618         * src/ds390/ralloc.c,
13619         * src/hc08/ralloc.c,
13620         * src/mcs51/ralloc.c,
13621         * src/pic/ralloc.c,
13622         * src/pic16/ralloc.c,
13623         * src/xa51/ralloc.c,
13624         * src/z80/ralloc.c: recompute the liveranges after register packing
13625
13626 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
13627
13628         * src/SDCCloop.c (newInduction): fixed bug #845630
13629
13630 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13631
13632         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
13633         inadvertantly left behind from my 2003-11-12 change
13634
13635 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13636
13637         Updated headers I neglected to commit yesterday.
13638         * src/SDCClrange.h,
13639         * src/SDCCicode.h
13640
13641 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13642
13643         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
13644         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
13645         * src/SDCCopt.c (eBBlockFromiCode),
13646         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
13647         the creation of the key hash table from the sequencing so it can be used
13648         earlier (for some GCSE bug fixes still pending)
13649
13650 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13651
13652         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
13653         * support/regression/tests/addsub.c: testing genPlus shortcut
13654
13655 2003-11-15  Borut Razem <borut.razem AT siol.net>
13656
13657         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
13658
13659 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13660
13661         * src/SDCCcse.c (cseBBlock): fixed bug #527779
13662         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
13663         ordering is immaterial.
13664         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
13665
13666 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13667
13668         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
13669         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
13670         (SIGSEV) of bug #840381
13671         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
13672         unlink new file before rename if new and old filenames are the same)
13673
13674 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13675
13676         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
13677         uninitialized variables) for the mcs51. Set environment variable
13678         SDCC_GENRAMCLEAR to test.
13679         xdata initialization slightly shorter
13680
13681 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13682
13683         * src/SDCCsymt.h,
13684         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
13685         #838241 & 780691 (basicly the same bug)
13686         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
13687         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
13688
13689 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
13690
13691         * src/SDCCmain.c (linkEdit): "fix" #834252
13692
13693 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13694
13695         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
13696         * src/SDCCast.h,
13697         * src/SDCC.y: fixed bug #819403
13698
13699 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13700
13701         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
13702         the reentrant attribute.
13703         * src/hc08/gen.c (genPackBits): added missing stack readjustment
13704         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
13705         simulation
13706         * src/SDCCast.c (decorateType): fixed bug with storage class not being
13707         updated during pointer dereference; f.e. ~(((char *)1)*) was being
13708         erroneously reduced to a literal.
13709         * src/hc08/ralloc.c (packRegisters, rematStr),
13710         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
13711         some cases
13712
13713 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13714
13715         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
13716         * doc/sdccman.lyx: changed from 'article' to 'book'
13717         * doc/Makefile: readded test_suite_spec and cdbfileformat
13718
13719 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
13720
13721         * device/include/stdlib.h: include malloc.h to comply with ANSI
13722         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
13723
13724 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13725
13726         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
13727         * doc/clean.mk: also remove *.out files
13728         * doc/sdccman.lyx: some additions, larger top/bottom margins
13729
13730 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13731
13732         * src/SDCC.y: fixed bug #837365
13733         * support/regression/tests/bitopcse.c
13734         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
13735         a symbol (might be valop instead)
13736         * device/lib/Makefile.in: added errno.c to HC08SOURCES
13737         * device/lib/clean.mk: added hc08 to the cleaning list
13738
13739 2003-11-04  Borut Razem <borut.razem AT siol.net>
13740
13741         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
13742           made 2003-11-04
13743         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
13744           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
13745           malloc is declared in standard stdlib.h
13746
13747 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13748
13749         * device/lib/hc08/Makefile: need to clean .rel not .o files
13750         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
13751
13752 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13753
13754         * src/port.h,
13755         * src/hc08/main.c,
13756         * src/mcs51/main.c,
13757         * src/ds390/main.c,
13758         * src/z80/main.c,
13759         * src/avr/main.c,
13760         * src/pic/main.c,
13761         * src/pic16/main.c,
13762         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
13763         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
13764         tests (which uses the port's oclsExpense function)
13765         * src/SDCC.y,
13766         * src/SDCCast.c,
13767         * src/SDCCicode.c,
13768         * src/hc08/gen.c,
13769         * src/ds390/gen.c,
13770         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
13771
13772 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13773
13774         * src/SDCCcse.c (ifxOptimize),
13775         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
13776         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
13777         deleting the IFX iCode.
13778         * src/hc08/ralloc.c: reduced unneeded slocs
13779         * src/hc08/gen.c: fixed bug in asmopToBoolean
13780
13781 2003-11-04  Borut Razem <borut.razem AT siol.net>
13782
13783         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
13784           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
13785           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
13786           transferred to configure
13787
13788 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
13789
13790         Use headers defined in the C[++] standards:
13791         * sim/ucsim/gui.src/serio.src/fileio.cc
13792         * sim/ucsim/gui.src/serio.src/frontend.cc
13793         * sim/ucsim/gui.src/serio.src/main.cc
13794         * sim/ucsim/gui.src/serio.src/posix_signal.cc
13795         * support/Util/NewAlloc.c
13796         * as/hc08/lklibr.c
13797         * as/mcs51/lklibr.c
13798         * as/z80/aslist.c
13799         * as/z80/assym.c
13800
13801 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13802
13803         * Added MSVC projects for hc08 assembler and linker:
13804         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
13805         /as/hc08/link_hc08.dsp
13806
13807 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
13808
13809         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
13810
13811 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
13812
13813         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
13814
13815 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13816
13817         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
13818
13819 2003-10-31  Borut Razem <borut.razem AT siol.net>
13820
13821         * support/cpp2/cpplib.h,
13822           support/cpp2/cpplib.c,
13823           support/cpp2/cpplex.c,
13824           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
13825           to switch _asm block preprocessing on / off. Default is
13826           #pragma preproc_asm +
13827
13828 2003-10-31  Borut Razem <borut.razem AT siol.net>
13829
13830         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
13831           when outputting comment blocks (when executed with -C option) and
13832           _asm (SDCPP specific) blocks
13833
13834 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13835
13836         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
13837
13838 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
13839
13840         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
13841
13842 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
13843
13844         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
13845         * src/SDCCast.c (decorateType): fixed bug #832664
13846
13847 2003-10-31  Borut Razem <borut.razem AT siol.net>
13848
13849         * support/cpp2/cpplex.c: fixed for SDCPP:
13850           comments(when executed with -C option) and _asm blocks
13851           were included even if they where in skipped #if block.
13852           Applied solution from GCC cpp 3.3.2
13853
13854 2003-10-31  Borut Razem <borut.razem AT siol.net>
13855
13856         * src/SDCC.lex: sdcc now understands both formats:
13857           '# <line_number> <file_name>' and
13858           '#line <line_number> <file_name>'
13859         * support/cpp2/cppmain.c: sdcpp now generates the standard
13860           '# <line_number> <file_name>' instead of former
13861           '#line <line_number> <file_name>'
13862
13863 2003-10-30  Borut Razem <borut.razem AT siol.net>
13864
13865         * support/cpp2/cpphash.h,
13866         * support/cpp2/cpplib.h
13867         * support/cpp2/cpplex.c,
13868         * support/cpp2/cppmain.c,
13869         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
13870
13871 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13872
13873         Fixed a number of problems revealed by bug #827883.
13874         * src/SDCCloop.c (loopInvariants): Spill location of the
13875         result operand should be recomputed if extracted from
13876         a loop. Also, don't extract assignments of an iTemp
13877         from a literal.
13878         * src/SDCCast.c (isConformingBody): loop reversal should
13879         not occur if the control variable is involved with a
13880         relational operator.
13881
13882 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
13883
13884         * .version: bumped to 2.3.6 to reflect the big improvements
13885         made by Erik and Klaus. Thanks!
13886
13887 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
13888
13889         Replaced the livrange code.
13890         * src/SDCClrange.c: added new LR code
13891         * src/SDCCloop.c,
13892         * src/SDCCBBlock.h: removed remainig parts from old LR code
13893         * src/ds390/ralloc.c,
13894         * src/ds390/gen.c: minor fixes to make it work with new code
13895
13896 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13897
13898         * as/hc08/asm.h,
13899         * as/hc08/lkrloc.c,
13900         * src/hc08/gen.c,
13901         * src/hc08/ralloc.c: Fix various warnings related to the hc08
13902         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
13903         (tweaked fix for bug #818696)
13904
13905 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13906
13907         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
13908
13909 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13910
13911         * src/SDCCmain.c,
13912         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
13913         * src/mcs51/gen.c (gencjneshort),
13914         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
13915         more efficient (per Scott Bronson's suggestion)
13916
13917 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13918
13919         Extended the semantics of the critical keyword to include
13920         individual statements. See RFE #827755 and #799831
13921         * src/SDCC.y
13922         * src/SDCCicode.c
13923         * src/SDCCopt.c
13924         * src/SDCCast.c
13925         * support/Util/SDCCerr.c
13926         * support/Util/SDCCerr.h
13927         * src/mcs51/gen.c
13928         * src/ds390/gen.c
13929         * src/hc08/gen.c
13930
13931 2003-10-19  Borut Razem <borut.razem AT siol.net>
13932
13933         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
13934
13935 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13936
13937         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
13938         Fixed bug #818696
13939         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
13940         and predecrement operand is displayed
13941
13942 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
13943
13944         * src/SDCCval.c (valMinus): fixed bug #826041
13945
13946 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13947
13948         Some hc08 related updates that I missed earlier
13949         * sim/ucsim/stypes.h
13950         * support/regression/ports/hc08/spec.mk
13951
13952 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13953
13954         New target "hc08" for the Motorola 68hc08 family of micros
13955
13956         * configure
13957         * configure.in
13958         * Makefile
13959         * src/hc08/*
13960         * src/SDCCmain.c
13961         * src/port.h
13962         * sim/ucsim/hc08.src/*
13963         * sim/ucsim/configure.in
13964         * src/ucsim/configure
13965         * sim/ucsim/packages_in.mk
13966         * as/hc08/*
13967         * as/Makefile
13968         * device/include/mc68hc908qy.h
13969         * device/lib/hc08/*
13970         * device/lib/Makefile.in
13971         * support/regression/ports/hc08/*
13972         * support/regression/Makefile
13973
13974 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13975
13976         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
13977         regression test
13978         * src/ds390/gen.c (genCast): fixed bug #821957
13979
13980 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
13981
13982         * device/lib/logf.c: "fixed" overlay bug
13983         * support/regression/ports/host/spec.mk: added m library
13984         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
13985         * support/regression/tests/float_trans: added (for Eric)
13986
13987 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
13988
13989         * src/mcs51/gen.c (genCpl): fixed bug
13990         http://sf.net/mailarchive/message.php?msg_id=6263915
13991
13992 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
13993
13994         * src/SDCCast.c (decorateType): added extended constant folding
13995         * src/SDCCsymt.c (computeType): cleanup
13996         * src/SDCCval.c (valShift): minor optimization
13997         * support/regression/tests/ast_constant_folding.c: added
13998
13999 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14000
14001         * src/SDCCmain.c: removed some unintended changes
14002
14003 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14004
14005         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
14006         * src/z80/gen.c: fixed part of bug #817589
14007         * src/SDCCsymt.c (checkFunction): fixed bug #817895
14008
14009 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
14010
14011         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
14012         * src/SDCCcflow.c
14013         * src/SDCCcse.c
14014         * src/SDCCdflow.c
14015         * src/SDCClabel.c
14016         * src/SDCClrange.c
14017         * src/SDCCmem.c
14018         * src/SDCCopt.c
14019         * src/SDCCpeeph.c
14020         * src/SDCCset.c
14021         * src/avr/ralloc.c
14022         * src/ds390/ralloc.c
14023         * src/izt/ralloc.c
14024         * src/mcs51/ralloc.c
14025         * src/pic/ralloc.c
14026         * src/pic16/ralloc.c
14027         * src/xa51/ralloc.c
14028         * src/z80/ralloc.c
14029         * src/z80/gen.c: removed unused label "release:"
14030
14031 2003-10-06  Borut Razem <borut.razem AT siol.net>
14032
14033         * src/SDCC.lex: removed definition of unused variables
14034           save_optimize and save_options
14035
14036 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
14037
14038         * clean.mk: removed '=' in "-maxdepth=1"
14039         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
14040         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
14041
14042 2003-10-06  Borut Razem <borut.razem AT siol.net>
14043
14044         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
14045           my_unput() replaced by unput()
14046
14047 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
14048
14049         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
14050         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
14051         type-punned pointer will break strict-aliasing rules"
14052         Old LR behaviour is again default; Klaus' LR can be choosen by
14053         defining the environment variable LRKLAUS
14054         * src/SDCCBBlock.h
14055         * src/SDCCloop.c
14056         * src/SDCClrange.c
14057         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
14058         * clean.mk: fixed removal of files in bin/CVS/
14059         * device/lib/clean.mk: fixed removal of directories small and large
14060         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
14061         * src/SDCCicode.c,
14062         * src/SDCCval.c: removed superflous test for pedantic
14063
14064 2003-10-05  Borut Razem <borut.razem AT siol.net>
14065
14066         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
14067           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
14068           message "unmatched #pragma SAVE and #pragma RESTORE"
14069
14070 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14071
14072         * doc/sdccman.lyx: various additions and updates (interrupts, inline
14073           assembly, critical functions, atomic, nojtbound)
14074
14075 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
14076
14077         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
14078         * src/SDCCBBlock.h
14079         * src/SDCCloop.c
14080         * src/SDCCloop.h
14081         * src/SDCClrange.c
14082
14083 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14084
14085         * src/z80/gen.h,
14086         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
14087         * src/mcs51/gen.h
14088         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
14089         * src/ds390/gen.h
14090         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
14091         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
14092         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
14093
14094 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14095
14096         * src/z80/gen.c (genRet): fixed bug #524753
14097         * src/z80/gen.c (genCast): fixed internal error on cast from
14098         pointer to long
14099         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
14100         fix for bug #477835 to the z80
14101         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
14102         for tracking iCodes in the peephole optimizer for z80
14103
14104 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14105
14106         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
14107         the other part of bug #814548
14108         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
14109
14110 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
14111
14112         * src/SDCCcse.c: fixed part of bug #814548
14113
14114 2003-09-28  Borut Razem <borut.razem AT siol.net>
14115
14116         * src/asm.c: rewrite of printILine() to use temporary file instead
14117           a pipe
14118         * src/xa51/main.c: commented out declaration of int rewinds
14119
14120 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14121
14122         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
14123
14124 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14125
14126         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
14127         * src/asm.c (printILine): Fixed bug #811015
14128
14129 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14130
14131         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
14132         freeing.
14133
14134 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14135
14136         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
14137         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
14138         to correctly handle general case of AOP_PAIRPTR
14139         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
14140
14141 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14142
14143         * src/mcs51/ralloc.c (fillGaps),
14144         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
14145         register positioning bug)
14146
14147 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
14148
14149         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
14150
14151 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14152
14153         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
14154         genCodePointerGet, genGenPointerGet, genFarPointerSet,
14155         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
14156         (ralloc doesn't intentionally do this now, but perhaps later)
14157         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
14158         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
14159         register positioning bugs (Fixed bug #762602 and #795325)
14160         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
14161         (Fixed bug #808779)
14162         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
14163         lines that --i-code-in-asm generates
14164
14165 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14166
14167         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
14168         trying to fclose a FILE* that was already closed.
14169
14170 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14171
14172         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
14173         of const struct should be treated as if const themselves)
14174
14175 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
14176
14177         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
14178
14179 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14180
14181         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
14182         Unix (/n) and DOS (/r/n) line terminations.
14183
14184 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14185
14186         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
14187         bug #613775
14188
14189 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14190
14191         * src/mcs51/gen.c (genFunction, genEndFunction),
14192         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
14193         and restore of EA so that stack offsets to parameters are
14194         correct when using both critical and reentrant/stack-auto.
14195         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
14196         size (can be triggered in error if sloc is shared between
14197         different sized objects)
14198         * device/include/float.h: fixed macros to explicitly use
14199         unsigned long where needed
14200
14201 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
14202
14203         Feature req. 799831: added code to allow nesting of critical functions
14204         * src/mcs51/gen.c (genFunction, genEndFunction)
14205         * src/ds390/gen.c (genFunction, genEndFunction)
14206
14207 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14208
14209         * src/SDCCsymt.c (sclsFromPtr),
14210         * src/SDCCsymt.h,
14211         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
14212         support for standard C idiom of memory mapped variables; for
14213         example, *((xdata int*)0x1234) = 1 is now internally equivalent
14214         to xdata int at 0x1234 tempvar = 1.
14215         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
14216         provided by Akiya ISHIDA
14217
14218 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
14219
14220         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
14221         * src/SDCCval.c (constVal): added reduction from int to char
14222         * src/SDCCval.c (valMult, valDiv): fixed sign handling
14223         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
14224         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
14225         to ignore the sign
14226         * support/regression/tests/shifts.c: fixed
14227
14228 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14229
14230         * src/z80/gen.c (genXor): Fixed bug #805445
14231
14232 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14233
14234         Fixed bug #621531 (const & volatile confusion in the type chain).
14235         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
14236         refer to the const or volatile state of the pointer itself.
14237
14238         * src/SDCCast.c
14239         * src/SDCCglue.c
14240         * src/SDCCicode.c
14241         * src/SDCCsymt.c
14242         * src/SDCCval.c
14243         * src/SDCC.y
14244         * src/SDCCsymt.h
14245         * src/pic/gen.c
14246         * src/pic/ralloc.c
14247         * src/pic16/gen.c
14248         * src/pic16/ralloc.c
14249         * support/regression/tests/const.c
14250
14251 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14252
14253         When checking for duplicated modules, use absolute paths
14254         instead of relative paths.  Files changed:
14255
14256         * as/mcs51/lklib.c
14257         * link/z80/lklib.c
14258
14259 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14260
14261         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
14262
14263 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14264
14265         * device/include/string.h: added size_t typedef, changed
14266         prototypes to use size_t, eliminated separate reentrant and
14267         non-reentrant declarations, added _memmove declaration
14268         * device/lib/_memcpy.c: changed to use size_t instead of int,
14269         changed /4 to >>2 to avoid division library call
14270         * device/lib/_memcmp.c,
14271         * device/lib/_memset.c,
14272         * device/lib/_strncat.c,
14273         * device/lib/_strncpy.c,
14274         * device/lib/_strncmp.c: changed to use size_t instead of int
14275         * device/lib/_memmove.c: new file (fixed bug #772294)
14276         * device/lib/Makefile.in: added _memmove.c
14277         * device/lib/z80/asm_strings.s: fixed bug #772290
14278         * support/regression/tests/bitfields.c: attempt to fix host assertion
14279         failure on amd64-unknown-linux2.2
14280
14281 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14282
14283         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
14284         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
14285         * as/z80/asmain.c (main): fixed bug #801766
14286
14287 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
14288
14289         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
14290         compilers
14291
14292 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14293
14294         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
14295         reported in bug #800609
14296
14297 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
14298
14299         * Top header beautifications in src/pic16 directory:
14300           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
14301           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
14302           pcoderegs.h, ralloc.c, ralloc.h
14303         * main.c: added top header and GPL license notice
14304         * pcode.c: fixed the if-conditional warning
14305
14306 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
14307
14308         * device/lib/_mullong.c: replaced int by short for gcc
14309
14310 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14311
14312         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
14313         and JUMPTABLE iCodes properly now (worked by accident before)
14314         * src/mcs51/gen.c (leftRightUseAcc),
14315         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
14316         iCode properly now. Use getSize instead of nRegs since a & b
14317         aren't part of the nRegs tally.
14318
14319 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
14320
14321         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
14322         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
14323           before instructions that use the _STATUS register
14324
14325 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
14326
14327         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
14328         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
14329         fetching of the pointer
14330         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
14331         copied from genNearPointerSet()
14332         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
14333         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
14334         If they pop r0/r1 they must be called in the opposite order than aopOp().
14335         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
14336         (resp. --stack-auto), prepared for --xstack
14337
14338 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14339
14340         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
14341
14342 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
14343
14344         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
14345         these ports have their own __sdcc_external_start()
14346
14347 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
14348
14349         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
14350         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
14351         type for bits was changed. It resulted in bit variables becoming
14352         global, which is not permitted in PIC 14 assembly output.
14353
14354 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14355
14356         * doc/sdccman.lyx: various additions and updates. Rearranged sections
14357
14358 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14359
14360         Z80 and MCS51 linkers complaint if a public symbol is defined
14361         in more than one library module:
14362
14363         * as/mcs51/lklib.c
14364         * link/z80/lklib.c
14365         * as/mcs51/Makefile.in
14366
14367 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14368
14369         A few small changes that speed up the peephole optimizer.
14370
14371         * src/SDCCpeeph.c
14372
14373 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14374
14375         Try to make the peephole optimizer smarter by maintaining
14376         an association between the assembly source code and the
14377         iCodes that originated them. Put this information to use
14378         with a new peephole rule condition "notVolatile" so that
14379         the rules can be aggressive yet still safe.
14380
14381         * src/SDCCpeeph.c
14382         * src/SDCCpeeph.h
14383         * src/mcs51/gen.c
14384         * src/mcs51/peeph.def
14385
14386 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14387
14388         Fixed bug #741761
14389
14390         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
14391         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
14392         if the left or right operand symbols have the accuse flag set.
14393
14394 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14395
14396         Changed the type of the result of the ! (NOT) operator to char;
14397         previously it returned the same type as the source. This allows
14398         us to eliminate all the genFloatNot functions (all of its target
14399         implementations were very buggy) since !float can use the same
14400         code as !long now.
14401
14402         * src/SDCCicode.c (ast2iCode): ! returns char
14403         * src/mcs51/gen.c (genNot, genNotFloat),
14404         * src/ds390/gen.c (genNot, genNotFloat),
14405         * src/z80/gen.c (genNot, genNotFloat),
14406         * src/pic/gen.c (genNot, genNotFloat),
14407         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
14408
14409 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
14410
14411         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
14412         1. Interrupt would not compile properly. Ensure PCLATH register is saved
14413            during interrupts. Ensure WSAVE is located at a shared bank address.
14414         2. Fixed page selection in some places
14415         3. Fixed BTFSS/C to where necessary use registers directly and not simply
14416            the registers name strings.
14417         4. Fixed "signed / unsigned compare" compiler warnings.
14418         5. The PIC port manages its own allocation of the general purpose
14419            registers, but makes no attempt to reuse them. As a result when
14420            compiling it soon runs out of general purpose registers. Some
14421            additional code was added to the files pcode.c and device.c to walk
14422            through the function call tree and rename the registers so that they
14423            get reused.
14424
14425         * src/pic/device.c
14426         * src/pic/gen.c
14427         * src/pic/glue.c
14428         * src/pic/pcode.c
14429         * src/pic/pcode.h
14430         * src/pic/ralloc.c
14431         * src/pic/ralloc.h
14432         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
14433         genPlus() & genMinus() when the result is the same as left or right
14434
14435 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14436
14437         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
14438
14439 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14440
14441         Made bitfield a distinct type from bit so that bitfields
14442         convert as per ANSI C and bits retain their traditional
14443         boolean style behaviour. Implemented bitfield support in
14444         the z80 port.
14445
14446         * src/SDCCsymt.h,
14447         * src/SDCCsymt.c,
14448         * src/SDCCast.c,
14449         * src/cdbFile.c,
14450         * src/mcs51/gen.c,
14451         * src/ds390/gen.c: bit v bitfield split
14452         * src/z80/gen.c: New support for bitfields
14453         * support/regression/tests/bitfields.c: reenabled z80,
14454         added more tests
14455
14456 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14457
14458         Rules 246.x, 247.x relate to bitfields, the others speed up
14459         access to xdata mapped I/O devices.
14460
14461         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
14462
14463 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14464
14465         Cleaned up genPackBits and genUnpackBits and added two helper
14466         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
14467         for literal assignments in genPackBits (thanks to Frieder for
14468         reminding me).
14469
14470         * src/mcs51/gen.c
14471         * src/ds390/gen.c
14472
14473 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14474
14475         Fixed bug #748310 (pointer to function type mishandled when the
14476         function name is omitted). Also fixed a SIGSEGV when a function
14477         attribute (reentrant, etc) is used on a non-function or on a
14478         function but misplaced before the parameter list.
14479
14480         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
14481         bug #748310
14482         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
14483         * support/Util/SDCCerr.h,
14484         * support/Util/SDCCerr.c: Added func attr misuse error msg
14485
14486 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
14487
14488         Fixed bug #787649 by anonymous
14489         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
14490         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
14491
14492 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14493
14494         Fixed numerous bitfield problems.
14495
14496         * src/SDCC.y: More bitfield related error checking
14497         * src/SDCCsymt.h,
14498         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
14499         * support/Util/SDCCerr.h,
14500         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
14501         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
14502         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
14503         * support/regression/tests/bitfields.c: tests added
14504
14505 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14506
14507         Made the constant following the "interrupt" keyword optional. If
14508         omitted, the function will not automatically be given an entry
14509         in the interrupt vector table (similar to #pragma NOIV, but
14510         less syntacticly kludgy). The interrupt number is also now
14511         range checked. Also fixed a bug in the high order bit example
14512         in the manual.
14513
14514         * src/SDCC.y
14515         * src/SDCCmem.c
14516         * src/SDCCglue.c
14517         * src/SDCCsymt.h
14518         * support/Util/SDCCerr.c
14519         * support/Util/SDCCerr.h
14520         * doc/sdccman.lyx
14521
14522 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
14523
14524         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
14525         * src/SDCCicode.c (operandOperation): rewritten some ops
14526         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
14527         * src/SDCCsymt.c (computeType): literals are handled the same way as any
14528         other type
14529         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
14530         be re-activated by defining REDUCE_LITERALS)
14531         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
14532         unsigned, but are signed by default
14533         * src/SDCCval.c (constVal): rearranged
14534         * src/SDCCval.c (valMod): preliminary fix
14535         * src/SDCCval.c (valCastLiteral): use TYPE_* types
14536         * support/regression/literalop.c: added, work in progress
14537
14538 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14539
14540         Generate warnings for useless declarations like "char data;"
14541         that don't do what new users expect.
14542
14543         * src/SDCC.y
14544         * support/Util/SDCCerr.h
14545         * support/Util/SDCCerr.c
14546
14547 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
14548
14549         * src/SDCCval.c (valMult): fix overflow detection of negative int
14550
14551 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14552
14553         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
14554
14555         Changes to support big endian targets:
14556
14557         * src/ports.h
14558         * src/SDCCglue.c
14559         * src/avr/main.c
14560         * src/ds390/main.c
14561         * src/izt/i186.c
14562         * src/mcs51/main.c
14563         * src/pic/main.c
14564         * src/pic16/main.c
14565         * src/xa51/main.c
14566         * src/z80/main.c
14567
14568 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
14569
14570         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
14571         * device/lib/time.c: fixed warning "integer overflow in expression"
14572
14573 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
14574
14575         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
14576         * src/SDCCval.c (constVal): changed default to signed; hex and octal
14577         constants are unsigned; added recognition of "u" flag for unsigned
14578         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
14579         * src/SDCCval.c (valDiv, valMod): fixed signdness
14580         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
14581         signedness of modulo, left and right shift
14582         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
14583         * support/Util/SDCCerr.h: added warning W_INT_OVL
14584         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
14585         * src/SDCCast.c (ast_print): improved output of constants
14586
14587 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14588
14589         Fixed some warnings when building with MSVC:
14590
14591         * as/mcs51/asdata.c
14592         * as/z80/asdata.c
14593         * as/mcs51/asm.h
14594         * as/z80/asm.h
14595         * link/z80/aslink.h
14596         * link/z80/lkdata.c
14597         * link/z80/lkeval.c
14598         * link/z80/lkgb.c
14599         * link/z80/lkihx.c
14600         * link/z80/lks19.c
14601         * link/z80/lksym.c
14602         * support/cpp2/cpplib.c
14603         * src/ds390/gen.c
14604         * src/mcs51/gen.c
14605
14606 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
14607
14608         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
14609
14610 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14611
14612         * support/librarian/clean.mk: Do not remove Makefile.
14613         * support/librarian/Makefile: added.
14614
14615 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14616
14617         Added librarian to MSVC build:
14618         * all.dsp
14619         * sdcc.dsw
14620         * support/librarian/librarian.dsp
14621
14622         'configure' not needed for librarian, removed:
14623         * support/librarian/configure
14624         * support/librarian/configure.in
14625         * support/librarian/config_in.h
14626         * support/librarian/Makefile.in
14627
14628         Hopefully these ones built the librarian and the rest of sdcc properly:
14629         * Makefile
14630         * Makefile.common.in
14631
14632         Messed up 'configure', so revert to previous version:
14633         * configure
14634         * configure.in
14635
14636 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
14637
14638         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
14639         there, while the mantissa of a double is "only" 53 bits wide.
14640
14641 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14642
14643         Adding sdcclib to the build.  MSVC project coming soon.
14644         Files added/changed:
14645
14646         * support/librarian/clean.mk
14647         * support/librarian/configure
14648         * support/librarian/configure.in
14649         * support/librarian/config_in.h
14650         * support/librarian/Makefile.bcc
14651         * support/librarian/Makefile.in
14652         * support/librarian/sdcclib.c
14653         * Makefile.bcc
14654         * Makefile
14655         * Makefile.common.in
14656         * configure
14657         * configure.in
14658
14659 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14660
14661         Linker now complaints if linked modules have conflicting options, for
14662         example, one compiled using --model-large and another one compiled with
14663         --model-small.  The following files were modified:
14664
14665         * as/mcs51/asdata.c
14666         * as/mcs51/aslink.h
14667         * as/mcs51/asm.h
14668         * as/mcs51/asmain.c
14669         * as/mcs51/asout.c
14670         * as/mcs51/i51pst.c
14671         * as/mcs51/lkdata.c
14672         * as/mcs51/lklibr.c
14673         * as/mcs51/lkmain.c
14674         * as/z80/asdata.c
14675         * as/z80/asm.h
14676         * as/z80/asmain.c
14677         * as/z80/asout.c
14678         * as/z80/z80pst.c
14679         * link/z80/aslink.h
14680         * link/z80/lkdata.c
14681         * link/z80/lklibr.c
14682         * link/z80/lkmain.c
14683         * src/SDCCglue.c
14684
14685 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14686
14687         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
14688         as/mcs51/lklibr.c: Generate a warning when a library is not found.
14689
14690 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
14691
14692         * src/z80/mappings.i: fix _mul[us][int,long] entries
14693
14694 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14695
14696         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
14697
14698 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
14699
14700         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
14701         * support/regression/tests/bitopcse.c: added
14702         fixed warning:
14703         * src/avr/gen.c:
14704         * src/pic/gen.c:
14705         * src/pic16/gen.c:
14706         * src/z80/gen.c:
14707         * src/xa51/gen.c:
14708
14709 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14710
14711         added support for new library format to z80, gbz80 linkers:
14712         *link/z80/aslink.h
14713         *link/z80/lklex.c
14714         *link/z80/lklib.c
14715         *link/z80/lklist.c
14716
14717 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
14718
14719         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
14720         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
14721
14722 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
14723
14724         added DUMMY_READ_VOLATILE:
14725         * src/SDCC.y:
14726         * src/avr/gen.c:
14727         * src/xa51/gen.c:
14728         * src/z80/gen.c:
14729         * src/pic/gen.c:
14730         * src/pic16/gen.c:
14731         * src/mcs51/gen.c:
14732         * src/ds390/gen.c:
14733         * src/SDCCcse.c (algebraicOpts): many improvements
14734         * src/SDCCcse.h: removed algebraicOpts()
14735         * src/SDCCicode.c (picDummyRead): added
14736
14737 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14738
14739         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
14740         "Insufficient space in data memory".
14741
14742 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14743
14744         * src/mcs51/gen.c: fixed bug #771358
14745         * src/z80/gen.c: fixed bug #759087
14746
14747 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
14748
14749         * src/pic16/glue.c: minor cleanup by Vangelis
14750
14751 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14752
14753         * device/include/regc515c.h: fixed #758477
14754         * device/lib/_gptrget.c: saving some cycles in generic pointer get
14755         * device/lib/_gptrput.c: saved a few bytes
14756         * my tab spacing is 8, yours too?)
14757         * device/lib/_ser.c: process RX bytes earlier than TX bytes
14758         * device/lib/serial.c: process RX bytes earlier than TX bytes
14759         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
14760
14761 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14762
14763         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
14764
14765 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14766
14767         * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
14768
14769 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
14770
14771         * device/lib/Makefile.in: bad fix, reverted to 1.43
14772
14773 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
14774
14775         * device/lib/Makefile.in: added missing z80 object files
14776
14777 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
14778
14779         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
14780         pic16 progress by Vangelis:
14781         * src/SDCCglobl.h:
14782         * src/SDCCmain.c:
14783         * src/pic/Makefile:
14784         * src/pic:
14785         * pic/Makefile:
14786         * pic16/device.c:
14787         * pic16/device.h:
14788         * pic16/gen.c:
14789         * pic16/gen.h:
14790         * pic16/genarith.c:
14791         * pic16/glue.c:
14792         * pic16/main.c:
14793         * pic16/pcode.c:
14794         * pic16/pcode.h:
14795         * pic16/pcodepeep.c:
14796         * pic16/peeph.def:
14797
14798 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14799
14800         * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
14801
14802 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14803
14804         * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
14805         added gbz80 build to MSVC project.
14806         * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
14807         link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
14808         from 8051 stuff and setup so it links using a .lnk file.
14809
14810 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14811
14812         * support/librarian/sdcclib.c: sdcc librarian.
14813         * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
14814         with sdcclib.
14815
14816 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14817
14818         * as/mcs51/lkmain.c: properly handle extensions in function afile.
14819
14820 2003-07-02  Borut Razem <borut.razem AT siol.net>
14821
14822         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
14823         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
14824         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
14825         src/xa51/main.c, src/z80/main.c:
14826         virtualization of glue() function: each port has it's own glue function,
14827         which is accessed by do_glue function pointer in PORT.general structure
14828
14829 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
14830
14831         * DS800C400 fun, improved ROM interface and tinibios.
14832
14833 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
14834
14835         * More support for DS80C400. Now includes beginning of interface to ROM.
14836
14837 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
14838
14839         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
14840
14841 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14842
14843         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
14844
14845 2003-06-19  Borut Razem <borut.razem AT siol.net>
14846
14847         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
14848
14849 2003-06-19  Borut Razem <borut.razem AT siol.net>
14850
14851         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
14852         fixed Z80 port - crt0.o: cannot open.
14853
14854 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
14855
14856         * support/Util/MySystem.c (merge_command): revert bad fix
14857
14858 2003-06-18  Borut Razem <borut.razem AT siol.net>
14859
14860         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
14861
14862 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14863
14864         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
14865         option --use-stdout sends errors to stdout instead of stderr.
14866
14867 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
14868
14869         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
14870
14871 2003-06-15  Borut Razem <borut.razem AT siol.net>
14872
14873         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
14874         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
14875         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
14876         fixed width array of pointers replaced with sets;
14877         multiple include and lib paths ared transferred to preprocessor and linker
14878         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
14879         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
14880         fixed width array of pointers
14881         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
14882         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
14883         fixupPath(), getPathDifference()
14884         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
14885         fixed width array of pointers
14886
14887 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
14888
14889         * src/pic16/ralloc.c: fix warnings
14890         * src/pic16/pcode.c: fix warning
14891
14892 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
14893
14894          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
14895         know all the details, but essentially this set of changes enable
14896         the pic16 port to generate movff instructions and generate assembler
14897         directives,
14898         * src/SDCCmain.c:
14899         * src/pic16/gen.c:
14900         * src/pic16/glue.c:
14901         * src/pic16/pcode.c:
14902         * src/pic16/device.c:
14903         * src/pic16/main.c:
14904         * src/pic16/pcode.h:
14905         * src/pic16/pcoderegs.c:
14906         * src/pic16/ralloc.c:
14907         * src/pic16/ralloc.h:
14908
14909 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14910
14911         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
14912         added option --vc, so sdcc errors and warnings are compatible with
14913         Microsoft Visual Studio.
14914
14915 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14916
14917         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
14918           device/lib/libfloat.lib: added atof function.
14919
14920 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
14921
14922         * doc/sdccman.lyx: updated to Lyx 1.3
14923         * doc/cdbfileformat.lyx: updated to Lyx 1.3
14924         * doc/test_suite_spec.lyx: updated to Lyx 1.3
14925         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
14926
14927 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
14928
14929         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
14930
14931 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14932
14933         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
14934           additions to the "related tools/documentation" section
14935
14936 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
14937
14938         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
14939
14940 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
14941
14942         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
14943         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
14944
14945 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
14946
14947         * doc/sdccman.lyx: fix double dash and other minor things
14948         * doc/Makefile: fix double dash
14949
14950 2003-05-28  Karl Bongers(patches from Martin Helmling)
14951         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
14952           condition and ignore commands.
14953
14954 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14955
14956         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
14957           is in parts still quite out of date, I did changes as far as I felt makes sense
14958           for a non-native english speaker.
14959           Please feel free to add to the manual or to correct my changes.
14960         * doc/Makefile: undid touching the date of intermediate tex files.
14961
14962 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14963
14964         * doc/sdccman.lyx: Manual has an index now
14965
14966 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
14967
14968         Finalize muluint/mulsint and mululong/mulslong merging:
14969         * device/lib/_mulint.c
14970         * device/lib/_mullong.c
14971         * device/lib/gbz80/mul.s
14972         * device/lib/gbz80/stubs.s
14973         * device/lib/z80/mul.s
14974         * device/lib/z80/stubs.s
14975         * src/SDCCsymt.c (initCSupport)
14976
14977 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14978
14979         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
14980         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
14981           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
14982           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
14983           instead of /Zm500.
14984
14985 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14986
14987         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
14988           the regression tests I'm not brave enough to enable 245.b, 245.c
14989         * doc/sdccman.lyx: added latex preamble for hyperref package.
14990           Using pdflatex this will give you a hyperlinked pdf file with
14991           bookmarks. (prepend '%' before /usepackage if this breaks something)
14992
14993 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14994
14995          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
14996
14997 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
14998
14999         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
15000
15001 2003-05-21    <johan AT balder>
15002
15003         * src/SDCCglue.c (printIval): fixed bug #739934
15004
15005 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
15006
15007         Applied patch from bug 737905 (renamed yylineo to mylineno):
15008         * src/altlex.c
15009         * src/SDCCast.c
15010         * src/SDCglobl.h
15011         * src/SDCC.lex
15012         * src/SDCCsymt.c
15013         * src/SDCCval.c
15014         * src/pic16/pcode.c: Cleaned warnings
15015         * src/pic16/pcodeflow.c: Cleaned warnings
15016         * src/pic16/pcoderegs.c: Cleaned warnings
15017
15018 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
15019
15020         * src/pic16/pcode.c: Cleaned warnings
15021         * src/pic16/pcodepeep.c: Cleaned warnings
15022         * src/pic16/ralloc.c: Cleaned warnings
15023
15024 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
15025
15026         * doc/sdccman.lyx: fixed bug 739745
15027         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
15028
15029 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
15030
15031         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
15032         it can be defined with CFLAGS when running configure
15033         * src/SDCCmain.c: fixed compiling + linking with object files
15034
15035 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
15036
15037         * configure.in: configure for pic16 port,
15038             added --disable-pic16-port
15039         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
15040         * src/SDCCmain.c: linkOptions is changed to set *,
15041             added if/endif conditional macros to remove options help
15042             messages from optionsTable when a port is not configured, added
15043             support for the PIc16 port in the ports table, when executing
15044             the compiler with no port specified on command line, a default
15045             port is selected with the new macro DEFAULT_PORT which is
15046             defined in port.h, in setDefaultOptions() linkOptions is removed
15047             from initialization assignment, since now it is a set,
15048             parseCmdLine uses setParseWithComma for linkOptions, in
15049             linkEdit() linkOptions are accessed with new function indexSet()
15050             which returns the i'th item of a set variable. See SDCCset.c, in
15051             linkEdit() when calling buildCmdLine(), added linkOptions as
15052             last argument. Now users can pass arguments to gplink via the
15053             -Wl option, main() uses pic16glue() to glue up pic16 programs
15054         * src/SDCCpeeph.c: various changes to support pic16
15055         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
15056             return the i'th item of the set
15057         * src/SDCCset.h: added function prototype for indexSet()
15058         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
15059         * src/clean.mk: added pic16 in CLEANALLPORTS variable
15060         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
15061             added macro DEFAULT_PORT
15062         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
15063         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
15064             generated
15065         * src/pic16/glue.c: commented out some error producing lines
15066         * src/pic16/main.c: __config directives are commented out to stop
15067             gpasm complaining and test the linkage with gplink, _linkCmd and
15068             _asmCmd changed to be more gplink and gpasm friendly
15069         * src/pic16/peeph.def: peep rule 3 is commented out, since it
15070             produced an error when parsed, peep rule 12 is added to utilize
15071             movff, but it is commented out since the pCode does not support
15072             yet a command with 2 address arguments
15073
15074 2003-05-18    <johan AT balder>
15075
15076         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
15077         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
15078 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
15079
15080         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
15081         Added feature to script commands from file.
15082
15083 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
15084
15085         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
15086         * src/SDCCutil.c: include ctype.h for win32
15087
15088 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
15089
15090         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
15091
15092 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
15093
15094         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
15095         Fixed so you can set breakpoints prior to run, run does not stop
15096         on entry now.  Add tbreak.  Other enhancements and fixes for use
15097         with ddd.
15098
15099 2003-05-12  Borut Razem <borut.razem AT siol.net>
15100
15101         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
15102
15103 2003-05-11  Borut Razem <borut.razem AT siol.net>
15104
15105         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
15106         the path of bin directory, so that PATH is the only env. variable, which has to be set
15107         in case of standard installation.
15108         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
15109         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
15110         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
15111
15112 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
15113
15114         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
15115         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
15116         temp files are in the port dir; clean the gen/test directory when
15117         generating new test.c
15118         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
15119         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
15120         * support/regression/tests/zeropad.c: added
15121
15122 2003-05-09    <johan AT balder>
15123
15124         * src/SDCCglue.c: fixed bug #597940
15125
15126 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
15127
15128         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
15129         cache sfr, optimize next,step, fix off by one sourceline,
15130         support ddd list function.
15131         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
15132
15133 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
15134
15135         * support/regression/HTMLgen.py: added compare_s2f()
15136         * support/regression/Makefile: redo 1.27
15137         * support/regression/generate-cases.py: redo 1.5
15138
15139 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
15140
15141         * support/regression/tests/float.c: workaround 33 bit hex constant
15142         * support/regression/tests/simplefloat.c: fix division for host
15143
15144 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
15145
15146         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
15147         that tame's the PIC's over-aggressive optimizer.
15148
15149 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15150
15151          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
15152          support for MSVC.
15153
15154 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
15155
15156         Initial support for DS80C400. "Hello world" runs on TINIm400
15157         (with polled I/O).
15158
15159 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
15160
15161          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
15162          * Some notes on ddd usage added in debugger/README
15163          Martin Helmling adding more features and fixes for ddd GUI debugger.
15164          Code added for nexti, stepi, up, down, and other adjustments.
15165
15166 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
15167
15168         * src/pic/pCodepeep.c non-wildcard asmops are now handled
15169         * src/pic/peeph.def Added two rules to optimize carry manipulation
15170         * src/pic/* removed debug printfs
15171
15172 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
15173
15174         * debugger/mcs51/cmd.c: added header newalloc.h
15175
15176 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
15177
15178         * as/Makefile: new EXEEXT
15179         * as/z80/Makefile: remove trailing slash of BUILDIR
15180         * as/z80/clean.mk: new EXEEXT
15181         * Makefile.common.in: add to CFLAGS (and others), don't replace it
15182         * support/cpp2/Makefile.in: new EXEEXT
15183         * src/pic/glue.c (pic14emitRegularMap): fixed warning
15184
15185 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
15186
15187         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
15188         EXEEXT was introduced to fix all related problems with targets
15189         "clean", "install" and "uninstall"; a couple of further flaws
15190         especially with "clean" have been fixed too
15191         * as/mcs51/Makefile.in
15192         * as/mcs51/clean.mk
15193         * as/z80/Makefile
15194         * Makefile
15195         * clean.mk
15196         * debugger/mcs51/Makefile.in
15197         * debugger/mcs51/clean.mk
15198         * link/z80/Makefile
15199         * link/z80/Makefile.in
15200         * link/z80/clean.mk
15201         * link/Makefile
15202         * packihx/Makefile.in
15203         * packihx/clean.mk
15204         * sim/ucsim/Makefile
15205         * sim/ucsim/clean.mk
15206         * sim/ucsim/avr.src/Makefile.in
15207         * sim/ucsim/avr.src/clean.mk
15208         * sim/ucsim/s51.src/Makefile.in
15209         * sim/ucsim/s51.src/clean.mk
15210         * sim/ucsim/xa.src/Makefile.in
15211         * sim/ucsim/xa.src/clean.mk
15212         * sim/ucsim/z80.src/Makefile.in
15213         * sim/ucsim/z80.src/clean.mk
15214         * sim/ucsim/main_in.mk
15215         * sim/ucsim/packages_in.mk
15216         * sim/ucsim/gui.src/Makefile.in
15217         * sim/ucsim/gui.src/serio.src/Makefile.in
15218         * sim/ucsim/gui.src/serio.src/clean.mk
15219         * src/Makefile.in
15220         * src/clean.mk
15221         * support/cpp2/Makefile.in
15222         * support/cpp2/clean.mk
15223         * support/makebin/Makefile
15224         * support/makebin/clean.mk
15225         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
15226         * doc/sdccman.lyx: --program-suffix no longer needed
15227
15228 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
15229
15230          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
15231          Martin Helmling added support for ddd GUI debugger.
15232          Code added to display assembly, set variables, and other commands
15233          to interface to ddd.
15234
15235 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
15236
15237         * as/Makefile: fix target clean
15238         * as/clean.mk: fix target clean
15239         * as/z80/clean.mk: fix target clean
15240
15241 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
15242
15243         * Makefile.common.in: added  AT EXEEXT AT
15244         * configure.in: removed all mingw32 stuff
15245         * configure: rebuilt from configure.in
15246         * doc/sdccman.lyx: updated section "installation"
15247         * support/scripts/sdcc_mingw32: adapted to configure
15248         * support/scripts/sdcc_cygwin_mingw32: added
15249
15250 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
15251
15252         * src/pic Added object file support for the PIC port
15253         * src/pic Applied patch from Craig Franklin (this started the object file support)
15254         * src/regression Updated the PIC regression tests for object files
15255
15256 2003-04-20  Borut Razem <borut.razem AT siol.net>
15257
15258         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
15259           lklex.c: In function `getfid':
15260           lklex.c:203: warning: array subscript has type `char'
15261         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
15262           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
15263         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
15264           stack handling macros
15265
15266 2003-04-19  Borut Razem <borut.razem AT siol.net>
15267
15268         * "handling space characters in file path" task:
15269         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
15270         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
15271         * support/Util/MySystem.h: make it self-sufficient
15272         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
15273           src/z80/main.c, sdcc/as/mcs51/lklex.c:
15274           handling space characters in file path
15275         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
15276           (it will be used by assemblers, which have their own includes, e.g. gpasm)
15277         * support/Util/MySystem.c: handling space characters in executable's path
15278
15279 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
15280
15281         * as/z80/Makefile: fix permanent rebuild of z80
15282         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
15283         * support/regression/tests/bitfields.c: added Johan's bitfields.c
15284
15285 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
15286
15287         * src/SDCCopt.c: add special case optimization to replace modulo by
15288           a power of two with a bitwise AND.
15289
15290 2003-04-18    <johan AT balder>
15291
15292         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
15293
15294 2003-04-17    <johan AT balder>
15295
15296         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
15297         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
15298
15299 2003-04-13  Borut Razem <borut.razem AT siol.net>
15300
15301         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
15302         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
15303           fixed mingw problem in adl_NORMALIZE_PATH
15304
15305 2003-04-12  Borut Razem <borut.razem AT siol.net>
15306
15307         * fixed "#pragma SAVE/RESTORE can not be nested":
15308         * src/SDCC.lex: reworked pragma handling functions
15309         * sdcc/src/SDCCglobl.h: reworked stack handling macros
15310         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
15311
15312 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
15313
15314         * src/SDCCutil.c (pathEquivalent): defined but not used
15315         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
15316         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
15317         * configure: rebuilt from configure.in
15318         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
15319         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
15320         * device/include/Makefile.in: replace sdcc_datadir
15321         * device/lib/Makefile.in: replace sdcc_datadir
15322         * Makefile.common.in: add LDFLAGS from configure
15323         * packihx/Makefile.in: use LDFLAGS
15324         * src/Makefile.in: use LDFLAGS
15325         * support/cpp2/Makefile.in: add LDFLAGS from configure
15326         * support/makebin/Makefile: use LDFLAGS
15327         * .version: bumped version number to 2.3.5
15328
15329 2003-04-12  Borut Razem <borut.razem AT siol.net>
15330
15331         * completed "different paths" task:
15332         * src/SDCCmacro.c: fixed bug in handling quotes
15333         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
15334         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
15335
15336 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
15337
15338         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
15339
15340 2003-04-11 kevin Vigor <kevin AT vigor.nu>
15341
15342         * ds390/gen.c ds390/peeph.def: fix bug 706781
15343
15344 2003-04-11  Borut Razem <borut.razem AT siol.net>
15345
15346         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
15347
15348 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
15349
15350         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
15351         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
15352          set - this bit used to not be set...).
15353         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
15354           bad code in PIC Port
15355         * src/regression/and2.c added to test bug 609268
15356         * src/regression/Makefile added and2.c to regression test
15357
15358
15359 2003-04-08    <johan AT CP255758-A>
15360
15361         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
15362         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
15363         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
15364
15365 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
15366
15367         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
15368         fix bug #487815
15369         * support/cpp2/Makefile.in: fix bug #487815
15370         * configure: rebuilt from configure.in
15371         * Makefile.common.in: docdir changed, new path suffixes
15372         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
15373         * sdcc_vc_in.h: reflect changes from sdccconf.h
15374         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
15375         * src/SDCCutil.h: remove BINDIR hack
15376         * doc/sdccman.lyx: update new path hierarchy
15377
15378 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
15379
15380         * src/SDCCpeeph.c: added okToRemoveSLOC test
15381
15382 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
15383
15384         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
15385
15386 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
15387
15388         * src/SDCCpeeph.c: added labelIsReturnOnly test
15389         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
15390
15391 2003-04-05    <johan AT balder>
15392
15393         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
15394         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
15395         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
15396         * src/SDCCast.c: fixed a warning
15397         * src/SDCCast.h: fixed a warning
15398         * src/SDCCicode.c (operandFromAst): fixed a warning
15399
15400 2003-04-04    <johan AT balder>
15401
15402         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
15403         * src/SDCCast.c (decorateType): fixed bug #715076
15404         * src/SDCC.y: fixed bug #702907
15405
15406 2003-04-03    <johan AT balder>
15407
15408         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
15409         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
15410         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
15411         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
15412         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
15413
15414 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
15415
15416         * _decdptr.c: fix return values
15417         * _gptrget.c: fix return values
15418         * _gptrgetc.c: fix return values
15419         * _gptrput.c: fix return values
15420         * _mulint.c: fix return values
15421         * as/z80/Makefile: fix 'make -j' problem
15422
15423 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
15424
15425         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
15426         * configure.in: big cleanup, updated to autoconf 2.5x
15427         * configure: rebuilt from configure.in
15428         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
15429         * sdcc_vc_in.h: reflect changes from sdccconf.h
15430         * doc/Makefile: fixed a flaw in "make install"
15431
15432 2003-04-02    <johan AT balder>
15433
15434         * src/ds390/gen.c (genCmp): no comments
15435         * src/mcs51/gen.c (genCmp): no comments
15436         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
15437         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
15438
15439 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
15440
15441         * support/regression/generate-cases.py: place generated file in given sub directory
15442         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
15443         * support/regression/Makefile: improvements for 'make -j';
15444         side effect: it's simpler and faster now
15445
15446 2003-03-31  Borut Razem <borut.razem AT siol.net>
15447
15448         * src/z80/main.c: link-{port} and as-{port} defined without path
15449         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
15450
15451 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
15452
15453         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
15454
15455 2003-03-30  Borut Razem <borut.razem AT siol.net>
15456
15457         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
15458           changed type of list parameter to set
15459         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
15460         * src/port.h: changed type of do_assemble() parameter to set
15461         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
15462           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
15463           definition of "cppoutfilename" macro with NULL value in preProcess()
15464         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
15465         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
15466         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
15467           replaced with set *binPathSet
15468         * shash_add() deallocates the item, if allready exsists, before adding the new one
15469         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
15470
15471 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
15472
15473         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
15474           a nested for loop bug in the PIC port
15475         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
15476           for loops
15477
15478 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
15479
15480         * support/Util/dbuf.h: remove C++ stuff to make it portable
15481
15482 2003-03-28  Borut Razem <borut.razem AT siol.net>
15483
15484         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
15485           literal strings in stringLiteral()
15486         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
15487         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
15488           to the project
15489
15490 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
15491
15492         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
15493
15494 2003-03-26    <johan AT balder>
15495
15496         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
15497         * src/ds390/gen.c (saveRegisters): catched symbol abuse
15498         * src/SDCCast.c (decorateType): fixed " -v < 3"
15499
15500 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
15501
15502         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
15503         Added Lenny Story's debug infrastructure changes:
15504         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
15505         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
15506         * src/cdbFile.c: added
15507         * src/SDCCdebug.c: added
15508         * src/SDCCdebug.h: added
15509         * src/SDCCast.c (createFunction)
15510         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
15511         * src/SDCCmain.c (parseCmdLine, main)
15512         * src/SDCCmem.c (redoStackOffsets)
15513         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
15514         * src/SDCCsymt.h
15515         * src/common.h
15516         * src/avr/gen.c (genAVRCode)
15517         * src/ds390/gen.c (gen390Code)
15518         * src/mcs51/gen.c (gen51Code)
15519         * src/pic/gen.c (genpic14Code)
15520         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
15521         * src/xa51/gen.c (genXA51Code)
15522         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
15523
15524 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15525
15526         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
15527         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
15528
15529 2003-03-22    <johan AT balder>
15530
15531         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
15532
15533 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
15534
15535         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
15536         * doc/cdbfileformat.lyx: added, written by Lenny Story
15537         * doc/Makefile: added cdbfileformat.lyx
15538         * doc/clean.mk: added cdbfileformat.lyx
15539
15540 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
15541
15542         * src/mcs51/peeph.def: fix bug #705773
15543
15544 2003-03-20    <johan AT balder>
15545
15546         An sfr/sbit can have an "at #" AND an initializer
15547         * src/SDCCsymt.c (checkSClass):
15548         * src/SDCCmem.c (allocGlobal):
15549         * src/SDCCmem.c (allocLocal):
15550         * src/SDCCast.c (createBlock):
15551
15552 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
15553
15554         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
15555
15556 2003-03-16    <johan AT balder>
15557
15558         Undid the hackup of const and volatile, the problem is much bigger
15559         * src/SDCC.y:1.65
15560         * src/SDCCast.c:1.171
15561         * src/SDCCglue.c:1.138
15562         * src/SDCCicode.c:1.146
15563         * src/SDCCsymt.c:1.150
15564         * src/SDCCval.c:1.65
15565
15566 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
15567
15568         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
15569         * src/ds390/gen.c (genAddrOf): fixed bug #704087
15570
15571 2003-03-13    <johan AT balder>
15572
15573         Hackup const and volatile modifiers in type chains a bit:
15574         * src/SDCC.y:1.63
15575         * src/SDCCast.c:1.169
15576         * src/SDCCglue.c:1.136
15577         * src/SDCCicode.c:1.143
15578         * src/SDCCsymt.c1.146
15579         * src/SDCCsymt.h1.59
15580         * src/SDCCval.c:1.63
15581
15582 2003-03-12    <johan AT balder>
15583
15584         * src/SDCCBBlock.h: more LRH debugging junk
15585         * src/SDCCcflow.h: more LRH debugging junk
15586         * src/SDCCloop.c: more LRH debugging junk
15587         * src/SDCC.y (struct_declaration): fixed bug #697590
15588         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
15589         * src/ds390/gen.c (aopForRemat): fixed bug #700031
15590         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
15591
15592 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
15593         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
15594         test function names must now match exactly).
15595         * src/SDCCcse.c: added special case in findCheaperOp to allow
15596         extending a short integer. Makes less awful code for bug 700121 test case.
15597
15598 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15599
15600         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
15601         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
15602
15603 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
15604
15605         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
15606         actually called (operandsNotEqual() was called for all
15607         operandsNotEqualX tests).
15608
15609 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
15610
15611         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
15612         with shorter literals. Fixes bug 700121.
15613
15614 2003-03-11    <johan AT balder>
15615
15616         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
15617
15618 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
15619
15620         * src/SDCCloop.c (mergeRegions): an evil beast is dead
15621         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
15622
15623 2003-03-10  Borut Razem <borut.razem AT siol.net>
15624
15625         * src/SDCCmain.c: pipe preprocessor's output
15626         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
15627         * sdcc_vc_in.h: define pclose as _pclose for WIN32
15628         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
15629         which closes all pipes in pipeSet set
15630         * src/SDCCset.c: free deleted item in function deleteSetItem()
15631         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
15632         moved from z80 to src subproject
15633         * .version: increased version number to 2.3.4
15634
15635 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
15636
15637         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
15638         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
15639         * support/regression/ports/xa51/spec.mk: fix typo
15640
15641 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
15642
15643         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
15644
15645 2003-03-09  Borut Razem <borut.razem AT siol.net>
15646
15647         * src/SDCCmain.c: pipe preprocessor's output
15648         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
15649         * sdcc_vc_in.h: define pclose as _pclose for WIN32
15650         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
15651         which closes all pipes in pipeSet set
15652         * src/SDCCset.c: free deleted item in function deleteSetItem()
15653         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
15654         moved from z80 to src subproject
15655
15656 2003-03-09  Borut Razem <borut.razem AT siol.net>
15657
15658         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
15659         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
15660         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
15661         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
15662         * src/SDCCglobl.h: unification of WIN32 native definitions
15663
15664 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15665
15666         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
15667
15668 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
15669
15670         * src/configure.in:   check for endianess (even while cross-compiling)
15671         * src/configure:      check for endianess (even while cross-compiling)
15672         * src/configure_in.h: check for endianess (even while cross-compiling)
15673         * src/avr/gen.c:        remove old endianess stuff
15674         * src/mcs51/gen.c:      remove old endianess stuff
15675         * src/ds390/gen.c:      remove old endianess stuff
15676         * src/pic/gen.c:        remove old endianess stuff
15677         * src/pic/genarith.c:   remove old endianess stuff
15678         * src/pic/glue.c:       fix endianess check
15679         * src/pic16/gen.c:      remove old endianess stuff
15680         * src/pic16/genarith.c: remove old endianess stuff
15681         * src/pic16/glue.c:     fix endianess check
15682         * src/xa51/gen.c:       remove old endianess stuff
15683         * src/z80/gen.c:        fix endianess check
15684         * src/SDCCglue.c:       fix endianess check
15685         * src/ds390/peeph.def: fix bug 700036
15686
15687 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
15688
15689         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
15690         * src/configure: find appropriate data-types on host for SDCC's int and long
15691         * src/configure.in: find appropriate data-types on host for SDCC's int and long
15692         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
15693         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
15694
15695 2003-03-07    <johan AT balder>
15696
15697         Just a big NOOP:
15698                 some minor cleanups before the big shot
15699                 OP_DEFS and OP_USES now use Kevin's protection
15700                 new option --nolabelopt
15701
15702         * src/SDCCBBlock.c:
15703         * src/SDCCast.c,:
15704         * src/SDCCcflow.c:
15705         * src/SDCCcse.c:
15706         * src/SDCCicode.c:
15707         * src/SDCCicode.h:
15708         * src/SDCClabel.c:
15709         * src/SDCCloop.c:
15710         * src/SDCCmain.c:
15711         * src/ds390/ralloc.c:
15712         * src/mcs51/ralloc.c:
15713         * src/pic/ralloc.c:
15714         * src/xa51/ralloc.c:
15715         * src/z80/ralloc.c:
15716
15717 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
15718
15719         * src/pic/pcode.c (get_op): fix 64 bit warnings
15720         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
15721         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
15722         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
15723         * support/regression/tests/malloc.c: fix 64 bit warnings
15724
15725 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
15726
15727         * src/mcs51/gen.c (genMinus): fixed bug 696436
15728
15729 2003-03-02  Borut Razem <borut.razem AT siol.net>
15730
15731         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
15732
15733 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
15734
15735         * configure.in: test for mkstemp
15736         * sdccconf_in.h: add HAVE_MKSTEMP
15737
15738 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
15739
15740         * device/include/ctype.h: removed warning while using --stack-auto
15741         * device/include/malloc.h: removed warning while using --stack-auto
15742         * device/include/string.h: removed warning while using --stack-auto
15743
15744 2003-02-23  Borut Razem <borut.razem AT siol.net>
15745
15746         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
15747         because NDEBUG is defined (see man assert)
15748         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
15749
15750 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15751
15752         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
15753         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
15754
15755 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15756
15757         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
15758         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
15759
15760 2003-02-18    <johan AT balder>
15761
15762         * as/mcs51/asmain.c (asmbl): module can start with a digit
15763         * as/z80/asmain.c (asmbl): module can start with a digit
15764
15765 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
15766
15767         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
15768         * src/asm.c: fix pipe() for Mingw32
15769
15770 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
15771
15772         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
15773         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
15774         make -V work again; --c1mode reads now from stdin
15775         * doc/sdccman.lyx: added --c1mode
15776         * support/Util/SDCCerr.c: new messages for c1 mode
15777         * support/Util/SDCCerr.h: new messages for c1 mode
15778         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
15779
15780 2003-02-15    <johan AT balder>
15781
15782         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
15783
15784 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
15785
15786         * doc/sdccman.lyx: Environment variables, -o and other minor things
15787
15788 2003-02-14    <johan AT balder>
15789
15790         * src/xa51/main.c: before anyone really tries to use it :)
15791
15792         * Install doc's in share/sdcc/doc
15793         * removed some obsolete files
15794         * Do a proper make distclean and uninstall
15795         M Makefile.common.in
15796         R sdccbuild.sh
15797         M as/Makefile
15798         M device/include/Makefile.in
15799         M device/lib/Makefile.in
15800         M doc/sdccman.lyx
15801         M link/Makefile
15802         M sim/ucsim/doc/Makefile.in
15803         M src/clean.mk
15804         R src/avr/peeph.rul
15805         R src/xa51/peeph.rul
15806         M support/cpp2/Makefile.in
15807         M support/makebin/Makefile
15808
15809
15810 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
15811
15812         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
15813
15814 2003-02-10  Borut Razem <borut.razem AT siol.net>
15815
15816         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
15817         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
15818         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
15819         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
15820         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
15821         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
15822         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
15823         src/z80/Makefile.bcc: Borland Makefile cleanup
15824         * as/z80/Makefile.bcc: Added Borland Makefile
15825         * support/cpp2/borland.h: Removed
15826
15827 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
15828
15829         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
15830         * src/SDCC.lex: new pragma NOIV
15831         * src/SDCCglobl.h: new pragma NOIV
15832         * src/SDCCmem.c: new pragma NOIV
15833
15834 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
15835
15836         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
15837
15838 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
15839
15840         * src/SDCCmain.c: signal handling is switched off by --debug
15841         * doc/Makefile: small fix for install; use clean.mk again
15842         * doc/clean.mk: clean *.pdf and *.html too
15843
15844 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
15845
15846         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
15847         * device/lib/printfl.c: fix a ds390 bug by making it portable
15848         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
15849         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
15850         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
15851         * debugger/mcs51/cmd.c: converted multi-line string literals
15852         * sim/ucsim/globals.cc: converted multi-line string literals
15853         * src/SDCCmain.c: introduced signal handler to remove temp files
15854         * doc/Makefile: small tweaks, implement clean
15855         * doc: removed generated files
15856
15857 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15858
15859         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
15860         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
15861         Address Record is not correctly generated for DS390."
15862
15863 2003-02-02  Borut Razem <borut.razem AT siol.net>
15864
15865         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
15866         * as/mcs51/asm.h: fixed compilation with Borland C
15867         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
15868         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
15869         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
15870         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
15871         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
15872         src/z80/Makefile.bcc: delete $(LIB) only if exist
15873         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
15874
15875 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
15876
15877         * device/include/malloc.h: introduced NULL
15878         * device/include/string.h: introduced NULL
15879         * device/include/stdlib.h: introduced NULL
15880         * device/lib/_memcpy.c: removed NULL
15881         * device/lib/_strcat.c: removed NULL
15882         * device/lib/_strchr.c: removed NULL
15883         * device/lib/_strcmp.c: removed NULL
15884         * device/lib/_strcpy.c: removed NULL
15885         * device/lib/_strcspn.c: removed NULL
15886         * device/lib/_strlen.c: removed NULL
15887         * device/lib/_strncat.c: removed NULL
15888         * device/lib/_strncmp.c: removed NULL
15889         * device/lib/_strncpy.c: removed NULL
15890         * device/lib/_strpbrk.c: removed NULL
15891         * device/lib/_strrchr.c: removed NULL
15892         * device/lib/_strspn.c: removed NULL
15893         * device/lib/_strstr.c: removed NULL
15894         * device/lib/_strtok.c: removed NULL
15895         * device/lib/malloc.c: removed NULL, include own header
15896
15897 2003-02-02    <johan AT balder>
15898
15899         * 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
15900         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
15901         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
15902         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
15903         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
15904         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
15905
15906 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15907
15908         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
15909         area 'DATA'"
15910
15911 2003-02-01    <johan AT balder>
15912
15913         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
15914
15915 2003-01-31    <johan AT CP255758-A>
15916
15917         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
15918
15919 2003-01-30    <johan AT balder>
15920
15921         * src/SDCCBBlock.c: automatic bug detection
15922         * src/SDCCicode.c: automatic bug detection
15923
15924 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15925
15926         * src/SDCCglobl.h:   now --xram-size 0 works
15927         * src/SDCCmain.c:    now --xram-size 0 works
15928
15929 2003-01-29    <johan AT balder>
15930
15931         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
15932
15933 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15934
15935         * as/mcs51/aslink.h: Added options --xram-size and --code-size
15936         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
15937         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
15938         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
15939         * src/SDCCglobl.h:   Added options --xram-size and --code-size
15940         * src/SDCCmain.c:    Added options --xram-size and --code-size
15941
15942 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
15943
15944         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
15945         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
15946
15947 2003-01-27    <johan AT balder>
15948
15949         * src/SDCC.y: fixed bug #613764
15950
15951 2003-01-26    <johan AT balder>
15952
15953         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
15954         * src/SDCCsymt.h: fixed bug #673374
15955         * src/SDCCglue.c: fixed bug #661910
15956         * src/SDCCast.c: fixed bug #458099 and 673374
15957
15958 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
15959
15960         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
15961         * as/mcs51/strcmpi.h: added
15962         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
15963         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
15964         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
15965         * as/mcs51/assym.c: strcmpi -> as_strcmpi
15966         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
15967         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
15968         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
15969         * as/mcs51/Makefile.aslink: new module strcmpi
15970         * as/mcs51/Makefile.asx8051: new module strcmpi
15971         * as/mcs51/Makefil.bcc: new module strcmpi
15972         * as/mcs51/Makefile.in: new module strcmpi
15973         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
15974
15975 2003-01-26    <johan AT balder>
15976
15977         * src/SDCCglue.c: reverted back to 1.124
15978         * src/SDCCast.c: reverted back to 1.156
15979         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
15980
15981 2003-01-25    <johan AT balder>
15982
15983         * src/SDCCglue.c: A better fix for bug #661910
15984         * src/SDCCast.c: A better fix for bug #661910
15985         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
15986
15987 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
15988
15989         * src/Makefile.in: remove spawn.o
15990         * src/SDCCmain.c: remove spawn.h
15991         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
15992         * src/spawn.c: removed
15993         * src/spawn.h: removed
15994         * support/regression/ports/ds390/spec.mk: link with -r
15995
15996 2003-01-24    <johan AT CP255758-A>
15997
15998         * src/ds390/gen.c (aopOp): fixed bug #667458
15999         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
16000         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
16001         (createIvalCharPtr): an ival doesn't always have a storage class anymore
16002
16003 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
16004
16005         * src/mcs51/peeph.def: better assembler identation by Frieder
16006         * src/mcs51/gen.c: better assembler identation by Frieder
16007
16008 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
16009
16010         * as/z80/string.h: removed for gcc 3.2
16011         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
16012         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
16013
16014 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
16015
16016         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
16017         * src/SDCCpeeph.c (replaceRule): fix bug #663503
16018         * support/regression/Makefile: separate temp files for ports
16019         * support/regression/generate-cases.py: separate temp files for ports
16020         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
16021         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
16022
16023 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
16024
16025         * moved tinitalk to device/examples/ds390
16026
16027 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
16028
16029         * as/mcs51/lkmem.c: rflag is for DS390
16030         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
16031         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
16032                          (linkEdit): move mem- and map-files the same way as ihx-files
16033         * src/z80/main.c (_setDefaultOptions): removed --generic
16034         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
16035         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
16036         * src/pic/glue.c (picglue): --c1mode works again
16037         * src/pic16/glue.c (pic16glue): --c1mode works again
16038         * src/asm.c (printCLine): fix #660034
16039
16040 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
16041
16042         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
16043         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
16044         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
16045         * as/mcs51/lkmem (summary): better fix for sp problem
16046         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
16047         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
16048         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
16049                                               remove --stack-after-data
16050
16051 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
16052
16053         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
16054         * src/SDCCutil.c (join): ugly bug: missing '\0'
16055         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
16056
16057 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
16058
16059         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
16060         * src/port.h: typo
16061         * src/pic/main.c (_asmCmd): gpasm supports -o
16062         * src/z80/main.c: more general macros
16063         * device/lib/Makefile.in: remove intermediate files
16064
16065 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
16066
16067         * .version: Bumped version number to 2.3.3
16068         * src/SDCCBBlock.c: new option -o
16069         * src/SDCCglobl.h: new option -o
16070         * src/SDCCglue.c: new option -o
16071         * src/SDCCmain.c: new option -o
16072         * src/asm.c: new option -o
16073         * src/ds390/main.c: new option -o
16074         * src/pic/glue.c: new option -o
16075         * src/pic/pcode.c: new option -o
16076         * src/pic/ralloc.c: new option -o
16077         * src/pic16/glue.c: new option -o
16078         * src/pic16/pcode.c: new option -o
16079         * src/pic16/ralloc.c: new option -o
16080         * src/z80/main.c: new option -o
16081         * device/lib/Makefile.in: use -o
16082         * support/regression/ports/ds390/spec.mk: use -o
16083         * support/regression/ports/gbz80/spec.mk: use -o
16084         * support/regression/ports/mcs51/spec.mk: use -o
16085         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
16086         * support/regression/ports/z80/spec.mk: use -o
16087         * support/regression/ports/ucz80/spec.mk: use -o
16088         * support/regression/ports/xa51/spec.mk: use -o
16089         * support/regression/fwk/lib/timeout.c: fix usage string
16090
16091 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
16092         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
16093
16094 2003-01-07    <johan AT balder>
16095
16096         * src/SDCCast.c (decorateType): fixed bug #600035
16097
16098 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
16099         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
16100         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
16101         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
16102         * src/pic/pcode.c: outcommented unused variable to remove warnings
16103         * src/pic/ralloc.c: outcommented unused variable to remove warnings
16104
16105 2003-01-06    <karl AT turbobit.com>
16106         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
16107         regression tests.
16108
16109 2003-01-06    <johan AT balder>
16110
16111         * src/SDCCicode.c: fixed array add
16112
16113 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
16114         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
16115         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
16116
16117 2003-01-04    <johan AT balder>
16118
16119         * src/SDCCval.c (getNelements): fixed the initialized array of structures
16120
16121 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
16122         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
16123
16124 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
16125         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
16126         * support/regression/tests/bug-524697.c: fit mem usage into 8032
16127
16128 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
16129         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
16130
16131 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
16132         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
16133
16134 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
16135         * src/mcs51/main.c: removed {bindir}{sep} from aslink
16136
16137 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
16138
16139         * in /sdcc/as/mcs51/ changed these files in order to create an
16140         aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
16141         lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
16142         following files to include the previous two files: aslink.dsp,
16143         Makefile.aslink, Makefile.bcc, and Makefile.in.
16144
16145         * Changed /sdcc/src/SDCCmain.c so it creates files with extension
16146         .adb instead of .cdb
16147
16148 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
16149
16150         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
16151         value from option --iram-size.
16152
16153 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
16154
16155         * /sdcc/as/mcs51/lklist.c: added boundary check before using
16156         dram[] array.
16157
16158 2002-09-18    <wiml AT hhhh.org>
16159
16160         * SDCClrange.h: exposed setFromRange() and setToRange()
16161         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
16162           packRegsForAccUse() (bug 542397)
16163         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
16164           multiple times and emitting the fetch operations more than once
16165           added aopGetUsesAcc() function to allow binary operators to
16166           fetch their operands in the correct order; made genMinus() emit
16167           compact code for X = LITERAL - Y
16168
16169 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
16170         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
16171         sprintf() in line 1267.
16172
16173 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
16174         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
16175         like ports.
16176
16177 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
16178         Changes to aslink (All the changes are marked with 'JCF'):
16179
16180         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
16181         summary().
16182
16183         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
16184         area BSEG.  Also moves, if possible, the DATA area down into the internal
16185         ram so more space is available.
16186
16187         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
16188         sflag.
16189
16190         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
16191         not bytes.  Function summary() which creates a memory usage summary
16192         file with extension .mem.  Reports of overlaping stack and small stack
16193         size.  If the space for the stack is less than 16 bytes aslink trows a
16194         warning.
16195
16196         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
16197         the 8051.  Option 'y' for memory summary output file.
16198
16199         Changes to sdcc (All the changes are marked with 'JCF'):
16200
16201         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
16202
16203         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
16204         overlaying area for it (uses RegBankUsed[4]).
16205
16206         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
16207         bank zero as used by default.  By default aslink locates the stack
16208         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
16209         the creation of the .mem file.  Delegates the allocation of data area
16210         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
16211         the begining of the stack area to aslink.
16212
16213         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
16214         glue() in SDCCglue.c creates an area for it.
16215
16216 2002-09-03  Borut Razem <borut.razem AT siol.net>
16217         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
16218         sdcc/src/pic/glue.c:
16219         introduced atexit() handler for teporay files removal in case of
16220         errors, assertions, ...
16221
16222 2002-08-29  Borut Razem <borut.razem AT siol.net>
16223         * sdcc/support/cpp2/auto-host_vc_in.h:
16224         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
16225         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
16226         Maybe there is a similar problem with BORLANDC? It should be checked!
16227
16228         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
16229         corrected improper use of assert: the assignment to clr variable was done inside the assert.
16230         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
16231         was not executed, and the compiler (cl) launched a warning:
16232         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
16233
16234 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
16235         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
16236
16237 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
16238         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
16239
16240         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
16241           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
16242           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
16243           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
16244           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
16245           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
16246           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
16247         - added Release configuration in VS projects
16248         - review of compiler an linker options
16249         - VC .exe files are generated in bin_vc directory, not to interfere
16250           with binaries generated from other projects (cygwin, mingw, bcc ...)
16251
16252         * sdcc/src/yacc.dsp: added
16253
16254         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
16255         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
16256         and insert the version number definitions from .version
16257
16258         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
16259
16260         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
16261         added - genarate auto-host.h using auto-host_vc_in.h as template
16262
16263         * sdcc/sdcc_vc.h,
16264         removed from CVS, generated automatically
16265
16266 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
16267         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
16268
16269 2002-08-11  Borut Razem <borut.razem AT siol.net>
16270         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
16271
16272 2002-08-10  Borut Razem <borut.razem AT siol.net>
16273         * src/SDCCmain.c (main):
16274         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
16275         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
16276         The consequence was that some temporary files were not removed.
16277
16278         * src/SDCCglue.c:
16279         unification of code in functions tempfilename() and tempfile():
16280         function tempnam() is defined in Visual Studio 6.0 and .NET
16281
16282         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
16283
16284         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
16285           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
16286         - removed compiler command line option /WX: Treats all warnings as errors
16287         - update a list of source files, included into the project
16288
16289         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
16290           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
16291         changed project type to Generic Project so that can be correcly converted to VS.NET project
16292
16293         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
16294
16295         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
16296
16297         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
16298
16299         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
16300         added return 0 statements after assert() to make compiler happy
16301
16302         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
16303         added newline in the def file to keep MSC compiler satisfied
16304
16305         * sdcc/src/z80/gen.c:
16306         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
16307           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
16308         - solved MSC error in function aopDump()
16309
16310         * sdcc_vc.h: define PREFIX as "\\sdcc"
16311
16312 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
16313         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
16314
16315 2002-06-22  Scott Dattalo <scott AT dattalo.com>
16316         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
16317         - Rewrote the register banking algorithm.
16318         - Added pCode live-range analysis to registers (for now, only non-used and
16319         singly-used registers optimized away)
16320
16321         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
16322
16323         * 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.
16324
16325 2002-05-10  Scott Dattalo <scott AT dattalo.com>
16326         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
16327
16328 2002-04-22  Michael Hope  <michaelh AT vroom>
16329
16330         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
16331
16332         * configure.in (DD_COPT): Added include support required for gbdk.
16333
16334         * .version: Bumped version number just to increase it.
16335
16336         * src/SDCCmain.c: Added -nostdinc to the default options.
16337
16338 2002-04-15  Michael Hope  <michaelh AT vroom>
16339
16340         * device/lib/z80/printf.c (sprintf): Added.
16341
16342         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
16343
16344         * src/z80/peeph.def: Added transpose redundent load rule.
16345
16346         * src/z80/main.c: Added force callee saves for jaune.
16347
16348         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
16349
16350         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
16351
16352 2002-03-28  Johan Knol  <johan AT balder>
16353
16354         * src/SDCCval.c: fixed bug #532436
16355
16356 2002-03-14  Scott Dattalo <scott AT dattalo.com>
16357         * /src/port.h:
16358         Added "char *Processor" field to the port structure.
16359
16360         * /src/SDCCmain.c:
16361         Added -p option. Allows port dependent processor to be specified.
16362
16363         * all ports:
16364         Initialized the new field char *Processor field to NULL in all ports
16365
16366         * /src/pic/*:
16367         Compiler generated registers for interrupt context saving
16368         were not getting allocated.
16369
16370 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
16371
16372         * /src/SDCCast.c:
16373         Fixed left shift. Will promote the left side of a left shift
16374         if a) left shifting more than size of operand or b) when assigned
16375         to something size > size of left side
16376
16377 2002-03-14  Scott Dattalo <scott AT dattalo.com>
16378         * src/pic/*
16379         tons of changes. Register allocation has been
16380         rewritten. Added customization for the various PICs. Flow
16381         analysis is restructured. ...
16382
16383         * src/pic/device.h:
16384         Added
16385
16386         * src/pic/device.c:
16387         Added. device.c is a PIC port hack to accomodate variations
16388         in PIC devices.
16389
16390 2002-03-13  Michael Hope  <michaelh AT vroom>
16391
16392         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
16393
16394 2002-03-04  johanknol  <johanknol AT manik>
16395
16396         * /src/SDCCval.c: fixed
16397
16398         const unsigned char arr[][2] = { { 0, 1 } };
16399         t18.c:1: error: Initializer element is not constant
16400
16401 2002-03-04  bela  <bela AT manik>
16402
16403         * /device/include/mcs51reg.h:
16404         ds89c420 register definition update
16405
16406 2002-03-03    <johan AT FRIJA>
16407
16408         * support/Util/SDCCerr.c: did something, but don't no why anymore
16409
16410         * support/regression/tests/bug-524691.c: made it a little less shy
16411
16412         * src/SDCCast.c (decorateType): fixed bug #524697
16413
16414         * src/SDCCast.c: made some lineno improvements
16415
16416         * src/SDCCval.c (getNelements): changed warning to error
16417
16418         * src/SDCCglue.c (printIvalArray): changed warning to error
16419
16420         * src/SDCCicode.c: fixed a warning for mingw
16421
16422         * src/SDCCast.c (decorateType): fixed the << promotion for ops
16423
16424         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
16425
16426 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
16427
16428         * src/ds390/peeph.def:
16429         Added some more peephole rules
16430
16431         * src/ds390/gen.c: Various fixes & enhancements
16432
16433         * src/SDCClrange.c, src/SDCClrange.h:
16434         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
16435
16436         * src/ds390/ralloc.c:
16437         various fixes & enhancements (ds390) specific
16438
16439         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
16440         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
16441         from rallocs.
16442
16443         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
16444
16445 2002-03-02    <johan AT FRIJA>
16446
16447         * src/SDCCast.c (decorateType): fixed bug #524708
16448
16449         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
16450
16451         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
16452
16453 2002-03-01  Michael Hope  <michaelh AT vroom>
16454
16455         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
16456
16457         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
16458
16459 2002-03-01    <johan AT FRIJA>
16460
16461         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
16462
16463         * src/SDCCast.c (decorateType): fixed bug #524209
16464
16465         * src/SDCCval.c (valNot): fixed bug #524195
16466
16467 2002-02-26    <johan AT balder>
16468
16469         * src/xa51/gen.c: fixed a warning
16470
16471         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
16472
16473         * src/SDCCast.c (decorateType): fixed bug #522534
16474
16475 2002-02-23    <johan AT balder>
16476
16477         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
16478
16479 2002-02-22    <johan AT balder>
16480
16481         * src/SDCCast.c: fixed bug #514865
16482
16483         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
16484
16485 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
16486
16487         * sdcc/src/SDCCloop.c:
16488         Previous fix was not good. basic blocks that have "break" or "return" are
16489         not really partof a loop , but live ranges used in these blocks should
16490         be live thru the entire loop, so set partOfLoop but don't add them to
16491         loop region
16492
16493 2002-02-21    <johan AT FRIJA>
16494
16495         * src/SDCCcse.c: fixed bug #514308
16496
16497 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
16498
16499         * src/SDCCloop.c:
16500         Fixed BUG #519583. If a conditional block ended in a return/break
16501         statement inside a loop, it was not being considered part of the loop.
16502
16503         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
16504
16505 2002-02-10  Karl Bongers <karl AT turbobit.com>
16506
16507         * debugger/*:
16508         Fixed up SDCDB debugger somewhat.  Updated debugger/README
16509         with lots of comments and notes.
16510
16511         * device/examples/test2.c:
16512         Fix bug, "red" variable not being initialized(compiler complained).
16513
16514         * device/examples/Makefile, examples/test3.c:
16515         Add Makefile in device/examples folder, compiles test3.c
16516         for use as a multiple module SDCDB test case.
16517
16518         * sim/ucsim/cmd.src/cmdset.cc:
16519         Took out debug printfs in ucsim "next" command.
16520
16521         * sim/ucsim/xa.src:
16522         Karl and Johan start ucsim XA support.  Most dissassembly working,
16523         about 75% emulation done(plenty of work remaining).
16524
16525         * sim/ucsim/z80.src:
16526         Add Z80 support to ucsim, add test-ucz80 regression test,
16527         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
16528         Notice z80 compiler fails on examples/test3.c/crc code.
16529
16530 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
16531
16532         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
16533         Added support for --parms-in-bank1
16534
16535         * src/ds390/peeph.def:
16536         added a few more peephole optimzations
16537
16538         * src/ds390/main.c:
16539         1) added __builtin_inp & __builtin_outp used to read in data of given length
16540            from a memory mapped port
16541         2) added __builtin_memcmp
16542         3) added __builtin_swapw swap bytes of a short
16543
16544         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
16545         1) handle multiple send & receives from register bank1
16546         2) ralloc can now allocate DPTR1 to some liveRanges
16547
16548         * src/SDCCsymt.c, src/SDCCsymt.h:
16549         changes to handle multiple sends & receives
16550
16551         * src/SDCCptropt.h:
16552         added some pointer arithmetic optimization
16553
16554         * src/SDCCptropt.c:
16555         added some pointer arithmetic optimizations but not stable yet so not
16556         called from anywhere (will get this working shortly)
16557
16558         * src/SDCCopt.c: fixed for multiple sends & receives
16559
16560         * src/SDCCmain.c:
16561         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
16562         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
16563            set preprocessor defines (depending on options)
16564
16565         * src/SDCCicode.c, src/SDCCicode.h:
16566         changes made to handle multiple sends & receives
16567
16568         * src/SDCCglobl.h:
16569         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
16570
16571         * src/SDCCcse.c, src/SDCCcse.h:
16572         added function findbackward def (to be used in upcoming optimization)
16573
16574         * src/SDCCcflow.c, src/SDCCcflow.h:
16575         added function returnAtEnd - to determine if a basic block terminates with
16576         a RETURN iCode
16577
16578         * src/SDCCast.c, src/SDCCast.h:
16579         added option parms-in-bank1
16580
16581         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
16582         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
16583         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
16584         adjusted for --parms-in-bank1 option
16585
16586         * device/include/string.h:
16587         donot redefine "reentrant" keyword
16588
16589         * device/include/ds80c390.h: Added some more SFRs
16590
16591 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
16592
16593         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
16594
16595 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
16596
16597         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
16598
16599 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
16600
16601         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
16602
16603 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
16604
16605         * Added --xram-movc option
16606
16607 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
16608
16609         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
16610
16611 2002-01-11  Johan Knol
16612
16613         * Added math lib of Jesus Calvino-Fraga
16614
16615 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
16616
16617         * src/SDCCmain.c (processFile): fix processing of ../../src.c
16618         * support/regression/Makefile: new target test-mcs51-stack-auto
16619         * support/regression/ports/mcs51-stack-auto/spec.mk: added
16620
16621 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
16622
16623         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
16624
16625 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
16626
16627         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
16628
16629 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
16630
16631         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
16632
16633         * src/SDCCglue.h: add definition for printIvalChar()
16634
16635 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
16636
16637         * src/SDCCast.c: fix #498138 by Johan
16638
16639         * src/SDCCglue.c: fix #498138 by Johan
16640
16641 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
16642
16643         * support/regression/Makefile: fix clean
16644
16645         * support/regression/ports/ds390/support.c: fix transmission of last character
16646
16647 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
16648
16649         * /sdcc/src/ds390/gen.c:
16650         a) improved computing address of stack variable
16651         b) took out some #if 0 code
16652         c) improved parmBytes adjustment
16653         d) improved genPlusIncr & genMinusIncr
16654         e) genCmp could generate bad code (when left assigned to DPTR)
16655         f) Fixed bug in hasInc
16656
16657         * /sdcc/src/ds390/ralloc.c:
16658         a) packRegsForSupport could mess up live information (Fixed)
16659         b) packRegsDPTRuse could be incorrect for left & right shift
16660
16661         * /sdcc/src/mcs51/ralloc.c:
16662         packRegsForSupport could mess up the live information (Fixed)
16663
16664         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
16665
16666         * /sdcc/src/SDCCast.c:
16667         can reverse a loop even if function call is present as long
16668         as the loop control variable is local & is not passed as parameter
16669
16670 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16671
16672         * /sdcc/ChangeLog: *** empty log message ***
16673
16674         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
16675         More builtin function additions for TININative
16676
16677         * /sdcc/src/ds390/ralloc.c:
16678         Had broken the regression testsuite
16679
16680         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
16681
16682         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
16683         Added funcattr hasStackParms will be set for reentrant functions when there
16684         are paramteres on the stack, this helps in minimizing frame pointer generation
16685         typeFromStr can handle function pointers now
16686
16687         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
16688         *** empty log message ***
16689
16690 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16691
16692         * /src/ds390/gen.c, /src/ds390/main.c:
16693         More builtin function additions for TININative
16694
16695         * /src/ds390/ralloc.c:
16696         Had broken the regression testsuite
16697
16698         * /src/SDCCast.c: Fixed a bug in dumptree
16699
16700         * /src/SDCCsymt.c, /src/SDCCsymt.h:
16701         Added funcattr hasStackParms will be set for reentrant functions when there
16702         are paramteres on the stack, this helps in minimizing frame pointer generation
16703         typeFromStr can handle function pointers now
16704
16705         * /doc/builtins.txt, /doc/TININative.txt:
16706         *** empty log message ***
16707
16708
16709 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16710
16711         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
16712         ALPHA version for -mTININative
16713
16714         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
16715         updated to reflect changes in the port structure
16716
16717         * /src/port.h:
16718         added function do_assemble (similar to do_link) if non-null this function
16719         will be called to do assembly (-mTININative) requires a multi command
16720         assembly
16721         added function genAssemblerEnd will be called to generate assembler Epilogue
16722
16723         * /src/SDCCsymt.c:
16724         added _JavaNative to debug info printing
16725
16726         * /src/SDCCmain.c: added option --tini-libid
16727         added port->do_assemble function (-mTININative) has a multi command assemble
16728
16729         * /src/SDCCglue.c: Disabled "constExpr" check
16730         added port->genAssemblerEnd function
16731
16732         * /src/SDCCglobl.h: Added option --tini-libid value
16733
16734         * /src/SDCCast.h:
16735         tookout optimizeCompare from the header (has no external references)
16736
16737         * /src/SDCCast.c: made one more function "static"
16738
16739 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
16740
16741         * src/z80/mappings.i: Added z80asm support.
16742
16743         * src/z80/main.c: Added z80asm support on --asm=z80asm
16744
16745         * src/z80/gen.c: Fixed asm portability issues.
16746
16747         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
16748
16749         * src/SDCCglue.c (printExterns): Added global/extern split.
16750
16751 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
16752
16753         * support/regression/Makefile: added test for mcs51 model large
16754
16755         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
16756
16757         * support/regression/ports/gbz80/spec.mk: added -mgbz80
16758
16759 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
16760
16761         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
16762
16763 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
16764
16765         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
16766
16767         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
16768
16769 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
16770
16771         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
16772
16773         * support/regression/tests/simplefloat.c: Port to mcs51.
16774
16775 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
16776         * support/regression/tests/bug-485362.c: Added.
16777
16778         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
16779
16780         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
16781
16782         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
16783
16784         * src/z80/gen.c (aopDump): Added a dump function.
16785
16786 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
16787         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
16788
16789         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
16790
16791         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
16792
16793         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
16794
16795         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
16796
16797         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
16798
16799         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
16800
16801         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
16802
16803         * support/regression/ports/ds390/support.c: Use tinibios.
16804
16805         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
16806
16807 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
16808
16809         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
16810         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
16811
16812         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
16813
16814         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
16815
16816 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
16817
16818         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
16819
16820         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
16821         (packRegsForIYUse): Created and optimised.
16822
16823 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
16824
16825         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
16826 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
16827
16828         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
16829
16830         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
16831
16832         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
16833
16834 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16835
16836         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
16837
16838         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
16839
16840 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16841
16842         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
16843
16844         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
16845
16846         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
16847
16848 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
16849
16850         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
16851         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
16852         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
16853
16854         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
16855
16856         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
16857         (genNotFloat): Added.
16858         (genUminusFloat): Added.
16859
16860         * device/lib/z80/Makefile: Added floating pt stubs.
16861
16862         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
16863
16864         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
16865
16866         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
16867
16868 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16869
16870         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
16871
16872         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
16873
16874         * sdcc/support/regression/Makefile: Add port ds390.
16875
16876         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
16877
16878         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
16879
16880         * sdcc/support/regression/ports/ds390/spec.mk: Added.
16881
16882         * sdcc/support/regression/ports/ds390/support.c: Added.
16883
16884         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
16885
16886         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
16887
16888         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
16889
16890 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
16891
16892         * device/include/malloc.h: Added z80 and gbz80 support.
16893
16894         * device/lib/gbz80/heap.s: Added.
16895
16896         * device/lib/z80/heap.s: Added.
16897
16898         * device/lib/malloc.c: Added z80 and gbz80 support.
16899
16900         * support/regression/tests/malloc.c (testMalloc): Added.
16901
16902         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
16903
16904         * support/regression/tests/bug-478094.c: Added.
16905
16906         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
16907
16908 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
16909
16910         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
16911
16912         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
16913
16914         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
16915
16916         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
16917
16918         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
16919
16920 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
16921
16922         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
16923
16924 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
16925
16926         * support/regression/tests/bug-477927.c: Added.
16927
16928         * src/z80/peeph.def: Added minor rules.
16929
16930         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
16931
16932         * src/z80/peeph.def: Added jump optimisation modification.
16933
16934 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
16935
16936         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
16937
16938 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
16939
16940         * support/regression/tests/funptrs.c: Added.
16941
16942 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
16943
16944         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
16945
16946 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
16947
16948         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
16949
16950         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
16951
16952         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
16953         (movLeft2ResultLong): Created.
16954
16955         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
16956         (joinPushes): Added.  Joins two char pushes into a word push.
16957
16958 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
16959
16960         * support/cpp2/Makefile.in (install): Added creation of dest dir.
16961
16962         * support/makebin/Makefile (install): Added creation of dest dir.
16963
16964 2001-10-24 Karl Bongers <karl AT turbobit.com>
16965
16966         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
16967
16968 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
16969
16970         * src/z80/ralloc.c: Turned off faulty pack for one use.
16971
16972         * src/z80/peeph-gbz80.def: Removed redundent restart options.
16973
16974         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
16975
16976 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
16977
16978         * support/regression/Makefile: Improved clean
16979
16980         * support/regression/ports/gbz80/spec.mk: Added clean
16981
16982         * support/regression/ports/host/spec.mk: Added clean
16983
16984         * support/regression/ports/z80/spec.mk: Added clean
16985
16986         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
16987
16988         * support/regression/ports/mcs51/timeout.c: little improvements
16989
16990 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
16991
16992         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
16993
16994         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
16995
16996         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
16997
16998 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
16999
17000         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
17001
17002         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
17003
17004 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
17005         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
17006
17007         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
17008
17009         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
17010
17011         * src/mcs51/main.c (_linkCmd): Added bin path to command.
17012
17013         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
17014
17015         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
17016
17017         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
17018
17019         * support/regression/tests/longor.c: Added.
17020
17021 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
17022
17023         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
17024
17025         * as/mcs51/aslink.h: define PATH_MAX
17026
17027         * as/mcs51/asm.h: define PATH_MAX
17028
17029         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
17030
17031         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
17032
17033         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
17034
17035         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
17036
17037         * src/SDCCglobl.h: define PATH_MAX
17038
17039         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
17040
17041         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
17042
17043 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
17044
17045         * src/z80/gen.c (gencjneshort): Fixed
17046
17047         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
17048
17049 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
17050
17051         * support/regression/tests/bug-469671.c: Added.
17052
17053         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
17054
17055 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
17056
17057         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
17058
17059         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
17060
17061 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
17062
17063         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
17064
17065         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
17066
17067         * src/device/lib/_mullong.c : removed hint: nooverlay bug
17068
17069         * src/device/lib/_divuint.c : removed hint: nooverlay bug
17070
17071         * src/device/lib/_divulong.c: removed hint: nooverlay bug
17072
17073         * src/device/lib/_moduint.c : removed hint: nooverlay bug
17074
17075         * src/device/lib/_modulong.c: removed hint: nooverlay bug
17076
17077 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
17078
17079         * 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.
17080
17081         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
17082
17083         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
17084
17085 2001-10-07    <johan AT FRIJA>
17086
17087         * device/lib/gets.c (gets): fixed the return value.
17088
17089 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
17090         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
17091
17092         * 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.
17093
17094         * 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.
17095
17096         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
17097
17098         * src/pic/gen.c: Removed Safe_strdup.
17099
17100         * configure.in: Added option to enable libgc support.
17101
17102         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
17103         (bitVectUnion): Optimised.
17104         (bitVectIntersect): Optimised.
17105         (bitVectBitsInCommon): Optimised.
17106         (bitVectCplAnd): Optimised.
17107
17108         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
17109
17110 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
17111
17112         * src/SDCCmain.c: distinguish between assembler debug and plain options
17113
17114         * src/avr/main.c:   remove standard assembler options
17115
17116         * src/ds390/main.c: remove standard assembler options
17117
17118         * src/mcs51/main.c: remove standard assembler options
17119
17120         * src/port.h: removed "PENDING" comment
17121
17122 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
17123
17124         * src/device/lib/_mulint.c  : new, with assember functions
17125
17126         * src/device/lib/_mullong.c : new, with assember functions
17127
17128         * src/device/lib/_divuint.c : with assember functions
17129
17130         * src/device/lib/_divsint.c : with assember functions
17131
17132         * src/device/lib/_divulong.c: with assember functions
17133
17134         * src/device/lib/_divslong.c: with assember functions
17135
17136         * src/device/lib/_moduint.c : with assember functions
17137
17138         * src/device/lib/_modsint.c : with assember functions
17139
17140         * src/device/lib/_modulong.c: with assember functions
17141
17142         * src/device/lib/_modslong.c: with assember functions
17143
17144         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
17145
17146         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
17147
17148         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
17149                                       replaced _mululong.c and _mulslong.c by _mullong.c
17150
17151 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
17152
17153         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
17154
17155 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
17156
17157         * src/SDCCglue.c: test, if win32api is available for MINGW
17158
17159 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
17160
17161         * src/SDCCsymt.c: no more _modifier in printTypeChain()
17162         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
17163         * support/regression/ports/gbz80/spec.mk: removed GENERIC
17164         * support/regression/ports/host/spec.mk: removed GENERIC
17165         * support/regression/ports/mcs51/spec.mk: removed GENERIC
17166         * support/regression/ports/z80/spec.mk: removed GENERIC
17167
17168 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
17169
17170         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
17171
17172         * support/regression/tests/bug-467035.c: Created.
17173
17174 2001-10-01    <johan AT FRIJA>
17175
17176         * src/SDCC.y: fixed bug #466586 part 1
17177
17178 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
17179
17180         * SDCCicode.c: z80 has no generic pointers
17181         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
17182
17183 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
17184
17185         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
17186
17187 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
17188
17189         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
17190
17191         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
17192
17193 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
17194
17195         * configure.in: Fixed up so that ucsim is only configured once.
17196
17197         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
17198
17199         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
17200         (getPathDifference): As above.
17201
17202         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
17203
17204         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
17205
17206 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
17207         * .version: Updated to 2.3.1
17208
17209         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
17210         Added copyright header.
17211
17212         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
17213         (assemble): Added support for macro based assembler commands.
17214         (linkEdit): Added support for macro based linker commands.
17215         (preProcess): Changed the pre-processor to use macros.
17216         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
17217         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
17218
17219         * device/lib/z80/crt0.s: Added module name for debugging.
17220
17221 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
17222
17223         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
17224
17225         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
17226
17227         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
17228
17229         * src/Makefile.in: Added SDCCmacro and SDCCutil
17230
17231 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
17232
17233         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
17234
17235 2001-09-16    <johan AT FRIJA>
17236
17237         * 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.
17238
17239 2001-09-15    <johan AT FRIJA>
17240
17241         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
17242         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
17243
17244 2001-09-11    <johan AT FRIJA>
17245
17246         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
17247
17248 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
17249
17250         * support/regression/tests/bug-460444.c: Added test case.
17251
17252         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
17253         (genCast): Added justification for all of the asserts.
17254
17255 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
17256
17257         * support/regression/support.c: _xdata replaced by xdata
17258
17259         * support/regression/spec.mk: removed _generic
17260
17261 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
17262
17263         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
17264
17265         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
17266         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
17267
17268         * src/z80/peeph.def: Added a rule to optimise shift then compare.
17269
17270         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
17271
17272         * support/regression/tests/bug-460010.c: Added test case.
17273
17274         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
17275
17276 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
17277
17278         * support/regression/Makefile: inter-port-clean adjusted for mcs51
17279
17280         * support/regression/testfwk.c: removed workaround for bug #436344
17281
17282         * support/regression/tests/bp.c: use less memory with mcs51
17283
17284         * support/regression/tests/bug-441448.c: use less memory
17285
17286         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
17287
17288         * support/regression/collate-results.py: typo
17289
17290 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
17291
17292         * support/regression/tests/fetchoverlap.c: Added new test case.
17293
17294         * support/regression/tests/bp.c: Added new test case.
17295
17296         * support/regression/tests/bug-448984.c: Added new test case.
17297
17298         * support/regression/tests/pow2shifts.c: Added new test case.
17299
17300         * src/z80/gen.c: Turned off the noise it normally generates for the release.
17301         (genlshTwo): Fixed right shift for count > 8.
17302
17303         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
17304
17305 2001-09-08    <johan AT FRIJA>
17306
17307         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
17308
17309 2001-09-07    <johan AT FRIJA>
17310
17311         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
17312
17313         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
17314
17315 2001-09-06    <johan AT FRIJA>
17316
17317         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
17318         * bernhard noted me at this: "() equals to (void)" (1.38)
17319
17320 2001-09-05    <johan AT FRIJA>
17321
17322         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
17323
17324 2001-09-04    <johan AT FRIJA>
17325
17326         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
17327
17328
17329 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
17330
17331         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
17332
17333 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
17334
17335         * link/z80/aslink.h: Fixed path for PATH_MAX
17336
17337 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
17338
17339         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
17340
17341         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
17342
17343         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
17344
17345         * 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.
17346
17347 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
17348
17349         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
17350         (genCmp): Fixed up genCmp for the GB with longs.
17351
17352         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
17353
17354         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
17355
17356         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
17357
17358         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
17359
17360 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
17361
17362         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
17363
17364 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
17365
17366         * 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.
17367
17368         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
17369
17370 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
17371
17372         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
17373
17374         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
17375
17376 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
17377
17378         * sim/ucsim/configure:    little improvement of Cygwin-detection
17379         * sim/ucsim/configure.in: little improvement of Cygwin-detection
17380         * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
17381         * support/regression/tests/bug-221100.c: small changes for mcs51
17382         * support/regression/tests/bug-221168.c: small changes for mcs51
17383         * support/regression/tests/bug-227710.c: small changes for mcs51
17384         * support/regression/tests/staticinit.c: small changes for mcs51
17385         * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
17386         * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
17387         * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
17388
17389 $Revision$