* .version, doc/sdccman.lyx: bumped sdcc version to 2.8.6
[fw/sdcc] / ChangeLog
1 2009-01-04 Borut Razem <borut.razem AT siol.net>
2
3         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.6
4           due changes in sdcc asxxxx linkers - it sholud be done 2 days ago :(
5         * doc/README.txt: updated John Hartman's e-mail address
6
7 2009-01-04 Philipp Klaus Krause <pkk AT spth.de>
8
9         * src/z80/peep.c:
10           Implemented RFE #2484693.
11         * src/z80/peeph-z80.def:
12           Some peephole improvements.
13
14 2009-01-03 Borut Razem <borut.razem AT siol.net>
15
16         * as/link/lklibr.c:
17           fixed warning: 'ret' may be used uninitialized in this function
18
19 2009-01-02 Borut Razem <borut.razem AT siol.net>
20
21         * as/link/lklib.c, as/link/lksdcclib.c, as/link/lklibr.h,
22           as/link/getline.[ch], as/link/lkrel.[ch]: added,
23           made support for differnet library formats more flexible,
24           preparation for support of ar format
25         * as/link/lklibr.c, as/link/z80/Makefile.in,
26           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
27           as/link/hc08/link_hc08.dsp, as/link/hc08/Makefile.in,
28           as/link/mcs51/aslink.dsp, as/link/mcs51/Makefile.in,
29           as/link/hc08/lkelf.c, as/link/aslink.h:
30           made support for differnet library formats more flexible,
31           preparation for support of ar format
32
33 2009-01-01 Borut Razem <borut.razem AT siol.net>
34
35         * as/link/asxxxx_config.h.in:
36           fixed warning: extra tokens at end of #endif directive
37         * src/z80/peep.c:
38           fixed warning: suggest parentheses around && within ||
39         * device/lib/Makefile.in: allow whitespaces at the end of lines in
40           ports.build, in order to make it work on cygwin - it seems to be a
41           bug in cygwin grep: CR is not treated as part of end-of-line
42
43 2008-12-31 Borut Razem <borut.razem AT siol.net>
44
45         * configure, configure.in, config.dsp, config_vc.awk,
46           as/link/asxxxx_config.h.in, as/link/hc08/lkelf.c, as/link/aslink.h,
47           as/link/hc08/Makefile.in, as/link/mcs51/Makefile.in:
48           introduced asxxxx_config.h.in
49
50 2008-12-30 Philipp Klaus Krause <pkk AT spth.de>
51
52         * src/z80/gen.c,
53           src/z80/peeph-z80.def:
54           Minor addition improvement.
55
56 2008-12-30 Raphael Neider <rneider AT web.de>
57
58         * as/link/hc08/lkelf.c, as/link/lkaomf51.c, as/link/lklibr.c,
59           as/link/z80/lkgb.c, debugger/mcs51/cmd.c, sim/ucsim/utils.cc,
60           src/SDCCasm.c, support/Util/dbuf_string.c, support/cpp/c-ppoutput.c,
61           support/cpp/libcpp/lex.c, support/cpp/libcpp/macro.c,
62           support/librarian/sdcclib.c, support/makebin/makebin.c:
63           partially revert changes from r5293..r5295
64
65 2008-12-29 Philipp Klaus Krause <pkk AT spth.de>
66
67         * src/z80/peeph-z80.def:
68           Minor peephole improvement.
69
70 2008-12-29 Raphael Neider <rneider AT web.de>
71
72         * src/pic/pcode.c (insertBankSel, FixRegisterBanking): emit
73           incorrectly discarded BANKSELs
74
75 2008-12-29 Philipp Klaus Krause <pkk AT spth.de>
76
77         * support/regression/tests/memory.c:
78           Added simple test for memset(), memcpy() and memmove()
79
80 2008-12-29 Borut Razem <borut.razem AT siol.net>
81
82         * sdcc/support/scripts/sdcc.nsi: removed $INSTDIR\lib\src\z80\*.c
83
84 2008-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
85
86         * src/mcs51/peeph.def (177.e): replaced notVolatile(%3) with
87           operandsNotRelated(%1 %3), had to change (a)r%1 to (a)%1 for this to work
88           (177.j): added new rule
89         * src/SDCCsymt.h: added RESULT_TYPE_GPTR
90         * src/SDCCast.c (processParms): use RESULT_TYPE_GPTR for generic ptr parms,
91           (decorateType CAST): propagate storage class to generic pointer results
92
93 2008-12-27 Philipp Klaus Krause <pkk AT spth.de>
94
95         * device/lib/z80/string.c,
96           device/lib/z80/printf.c,
97           device/lib/z80/mul.s:
98           z80 library cleanup
99         * src/z80/gen.c:
100           Fixed code generation bug exposed by builtin memcpy().
101
102 2008-12-27 Philipp Klaus Krause <pkk AT spth.de>
103
104         * device/lib/_memcpy.c:
105           fixed conflict with builtin memcpy()
106
107 2008-12-26 Borut Razem <borut.razem AT siol.net>
108
109         * support/librarian/sdcclib.c:
110           fixed bug 2466950: "sdcclib broken"
111           by removing fgets return value check
112
113 2008-12-26 Philipp Klaus Krause <pkk AT spth.de>
114         * src/z80/main.c,
115           src/z80/gen.c,
116           device/include/string.h: Implemented RFE #1914254
117
118 2008-12-26 Philipp Klaus Krause <pkk AT spth.de>
119         * device/lib/z80/Makefile.in,
120           device/lib/Makefile.in,
121           device/lib/z80/memmove.s: Implemented RFE #1914256
122
123 2008-12-26 Philipp Klaus Krause <pkk AT spth.de>
124
125         * src/z80/peeph-z80.def: fixed a bug in peephole 0zf
126         * src/z80/peep.c: improved checks for unused data
127         * src/z80/gen.c,
128           src/z80/main.c: Implemented RFE #1899189
129
130 2008-12-25 Borut Razem <borut.razem AT siol.net>
131
132         * support/regression/Makefile.in:
133           add -I$(INC_DIR) to SDCCFLAGS only if INC_DIR is defined
134
135 2008-12-25 Philipp Klaus Krause <pkk AT spth.de>
136
137         * src/z80/peeph-z80.def: minor peephole improvements
138
139 2008-12-21 Borut Razem <borut.razem AT siol.net>
140
141         * support/librarian/sdcclib.c: fixed build failure on Mac OS X
142           due to redefinition of symbol __assert
143           sdcclib.c:53:1:warning: "__assert" redefined
144           /Xcode2.5/SDKs/MacOSX10.4u.sdk/usr/include/assert.h:80:1:
145           warning: this is the location of the previous definition
146
147 2008-12-20 Raphael Neider <rneider AT web.de>
148
149         * debugger/mcs51/break.c, debugger/mcs51/cmd.c,
150           debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
151           support/cpp/libcpp/macro.c: fix format string errors
152
153         * sim/ucsim/s51.src/timer2.cc: add clarifying parens
154
155         * src/pic/device.c: partial rewrite using strtok,
156           quieten compiler warnings, adopt SDCC coding style
157
158         * as/link/hc08/lkelf.c, as/link/lkaomf51.c, as/link/lklibr.c,
159           as/link/z80/lkgb.c, as/z80/asout.c, debugger/mcs51/cmd.c,
160           sim/ucsim/utils.cc, src/SDCCasm.c, support/Util/dbuf_string.c,
161           support/cpp/c-ppoutput.c, support/cpp/libcpp/lex.c,
162           support/librarian/sdcclib.c, support/makebin/makebin.c:
163           quieten most compiler warnings
164
165         * sim/ucsim/avr.src/arith_inst.cc: quieten compiler warnings,
166           probably fix operator precedence bug
167
168         * doc/clean.mk: quieten rm if no .lyx is present
169
170 2008-12-19 Borut Razem <borut.razem AT siol.net>
171
172         * doc/sdccman.lyx, doc/random-notes.txt, doc/avr/avr_design.txt,
173           doc/TININative.txt, doc/macro-sys-design.txt, doc/libdoc.txt,
174           doc/README.txt, doc/test_suite_spec.lyx:
175           applied patch 2446381: Dcoumentation spelling correcitons
176           thanks to Steven Borley
177
178 2008-12-16 Raphael Neider <rneider AT web.de>
179
180         * device/include/pic/pic12f629.h,
181           device/include/pic/pic12f675.h,
182           device/lib/pic/libdev/pic12f629.c,
183           device/lib/pic/libdev/pic12f675.c: consolidated, added TRISIO bits
184
185 2008-12-14 Borut Razem <borut.razem AT siol.net>
186
187         * doc/sdccman.lyx, cdbfileformat.lyx, test_suite_spec.lyx:
188           converted to LyX 1.5.7 (\lyxformat 276) format
189
190 2008-12-07 Borut Razem <borut.razem AT siol.net>
191
192         * support/regression/tests/bitfields.c:
193           added test case for bug #2366757
194
195 2008-12-07 Raphael Neider <rneider AT web.de>
196
197         * src/pic16/glue.c (pic16_printIvalBitFields): prevent
198           NULL pointer dereference, closes #2366757
199
200 2008-11-25 Raphael Neider <rneider AT web.de>
201
202         * device/include/pic16/pic16devices.txt,
203           sdcc/src/pic16/device.c,
204           sdcc/src/pic16/device.h: implicitly disable XINST
205           whenever CONFIG4L is set via an additional optional
206           argument to the configword directive in pic16devices.txt
207
208 2008-11-24 Raphael Neider <rneider AT web.de>
209
210         * device/lib/pic16/configure.ac,
211           device/lib/pic16/Makefile.common: fixed quoting issues
212
213         * device/lib/pic16/configure,
214           device/lib/pic16/debug/Makefile.in,
215           device/lib/pic16/libc/Makefile.in,
216           device/lib/pic16/libdev/Makefile.in,
217           device/lib/pic16/libio/Makefile.in,
218           device/lib/pic16/libm/Makefile.in,
219           device/lib/pic16/libsdcc/Makefile.in,
220           device/lib/pic16/Makefile.in,
221           device/lib/pic16/startup/Makefile.in: regenerated
222
223         * src/pic16/main.c (_pic16_finaliseOptions): revert to
224           variant of r5216
225
226 2008-11-24 Raphael Neider <rneider AT web.de>
227
228         * src/pic16/main.c (_pic16_finaliseOptions): do not quote the
229           argument of --asm= or --link= to allow for
230           --asm="sh script --options", the user can double quote the
231           argument if needed: --asm="'c:/program files/gpasm' -q",
232           also fix some potential buffer overflows
233
234 2008-11-19 Borut Razem <borut.razem AT siol.net>
235
236         * doc/sdccman.lyx:
237           fixed 2314467: sdccman.lyx: fix "--" in command line parameters
238           thanks Mauro Giachero
239
240 2008-11-16 Borut Razem <borut.razem AT siol.net>
241
242         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.5
243         * doc/sdccman.lyx: documented fixed unnamed bit-field initialization
244
245 2008-11-15 Borut Razem <borut.razem AT siol.net>
246
247         * src/pic16/glue.c, src/SDCC.y, src/SDCCast.c, src/SDCCglue.c,
248           src/SDCCsymt.c, src/SDCCsymt.h:
249           fixed RFE #2291335 : Unnamed bit-field initialization
250         * support/regression/tests/bitfields.c:
251           added test case for RFE #2291335
252         * support/regression/tests/bug-1981238.c:
253           don't initialize unnamed bit-fields
254
255 2008-11-11 Raphael Neider <rneider AT web.de>
256
257         * device/include/pic16/pic18f25j10.h,
258           device/include/pic16/pic18f45j10.h: remove useless boilerplate
259
260         * device/include/pic16/adc.h,
261           device/lib/pic16/libio/adc/adcbusy.c,
262           device/lib/pic16/libio/adc/adcclose.c,
263           device/lib/pic16/libio/adc/adcconv.c,
264           device/lib/pic16/libio/adc/adcopen.c,
265           device/lib/pic16/libio/adc/adcread.c,
266           device/lib/pic16/libio/adc/adcsetch.c: generalized, documented,
267           and fixed ADC routines to work for more target devices,
268           incorporates patch #2036130 by Nick Materer
269
270 2008-11-10 Steven Borley <steven.borley AT partnerelectronics.com>
271
272         * device/include/ctype.h,
273         * device/include/ds400rom.h,
274         * device/include/ds80c390.h,
275         * device/include/float.h,
276         * device/include/math.h,
277         * device/include/serial.h,
278         * device/include/stdbool.h,
279         * device/include/tinibios.h: replaced non-C89 '//' with '/* */',
280           patch 2195343
281         * device/include/mcs51/C8051F336.h,
282         * device/include/mcs51/C8051T600.h,
283         * device/include/mcs51/C8051T610.h,
284         * device/include/mcs51/C8051T630.h: new, added, patch 2183334
285           (svn commit by Maarten Brock <sourceforge.brock AT dse.nl>)
286
287 2008-11-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
288
289         * device/include/mcs51/P89LPC922.h: fixed #2255989, thanks kubi57
290
291 2008-11-10 Raphael Neider <rneider AT web.de>
292
293         * device/lib/pic16/libdev/mkmk.sh: obey pics.all
294         * device/lib/pic16/libio/mkmk.sh: properly match whole lines in
295           .ignore files, fixes IO libs for 18f242, 18f252, 18f442, and 18f452
296           (patch by Nick Materer, #2253980)
297
298         * device/lib/pic16/libio/adc.ignore,
299           device/lib/pic16/libio/i2c.ignore,
300           device/lib/pic16/libio/usart.ignore,
301           device/lib/pic16/pics.all: updated to build more device libs
302
303         * device/lib/pic16/libdev/Makefile.am,
304           device/lib/pic16/libdev/Makefile.in,
305           device/lib/pic16/libio/Makefile.am,
306           device/lib/pic16/libio/Makefile.in: regenerated
307
308         * src/pic16/device.c (pic16_dump_usection): fixed output of multiple
309           names per memory location, applied SDCC style to more functions
310
311 2008-11-09 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
312
313         * device/include/mcs51/p89lpc933_4.h: new NXP header file
314         * device/include/mcs51/p89lpc935_6.h: new NXP header file
315         * device/include/mcs51/p89v66x.h: minor changes
316           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
317
318 2008-11-09 Raphael Neider <rneider AT web.de>
319
320         * device/include/pic/pic14devices.txt: fixed memory description for
321           12f629 and 12f675, closes #2236240
322
323 2008-11-06 Borut Razem <borut.razem AT siol.net>
324
325         * src/SDCCmain.c: #fixed bug 2224960: sdcc -MM no working correctly
326           pass system include paths with -isystem to sdcpp
327         * src/SDCCglue.c, src/pic/glue.c, src/pic16/glue.c: removed unneeded
328           functions (closePipes), (closeTmpFiles) and (rmTmpFiles)
329
330 2008-11-02 Raphael Neider <rneider AT web.de>
331
332         * doc/sdccman.lyx: updated the sections on the library build process
333           and on how to add support for new devices, and documented known
334           problems with the extended instruction set including a workaround
335
336 2008-11-01 Raphael Neider <rneider AT web.de>
337
338         * device/include/pic16/adc.h,
339           device/include/pic16/pic16devices.txt,
340           device/include/pic16/pic18f2410.h,
341           device/include/pic16/pic18f2510.h,
342           device/include/pic16/pic18f2515.h,
343           device/include/pic16/pic18f2610.h,
344           device/include/pic16/pic18f4410.h,
345           device/include/pic16/pic18f4510.h,
346           device/include/pic16/pic18f4515.h,
347           device/include/pic16/pic18f4610.h,
348           device/include/pic16/pic18fregs.h,
349           device/lib/pic16/libdev/Makefile.am,
350           device/lib/pic16/libdev/Makefile.in,
351           device/lib/pic16/libdev/pic18f2410.c,
352           device/lib/pic16/libdev/pic18f2510.c,
353           device/lib/pic16/libdev/pic18f2515.c,
354           device/lib/pic16/libdev/pic18f2610.c,
355           device/lib/pic16/libdev/pic18f4410.c,
356           device/lib/pic16/libdev/pic18f4510.c,
357           device/lib/pic16/libdev/pic18f4515.c,
358           device/lib/pic16/libdev/pic18f4610.c,
359           device/lib/pic16/libio/Makefile.am,
360           device/lib/pic16/libio/Makefile.in,
361           device/lib/pic16/pics.all: added support for 18f[24][456]10
362           and 18f[24]515 devices
363         * doc/sdccman.lyx: updated list of supported PIC16 devices
364
365         * src/pic/glue.c, src/pic/pcode.c, src/pic/pcodeflow.c,
366           src/pic16/glue.c, src/pic16/pcode.c, src/pic16/pcodeflow.c,
367           src/xa51/gen.c: avoid compiler warnings
368         * support/scripts/inc2h-pic16.pl: removed trailing whitespace
369
370 2008-10-22 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
371
372         * device/include/mcs51/p89v66x.h: NXP header file
373         * device/include/mcs51/p89c66x.h: fixed an SBIT definition
374           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
375
376 2008-10-14 Raphael Neider <rneider AT web.de>
377
378         * device/lib/pic16/libdev/Makefile.am,
379           device/lib/pic16/libio/Makefile.am: enable building libraries for
380           18f2321, 18f4321, 18f2523, 18f4620, 18f66j60, 18f66j65, 18f67j60,
381           18f86j60, 18f86j65, 18f87j60, 18f96j60, 18f96j65, and 18f97j60
382         * device/lib/pic16/libdev/Makefile.in,
383           device/lib/pic16/libio/Makefile.in: regenerated
384
385 2008-10-14 Raphael Neider <rneider AT web.de>
386
387         * device/include/pic16/pic18f2450.h,
388           device/include/pic16/pic18f4450.h,
389           device/lib/pic16/libdev/pic18f2450.c,
390           device/lib/pic16/libdev/pic18f4450.c,
391           device/include/pic16/adc.h,
392           device/include/pic16/pic16devices.txt,
393           device/include/pic16/pic18fregs.h,
394           device/lib/pic16/libdev/Makefile.am,
395           device/lib/pic16/libdev/Makefile.in,
396           device/lib/pic16/libio/Makefile.am,
397           device/lib/pic16/libio/Makefile.in,
398           device/lib/pic16/pics.all: added 18f2450 and 18f4450, closes #1844525
399
400         * device/lib/pic16/libsdcc/stack/stack.S: there is no need to pin the
401           stack to a fixed location, relax it to automatically work with all
402           but the smallest devices (256 byte RAM devices need #pragma stack)
403
404 2008-10-09 Maarten Brock <sourceforge.brock AT dse.nl>
405
406         * debugger/mcs51/break.c: bugfix from patch 1989966, thanks Risto Huotari
407         * debugger/mcs51/simi.c: bugfix from patch 1989972, thanks Risto Huotari
408         * device/lib/_strcspn.c: fixed bug 2140931
409
410 2008-10-06 Raphael Neider <rneider AT web.de>
411
412         * device/include/pic16/stdio.h,
413           device/lib/pic16/libc/stdio/putchar.c: putchar should not be
414           declared __naked for convenience, named all arguments
415         * device/lib/pic16/libc/stdio/strmgpsim.c,
416           device/lib/pic16/libc/stdio/strmmssp.c,
417           device/lib/pic16/libc/stdio/strmusart.c: cosmetic changes
418
419         * src/pic16/pcode.c (createReachingDefinitions): avoid segfault on
420           empty __naked functions,
421         * (pCodeLabelDestruct, pic16_unlinkpCode, pic16_pCodeUnlink): fix
422           corner cases (unlink first/last pCode in list), reuse more code
423
424 2008-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
425
426         * src/ds390/main.c (_ds390_genInitStartup): added
427         * src/SDCCpeeph.c (getPatternVar): new, added,
428           (labelInRange): fixed bug 2115959
429         * src/mcs51/peeph.def (rules 193.x to 198.x): check for labelInRange
430         * src/SDCCicode.h: added newiTempOperand
431         * src/SDCCcse.c (algebraicOpts): fixed bug for x*-1,
432           added optimizations for 0/x and x/-1, see also patch 2142900
433         * support/regression/tests/onebyte.c (testMul): added test cases
434
435 2008-09-20 Borut Razem <borut.razem AT siol.net>
436
437         * src/pic16/glue.c:
438           definition of absolute address symbols without initial value,
439           fixed SDCC crash "do not know how to intialize symbol"
440
441 2008-09-16 Maarten Brock <sourceforge.brock AT dse.nl>
442
443         * device/lib/z80/mul.s (__mulsuchar_rrx_s, __muluschar_rrx_s),
444         * device/lib/z80/div.s (__divsuchar_rrx_s, __modsuchar_rrx_s,
445           __divuschar_rrx_s, __moduschar_rrx_s): added mixed signedness versions
446         * device/lib/z80/stubs.s: added stubs for above functions
447         * src/SDCCopt.c (convilong),
448         * src/SDCCsymt.c (initCSupport): fixed bug 1900961
449         * src/SDCCsymt.h (__muldiv): enlarged for mixed signedness
450         * src/z80/main.c (_hasNativeMulFor): fixed bug, I think
451         * support/regression/tests/onebyte.c: enabled all tests for z80
452
453 2008-09-15 Borut Razem <borut.razem AT siol.net>
454
455         * device/include/pic16/stdio.h, device/lib/pic16/libc/stdio/streams.c,
456           device/lib/pic16/libc/stdio/printf.c,
457           device/lib/pic16/libc/stdio/strmusart.c,
458           device/lib/pic16/libc/stdio/printf_tiny.c,
459           device/lib/pic16/libc/stdio/sprintf.c,
460           device/lib/pic16/libc/stdio/strmgpsim.c,
461           device/lib/pic16/libc/stdio/putchar.c,
462           device/lib/pic16/libc/stdio/fprintf.c,
463           device/lib/pic16/libc/stdio/strmmssp.c,
464           device/device/lib/pic16/libc/stdio/vprintf.c,
465           device/lib/pic16/libc/stdio/printf_small.c,
466           device/lib/pic16/libc/stdio/vsprintf.c,
467           device/lib/pic16/libc/stdio/strmputchar.c,
468           device/lib/pic16/libc/Makefile.am,
469           device/lib/pic16/libc/Makefile.in:
470           *printf now returns int, puchar.c moved from stdlib to stdio,
471           *printf format parameter type changed from char * to const char *,
472           added GNU link excetion text to library source files,
473           applyed GNU coding style, removed useless svn ids,
474           added BINARY_SPECIFIER macro re-enables the use of the removed 'b'
475           binary specifier: "%b", "%hb" and "%lb"
476         * device/lib/pic16/libc/stdio/vfprintf.c:
477           applied patch #2044424: PIC16: vfprintf
478           thanks Mauro Giachero
479         * support/regression/tests/bug1057979.c:
480           removed old pic16 sprintf specifics
481         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.4
482         * doc/sdccman.lyx: documented 'b' binary format specifier removal
483
484 2008-09-15 Raphael Neider <rneider AT web.de>
485
486         * src/pic16/device.c (pic16_dump_usection): force udata sections
487           into the addressable range (0..0xFFF), workaround for a gpsim
488           bug preventing simulation of regtest bug1750318
489         * src/pic16/ralloc.c (deassignLRs): cosmetic changes,
490           (serialRegAssign): fixed regtest bug-971834,
491           (pic16_packRegisters): avoid null-pointer dereference
492
493 2008-09-14 Raphael Neider <rneider AT web.de>
494
495         * src/pic16/gen.c, src/pic16/ralloc.c: use
496           SYM_SPIL_LOC/SPIL_LOC macros, no functional changes
497         * src/pic16/ralloc.c (rematStr): reimplemented, fixes #1818857
498
499 2008-09-12 Borut Razem <borut.razem AT siol.net>
500
501         * support/regression/fwk/testfwk.h:
502           define pdata as data for pic16 target
503           thanks Mauro Giachero
504
505 2008-09-11 Borut Razem <borut.razem AT siol.net>
506
507         * support/regression/tests/bug-221100.c, support/regression/shifts.c,
508           support/regression/absolute.c:
509           applied patch #2105615: Some PIC16 testcase fixlets
510           thanks Mauro Giachero
511
512 2008-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
513
514         * src/z80/gen.c (genCmpGt, genCmpLt): fixed bug 2094505
515         * support/regression/tests/bug2094505.c: new, added
516
517 2008-09-07 Borut Razem <borut.razem AT siol.net>
518
519         * src/SDCCglue.c, src/SDCCast.c:
520           fixed throw of "excess elements" warning for char arrays
521         * support/regression/tests/nullstring.c:
522           disable warning about excess elements in array of chars initializer
523
524 2008-09-07 Maarten Brock <sourceforge.brock AT dse.nl>
525
526         * as/z80/aslist.c (lstsym): changed old K&R to ANSI
527         * src/SDCCicode.c (geniCodeCritical): fixed bug for hc08
528         * src/z80/gen.c (genCritical, genEndCritical): fixed bug 2077267
529         * support/regression/tests/bug2077267.c: new, added
530
531 2008-09-05 Raphael Neider <rneider AT web.de>
532
533         * configure.in, Makefile.common.in: add support for ccache,
534           remove spurious $VERSION output, detect doc-tools even without
535           --enable-doc to facilitate later manual doc-builds, minor cleanup
536         * configure: regenerated
537
538         * doc/Makefile.in: quieten pdflatex, makeindex, and latex2html,
539           avoid races in parallel VPATH builds
540         * doc/clean.mk: remove .lyx files in the builddir for VPATH builds
541         * doc/sdccman.lyx: mention --without-ccache configure option
542
543 2008-09-01 Raphael Neider <rneider AT web.de>
544
545         * src/pic16/gen.c (pic16_derefPtr): handle CPOINTERs as well
546         * (genConstPointerGet): fix reading bitfields from __code space
547         * src/pic16/glue.c (pic16_printIvalBitFields): correctly mask
548           bitfield initializers (fix regression test bug1856409.c)
549         * (pic16_printIvalCharPtr,pic16_printIvalPtr): generalized to support
550           arbitrary sizes
551
552 2008-08-31 Raphael Neider <rneider AT web.de>
553
554         * src/pic16/gen.c (genAssign): removed useless compiler output
555         * (genPointerGet,genPointerSet,genCast),
556           src/pic16/glue.c (pic16_printGPointerType):
557           also handle PPOINTERs just to avoid spurious asserts
558         * (pic16_printIvalType,pic16_printIvalBitFields):
559           generalized to arbitrary type/bitfield sizes, allows compilation of
560           regression test bug-1981238.c
561         * (pic16_printIvalChar): fix regression test structflexarray.c
562         * (pic16_printIvalArray): avoid SIGSEGV on uninitialized strings
563           in initialized structs and fix #1843745
564         * (pic16_printIvalStruct): always output initializers for all fields,
565           even those not explicitly given, fixes zeropad.c regression test
566         * (pic16_printIvalUnion): fix union initializers (bug1426356.c,
567           #2073635, #1567098, and #1485812)
568         * src/pic16/main.c (_pic16_keywords): remove unsupported 'pdata'
569
570 2008-08-31 Borut Razem <borut.razem AT siol.net>
571
572         * support/regression/tests/bug-895992.c,
573           support/regression/tests/onebyte.c:
574           enabled pic16 regression testing since the bugs
575           1511794: pic16: regression test bug-895992.c fails
576           1444425: onebyte.c regression tes fails on pic16
577           are fixed, probably by fixing
578           2048464: PIC16: fix genUminus - addresses not.c regression test
579         * src/SDCCsymt.c, src/SDCCglue.c,
580           support/regression/tests/bug-1981238.c:
581           applied patch 2076664: fix #1981238 + SIGSEGV in SDCCGlue.c
582           thanks to RvS
583
584 2008-08-30 Borut Razem <borut.razem AT siol.net>
585
586         * support/cpp/libcpp/files.c: SDCPP synchronized with GCC CPP
587           release version 4.3.2
588
589 2008-08-24 Raphael Neider <rneider AT web.de>
590
591         * device/lib/pic16/configure, device/lib/pic16/configure.ac:
592           always use the sdcc from the current build tree (ignore $CC from
593           the environment, fixes compile farm builds)
594         * device/lib/Makefile.in: rename .a into .lib for compatibility,
595           remove more build products from install directory
596         * sdcc/src/pic16/main.c (_pic16_linkEdit,_pic16_finaliseOptions)
597         * sdcc/support/scripts/sdcc.nsi: revert to .lib extension for libs
598
599 2008-08-24 Borut Razem <borut.razem AT siol.net>
600
601         * src/SDCC.y: applied patch
602           2050245: Fix # 1963382
603           for bug
604           1963382: Listing File - C file comment is incorrect
605           thanks to RvS
606
607 2008-08-23 Borut Razem <borut.razem AT siol.net>
608
609         * src/pic16/gen.c: applied patch
610           2048464: PIC16: fix genUminus - addresses not.c regression test
611           thanks Mauro Giachero
612
613 2008-08-22 Borut Razem <borut.razem AT siol.net>
614
615         * device/lib/pic16/configure, device/lib/pic16/configure.ac,
616           src/pic16/main.c: allow spaces in gpasm and gplink paths
617
618 2008-08-15 Philipp Klaus Krause <pkk AT spth.de>
619
620         * src/z80/peep.c,
621         * src/z80/peeph-z80.def: minor peephole improvement
622
623 2008-08-15 Raphael Neider <rneider AT web.de>
624
625         * src/z80/gen.c (_vemit2): suppress compiler warning
626
627         * src/pic/*.[ch]: make proper use of header files and avoid
628           ad-hoc extern declarations, mark module-local helpers 'static',
629           removed dead/replaced code, no functional changes
630         * src/pic16/pcode.c: disentangled from pic14 backend
631
632 2008-08-14 Philipp Klaus Krause <pkk AT spth.de>
633
634         * src/z80/gen.c: fixed #2051348
635         * support/regression/tests/bug-2051348.c: regression test for #2051348
636
637 2008-08-10 Raphael Neider <rneider AT web.de>
638
639         * configure.in,
640         * Makefile.common.in: export PACKAGE for $docdir,
641           fixes #1957036, avoid some "underquoted definition" warnings
642         * configure: regenerated
643
644 2008-08-10 Raphael Neider <rneider AT web.de>
645
646         * device/lib/pic16/**: build pic16 library using autotools for
647           improved dependency tracking
648
649         * device/lib/Makefile.in,
650         * src/pic16/main.c,
651         * support/scripts/sdcc.nsi: adapt to changes in filenames (s/.lib/.a/)
652
653 2008-08-10 Raphael Neider <rneider AT web.de>
654
655         * src/pic/pcode.c (ReuseReg): do not overlay the registers used for
656           local variables if --nooverlay is given, workaround for #2023121
657
658 2008-08-08 Raphael Neider <rneider AT web.de>
659
660         * src/pic16/genarith.c (genAddLit): fix structure access (#1888004)
661
662 2008-08-08 Raphael Neider <rneider AT web.de>
663
664         * src/pic/pcoderegs.c,
665         * src/pic/pcode.c,
666         * src/pic16/pcode.c: replace own SAFE_snprintf with common SNPRINTF
667
668 2008-08-07 Borut Razem <borut.razem AT siol.net>
669
670         * src/SDCCval.c, src/SDCCmain.c, src/SDCC.lex,
671           device/lib/pic/Makefile.rules, device/lib/ds390/Makefile.in,
672           device/lib/ds400/Makefile.in, device/lib/hc08/Makefile.in,
673           support/cpp/libcpp/lex.c,  doc/sdccman.lyx:
674           applied modified patch 2038174: Add support for binary constants v2
675           thanks Mauro Giachero
676         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.3
677
678 2008-08-04 Raphael Neider <rneider AT web.de>
679
680         * doc/sdccman.lyx,
681         * src/pic16/device.h,
682         * src/pic16/glue.c,
683         * src/pic16/main.c: enable --optimize-goto by default
684
685         * device/lib/pic16/Makefile.common.in: suppress removed option
686
687         * src/pic16/gen.c,
688         * src/pic16/genutils.c: avoid too long relative branches (#2031890)
689
690 2008-07-30 Borut Razem <borut.razem AT siol.net>
691
692         * src/pic16/device.c, src/pic16/glue.c, src/pic16/pcode.c:
693           applied patch 22032433: PIC16: fix constant strings,
694           thanks Mauro Giachero
695
696 2008-07-29 Borut Razem <borut.razem AT siol.net>
697
698         * src/pic16/gen.c: applied patches:
699           2030306: [1/3] PIC16: fix failing rotate.c tests on 16-bit variables,
700           2030307: [2/3] PIC16: fix failing rotate.c tests for 32-bit var (1),
701           2030310: [3/3] PIC16: fix failing rotate.c tests for 32-bit var (2),
702           thanks Mauro Giachero
703
704 2008-07-13 Philipp Klaus Krause <pkk AT spth.de>
705
706         * src/port.h: Fixed typo in comment
707
708 2008-07-12 Philipp Klaus Krause <pkk AT spth.de>
709
710         * src/z80/mappings.i: Implemented RFE #1919415
711         * src/z80/peeph-z80.def: Implemented RFE #1919415, #1861376,
712           #1880202, #1914434, prepared for RFE #1703943
713
714 2008-07-12 Philipp Klaus Krause <pkk AT spth.de>
715
716         * src/z80/peeph.def,
717         * src/z80/peeph-z80.def,
718         * src/z80/peeph-gbz80.def: separate Z80 from GBZ80 peepholes in
719           preparation for Z80 peephole improvements
720
721 2008-06-21 Raphael Neider <rneider AT web.de>
722
723         * device/include/pic16/pic18f66j60.h,
724         * device/include/pic16/pic18f66j65.h,
725         * device/include/pic16/pic18f67j60.h,
726         * device/include/pic16/pic18f86j60.h,
727         * device/include/pic16/pic18f86j65.h,
728         * device/include/pic16/pic18f87j60.h,
729         * device/include/pic16/pic18f96j60.h,
730         * device/include/pic16/pic18f96j65.h,
731         * device/include/pic16/pic18f97j60.h,
732         * device/lib/pic16/libdev/pic18f66j60.c,
733         * device/lib/pic16/libdev/pic18f66j65.c,
734         * device/lib/pic16/libdev/pic18f67j60.c,
735         * device/lib/pic16/libdev/pic18f86j60.c,
736         * device/lib/pic16/libdev/pic18f86j65.c,
737         * device/lib/pic16/libdev/pic18f87j60.c,
738         * device/lib/pic16/libdev/pic18f96j60.c,
739         * device/lib/pic16/libdev/pic18f96j65.c,
740         * device/lib/pic16/libdev/pic18f97j60.c,
741         * device/include/pic16/pic16devices.txt,
742         * device/include/pic16/pic18fregs.h,
743         * device/lib/pic16/pics.all: added new devices
744
745         * device/include/pic16/adc.h,
746         * device/lib/pic16/libio/adc/adcbusy.c,
747         * device/lib/pic16/libio/adc/adcopen.c,
748         * device/lib/pic16/libio/adc/adcsetch.c,
749         * device/lib/pic16/libio/i2c/i2copen.c,
750         * device/lib/pic16/libio/usart/uopen.c: adapted to new devices,
751           all changes from a patch by Anton Strobl
752
753 2008-06-12 Borut Razem <borut.razem AT siol.net>
754
755         * sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/bp.cc,
756           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
757           sim/ucsim/z80.src/z80cl.h, sim/ucsim/z80.src/z80.cc,
758           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
759           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
760           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/uc390.cc,
761           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/uc390cl.h,
762           sim/ucsim/avr.src/avrcl.h, sim/ucsim/avr.src/avr.cc:
763           fixed bug 1990586: s51 simulator, uc::disass() unimplemented
764           by applying the modified patch from Risto Huotari
765
766 2008-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
767
768         * .version,
769         * doc/sdccman.lyx: bumped sdcc version to 2.8.2
770         * src/ds390/gen.c (aopPutUsesAcc, genAddrOf): fixed bug 1015185
771         * src/mcs51/gen.c (genNearPointerGet, genNearPointerSet): fixed bug 1938300
772         * support/regression/tests/bug1938300.c: new, added
773
774 2008-06-03 Maarten Brock <sourceforge.brock AT dse.nl>
775
776         * device/include/asm/ds390/features.h,
777         * device/include/asm/mcs51/features.h,
778         * device/include/mcs51/regc515c.h: inserted LGPL notice
779
780 2008-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
781
782         * device/lib/gbz80/div.s,
783         * device/lib/z80/div.s: fixed bug 1904314 by applying a modified part of
784           patch 1597883, Thanks Robert Ramey
785
786 2008-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
787
788         * src/SDCCast.c (createIvalType, createIvalStruct, createIvalArray,
789           createIvalCharPtr, createIvalPtr, createIval),
790         * src/SDCCval.h
791         * src/SDCCval.c (convertIListToConstList, list2expr): handle incomplete
792           initializers for local auto variables
793         * support/regression/tests/zeropad.c: added testcase for auto initializers
794
795 2008-05-26 Raphael Neider <rneider AT web.de>
796
797         * device/lib/pic16/startup/crt0.c,
798         * device/lib/pic16/startup/crt0i.c,
799         * device/lib/pic16/startup/crt0iz.c: clean up, make use of access bank
800           explicit, fixed curr_entry loop for >= 256 initializer records,
801           removed debug code (write to 0xf7e)
802
803 2008-05-25 Raphael Neider <rneider AT web.de>
804
805         * device/include/pic/pic16f627a.h,
806         * device/include/pic/pic16f628a.h,
807         * device/include/pic/pic16f648a.h: added missing ports
808
809 2008-05-20 Maarten Brock <sourceforge.brock AT dse.nl>
810
811         * device/include/float.h: added __INFINITY
812         * device/lib/_fsadd.c: handle overflows
813         * device/lib/_fsmul.c,
814         * device/lib/_fsdiv.c: use __INFINITY
815         * device/lib/_fseq.c,
816         * device/lib/_fsneq.c: handle -0.0
817         * sim/ucsim/s51.src/uc89c51r.cc,
818         * sim/ucsim/s51.src/uc89c51rcl.h: fixed bug 1385430
819         * sim/ucsim/sim.src/hwcl.h: */* confuses VC
820         * src/mcs51/gen.c (genSend): fixed bug with --xstack
821         * support/regression/ports/mcs51-xstack-auto/spec.mk: print floats
822         * support/regression/tests/snprintf.c: test bug with --xstack
823
824 2008-05-19  Philipp Klaus Krause <pkk AT spth.de>
825
826         * src/SDCCpeeph.c (callFuncByName):
827           Support nested parenthesis in peephole function arguments (#1967300)
828
829 2008-05-19 Raphael Neider <rneider AT web.de>
830
831         * src/pic16/gen.c (pic16_emitpLabel,pic16_emitpLabelFORCE):
832           fixed duplicate labels (#1911325)
833
834 2008-05-19 Raphael Neider <rneider AT web.de>
835
836         * src/regression/empty.c: suppress warning
837         * src/regression/pointer1.c: enabled index_by_pointer()
838         * src/regression/inline.c: now works for pic16 as well
839
840         * src/pic16/device.c: include dbuf declarations
841         * src/pic16/device.h: removed obsolete prototypes
842
843         * src/pic16/gen.c, src/pic16/gen.h: moved generic pointer tags
844         * src/pic16/glue.c: made purely local functions static,
845           (pic16_printGPointerType, pic16_printIvalCharPtr,
846           pic16_printIvalFuncPtr, pic16_printIvalPtr): fixed initialized
847           generic pointers' tags (#1961866)
848
849         * src/pic16/pcode.c (assignValnums): optimize literal assignments
850
851 2008-05-19 Borut Razem <borut.razem AT siol.net>
852
853         * support/scripts/sdcc.nsi: remove uninstall.exe after uninstallation,
854           fixed typo, uninstall include/pic16/pic16devices.txt
855
856 2008-05-18 Borut Razem <borut.razem AT siol.net>
857
858         * support/Utils/dbuf_string.[ch]: added dbuf_chomp(),
859           the buffer is null terminated
860         * src/device/pic16.c:
861           applied modified patch 1965676: Patch for Win32 16 bit PIC
862         * sdcc_vc_in.h: defined YY_NO_UNISTD_H
863
864 2008-05-16 Maarten Brock <sourceforge.brock AT dse.nl>
865
866         * src/SDCC.lex (check_type),
867         * src/SDCC.y (type_specifier2 TYPE_NAME): fixed bug 1925942
868         * as/hc08/clean.mk,
869         * as/mcs51/clean.mk,
870         * as/z80/clean.mk: also clean *.dep
871         * device/lib/pic16/libsdcc/stack/Makefile,
872         * sim/ucsim/libtool: removed as they are rebuild by configure
873         * src/clean.mk: removed izt, so Makefile is not deleted for distclean
874
875 2008-05-13 Maarten Brock <sourceforge.brock AT dse.nl>
876
877         * src/SDCCast.c (fixupInline, createFunction): save currBlockno in
878           fixupInline instead of createFunction to fix bug 1864577
879           (inlineFindMaxBlockno): removed, use global blockNo
880         * src/SDCCglobl.h: added blockNo
881         * src/z80/peep.c,
882         * src/z80/peep.h: modified properties
883         * support/regression/tests/bug1864577.c: new, added
884
885 2008-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
886
887         * as/mcs51/asdata.c,
888         * as/mcs51/asm.h: added org_cnt
889         * as/mcs51/asmain.c (main, asmbl): fixed bug 1957716, changed old K&R to ANSI
890         * as/mcs51/asout.c: changed old K&R to ANSI
891         * as/mcs51/Makefile.in: use common identifiers
892         * as/hc08/asdata.c,
893         * as/hc08/asexpr.c,
894         * as/hc08/asm.h,
895         * as/hc08/asmain.c,
896         * as/hc08/asout.c,
897         * as/hc08/Makefile.bcc,
898         * as/hc08/Makefile.in: synchronized with as/mcs51/*
899         * sdcc_vc_in.h: added define __func__
900         * src/SDCCast.c (expandInlineFuncs): applied patch 1957148 to fix bug 1717305,
901           Thanks Ruud van Silfhout
902         * support/regression/tests/bug1717305.c: new, added
903
904 2008-05-05 Borut Razem <borut.razem AT siol.net>
905
906         * support/regression/Makefile.in,
907           support/regression/ports/ds390/spec.mk,
908           support/regression/ports/hc08/spec.mk,
909           support/regression/ports/mcs51-common/spec.mk,
910           support/regression/ports/pic14/spec.mk,
911           support/regression/ports/pic16/spec.mk,
912           support/regression/ports/ucz80/spec.mk,
913           support/regression/ports/z80/spec.mk:
914           added INC_DIR and LIBDIR paths
915         * src/ds390/gen.c: removed duplicated selicolon
916
917 2008-05-04 Borut Razem <borut.razem AT siol.net>
918
919         * support/regression/Makefile.in,
920           support/regression/fwk/lib/testfwk.c,
921           support/regression/ports/ds390/spec.mk,
922           support/regression/ports/hc08/spec.mk,
923           support/regression/ports/mcs51-common/spec.mk,
924           support/regression/ports/mcs51-large/spec.mk,
925           support/regression/ports/mcs51-medium/spec.mk,
926           support/regression/ports/mcs51-small/spec.mk,
927           support/regression/ports/mcs51-stack-auto/spec.mk,
928           support/regression/ports/mcs51-xstack-auto/spec.mk,
929           support/regression/ports/pic14/spec.mk,
930           support/regression/ports/pic16/spec.mk,
931           support/regression/ports/ucz80/spec.mk:
932           added possibility to define the sdcc binary directory SDCC_BIN_PATH
933           used to run regeression tests
934
935 2008-05-01 Raphael Neider <rneider AT web.de>
936
937         * doc/sdccman.lyx, support/scripts/inc2h-pic16.pl: updated list of
938           supported devices and instructions to add new ones
939
940 2008-05-01 Raphael Neider <rneider AT web.de>
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: support old 18f242 and new
946           18f2455 style ADC devices, based on patch #1776197
947         * device/lib/pic16/libio/adc/adcclose.c,
948           device/lib/pic16/libio/adc/adcconv.c,
949           device/lib/pic16/libio/adc/adcread.c: cosmetic changes
950         * device/include/pic16/{pic18f2331.h,pic18f2431.h},
951           device/lib/pic16/libdev/{pic18f2331.c,pic18f2431.c}: reuse 18f4331
952         * device/include/pic16/pic18f4431.h,
953           device/lib/pic16/libdev/pic18f4431.c: remove outdated comments
954         * device/lib/pic16/libio/adc.ignore: forbid unhandled devices
955
956 2008-05-01 Raphael Neider <rneider AT web.de>
957
958         * src/pic16/device.h: removed unused field PIC16_device.sfrRange,
959           moved xinst flag into pic16_options_t
960         * src/pic16/device.c (default_device, pic16_list_devices,
961           pic16_find_device): removed references to sfrrange
962         * src/pic16/gen.c (genFunction),
963           src/pic16/glue.c (pic16initialComments),
964           src/pic16/main.c (pic16_optionsTable),
965           src/pic16/ralloc.c (newReg, pic16_writeUsedRegs): updated references
966           to xinst
967         * device/include/pic16/pic16devices.txt: removed sfrrange lines
968
969 2008-04-29 Raphael Neider <rneider AT web.de>
970
971         * src/pic16/devices.inc,
972           device/include/pic16/pic16devices.txt: replaced compiled-in list
973           of devices with a variant parsed at runtime
974         * src/pic16/device.c: added support for parsing pic16devices.txt,
975           clean up
976         * src/pic16/device.h: removed (now) unused fields from PIC_device
977         * src/pic16/main.c: removed #pragma maxram,
978           (_pic16_initPaths): removed bogus generation of search paths,
979           setup the port proper only after the search paths (for
980           pic16devices.txt) are set up,
981           (_pic16_finaliseOptions): moved processor dependant code here
982           from _pic16_initPaths(), clean up
983         * src/pic16/ralloc.c (pic16_init_stack),
984         * src/pic16/ralloc.h,
985         * src/pic16/pcode.c: clean up
986         * device/include/Makefile.in,
987           support/scripts/sdcc.nsi: also install/package pic16devices.txt
988         * support/scripts/inc2h-pic16.pl: updated instructions
989
990 2008-04-29 Raphael Neider <rneider AT web.de>
991
992         * device/include/pic16/{pic18f2480.h, pic18f2580.h, pic18f4423.h,
993           pic18f4480.h, pic18f4523.h, pic18f4580.h, pic18f6585.h, pic18f8585.h},
994           device/lib/pic16/libdev/{pic18f2480.c, pic18f2580.c, pic18f4423.c,
995           pic18f4480.c, pic18f4523.c, pic18f4580.c, pic18f6585.c, pic18f8585.c}:
996           added missing family members and 18f2480/2580/4480/4580 family
997         * device/include/pic16/{pic18f2423.h, pic18f2523.h}: use 18f4523.h
998         * device/include/pic16/pic18f2525.h: use 18f4620.h
999         * device/include/pic16/pic18f6680.h: use 18f8680.h
1000         * device/include/pic16/pic18fregs.h,
1001           device/lib/pic16/pics.all,
1002           src/pic16/devices.inc: add new devices
1003         * device/lib/pic16/libdev/{pic18f2423.c, pic18f2523.c}: use 18f4523.c
1004         * device/lib/pic16/libdev/pic18f2525.c: use 18f4620.c
1005         * device/lib/pic16/libdev/pic18f6680.c: uso 18f8680.c
1006         * device/lib/pic16/libio/{adc.ignore, i2c.ignore, usart.ignore}:
1007           prevent attempting to build the libio for some new devices
1008
1009 2008-04-29 Raphael Neider <rneider AT web.de>
1010
1011         * debugger/mcs51/Makefile.in: fixed paths to sources
1012
1013 2008-04-25 Borut Razem <borut.razem AT siol.net>
1014
1015         * as/link/lklibr.c: moved from as/link/z80/lklibr.c
1016         * as/link/hc08/lklibr.c, as/link/mcs51/lklibr.c: deleted
1017         * as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
1018         * as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
1019           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
1020           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
1021           as/link/z80/linkz80.dsp: lklibr.c moved
1022         * doc/INSTALL.txt: binary archives in bz2 format
1023         * support/cpp/auto-host_vc_in.h: CPP2 replaced with CPP
1024
1025 2008-04-23 Maarten Brock <sourceforge.brock AT dse.nl>
1026
1027         * src/SDCCglue.c (printIvalType, printIvalBitFields): fixed bug 1856409
1028         * support/regression/tests/bug1856409.c: new, added
1029
1030 2008-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
1031
1032         * src/z80/peep.c,
1033         * src/mcs51/peep.c: Use werror for error messages.
1034         * src/SDCCicode.c (geniCodeConditional),
1035         * src/SDCCsymt.c (structElemType): fixed bug 1839321
1036         * src/z80/Makefile.bcc,
1037         * src/z80/z80.dsp: added src/z80/peep.c/h
1038         * support/regression/tests/bug1839321.c: new, added
1039
1040 2008-04-20 Raphael Neider <rneider AT web.de>
1041
1042         * device/include/pic16/pic18f2455.h: added bitfields for port C
1043
1044 2008-04-20 Philipp Klaus Krause <pkk AT spth.de>
1045
1046         * src/z80/peep.c: Use werror for error messages.
1047
1048 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
1049
1050         * src/z80/peep.h (declaration of notUsed()),
1051         * src/z80/main.c (enabled notUsed() for z80 port, documented z80_port
1052           struct),
1053         * src/z80/z80.h (added dependency on peep.h),
1054         * src/z80/peep.c (definition of notUsed()): Implemented RFE #1880202
1055           for Z80.
1056
1057 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
1058
1059         * src/SDCCpeeph.c (added support for notUsed()),
1060         * src/mcs51/main.c (added dependency on peep.h, documented mcs51_port
1061           struct),
1062         * src/port.h (removed dependency on mcs51/peep.h, added declaration
1063           for notUsed()): Implemented generic (that is not port-specific) part
1064           of RFE #1880202.
1065
1066 2008-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
1067
1068         * as/link/mcs51/lkmem.c (summary2): fixed bug 1796077
1069         * device/lib/libsdcc.lib,
1070         * device/lib/Makefile.in,
1071         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1072         * device/lib/calloc.c: renamed to _calloc.c
1073         * device/lib/free.c: renamed to _free.c
1074         * device/lib/malloc.c: renamed to _malloc.c
1075         * device/lib/realloc.c: renamed to _realloc.c
1076         * src/ds390/gen.c (aopGet, aopPut, genPlusBits, genDataPointerSet,
1077           genNearPointerSet, genPagedPointerSet): synchronized with mcs51/gen.c
1078         * src/ds390/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq, ifxForOp,
1079           genAnd, genOr, genXor, genIfx, gen390Code): fixed bug 1509084
1080         * src/mcs51/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq,
1081           ifxForOp, genAnd, genOr, genXor, genNearPointerGet,
1082           genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1083           genGenPointerGet, genIfx, gen51Code): fixed bug 1509084
1084         * src/ds390/gen.c,
1085         * src/mcs51/gen.c: throughout cosmetic changes for syncing both
1086         * src/SDCCsymt.h: updated IS_OP_RUONLY, IS_OP_ACCUSE
1087         * support/regression/tests/bug1509084.c: new, added
1088
1089 2008-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
1090
1091         * device/include/mcs51/cc2510fx.h: added _XPAGE
1092         * device/include/mcs51/compiler.h: cosmetic changes
1093
1094 2008-03-31 Maarten Brock <sourceforge.brock AT dse.nl>
1095
1096         * sdcc.dsw: adapted for moved cpp2, added dependency for as_z80 on
1097           config
1098
1099 2008-03-31 Borut Razem <borut.razem AT siol.net>
1100
1101         * support/cpp2 renamed to support/cpp
1102         * support/cpp2/libiberty/filenames.h, support/cpp2/libiberty/hex.c,
1103           support/cpp2/libiberty/splay-tree.c,
1104           support/cpp2/libiberty/splay-tree.h, support/cpp2/libcpp/macro.c,
1105           support/cpp2/libcpp/directives.c,
1106           support/cpp2/libcpp/include/cpplib.h,
1107           support/cpp2/libcpp/include/symtab.h,
1108           support/cpp2/libcpp/include/line-map.h,
1109           support/cpp2/libcpp/line-map.c, support/cpp2/libcpp/files.c,
1110           support/cpp2/libcpp/init.c, support/cpp2/libcpp/traditional.c,
1111           support/cpp2/libcpp/expr.c, support/cpp2/libcpp/internal.h,
1112           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/system.h,
1113           support/cpp2/libcpp/charset.c: SDCPP synchronized with GCC CPP
1114           release version 4.3.0
1115         * configure.in, configure, Makefile.in, Makefile.bcc:
1116           adapted for moved cpp2
1117
1118 2008-03-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1119
1120         * device/include/hc08/mc68hc908jkjl.h: committed fix for bug #1929739,
1121           thanks Alejandro Pustowka <alejo_pustowka AT yahoo.com.mx>
1122
1123 2008-03-30 Maarten Brock <sourceforge.brock AT dse.nl>
1124
1125         * src/SDCCloop.c (loopInvariants): applied fix for bug 1717943, thanks
1126           Robert Larice
1127         * support/regression/tests/bug1717943.c: new, added
1128
1129 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
1130
1131         * src/z80/gen.c (assignResultValue): Reverted reversal of order of
1132           bytewise return value assignments introduced in last commit.
1133
1134 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
1135
1136         * src/z80/gen.c (emitDebug, assignResultValue, genPlus, genMinus,
1137           genMult, genJumpTab):
1138           Use 16-bit instructions for addition in some additional cases,
1139           implemented RFEs #1914251, #1914245, #1922090, #1921382, #1918323.
1140
1141 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
1142
1143         * src/z80/ralloc.c (serialRegAssign, allocReg, tryAllocatingRegPair):
1144           Implemented RFE #1921450, changed some debug messages.
1145
1146 2008-03-30 Borut Razem <borut.razem AT siol.net>
1147
1148         * Small Device C Compiler 2.8.0 released
1149         * .version, doc/sdccman.lyx: changed sdcc version to 2.8.1
1150         * support/scripts/sdcc.nsi: added finish page; this version
1151           was used for 2.8.0 release
1152         * doc/knownbugs.html: removed; magically generated by the build
1153           process using gen_known_bugs.pl from now on
1154
1155 2008-03-23 Borut Razem <borut.razem AT siol.net>
1156
1157         * src/pic/gen.h: Q&D solution for the bug, found by Jim Paris
1158           and reverted it, since it was already fixed by Raphael ;-)
1159         * doc/knownbugs.html: updated for RC2
1160
1161 2008-03-22 Raphael Neider <rneider AT web.de>
1162
1163         * src/SDCCicode.c (getPtrType): avoid unnecessary extra assignments
1164           for PIC16 targets
1165
1166 2008-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
1167
1168         * src/mcs51/gen.c (adjustArithmeticResult): fixed bug 1839299
1169         * support/regression/tests/bug1839277.c: added related testBug1839299
1170
1171 2008-03-21 Maarten Brock <sourceforge.brock AT dse.nl>
1172
1173         * src/ds390/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign),
1174         * src/mcs51/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign):
1175           fixed bug 1839277
1176         * src/mcs51/gen.c: throughout only output hex constants
1177         * src/SDCCicode.c (getPtrType, geniCodeCast): fixed code size regression
1178         * support/regression/tests/bug1839277.c: new, added
1179
1180 2008-03-21 Philipp Klaus Krause <pkk AT spth.de>
1181
1182         * src/z80/ralloc.c (callFuncByName): Used // instead of /**/ to fix
1183           compilation warning about nested comments.
1184
1185 2008-03-20 Maarten Brock <sourceforge.brock AT dse.nl>
1186
1187         * src/SDCCsymt.c (comparePtrType): fixed bug 1921073
1188         * support/regression/tests/bug1921073.c: new, added
1189
1190 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
1191
1192         * src/z80/SDCCpeeph.c.c (callFuncByName):
1193           Commented function parameters.
1194
1195 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
1196
1197         * src/z80/ralloc.c (packRegsForAccUse2):
1198           disabled a broken accumulator packing optimization (fixed #1292721).
1199         * support/regression/tests/bug-1292721: Regression test for #1292721.
1200
1201 2008-03-16 Raphael Neider <rneider AT web.de>
1202
1203         * src/pic/gen.c (SetIrp,genNearPointerGet,genNearPointerSet):
1204           fixed code bloat regression using a variant of patch #1915618
1205
1206 2008-03-16 Borut Razem <borut.razem AT siol.net>
1207
1208         * support/scripts/sdcc.nsi: added section debugging macros, added SDCC
1209           icon, changed startup menu for release distribution, code cleaning,
1210           create url files instead links in startup menu
1211
1212 2008-03-16 Maarten Brock <sourceforge.brock AT dse.nl>
1213
1214         * src/SDCCcse.c (algebraicOpts): fixed bug 1579949
1215         * support/regression/tests/bug1579949.c: new, added
1216
1217 2008-03-14 Paul Stoffregen <paul AT pjrc.com>
1218
1219         * device/lib/printf_fast.c: fixed bug 1255403
1220
1221 2008-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
1222
1223         * doc/sdccman.lyx: enhanced paragraph about bankswitching for mcs51
1224         * src/cdbFile.c (cdbWriteBasicSymbol): fixed bug 1909409 for locals
1225
1226 2008-03-14 Borut Razem <borut.razem AT siol.net>
1227
1228         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated link-xx and aslink
1229           command line options
1230         * as/link/hc08/lkmain.c: converted tabs to spaces so that the usage
1231           is correctly displayed
1232         * as/link/z80/lkmain.c: usage line commented out
1233
1234 2008-03-13 Borut Razem <borut.razem AT siol.net>
1235
1236         * doc/sdccman.lyx: corrected to be able to convert to PDF,
1237           updated the list pf supported pic14 devices
1238
1239 2008-03-12 Maarten Brock <sourceforge.brock AT dse.nl>
1240
1241         * doc/sdccman.lyx: added paragraph about bankswitching for mcs51
1242
1243 2008-03-12 Borut Razem <borut.razem AT siol.net>
1244
1245         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated command line options,
1246           fixed documentation request #1718191
1247         * as/hc80/asmain.c, as/mcs51/asmain.c: added option -c to usage
1248         * doc/sdccman.lyx: added description of --no-std-crt0 gbz80
1249           command line option
1250
1251 2008-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1252
1253         * src/SDCCast.c (isConformingBody): fixed bug 1505811, thanks Robert Larice
1254         * support/regression/tests/bug1505811.c: new, added
1255
1256 2008-03-09 Raphael Neider <rneider AT web.de>
1257
1258         * device/include/pic16/pic18f2620.h,
1259         * device/include/pic16/pic18f4620.h,
1260         * device/lib/pic16/libdev/pic18f2620.c,
1261         * device/lib/pic16/libdev/pic18f4525.c,
1262         * device/lib/pic16/libdev/pic18f4620.c: merged 18f2525/2620/4525/4620
1263           family to consistently use pic18f4620.[ch], fixes #1832562
1264
1265 2008-03-09 Borut Razem <borut.razem AT siol.net>
1266
1267         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
1268           changed sdcc version to 2.8.0
1269         * knownbugs.html: regenerated
1270         * support/scripts/gen_known_bugs.pl: added number of open bugs
1271
1272 2008-03-09 Raphael Neider <rneider AT web.de>
1273
1274         * src/pic16/gen.c (pic16_mov2w_volatile): NEW, read volatile operands,
1275           (genOr): read volatile operand even if the result is known,
1276           closes #1511838
1277           (genOr,genXor): removed unused legacy code,
1278           (genDummyRead): use pic16_mov2w_volatile()
1279
1280 2008-03-08 Borut Razem <borut.razem AT siol.net>
1281
1282         * src/SDCCglue.c: fixed bug #1864582: multiple definition of char
1283           cons w. --model-large
1284         * support/regression/staticinit.c: added regression test for bug
1285           #1864582
1286
1287 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1288
1289         * src/ds390/gen.c (pushSide, genPcall),
1290         * src/hc08/gen.c (pushSide, genPcall): synchronized with mcs51
1291         * src/mcs51/gen.c: cosmetic changes
1292         * support/regression/fwk/include/testfwk.h: added macro reentrant
1293         * support/regression/tests/bug1908493.c: new, added
1294
1295 2008-03-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1296
1297         * src/SDCCdebug.c:, as/link/lkaomf51.c: Fixed bug 1909409: Pdata in OMF file
1298
1299 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1300
1301         * src/mcs51/gen.c (pushSide, genPcall): fixed bug 1908493
1302         * src/SDCCmain.c (preProcess): removed -DSDCC_PARMS_IN_BANK1 because it is
1303           already set in ds390/main.c and mcs51/main.c
1304
1305 2008-03-07 Raphael Neider <rneider AT web.de>
1306
1307         * src/regression/init0.c: new test for initialized arrays of function
1308           pointers
1309         * src/regression/Makefile: made a bit more flexible, added init0.c
1310         * src/pic/glue.c (emitIvals): hacky fix for initializing from function
1311           pointers, closes #1427663
1312
1313 2008-03-05 Borut Razem <borut.razem AT siol.net>
1314
1315         * dos/sdccman.lyx: docummented predefined macros SDCC_REVISION,
1316           SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT
1317
1318 2008-03-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1319
1320         * support/librarian/sdcclib.c:Added feature request 1908061:
1321           Synchronise sdcclib commands with ar.
1322
1323 2008-03-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1324
1325         * src/SDCCmain.c: added predefined macros SDCC_REVISION (RFE #1907229),
1326           and (depending on corresponding compiler option) SDCC_PARMS_IN_BANK1,
1327           SDCC_FLOAT_REENT, SDCC_INT_LONG_REENT
1328         * device/include/mcs51/compiler.h: removed umlauts, added double
1329           underscore
1330
1331 2008-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
1332
1333         * src/SDCCptropt.c (ptrPseudoSymConvert): fixed bug 1536762
1334         * support/regression/tests/bug1536762.c: new, added
1335         * src/SDCCutil.c,
1336         * src/SDCCutil.h: added getBuildDate()
1337         * src/SDCCmain.c (printVersionInfo),
1338         * src/SDCCglue.c (initialComments): use getBuildDate() instead of
1339           __DATE__
1340         * src/*/ralloc.c: removed IS_OP_RUONLY macro
1341         * src/ds390/ralloc.c (packRegisters),
1342         * src/mcs51/ralloc.c (packRegisters),
1343         * src/z80/ralloc.c (packRegisters): applied fix for bug 1618050, thanks
1344           Robert Larice
1345         * support/regression/tests/bug1618050.c: new, added
1346         * src/SDCCsymt.h: fixed typo in DECLSPEC2TXT
1347         * support/regression/fwk/include/testfwk.h,
1348         * support/regression/tests/bug1838000.c: moved _AUTOMEM and _STATMEM to
1349           testfwk.h
1350
1351 2008-03-04 Raphael Neider <rneider AT web.de>
1352
1353         * src/pic/gen.c: removed unused prototypes, prevent internal errors
1354           on accessing OP_SYM_TYPE(op)
1355         * src/pic/gen.h: removed unused prototype of genMinusDec()
1356         * src/pic/genarith.c (genMinus): cosmetic changes, rewritten to
1357           fix #1876953 (invalid subtraction code), removed unused code
1358
1359 2008-03-03 Raphael Neider <rneider AT web.de>
1360
1361         * src/pic/gen.c,
1362         * src/pic/gen.h,
1363         * src/pic/genarith.c,
1364         * src/pic/ralloc.c,
1365         * src/pic/ralloc.h: removed AOP_R0, AOP_R1, AOP_DPTR, AOP_DPTR2,
1366           AOP_ACC, and *_IDX and adjusted code, removed unused legacy code
1367
1368 2008-03-03 Raphael Neider <rneider AT web.de>
1369
1370         * src/pic/device.c (find_device): search user-specified paths first
1371           for pic14devices.txt, fixes #1900827
1372
1373 2008-03-02 Borut Razem <borut.razem AT siol.net>
1374
1375         * support/scripts/sdcc.nsi: fixed bug in IsNT, LogicLib-isation of
1376           AddToPath and RemoveFromPath
1377
1378 2008-03-01 Borut Razem <borut.razem AT siol.net>
1379
1380         * support/scripts/sdcc.nsi: reverted MULTIUSER page since it didn't
1381           work correctly, added debugging support if -DSDCC.DEBUG command line
1382           option is defined
1383
1384 2008-02-28 Borut Razem <borut.razem AT siol.net>
1385
1386         * doc/sdccman.lyx: cosmetic changes
1387
1388 2008-02-28 Maarten Brock <sourceforge.brock AT dse.nl>
1389
1390         * src/mcs51/ralloc.c (fillGaps): fixed bug 1839671
1391         * doc/sdccman.lyx: fixed unmeant removal of spaces
1392
1393 2008-02-27 Borut Razem <borut.razem AT siol.net>
1394
1395         * support/scripts/sdcc.nsi: corrected installation directory for
1396           current user installation mode
1397         * doc/README.txt: added Philipp Klaus Krause to the developers list
1398
1399 2008-02-27 Maarten Brock <sourceforge.brock AT dse.nl>
1400
1401         * src/mcs51/gen.c (genUnpackBits): don't generate ifxJump, instead
1402           return ifx condition
1403           (genNearPointerGet, genPagedPointerGet, genFarPointerGet,
1404           genCodePointerGet, genGenPointerGet): cleanup aop before generating
1405             ifxJump to fix bug 1838000
1406         * src/SDCCsymt.c (aggregateToPointer): fix problem for xstack
1407         * support/regression/tests/bug1838000.c: new, added
1408         * device/include/mcs51/cc1110.h: new, added, thanks to Pravin Angolkar
1409
1410 2008-02-26 Borut Razem <borut.razem AT siol.net>
1411
1412         * src/SDCCast.c, doc/sdccman.lyx: fixed RFE #1901171: inerger promotion
1413           of casted varargs
1414         * support/scripts/sdcc.nsi: added MULTIUSER page,
1415           NSIS upgraded to version 2.35
1416
1417 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1418
1419         * src/mcs51/ralloc.c (isSpiltOnStack): fixed bug 1565152
1420         * support/regression/tests/bug1565152.c: new, added
1421
1422 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1423
1424         * src/mcs51/gen.c (genPagedPointerSet): fixed bug 1670148
1425         * support/regression/ports/mcs51-xstack-auto/spec.mk: added expf.c
1426         * support/regression/tests/bug1670148.c: new, added
1427
1428 2008-02-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1429
1430         * device/include/mcs51/at89c51ed2.h: fixed bug 1901469.
1431
1432 2008-02-24 Borut Razem <borut.razem AT siol.net>
1433
1434         * src/SDCCast.c, src/SDCCast.h: fixed bug #1874922: explicit typecast
1435           is ineffective for unsigned char parameter
1436
1437 2008-02-24 Maarten Brock <sourceforge.brock AT dse.nl>
1438
1439         * src/SDCCast.c (expandInlineFuncs): fixed bug 1875869
1440         * src/SDCCglue.c (printIvalBitFields): fixed bug 1806631
1441         * support/regression/tests/bitopcse.c: removed hc08 exception, see testfwk.h
1442         * support/Util/MySystem.c (my_system): output errorcode when verbose
1443
1444 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
1445
1446         * src/z80/gen.c (genMult): Rewrote 8-bit multiplication by constant,
1447           implements #1898231
1448
1449 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
1450
1451         * device/lib/z80/mul.s: Rewrote __muluchar_rrx_s, to improve 8-bit mult.,
1452           implements #1896290
1453
1454 2008-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
1455
1456         * src/SDCCast.c (createIvalStruct): fixed bug 1466761
1457
1458 2008-02-21 Borut Razem <borut.razem AT siol.net>
1459
1460         * support/regression/Makefile.in,
1461           support/regression/ports/ds390/spec.mk,
1462           support/regression/ports/hc08/spec.mk,
1463           support/regression/ports/mcs51-common/spec.mk,
1464           support/regression/ports/pic14/spec.mk,
1465           support/regression/ports/pic16/spec.mk,
1466           support/regression/ports/ucz80/spec.mk,
1467           support/regression/ports/xa51/spec.mk:
1468           added CFLAGS when compiling timeout
1469
1470 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1471
1472         * support/regression/tests/bugs-1596270-1736867.c: Regression test for
1473           #1596270, #1736867
1474
1475 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
1476
1477         * src/SDCClrange.c (findPrevUse): fixed bug 1888147
1478         * support/regression/tests/bug1888147.c: new, added
1479
1480 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1481
1482         * src/z80/gen.c: fixed bugs #1596270, #1736867
1483
1484 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1485
1486         * src/z80/gen.c: fixed bug in register pair loading when swapping register
1487           contents, mostly fixes #1596270
1488
1489 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1490
1491         * src/z80/peeph.def,
1492         * src/z80/peeph-z80.def: moved peephole that breaks gbz80 to z80-specific
1493           peepholes, fixes #1806565
1494
1495 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
1496
1497         * src/SDCCpeeph.c (operandBaseName): added check for @Ri
1498         * src/mcs51/peeph.def (rule 177.c): added operandsNotRelated(%1 %3)
1499           fixes bug 1739475, thanks Robert Larice
1500           (rule 271): new, added
1501
1502 2008-02-18 Borut Razem <borut.razem AT siol.net>
1503
1504         * sim/ucsim/s51.src/Makefile.in: fixed error made in previous commit
1505
1506 2008-02-17 Maarten Brock <sourceforge.brock AT dse.nl>
1507
1508         * src/SDCCmain.c (linkEdit): emit -z when using --debug for z80
1509
1510 2008-02-17 Raphael Neider <rneider AT web.de>
1511
1512         * src/pic16/genarith.c,
1513         * src/pic16/gen.c,
1514         * src/pic16/gen.h,
1515         * src/pic16/genutils.c: removed unused legacy code,
1516           removed unused fields from struct asmop and struct _G
1517
1518 2008-02-17 Raphael Neider <rneider AT web.de>
1519
1520         * src/pic16/gen.c (AccRsh): cosmetic changes,
1521           (shiftR1Left2ResultSigned,shiftR1Left2Result,shiftL1Left2Result,
1522           genRightShiftLiteral): fixed to work with SFRs as result by
1523           assigning only once to result,
1524           removed a lot of unused/excluded code fragments
1525
1526 2008-02-17 Raphael Neider <rneider AT web.de>
1527
1528         * device/include/pic/pic16f88.h,
1529         * device/include/pic/pic16f886.h,
1530         * device/include/pic/pic16f887.h: added TRISA6 and TRISA7
1531
1532 2008-02-17 Borut Razem <borut.razem AT siol.net>
1533
1534         * src/z80/peeph.def: applied patch
1535           #1893626: Optimize tail calls on Z80, thanks to Philipp Krause
1536         * src/z80/gen.c, src/z80/peeph.def: applied patch
1537           #1893510: Improve logical left shift on Z80, thanks to Philipp Krause
1538         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1539           sim/ucsim/s51.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1540           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
1541           sim/ucsim/main_in.mk: renamed libutil.a to libucsimutil.a in order to
1542           enable compilation on Mac OS X 10.5 (Leopard) and XCode v3.0
1543
1544 2008-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
1545
1546         * as/link/mcs51/aslink.dsp: removed SDK define
1547         * as/link/z80/clean.mk: brought in sync with other ports
1548         * as/link/z80/lklibr.c (SdccLib, fndsym): handle the dflag here too
1549         * as/hc08/Makefile.bcc,
1550         * as/mcs51/Makefile.bcc,
1551         * as/z80/Makefile.bcc: noice.c was moved to as/asxxsrc/
1552         * src/z80/main.c (_setValues): use the now capitalized -Z,
1553           (z80_port, gbz80_port): generate debug information when asked
1554
1555 2008-02-16 Borut Razem <borut.razem AT siol.net>
1556
1557         * as/z80/asmain.c, as/z80/asm.h, as/z80/asdata.c,
1558           as/link/z80/lkmain.c, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
1559           as/z80/Makefile.in. as/z80/Makefile.bcc:
1560           applied patch #1893393: patch for as-z80 and link-z80 to generate
1561           cdb, thanks to Armin Diehl
1562         * as/*/asnoice.c, as/hc08/as_hc08.dsp, as/hc08/Makefile.in,
1563           as/mcs51/asx8051.dsp, as/mcs51/Makefile.in:
1564           asnoice.c moved to as/asxxsrc/asnoice.c
1565         * src/z80/peeph-gbz80.def: applied patch
1566           #1880235: Z80 return peephole, thanks to Philipp Krause
1567
1568 2008-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1569
1570         * .version,
1571         * doc/sdccman.lyx: bumped version to 2.7.5
1572         * src/SDCCsymt.c (compareType, comparePtrType): fixed bug 1281583
1573
1574 2008-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
1575
1576         * device/include/pic16/stdlib.h,
1577         * device/lib/pic16/libc/stdlib/ltoa.c,
1578         * device/lib/pic16/libc/stdio/vfprintf.c: ascii strings are char*
1579
1580 2008-02-13 Borut Razem <borut.razem AT siol.net>
1581
1582         * src/SDCCmain.c, src/SDCCglue.c: fixed --c1mode
1583         * src/pic16/glue.c, src/SDCCast.c, src/SDCCast.h, src/SDCCBBlock.c,
1584           src/SDCCcse.c, src/SDCCglue.c, src/SDCCicode.c, src/SDCCloop.c,
1585           src/SDCCopt.c,  src/SDCCval.c:
1586           fixed bug #1890273: SDCC Warning 154 shows wrong filename
1587
1588 2008-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1589
1590         * src/SDCCsymt.c (compareType): fixed bug 1309013
1591
1592 2008-02-09 Borut Razem <borut.razem AT siol.net>
1593
1594         * src/SDCCval.c, src/SDCCval.h:
1595           code cleaning, added function constChrVal()
1596         * src/SDCCglue.c, src/pic/glue.c, src/pic16/glue.c, src/SDCCast.c, src/SDCC.y:
1597           call constChrVal() instead constVal()
1598
1599 2008-02-01 Maarten Brock <sourceforge.brock AT dse.nl>
1600
1601         * src/SDCCast.c (resolveSymbols): added reentrancy check for parameters
1602           of function pointer
1603         * src/SDCCerr.h,
1604         * src/SDCCerr.c: changed warning W_NONRENT_ARGS to error E_NONRENT_ARGS
1605         * support/regression/tests/absolute.c: added TestStruct TestVar (see also
1606           bug 1859853)
1607
1608 2008-02-01 Raphael Neider <rneider AT web.de>
1609
1610         * device/include/pic/pic16f886.h,
1611         * device/include/pic/pic16f887.h: added RA6 and RA7
1612
1613 2008-01-24 Raphael Neider <rneider AT web.de>
1614
1615         * device/include/pic/pic16f88.h: added RA6 and RA7
1616         * device/lib/pic/libdev/disabled_pic16f886.c,
1617         * device/lib/pic/libdev/disabled_pic16f887.c: renamed and enabled
1618
1619         * src/pic16/devices.inc,
1620         * device/include/pic16/pic18f2423.h,
1621         * device/include/pic16/pic18f2523.h,
1622         * device/include/pic16/pic18fregs.h,
1623         * device/lib/pic16/pics.all
1624         * device/lib/pic16/libdev/pic18f2423.c,
1625         * device/lib/pic16/libdev/pic18f2523.c: added 18f2423 and 18f2523
1626         * device/lib/pic16/libio/i2c.ignore,
1627         * device/lib/pic16/libio/usart.ignore,
1628         * device/lib/pic16/libio/adc.ignore: ignore new devices
1629
1630 2008-01-23 Maarten Brock <sourceforge.brock AT dse.nl>
1631
1632         * src/SDCCast.c (createRMW): fixed bug 1582651
1633
1634 2008-01-20 Borut Razem <borut.razem AT siol.net>
1635
1636         * src/SDCCcse.c: partially fixed enhancement request
1637           #1793872 - multiply by -1 not collapsed
1638         * support/regression/tests/arithcsi.c: added regression test
1639
1640 2008-01-19 Maarten Brock <sourceforge.brock AT dse.nl>
1641
1642         * as/mcs51/asx8051.dsp: removed define SDK
1643         * as/mcs51/i51mch.c (machine): fixed bug 1865114
1644         * device/include/asm/ds390/features.h: fixed bug with ds390 & stack-auto
1645         * as/link/lklex.c,
1646         * as/link/mcs51/lkmain.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
1647           cosmetic changes, brought more in sync, changed old K&R to ANSI
1648
1649 2008-01-13 Borut Razem <borut.razem AT siol.net>
1650
1651         * support/scripts/sdcc.nsi: added Uninstall/reinstall page, ...
1652         * src/SDCCicode.c: fixed bug #1870216 - Error 122: dividing by zero
1653
1654 2007-12-30 Borut Razem <borut.razem AT siol.net>
1655
1656         * src/pic16/gen.c: fixed implementation of bitwise operations for
1657           pic16 target
1658         * support/regression/tests/bitwise.c: added test cases
1659
1660 2007-12-29 Borut Razem <borut.razem AT siol.net>
1661
1662         * src/SDCCasm.[ch]: renamed from asm[ch], use dbuf_getline(), ...
1663         * src/src.dsp, src/Makefile.bcc, src/Makefile.in, src/common.h,
1664           src/SDCCglue.c, src/xa51/main.c: asm.[ch] renamed to SDCCasm.[ch]
1665         * support/Util/dbuf_string.[ch]: added function dbuf_getline()
1666         * src/ds390/gen.c, src/hc08/gen.c, src/mcs51/gen.c, src/pic16/gen.c,
1667           src/pic/gen.c, src/z80/gen.c, src/xa51/gen.c, src/pic16/ralloc.c,
1668           src/pic16/pcode.[ch]: added const qualifier
1669         * as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
1670           as/mcs51/Makefile.bcc, as/mcs51/Makefile.in, as/mcs51/asx8051.dsp,
1671           as/z80/Makefile.bcc, as/z80/Makefile.in, as/z80/as_gbz80.dsp,
1672           as/z80/as_z80.dsp: added dbuf.[ch] and dbuf_string[ch] to project
1673         * as/asxxsrc/aslex.c: use dbuf_getline()
1674         * as/hc08/asdata.c, as/hc08/asexpr.c, as/hc08/asm.h, as/hc08/m08adr.c,
1675           as/mcs51/asdata.c, as/mcs51/asexpr.c, as/mcs51/asm.h,
1676           as/mcs51/i51adr.c, as/z80/asdata.c, as/z80/asexpr.c, as/z80/aslist.c,
1677           as/z80/asm.h, as/z80/z80adr.c:
1678           changed type of ib and ip to const char *
1679
1680 2007-12-28 Borut Razem <borut.razem AT siol.net>
1681
1682         * as/asxxsrc/aslex.c: moved from as/mcs51/aslex.c;
1683           introduced (readlin) - long lines are turuncated
1684         * as/hc08/as_hc08.dsp, as/mcs51/asx8051.dsp, as/z80/as_gbz80.dsp,
1685           as/z80/as_z80.dsp, as/hc08/Makefile.in, as/mcs51/Makefile.in,
1686           as/z80/Makefile.in: moved aslex.c to asxxsrc
1687         * as/hc08/aslex.c, as/z80/aslex.c: deleted
1688         * as/hc08/asmain.c, as/mcs51/asmain.c:
1689           added missing initialization of a_addr field
1690         * support/regression/tests/long_asm_line.c: added regtest for long
1691           assembler line
1692
1693 2007-12-22 Borut Razem <borut.razem AT siol.net>
1694
1695         * src/SDCC.lex: fixed bug #1852894: # character hangs the compiler
1696
1697 2007-12-20 Maarten Brock <sourceforge.brock AT dse.nl>
1698
1699         * src/SDCCsymt.c (computeType): fixed bug, thanks Fan Weiguang
1700
1701 2007-12-16 Borut Razem <borut.razem AT siol.net>
1702
1703         * device/include/pic16/stdbool.h: removed, since already exists in
1704          device/include/; this also fixes bitopcse.c regression test for pic16
1705          target
1706         * support/regression/fwk/inclusw/testfwk.h: added macro ASSERT_FAILED
1707         * src/pic16/glue.c: fixed bug #1851855: generic static pointer
1708           dereference doesn't work; covered by regression test bug1399290
1709
1710 2007-12-05 Borut Razem <borut.razem AT siol.net>
1711
1712         * doc/sdccman.lyx: fixed bug #1844509 - Correction to Manual 4.6.9
1713           Adding new PIC16
1714
1715 2007-12-01 Borut Razem <borut.razem AT siol.net>
1716
1717         * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc:
1718           corrected handling of the highest_valid_address
1719
1720 2007-11-17 Raphael Neider <rneider AT web.de>
1721
1722         * src/pic/main.c (_asmCmd): include debug arguments (-g as $3)
1723         * src/pic/glue.c (picglue): emit .file if --debug is given
1724
1725 2007-11-17 Raphael Neider <rneider AT web.de>
1726
1727         * src/pic16/genarith.c (pic16_genPlus, pic16_genMinus): take special
1728         care when left or right operand resides in result, fixes #1830220
1729
1730 2007-11-17 Borut Razem <borut.razem AT siol.net>
1731
1732         * src/SDCCglue.c, src/pic16/glue.c: reverted fix for bug
1733           #983491 - "Merge duplicate strings function is ineffective"
1734         * support/regression/tests/bug-983491.c: regtest disabled
1735         * as/asxxsrc: created
1736           as/asxxsrc/assym.c, as/asxxsrc/strcmpi.c: moved
1737           as/hc08/assym.c, as/mcs51/assym.c, as/strcmpi.c,
1738           as/z80/assym.c, as/hc08/asstore.c, as/mcs51/asstore.c: deleted
1739           as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
1740           as/hc08/asm.h, as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
1741           as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
1742           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
1743           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
1744           as/link/z80/linkz80.dsp, as/mcs51/Makefile.bcc, as/mcs51/Makefile.in,
1745           as/mcs51/asm.h, as/mcs51/asx8051.dsp, as/z80/Makefile.bcc,
1746           as/z80/Makefile.in, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
1747           as/z80/Makefile.as_hc08, as/mcs51/Makefile.asx8051: modified
1748           created as/asxxsrc directory, assym.c and strcpi.c moved into it
1749
1750 2007-11-15 Maarten Brock <sourceforge.brock AT dse.nl>
1751
1752         * device/include/stdarg.h: added and removed some casts
1753         * src/SDCCsymt.c (compareType): Fully check types between generic and
1754           non-generic pointers, also accept ptr-ptr to void-ptr assignments
1755
1756 2007-11-13 Borut Razem <borut.razem AT siol.net>
1757
1758         * support/regression/tests/bug-1817005.c:
1759           added regtest for bug #1817005 - as-z80 chokes on long labels
1760
1761 2007-11-12 Borut Razem <borut.razem AT siol.net>
1762
1763         * as/z80/asmain.c, as/z80/asm.h, as/z80/assym.c, as/z80/asdata.c,
1764           as/z80/asout.c, as/z80/aslist.c:
1765           fixed bug #1817005 - as-z80 chokes on long labels
1766
1767 2007-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
1768
1769         * as/hc08/asmain.c,
1770         * as/z80/asmain.c: cosmetic changes
1771         * as/hc08/alloc.h,
1772         * as/mcs51/alloc.h,
1773         * as/z80/alloc.h: removed
1774         * as/hc08/assym.c,
1775         * as/mcs51/assym.c: replaced alloc.h with stdlib.h
1776         * as/link/aslink.h: added LKDIRSEP and, LKDIRSEPSTR
1777         * as/link/hc08/Makefile.in,
1778         * as/link/mcs51/Makefile.in,
1779         * as/link/z80/Makefile.in: added -DUNIX to CFLAGS
1780         * as/link/lklex.c,
1781         * as/link/mcs51/lkarea.c,
1782         * as/link/mcs51/lkmain.c: cosmetic changes
1783         * as/link/hc08/lklibr.c,
1784         * as/link/z80/lklibr.c,
1785         * as/link/mcs51/lklibr.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
1786           used cygwin_conv_to_full_posix_path,
1787           added warnings, cosmetic changes, brought more in sync
1788           changed old K&R into ANSI function declarations
1789         * as/link/z80/lklibr.c (loadAdb): added
1790         * as/link/z80/lkmain.c: removed -- option from usage text
1791
1792 2007-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1793
1794         * src/mcs51/gen.c (outBitC): optimized for no result
1795
1796 2007-10-31 Borut Razem <borut.razem AT siol.net>
1797
1798         * src/SDCCsymt.c: fixed (hopeful properly) bug
1799           #1805702 - order of extern matters
1800         * support/regression/tests/bug-1805702.c: enabled regtest for bug
1801           #1805702
1802
1803 2007-10-29 Borut Razem <borut.razem AT siol.net>
1804
1805         * src/SDCCsymt.c: reverted bad fixed of bug #1805702
1806           - order of extern matters
1807         * support/regression/tests/bug-1805702.c: disabled regtest for bug
1808           #1805702
1809
1810 2007-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1811
1812         * src/ds390/peeph.def: replaced 24bitModeAndPortDS390 by
1813           24bitMode, portIsDS390
1814         * src/mcs51/gen.c (genOr): optimized for RFE 1750727
1815         * src/SDCCpeeph.c (flat24bitModeAndPortDS390): removed
1816           (notVolatileVariable): also check sloc names,
1817           (callFuncByName): moved ftab[] out of function and sorted it by use
1818
1819 2007-10-28 Maarten Brock <sourceforge.brock AT dse.nl>
1820
1821         * device/include/stdarg.h: fixed bug in va_start macro for --xstack
1822         * src/hc08/gen.c (aopForRemat): aop->aopu.aop_immd.from_cast_remat not set,
1823           aop->aopu.aop_immd.aop_immd2 not filled with (generic) pointer type
1824         * src/SDCCicode.c (geniCodeCast): fixed bug 880197
1825         * support/regression/tests/bug-880197.c: new, added
1826
1827 2007-10-28 Borut Razem <borut.razem AT siol.net>
1828
1829         * support/regression/Makefile.in,
1830           support/regression/ports/mcs51-large/spec.mk,
1831           support/regression/ports/mcs51-xstack-auto/spec.mk,
1832           support/regression/ports/mcs51-stack-auto/spec.mk,
1833           support/regression/ports/mcs51-medium/spec.mk,
1834           support/regression/ports/mcs51-common/spec.mk,
1835           support/regression/ports/mcs51-common/*,
1836           support/regression/ports/mcs51-small/*:
1837           mcs51 renamed to mcs51-common, created mcs51-small
1838         * src/SDCCsymt.c: fixed bug #1805702 - order of extern matters
1839         * support/regression/tests/bug-1805702.c: added regtest for bug
1840           #1805702
1841
1842 2007-10-26 Maarten Brock <sourceforge.brock AT dse.nl>
1843
1844         * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b,
1845           added new rules 265 - 270
1846         * support/regression/tests/bug1721024.c:new, added
1847         * support/regression/Makefile.in: renamed test-mcs51 to test-mcs51-small,
1848           introduced new test-mcs51 to run all mcs51 tests
1849
1850 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
1851
1852         * support/regression/tests/bug1816470.c: new, added
1853
1854 2007-10-21 Maarten Brock <sourceforge.brock AT dse.nl>
1855
1856         * src/SDCCast.c (resultTypePropagate): do propagate for LEFT_OP, do not
1857           propagate for *,+,- with float, fixed bug 1816470
1858           (decorateType): cast to resultTypeProp instead of resultType
1859
1860 2007-10-19 Borut Razem <borut.razem AT siol.net>
1861
1862         * src/pic16/glue.c: fixed bug #983491 - "Merge duplicate strings
1863           function is ineffective" for pic16 tareget
1864         * support/scripts/listerr.c: corrected include path
1865         * device/lib/_itoa.c: fixed bug #1806402 - _itoa and _uitoa leak to
1866           adjacent memory
1867
1868 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
1869
1870         * support/regression/tests/using.c: new, added
1871         * support/regression/tests/vaargs.c: fixed and enabled test
1872
1873 2007-10-18 Borut Razem <borut.razem AT siol.net>
1874
1875         * src/SDCCglue.c: fixed bug #983491 - Merge duplicate strings function
1876           is ineffective
1877         * support/regression/tests/bug-983491.c: added regtest for bug #983491
1878
1879 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
1880
1881         * doc/sdccman.lyx: documented option --Werror
1882         * src/SDCCsymt.c (checkFunction): fixed bug 1815418 by setting
1883           RegBankUsed[] earlier
1884
1885 2007-10-14 Maarten Brock <sourceforge.brock AT dse.nl>
1886
1887         * device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
1888         * src/pic/glue.c,
1889         * src/SDCCval.c,
1890         * src/SDCCast.c,
1891         * src/SDCCast.h: replaced AST_LIT_VALUE with AST_FLOAT_VALUE and
1892           AST_ULONG_VALUE
1893         * src/SDCCast.c (decorateType): improved optimization of tri-op
1894         * src/SDCCerr.c (vwerror, setWError),
1895         * src/SDCCerr.h,
1896         * src/SDCCmain.c (parseCmdLine): added option --Werror to treat all
1897           warnings as errors, thanks Stas Sergeev for PATCH 1813211
1898
1899 2007-10-13 Maarten Brock <sourceforge.brock AT dse.nl>
1900
1901         * src/mcs51/gen.c (leftRightUseAcc): use macro IS_OP_ACCUSE
1902         * src/SDCCast.c (decorateType): optimize bit=cond?1:0, RFE 1738430
1903         * support/regression/tests/bug-223113.c,
1904         * support/regression/tests/bug-426632.c,
1905         * support/regression/tests/bug-468811.c,
1906         * support/regression/tests/bug-477835.c,
1907         * support/regression/tests/bug-478094.c,
1908         * support/regression/tests/bug-499644.c,
1909         * support/regression/tests/bug-524209.c,
1910         * support/regression/tests/bug-524211.c,
1911         * support/regression/tests/packcast.c,
1912         * support/regression/tests/structidx.c: added empty tests
1913         * support/regression/tests/bug-607243.c: enabled test
1914
1915 2007-10-06 Borut Razem <borut.razem AT siol.net>
1916
1917         * .version, doc/sdccman.lyx: bumped version to 2.7.4 to indicate the full
1918            support of universal binaries on Mac OS X
1919
1920 2007-10-02 Borut Razem <borut.razem AT siol.net>
1921
1922         * src/SDCCval.h: unified double2ul macro for all platforms
1923         * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
1924         * support/regression/tests/bitwise.c: added regtest for bug #1777758
1925
1926 2007-09-30 Borut Razem <borut.razem AT siol.net>
1927
1928         * src/SDCCval.h: fixed bug #1739860 - sdcc does not work correctly on some
1929           platforms
1930         * sdcc_vc_in.h: enabled warnings
1931         * src/hc08/gen.c: fixed MSVC warning C4146: unary minus operator applied to
1932           unsigned type, result still unsigned
1933         * src/mcs51/peep.c: fixed gcc warning: suggest parentheses around && within ||
1934
1935 2007-09-28 Raphael Neider <rneider AT web.de>
1936
1937         * src/pic/device.c (find_device): prevent buffer underflow error
1938         * src/pic/pcoderegs.c (OptimizeRegUsage): avoid dereferencing
1939           the just destroyed list entry
1940
1941 2007-09-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1942
1943         * doc/sdccman.lyx: there's a dedicated wiki page for cmake and sdcc, thanks
1944           Alexander Neundorf
1945
1946 2007-09-18 Borut Razem <borut.razem AT siol.net>
1947
1948         * src/SDCCval.c: fixed MSVC warning C4146: unary minus operator
1949          applied to unsigned type, result still unsigned
1950
1951 2007-09-17 Borut Razem <borut.razem AT siol.net>
1952
1953         * src/SDCC.y, src/SDCCast.c, src/SDCCcse.c, src/SDCCglue.c,
1954           src/SDCCicode.c, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCval.c,
1955           src/SDCCval.h, src/hc08/gen.c, src/avr/gen.c, src/ds390/gen.c,
1956           src/mcs51/gen.c, src/pic/gen.c, src/pic/genarith.c, src/pic/glue.c,
1957           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/genarith.c,
1958           src/pic16/genutils.c, src/pic16/glue.c, src/pic16/main.c,
1959           src/z80/gen.c, src/z80/ralloc.c:
1960           fixed bug #1739860 - sdcc does not work correctly on some platforms
1961           (not finished)
1962           introduced and used ulFromVal(), double2ul(), used strtod() instead sscanf()
1963
1964 2007-09-17 Raphael Neider <rneider AT web.de>
1965
1966         * src/pic16/device.c: reverted to previous version
1967         * device/lib/pic16/Makefile.common.in: quieten gpasm via -Wa,-q
1968
1969 2007-09-16 Raphael Neider <rneider AT web.de>
1970
1971         * src/pic16/device.c (pic16_dump_usection): do not reserve 0 bytes,
1972           as this raises a ton of gpasm warnings, just emit a second label
1973         * src/pic16/devices.inc,
1974         * device/lib/pic16/pics.all,
1975         * device/lib/pic16/libdev/pic18f2585.c,
1976         * device/lib/pic16/libdev/pic18f2680.c,
1977         * device/lib/pic16/libdev/pic18f2682.c,
1978         * device/lib/pic16/libdev/pic18f2685.c,
1979         * device/lib/pic16/libdev/pic18f4585.c,
1980         * device/lib/pic16/libdev/pic18f4680.c,
1981         * device/lib/pic16/libdev/pic18f4682.c,
1982         * device/lib/pic16/libdev/pic18f4685.c,
1983         * device/include/pic16/pic18f2585.h,
1984         * device/include/pic16/pic18f2680.h,
1985         * device/include/pic16/pic18f2682.h,
1986         * device/include/pic16/pic18f2685.h,
1987         * device/include/pic16/pic18f4585.h,
1988         * device/include/pic16/pic18f4680.h,
1989         * device/include/pic16/pic18f4682.h,
1990         * device/include/pic16/pic18f4685.h,
1991         * device/include/pic16/pic18fregs.h: added 18f2585, 18f2680,
1992           18f2682, 18f2685, 18f4585, 18f4680, 18f4682, 18f4685,
1993           patch contributed by Anton Strobl, applied with changes
1994
1995 2007-09-16 Raphael Neider <rneider AT web.de>
1996
1997         * device/include/pic16/pic18f2431.h,
1998         * device/include/pic16/pic18f25j10.h,
1999         * device/include/pic16/pic18f4431.h,
2000         * device/include/pic16/pic18f45j10.h: adopted common include style
2001         * device/include/pic16/pic18f1320.h,
2002         * device/include/pic16/pic18f2320.h,
2003         * device/include/pic16/pic18f2525.h,
2004         * device/include/pic16/pic18f4320.h,
2005         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
2006         * device/include/pic16/pic18fregs.h: prepared for automatic include
2007           file selection by having DEVICE.h for every DEVICE
2008         * device/lib/pic16/libdev/pic18f2320.c,
2009         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
2010
2011         * device/lib/pic16/configure.in,
2012         * device/lib/pic16/configure: use rm -rf instead of rmdir
2013         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
2014         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
2015
2016 2007-09-09 Borut Razem <borut.razem AT siol.net>
2017
2018         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
2019           distingush between i386 and ppc Mac OS X versions
2020
2021 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2022
2023         * src/mcs51/gen.c (genReceive): fixed bug 1788177
2024         * support/regression/tests/bug1788177.c: new, added
2025
2026 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2027
2028         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
2029         * device/include/mcs51/lint.h added keyword __naked
2030
2031 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
2032
2033         * src/pic16/glue.c,
2034         * src/pic/glue.c,
2035         * src/SDCCmem.h: removed maxRegBank
2036         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
2037           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
2038         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
2039         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
2040           name and behaviour to handle banked functions
2041           (scan4op): and use it to fix bug 1786213
2042
2043 2007-09-03 Raphael Neider <rneider AT web.de>
2044
2045         * device/include/pic16/pic18f248.h,
2046         * device/include/pic16/pic18f258.h,
2047         * device/include/pic16/pic18f448.h,
2048         * device/lib/pic16/libdev/pic18f248.c,
2049         * device/lib/pic16/libdev/pic18f258.c,
2050         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
2051           added T0CONbits, fixes #1786891
2052
2053 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
2054
2055         * src/ds390/gen.c (genFarPointerSet),
2056         * src/hc08/ralloc.c (packRegisters),
2057         * src/mcs51/ralloc.c (packRegisters),
2058         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
2059           bug 1750318
2060         * src/SDCCicode.h: POINTER_SET can be true for literals too
2061         * support/regression/tests/bug1750318.c: new, added
2062
2063 2007-08-23 Borut Razem <borut.razem AT siol.net>
2064
2065         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
2066           library versions without the completition functionality
2067
2068 2007-08-22 Raphael Neider <rneider AT web.de>
2069
2070         * device/include/pic16/pic18f1220.h,
2071         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
2072
2073 2007-08-12 Borut Razem <borut.razem AT siol.net>
2074
2075         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
2076
2077 2007-08-11 Borut Razem <borut.razem AT siol.net>
2078
2079         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
2080           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
2081           support/Util/SDCCerr.[ch] moved to src
2082         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
2083           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
2084           device/examples/ds390/tinitalk/tinitalk.dsp,
2085           device/examples/serialcomm/windows/serialcomm.dsp,
2086           support/librarian/librarian.dsp:
2087           removed linking of unused odbc32.lib and odbccp32.lib
2088         * support/scripts/winres.h:
2089           added for compilation with Visual C++ 2005 Express Edition
2090
2091 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2092
2093         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
2094           and CKCON1.
2095
2096 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2097
2098         * sdccconf_in.h: update the endian test so that SPARC Solaris
2099           does not throw syntax errors
2100
2101 2007-08-06 Borut Razem <borut.razem AT siol.net>
2102
2103         * doc/sdccman.lyx: removed two index entries which prevented the
2104           generation of sdcc doc archive
2105
2106 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2107
2108         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
2109           instead of lyx 1.5.0.
2110
2111 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2112
2113         * device/include/hc08/mc68hc908apxx.h: new header contributed by
2114           Lucas Loizaga, with minor modifications. Thanks!
2115
2116 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2117
2118         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
2119           in sdcclib.
2120
2121 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2122
2123         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
2124           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
2125           with acall/ajmp.
2126
2127 2007-07-22 Borut Razem <borut.razem AT siol.net>
2128
2129         * configure.in, configure: re-introduced .version
2130         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
2131           the version reverted to 2.7.0
2132
2133 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
2134
2135         * configure.in,
2136         * doc/sdccman.lyx: bumped version to 2.7.3
2137         * device/include/mcs51/compiler.h: fixed elif->else
2138         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
2139         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
2140           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
2141            enable accuse for bit operands
2142         * src/SDCCmain.c (printVersionInfo),
2143         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
2144           environment descriptor
2145         * src/SDCCutil.h: added getBuildEnvironment
2146         * src/SDCCglue.c (initialComments): use getBuildEnvironment
2147         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
2148         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
2149         * support/regression/tests/bug1348008.c,
2150         * support/regression/tests/bug1496419.c,
2151         * support/regression/tests/bug1503067.c,
2152         * support/regression/tests/preproc.c: added empty tests
2153
2154 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
2155
2156         * support/regression/tests/bug1678803.c: new, added
2157
2158 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
2159
2160         * as/link/aslink.h,
2161         * as/link/hc08/lkihx.c,
2162         * as/link/hc08/lkrloc.c,
2163         * as/link/mcs51/lkihx.c,
2164         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
2165           ihxExtendedLinearAddress
2166         * as/link/mcs51/lkrloc.c (relr),
2167         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
2168           acall/ajmp, see bug 830513
2169
2170 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
2171
2172         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
2173           (cseBBlock): remember aggr2ptr has been used
2174         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
2175           (geniCodeAssign): fixed bug 868103
2176         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
2177           added operandSize prototype
2178         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
2179           (genDataPointerSet): use max of size of right and result,
2180           (gencjne): added parameter useCarry for optimization,
2181           (genCmpEq): use carry if appropriate,
2182           (genXor): check if operand already in carry
2183         * support/regression/tests/bug-868103.c: enabled test
2184
2185 2007-07-12 Raphael Neider <rneider AT web.de>
2186
2187         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
2188
2189 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
2190
2191         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
2192           from Robert Larice, thanks
2193         * support/regression/tests/bitopcse.c,
2194         * support/regression/tests/bitvars.c,
2195         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
2196         * support/regression/tests/bug-927659.c: enabled test for z80
2197         * support/regression/tests/bug1738367.c: added extra tests by Frieder
2198         * support/regression/tests/bug1745717.c: new, added
2199         * support/regression/tests/literalop.c,
2200         * support/regression/tests/nullstring.c: removed storage definitions that
2201           are now in testfwk.h
2202
2203 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
2204
2205         * device/include/stdbool.h: do not define __bool_true_false_are_defined
2206           and bool for targets that do not fully support it.
2207         * support/regression/tests/bug1546986.c,
2208         * support/regression/tests/bug1723128.c,
2209         * support/regression/tests/bug1734654.c,
2210         * support/regression/tests/bug1738367.c,
2211         * support/regression/tests/constantRange.c: only use bool if allowed
2212
2213 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
2214
2215         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
2216           Larice, also handle function pointers
2217         * support/regression/tests/bug1749275.c: new, added
2218
2219 2007-07-03 Borut Razem <borut.razem AT siol.net>
2220
2221         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
2222           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
2223           #1746528: SDCC should ignore ':' in inline assembler comments
2224         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
2225
2226 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
2227
2228         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
2229         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
2230
2231 2007-06-29 Borut Razem <borut.razem AT siol.net>
2232
2233         * src/SDCCmain.c: fixed bug
2234           #1744746: SDCC #4867: broken option --xram-size
2235
2236 2007-06-28 Borut Razem <borut.razem AT siol.net>
2237
2238         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
2239           find out the endianess of host machine for ucsim
2240
2241 2007-06-27 Borut Razem <borut.razem AT siol.net>
2242
2243         * support/regression/generate-cases.py: corrected the file name
2244           in warning
2245         * configure.in, configure, sdccconf_in.h: find out the endianess of
2246           host machine
2247         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
2248           negative size
2249
2250 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
2251
2252         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
2253
2254 2007-06-26 Borut Razem <borut.razem AT siol.net>
2255
2256         * support/regression/generate-cases.py: display warning if function
2257           list is empty; implemented more flexible rule for detection of
2258           testing functions, allowing return type 'void' in the same line as
2259           the function name in the function definition
2260         * support/regression/tests/bug-1654060.c: corrected test
2261         * support/librarian/sdcclib.c: fixed warning:
2262           format '%s' expects type 'char *', but argument 2 has type 'int'
2263
2264 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2265
2266         * support/librarian/sdcclib.c: Added feature Requests [1510635]
2267           Multiple infiles for sdcclib.
2268
2269 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2270
2271         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
2272           bug 1731741
2273
2274 2007-06-18 Borut Razem <borut.razem AT siol.net>
2275
2276         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
2277           how to handle comments, so they have to be removed by the
2278           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
2279         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
2280           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
2281           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
2282           table driven option hadling
2283
2284 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2285
2286         * src/SDCCast.c (decorateType),
2287         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
2288           iCode to ast level to fix bug 1738367
2289         * support/regression/tests/bug1738367.c: new, added
2290
2291 2007-06-15 Raphael Neider <rneider AT web.de>
2292
2293         * src/pic16/devices.inc,
2294         * device/lib/pic16/pics.all,
2295         * device/include/pic16/pic18fregs.h,
2296         * device/include/pic16/pic18f[24][45]20.h,
2297         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
2298           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
2299         * device/lib/pic16/Makefile.in: faster cleanup
2300
2301 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2302
2303         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
2304
2305 2007-06-13 Raphael Neider <rneider AT web.de>
2306
2307         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
2308
2309 2007-06-12 Raphael Neider <rneider AT web.de>
2310
2311         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
2312           suppress bit defines if NO_BIT_DEFINES is #define'd
2313         * device/include/pic/pic*.h: recreated all headers to include
2314           conditional bit defines
2315         * device/include/pic/pic16f886.h,
2316         * device/include/pic/pic16f887.h: fixed based on newer .inc file
2317         * device/include/pic/recreate.sh: script to recreate the complete
2318           device library files based on the currently supported devices
2319
2320 2007-06-12 Borut Razem <borut.razem AT siol.net>
2321
2322         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
2323           support/regression/Makefile.in, support/scripts/build.mak,
2324           support/scripts/Makefile.snapshot:
2325           use new svn URL scheme
2326         * doc/sdccman.lyx: SDCC Wiki moved to
2327           http://sdcc.wiki.sourceforge.net/
2328
2329 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2330
2331         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
2332         * support/regression/tests/bug1734654.c: added
2333
2334 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2335
2336         * src/SDCCast.c (decorateType): optimized '?' for equal operands
2337         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
2338           with literal operands
2339
2340 2007-06-10 Borut Razem <borut.razem AT siol.net>
2341
2342         * as/link/z80/lklibr.c: fixed mingw build warning
2343           lklibr.c:575: warning: implicit declaration of function 'tolower'
2344         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
2345           src/z80/main.c: move target specific options from src/SDCCmain.c
2346           to src/<target>/main.c
2347
2348 2007-06-09 Borut Razem <borut.razem AT siol.net>
2349
2350         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
2351           removed unused swap_sense; removed outBitCLong, replaced with outBitC
2352         * support/regression/tests/bug-1294691.c: added
2353
2354 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
2355
2356         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
2357           can also be static, fixes bug 1733438
2358         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
2359           have absolute address too
2360           (computeType): added optimization for 'cond ? true : false'
2361         * support/regression/tests/absolute.c: added test for static absolute var
2362
2363 2007-06-08 Raphael Neider <rneider AT web.de>
2364
2365         * src/regression/Makefile: suppress parallel builds, allow easy
2366           switching between pic14/pic16 ports
2367         * src/regression/picregs.h: added pic14/16 header file switch
2368         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
2369           inline.c,nestfor.c,string1.c}: include "picregs.h"
2370
2371 2007-06-07 Borut Razem <borut.razem AT siol.net>
2372
2373         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
2374           permanent solution to suppress GCC 4.2.0 c++ warning:
2375           deprecated conversion from string constant to `char *'
2376           use 'const char *' where ever required
2377         * support/regression/generate-cases.py: implemented more flexible rule
2378           for detection of testing functions, allowing white-spaces surrounding
2379           the function name and the 'void' parameter.
2380         * support/regression/tests/constantRange.c,
2381           support/regression/tests/scott-compare3.c: fixed failing regression
2382           tests, uncovered by implementation of more flexible rule for detection
2383           of testing functions
2384
2385 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
2386
2387         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
2388
2389 2007-06-04 Borut Razem <borut.razem AT siol.net>
2390
2391         * configure.in, configure, config_vc.awk: sdcc version number is now
2392           stored in configure.in; removed .version
2393         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
2394           doc/INSTALL.txt: version bumped to 2.7.2
2395         * sim/ucsim/configure.in, sim/ucsim/configure:
2396           use "read" to read from .version
2397
2398 2007-06-03 Borut Razem <borut.razem AT siol.net>
2399
2400         * */Makefile.in: removed annoying warning:
2401           Makefile:xx: Makefile.dep: No such file or directory
2402
2403 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2404
2405         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
2406           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
2407         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
2408         * src/SDCCast.c (resultTypePropagate): propagate for '!',
2409           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
2410           bugfix: only use newBoolLink for bit result type
2411         * src/SDCCicode.c (geniCodeLogic): added param tree,
2412           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
2413           (geniCodeLogicAndOr): use IS_BIT,
2414           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
2415           (ast2iCode): added tree param to geniCodeLogic for comparisons
2416         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
2417         * support/regression/tests/bug1723128.c: added test NotZero
2418
2419 2007-06-01 Borut Razem <borut.razem AT siol.net>
2420
2421         * SDCPP synchronized with GCC CPP release version 4.2.0,
2422           currently the latest release:
2423         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
2424           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
2425           support/cpp2/cppdefault.h, support/cpp2/except.h,
2426           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
2427           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
2428           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
2429           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
2430           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
2431           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
2432           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
2433           support/cpp2/opts.h, support/cpp2/output.h,
2434           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
2435           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
2436           support/cpp2/system.h, support/cpp2/version.c,
2437           support/cpp2/Makefile.in: modified
2438         * support/cpp2/opts-common.c: added
2439         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
2440         * device/lib/pic16/libdev/pic18f[24]5j10.c:
2441           search for included source file in local directory
2442         * sim/ucsim/configure, sim/ucsim/configure.in:
2443           temporary solution to suppress GCC 4.2.0 c++ warning:
2444           deprecated conversion from string constant to `char *'
2445
2446 2007-06-01 Raphael Neider <rneider AT web.de>
2447
2448         * device/lib/pic/libdev/pic12f683.c,
2449         * device/include/pic/pic12f683.h: added GPIO bits
2450
2451 2007-06-01 Raphael Neider <rneider AT web.de>
2452
2453         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
2454           quotation marks, clarified role of PIC14 vs. PIC16 ports
2455         * src/pic16/devices.inc,
2456         * device/include/pic16/pic18fregs.h,
2457         * device/include/pic16/pic18f[24][45]j10.h,
2458         * device/lib/pic16/pics.all,
2459         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
2460           18f24j10, 18f25j10, 18f44j10, and 18f45j10
2461         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
2462           for new devices as they are not yet supported by gputils
2463
2464 2007-05-31 Borut Razem <borut.razem AT siol.net>
2465
2466         * Small Device C Compiler 2.7.0 released
2467         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
2468           changed sdcc version to 2.7.1
2469         * support/scripts/sdcc.nsi: added How to create WIN32 release
2470           setup.exe package
2471
2472 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
2473
2474         * doc/sdccman.lyx: documented initialization and allocation of absolute
2475           variables, bit parameter passing, the need for function pointers to be
2476           reentrant and alpha quality support of inline and retrict
2477
2478 2007-05-26 Borut Razem <borut.razem AT siol.net>
2479
2480         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
2481           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
2482         * docs/knownbugs.html: updated
2483
2484 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
2485
2486         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
2487           thanks Jan Waclawek
2488         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
2489           AOP_CRY and ruonly
2490           (gencjneshort): optimized when left is AOP_DIR
2491         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
2492           initializing unions in a struct/array
2493         * support/regression/fwk/include/testfwk.h: added defines for data, near
2494           and far for host and z80
2495         * support/regression/tests/bug1723128.c: new, added
2496
2497 2007-05-22 Borut Razem <borut.razem AT siol.net>
2498
2499         * doc/knownbugs.html: updated
2500
2501 2007-05-21 Raphael Neider <rneider AT web.de>
2502
2503         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
2504           error message instead
2505         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
2506
2507 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2508
2509         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
2510
2511 2007-05-21 Raphael Neider <rneider AT web.de>
2512
2513         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
2514           closes #1722392
2515         * src/regression/gpsim_assert.h,
2516         * src/regression/Makefile,
2517         * src/regression/pcodeopt.c: regression test for the above fix
2518
2519 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
2520
2521         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
2522           jumps to self, fixed bug 1717281
2523
2524 2007-05-10 Borut Razem <borut.razem AT siol.net>
2525
2526         * support/scripts/gen_known_bugs.pl: cosmetic fix
2527         * doc/knownbugs.html: generated by gen_known_bugs.pl
2528
2529 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2530
2531         * src/SDCCast.c (createFunction): also generate non-inlined version of
2532           function for functions declared as "static inline"
2533         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
2534           function can be inlined after non-inlined version generated.
2535
2536 2007-05-10 Borut Razem <borut.razem AT siol.net>
2537
2538         * support/scripts/gen_known_bugs.pl: added script
2539           which generates knownbugs.html
2540
2541 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
2542
2543         * doc/knownbugs.html: updated for release 2.7.0
2544
2545 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2546
2547         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
2548
2549 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
2550
2551         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
2552           (throughout): updated generating comments
2553         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
2554           (throughout): updated generating comments
2555         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
2556           rule instead of at the second, or it might skip lines when removing the
2557           complete match
2558         * support/regression/tests/bug1714204.c: changed test to foo
2559
2560 2007-05-08 Borut Razem <borut.razem AT siol.net>
2561
2562         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
2563           thanks to SDCC Distributed Compile Farm members,
2564           added Z80 and GBZ80 command line options
2565         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
2566
2567 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
2568
2569         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
2570         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
2571         * support/regression/tests/longlit.c: modified to be tested at all and
2572           to pass the actual test
2573
2574 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2575
2576         * device/include/mcs51/uPSD33xx.h: Added.
2577
2578 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
2579
2580         * device/lib/_gptrput.c,
2581         * device/lib/_gptrget.c: removed old code,
2582          (_gptrgetWord),
2583         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
2584         * support/regression/tests/bug1714204.c: new, added
2585
2586 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2587
2588         * support/regression/tests/regtrack.c: test was never executed
2589           because of the regression test being picky about white spaces.
2590         * device/lib/mcs51/crtclear.asm: added comment
2591
2592 2007-05-06 Raphael Neider <rneider AT web.de>
2593
2594         * device/lib/pic/Makefile.rules,
2595         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
2596           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
2597
2598 2007-05-06 Raphael Neider <rneider AT web.de>
2599
2600         * src/pic16/device.h,
2601         * src/pic16/main.h,
2602         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
2603           _pic16_setDefaultOptions): removed/reordered command-line args
2604         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
2605           devices, regrouped command line args, environment variables),
2606           clarified sone points, added sections on how to add devices to the
2607           PIC14/PIC16 ports
2608
2609 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
2610
2611         * src/z80/peeph.def: fixed bug in rule 2
2612
2613 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
2614
2615         * src/port.h: added TARGET_MCS51_LIKE
2616         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
2617           take advantage of it too
2618         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
2619           (shiftR2Left2Result): Optimized: don't check shifting by 0
2620         * src/z80/peeph-z80.def,
2621         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
2622           modifications, see patch 1700823
2623         * src/mcs51/peep.c (): fixed bug 1712928
2624         * support/regression/tests/bug1712928.c: new, added
2625
2626 2007-05-05 Borut Razem <borut.razem AT siol.net>
2627
2628         * device/lib/pic16/Makefile.common.in,
2629           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
2630           removed bash dependencies
2631
2632 2007-05-01 Borut Razem <borut.razem AT siol.net>
2633
2634         * src/SDCCicode.c:
2635           fixed bug #1710507: --i-code-in-asm makes compile fail
2636           all iCode comments are now one liners
2637         * src/mcs51/gen.c: fixed memory leak
2638
2639 2007-05-01 Raphael Neider <rneider AT web.de>
2640
2641         * device/lib/pic/libdev/*.c
2642         * device/include/pic/*.h: regenerated all device libs from updated
2643           .inc files
2644         * support/scripts/inc2h.pl: documented usage, now uses strict to
2645           catch more bugs
2646
2647 2007-04-30 Borut Razem <borut.razem AT siol.net>
2648
2649         * doc/sdccman.lyx:
2650           fixed bug #1669175: Problem with space in output paths
2651           documented how to use paths with spaces for Windows users
2652
2653 2007-04-29 Borut Razem <borut.razem AT siol.net>
2654
2655         * Fixed svn:eol-style and svn:keywords properties
2656         * src/SDCCval.c: fixed bug
2657           #1592871: Segfault with "large" const arrays of characters
2658           replaced recursion with iteration
2659         * Removed svn:executable property from non-executable files
2660
2661 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
2662
2663         * src/mcs51/gen.c (genRet): fixed bug 1707003
2664
2665 2007-04-27 Raphael Neider <rneider AT web.de>
2666
2667         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
2668           createReachingDefinitions,assignValnums,pic16_destructDF,
2669           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
2670           prevent NULL pointer dereferences
2671         * device/lib/pic/libdev/pic16f886.c,
2672         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
2673           prevent building them, gputils do not really support them yet
2674
2675 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2676
2677         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
2678           helps printf_small. 32 bytes more __idata mem.
2679
2680 2007-04-27 Raphael Neider <rneider AT web.de>
2681
2682         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
2683           return early when pb or pb->pcHead is NULL (patch #1708427)
2684         * src/regression/empty.c,
2685         * src/regression/Makefile: added test with empty functions
2686         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
2687
2688 2007-04-27 Borut Razem <borut.razem AT siol.net>
2689
2690         * src/SDCCast.c: fixed feature request
2691           #1547512: Redundant strings linked when using sizeof("abc")
2692
2693 2007-04-23 Borut Razem <borut.razem AT siol.net>
2694
2695         * doc/sdccman.lyx, src/SDCCmain.c:
2696           peep-hole comments are generated only if --fverbose-asm option is
2697           specified and --no-peep-comments is not, as proposed by Frieder.
2698         * support/regression/Makefile.in: compile regression tests with
2699           --fverbose-asm option so one can "grep" whether a new (or an old)
2700           peephole is (still) applied; requested by Frieder.
2701
2702 2007-04-23 Kevin Buettner <kevin AT buettner.to>
2703
2704         * device/include/pic/pic16f886.h,
2705         * device/include/pic/pic16f887.h,
2706         * device/lib/pic/libdev/pic16f886.c,
2707         * device/lib/pic/libdev/pic16f887.c,
2708         * device/include/pic/pic14devices.txt,
2709         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
2710
2711 2007-04-23 Kevin Buettner <kevin AT buettner.to>
2712
2713         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
2714           fixes #1704666
2715
2716 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2717
2718         * device/lib/_memset.c: assembler version for mcs51
2719
2720 2007-04-22 Borut Razem <borut.razem AT siol.net>
2721
2722         * support/scripts/listerr.c: program to create the list of errors and
2723           warnings list from - added
2724         * doc/sdccman.lyx: removed the note
2725           "For list of warnings and corresponding codes, see err_warn.txt"
2726         * src/SDCCsymt.c: fixed bug #1699804:
2727           Bug with some uses of sizeof(static local array) (MCS51)
2728         * support/regression/tests/bug-1699804.c: added
2729
2730 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
2731
2732         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
2733           (main): added option -i,
2734           (asmbl, case S_INCL): use search_path_fopen,
2735           mostly from patch 1579668 by Peter Miller, thanks
2736         * src/z80/main.c: fixed typo --callee-saves-bc
2737         * device/include/mcs51/compiler.h: added sfrword for Tasking
2738
2739 2007-04-20 Borut Razem <borut.razem AT siol.net>
2740
2741         * src/z80/main.c: replaced reserved keyword asm with asmblr
2742
2743 2007-04-19 Borut Razem <borut.razem AT siol.net>
2744
2745         * src/port.h: use const pointers to strings
2746         * src/SDCCargs.h: declared getStringArg() and getIntArg()
2747         * src/pic16/main.c: include SDCCargs.h
2748         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
2749           const char, since the strings are dynamically allocated
2750         * src/SDCCmain.c: options.code_seg and options.const_seg are
2751           dynamically allocated; check port specific command line options
2752           before the general ones
2753         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
2754
2755 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
2756
2757         * device/include/ds400rom.h,
2758         * device/lib/ds390/lcd390.c,
2759         * device/lib/ds390/memcpyx.c,
2760         * device/lib/ds390/rtc390.c,
2761         * device/lib/ds400/ds400rom.c,
2762         * device/lib/ds400/memcpyx.c,
2763         * device/lib/hc08/_ret.c: more replacements of keywords with their
2764           double underscore equivalents
2765         * device/lib/ds390/Makefile.in,
2766         * device/lib/ds400/Makefile.in,
2767         * device/lib/gbz80/Makefile.in,
2768         * device/lib/hc08/Makefile.in,
2769         * device/lib/mcs51/Makefile.in,
2770         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
2771
2772 2007-04-17 Borut Razem <borut.razem AT siol.net>
2773
2774         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
2775           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
2776           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
2777           to --fverbose-asm, to be gcc'ish
2778
2779 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
2780
2781         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
2782
2783 2007-04-17 Borut Razem <borut.razem AT siol.net>
2784
2785         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
2786         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
2787           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
2788           with their double underscore equivalent
2789
2790 2007-04-14 Borut Razem <borut.razem AT siol.net>
2791
2792         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
2793           source"
2794
2795 2007-04-13 Borut Razem <borut.razem AT siol.net>
2796
2797         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
2798           C99 standard
2799         * device/examples/serialcomm/windows/serial.[ch],
2800           device/examples/serialcomm/windows/test_serialcomm.cpp:
2801           updated by Bela Torok
2802         * device/examples/serialcomm/windows/serialcomm.dsw,
2803           device/examples/serialcomm/windows/serialcomm.dsp: added
2804
2805 2007-04-13 Jan Waclawek <wek AT efton.sk>
2806
2807         * doc/sdccman.lyx: additions and changes at various places
2808           (submitted as #1697136).
2809           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
2810
2811 2007-04-10 Borut Razem <borut.razem AT siol.net>
2812
2813         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
2814           LyX file format changed to 245
2815         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
2816           "FreeWare" replaced with "free open source"
2817
2818 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
2819
2820         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
2821
2822 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
2823
2824         * device/include/pic16/pic18fregs.h,
2825         * device/lib/_bp.c,
2826         * device/lib/_decdptr.c,
2827         * device/lib/_divsint.c,
2828         * device/lib/_divslong.c,
2829         * device/lib/_divuint.c,
2830         * device/lib/_divulong.c,
2831         * device/lib/_fs2schar.c,
2832         * device/lib/_fs2sint.c,
2833         * device/lib/_fs2slong.c,
2834         * device/lib/_fs2uchar.c,
2835         * device/lib/_fs2uint.c,
2836         * device/lib/_fs2ulong.c,
2837         * device/lib/_fsadd.c,
2838         * device/lib/_fscmp.c,
2839         * device/lib/_fsdiv.c,
2840         * device/lib/_fseq.c,
2841         * device/lib/_fsget1arg.c,
2842         * device/lib/_fsget2args.c,
2843         * device/lib/_fsgt.c,
2844         * device/lib/_fslt.c,
2845         * device/lib/_fsmul.c,
2846         * device/lib/_fsneq.c,
2847         * device/lib/_fsnormalize.c,
2848         * device/lib/_fsreturnval.c,
2849         * device/lib/_fsrshift.c,
2850         * device/lib/_fssub.c,
2851         * device/lib/_fsswapargs.c,
2852         * device/lib/_gptrget.c,
2853         * device/lib/_gptrgetc.c,
2854         * device/lib/_gptrput.c,
2855         * device/lib/_logexpf.c,
2856         * device/lib/_modsint.c,
2857         * device/lib/_modslong.c,
2858         * device/lib/_moduint.c,
2859         * device/lib/_modulong.c,
2860         * device/lib/_mulint.c,
2861         * device/lib/_mullong.c,
2862         * device/lib/_schar2fs.c,
2863         * device/lib/_ser.c,
2864         * device/lib/_setjmp.c,
2865         * device/lib/_sint2fs.c,
2866         * device/lib/_slong2fs.c,
2867         * device/lib/_spx.c,
2868         * device/lib/_uchar2fs.c,
2869         * device/lib/_uint2fs.c,
2870         * device/lib/_ulong2fs.c,
2871         * device/lib/asincosf.c,
2872         * device/lib/atanf.c,
2873         * device/lib/calloc.c,
2874         * device/lib/ds390/tinibios.c,
2875         * device/lib/ds400/tinibios.c,
2876         * device/lib/expf.c,
2877         * device/lib/free.c,
2878         * device/lib/hc08/_mulint.c,
2879         * device/lib/logf.c,
2880         * device/lib/malloc.c,
2881         * device/lib/printf_fast.c,
2882         * device/lib/printf_tiny.c,
2883         * device/lib/printfl.c,
2884         * device/lib/realloc.c,
2885         * device/lib/ser_ir.c,
2886         * device/lib/serial.c,
2887         * support/regression/tests/libmullong.c: replaced all special keywords
2888           with their double underscore equivalent
2889         * support/regression/ports/mcs51-xstack-auto/spec.mk,
2890         * device/lib/Makefile.in: compile libs with --std-c99 instead of
2891           --std-sdcc99
2892         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
2893           (genRet): if the bit-symbol is ruonly it already is in the carry
2894         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
2895         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
2896         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
2897           type UCHAR if dest is not bit
2898
2899 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
2900
2901         * device/include/math.h,
2902         * device/lib/cotf.c,
2903         * device/lib/expf.c,
2904         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
2905
2906 2007-04-01 Borut Razem <borut.razem AT siol.net>
2907
2908         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
2909           fixed bug #1692042: input buffer overflow...scanner uses REJECT
2910         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
2911           gcc_unreachable() called internal_error()...
2912
2913 2007-03-30 Raphael Neider <rneider AT web.de>
2914
2915         * src/pic/ralloc.c (isData): suppress garbage debug output
2916
2917 2007-03-28 Borut Razem <borut.razem AT siol.net>
2918
2919         * doc/sdccman.lyx:
2920           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
2921           is developed, built and used worldwide, and the word "night" doesn't
2922           make any sense.
2923
2924 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
2925
2926         * device/include/mcs51/C8051F360.h: new, added
2927         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
2928
2929 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2930
2931         * src/SDCC.y (declaration_specifiers, function_specifier),
2932         * support/Util/SDCCerr.c,
2933         * support/Util/SDCCerr.h,
2934         * src/SDCCsymt.h,
2935         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
2936           inline keyword
2937         * src/SDCCmem.c (deallocParms),
2938         * src/SDCCast.c: support for function inlining, not quite complete
2939         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
2940           'restrict' qualifier
2941
2942 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2943
2944         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
2945           (saveRBank, unsaveRBank): don't save bits,
2946           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
2947         * support/regression/tests/bug1535242.c: new, added
2948         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
2949           thanks Alexey Shamrin <shamrin AT gmail.com>,
2950           made assert.h header ANSI compliant (added a check for NDEBUG macro,
2951           removed header guard)
2952         * .version,
2953         * sdcc.spec: bumped version to 2.6.5
2954         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
2955
2956 2007-03-22 Borut Razem <borut.razem AT siol.net>
2957
2958         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
2959           fixed bug #1653671: sdcdb integration into ddd is broken
2960
2961 2007-03-22 Raphael Neider <rneider AT web.de>
2962
2963         * src/pic/gen.c (popGetExternal): augmented to also create references
2964           to external variables (not only labels),
2965           (genCall): comment on plan to reduce PAGESEL overhead,
2966           (genFunction, genEndFunction): also save/restore FSR around interrupt
2967           handling code, removed lots of unused code
2968           (genDivOneByte): release acquired temp register
2969         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
2970           of popGetExternal
2971         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
2972           for registers that need to be saved during interrupts (FSR, STATUS,
2973           PCLATH; W needs special handling), currently only FSR is used
2974
2975 2007-03-22 Raphael Neider <rneider AT web.de>
2976
2977         * device/include/pic/pic14devices.txt: 16f688 has only one config word
2978
2979 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2980
2981         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
2982
2983 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2984
2985         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
2986
2987 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
2988
2989         * as/link/aslink.h: added LKOBJEXT
2990         * as/link/hc08/link_hc08.dsp,
2991         * as/link/hc08/Makefile.bcc,
2992         * as/link/hc08/Makefile.in,
2993         * as/link/mcs51/aslink.dsp,
2994         * as/link/mcs51/Makefile.bcc,
2995         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
2996         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
2997         * as/link/lkaomf51.c: merged and moved
2998         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
2999         * as/link/z80/lkdata.c,
3000         * as/link/lkdata.c: merged and moved
3001         * as/link/hc08/lkmain.c,
3002         * as/link/mcs51/lkmain.c: cosmetic changes
3003         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
3004         * as/link/lklex.c: use LKOBJEXT
3005         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
3006           ANSI-fied functions, removed bubble-sorts
3007         * as/link/z80/lksym.c           as/link/lksym.c: merged,
3008           ANSI-fied functions
3009         * as/link/z80/linkgbz80.dsp,
3010         * as/link/z80/linkz80.dsp,
3011         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
3012           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
3013         * as/link/z80/lkhead.c,
3014         * as/link/z80/lklex.c: deleted
3015         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
3016         * as/link/z80/lkmain.c: added copyfile()
3017
3018 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3019
3020         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
3021
3022 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3023
3024         * device/lib/_strlen.c: assembler version for mcs51
3025
3026 2007-03-13 Raphael Neider <rneider AT web.de>
3027
3028         * device/include/pic16/pic18f2221.h,
3029         * device/include/pic16/pic18f2321.h,
3030         * device/include/pic16/pic18f2331.h,
3031         * device/include/pic16/pic18f4221.h,
3032         * device/include/pic16/pic18f4321.h,
3033         * device/include/pic16/pic18f4331.h: fixed config byte location names
3034         * support/scripts/inc2h-pic16.pl: removed debug output, emit
3035           consistently named config byte locations
3036
3037 2007-03-13 Borut Razem <borut.razem AT siol.net>
3038
3039         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3040           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
3041           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
3042           as/link/z80/Makefile.in, as/z80/Makefile.in:
3043           introduced LDFLAGS
3044
3045 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3046
3047         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
3048         * device/lib/printf_large.c: pointer was converted to generic
3049         pointer for mcs51 models other than model-small (Maarten noticed)
3050
3051 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3052
3053         * device/include/mcs51/ADuC84x.h: Added.
3054
3055 2007-03-10 Borut Razem <borut.razem AT siol.net>
3056
3057         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
3058           fixed RFE #1624219: double backslashes in filenames;
3059           functions hexEscape(), octalEscape() and copyStr() moved from
3060           SDCCval.c to SDCCutil.c and made them glovbally available
3061
3062 2007-03-09 Borut Razem <borut.razem AT siol.net>
3063
3064         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
3065           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
3066           1673361: Missaligned comments in output files
3067
3068 2007-03-09 Raphael Neider <rneider AT web.de>
3069
3070         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
3071
3072 2007-03-09 Raphael Neider <rneider AT web.de>
3073
3074         * src/pic/gen.c,
3075         * src/pic/glue.c,
3076         * src/pic/ralloc.c: suppress undesired debug output
3077         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
3078
3079 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3080
3081         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
3082
3083 2007-03-07 Borut Razem <borut.razem AT siol.net>
3084
3085         * device/lib/pic16/libdev/pic18f[24][34]31.c:
3086           search include files in the current directory
3087
3088 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
3089
3090         * src/SDCCglue.c (emitMaps, glue),
3091         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
3092           absolute xdata
3093         * support/regression/tests/absolute.c: added xdata test
3094
3095 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
3096
3097         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
3098           added condition to macro, fixes bug 1666080
3099
3100 2007-03-02 Raphael Neider <rneider AT web.de>
3101
3102         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
3103
3104 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3105
3106         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
3107         be cleared. Unconditionally set __XPAGE
3108         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
3109
3110 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3111
3112         * src/SDCCglobl.h,
3113         * src/SDCCmain.c,
3114         * src/mcs51/gen.c,
3115         * src/mcs51/rtrack.c,
3116         * src/ds390/gen.c,
3117         * doc/sdccman.lyx: added --no-gen-comments
3118         * src/mcs51/peeph.def: added 192.b, disabled 185
3119
3120 2007-02-25 Raphael Neider <rneider AT web.de>
3121
3122         * src/pic16/gen.c (genCast): fixed typo
3123         * device/lib/pic16/Makefile.subdir: only install existing files
3124         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
3125
3126 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
3127
3128         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
3129         * device/lib/mcs51/crtclear.asm,
3130         * device/lib/mcs51/crtxclear.asm: renumbered labels
3131         * device/lib/mcs51/Makefile.in: added crtcall.asm
3132         * doc/sdccman.lyx: documented mcs51 crt* library startup code
3133         * src/mcs51/gen.c (movc): removed,
3134           (aopGet, genPlusBits): clear a after loading the carry (possibly from
3135             acc.x or psw.x),
3136           (toCarry, genSend, genRet): added function toCarry,
3137           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
3138           (assignBit, genAssign, genCast): added function assignBit
3139         * src/mcs51/Makefile.bcc: added rtrack.c
3140         * src/mcs51/ralloc.h: made valueKnown a bitfield
3141         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
3142           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
3143           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
3144         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
3145         * src/z80/gen.c: added AOP_IS_PAIRPTR,
3146           (_pop): only pop valid pairs, see gencjneshort,
3147           (gencjneshort): return pair that still needs to be popped, restructured,
3148           (gencjne, genCmpEq): call _pop
3149
3150 2007-02-23 Raphael Neider <rneider AT web.de>
3151
3152         * device/include/pic/pic14devices.txt: 16f684 has only one config word
3153
3154 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3155
3156         * device/include/mcs51/P89LPC925.h: Added.
3157
3158 2007-02-18 Raphael Neider <rneider AT web.de>
3159
3160         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
3161
3162 2007-02-17 Borut Razem <borut.razem AT siol.net>
3163
3164         * support/cpp2/directives.c, support/cpp2/version.c:
3165           synchronized with GCC CPP 4.1.2
3166
3167 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3168
3169         * src/mcs51/rtrack.h,
3170         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
3171           by checking the strings passed by emitcode() to the assembler.
3172           Feel free to change. This in part addresses RFE #482179.
3173           Set environment variable SDCC_RTRACK to enable.
3174         * src/mcs51/gen.c: inserted hooks
3175         * src/mcs51/ralloc.h: added two members to struct regs
3176         * support/regression/tests/regtrack.c: added
3177
3178 2007-02-14 Borut Razem <borut.razem AT siol.net>
3179
3180         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
3181         * Makefile.in: applied patch from Makefile related part of
3182           #1469393: Compiler does not initialize static data
3183
3184 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
3185
3186         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
3187           for better fix of bug 1273984, compiles pic16 rand.c
3188
3189 2007-02-12 Borut Razem <borut.razem AT siol.net>
3190
3191         * src/pic16/main.c: fixed pic16 standard library directory bug
3192
3193 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3194
3195         * src/hc08/gen.c (genSwap): fix swap regression test
3196
3197 2007-02-10 Borut Razem <borut.razem AT siol.net>
3198
3199         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
3200           with same scope
3201         * support/regression/tests/bug-1654060.c: added regression test for
3202           #1654060
3203
3204 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
3205
3206         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
3207         bit moves in return statement
3208
3209 2007-02-09 Borut Razem <borut.razem AT siol.net>
3210
3211         * src/SDCC.y: fixed bug #1654060 typedef within function causes
3212           syntax error
3213
3214 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
3215
3216         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
3217         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
3218
3219 2007-02-07 Raphael Neider <rneider AT web.de>
3220
3221         * src/pic16/devices.inc,
3222         * device/include/pic16/pic18fregs.h,
3223         * device/include/pic16/pic18f[24][34]31.h,
3224         * device/lib/pic16/libdev/pic18f[24][34]31.c,
3225         * device/lib/pic16/pics.all: added 18f[24][34]31 family
3226         * device/lib/pic16/libio/i2c.ignore: do not build i2c
3227
3228 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
3229
3230         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
3231           can this have lived here for so many years?
3232         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
3233           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
3234         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
3235
3236 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
3237
3238         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
3239         appended by loop induction must be at the very end of the eBBlock
3240
3241 2007-02-05 Kevin Vigor
3242
3243         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
3244
3245 2007-02-05 Borut Razem <borut.razem AT siol.net>
3246
3247         * support/regression/fwk/lib/timeout.c: native WIN32 port,
3248           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
3249
3250 2007-02-03 Borut Razem <borut.razem AT siol.net>
3251
3252         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
3253           applied patch #1646602 option to set default signedness of char to
3254           unsigned, added -funsigned-char command line option,
3255           thanks to Gunther Jehle
3256         * device/lib/Makefile.in: added the -f option to rm so it doesn't
3257           prompt for file deletion a few hundred times (especially the
3258           subversion files, which have ro permissions so it asks for
3259           confirmation), thanks to Simon McAuliffe;
3260           added {} + option to find in order to remove multiple files from a
3261           single rm commad
3262
3263 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3264
3265         * device/include/mcs51/SST89x5xRDx.h: Added.
3266
3267 2007-02-02 Raphael Neider <rneider AT web.de>
3268
3269         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
3270         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
3271
3272 2007-02-01 Raphael Neider <rneider AT web.de>
3273
3274         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
3275           config words again
3276
3277 2007-01-31 Borut Razem <borut.razem AT siol.net>
3278
3279         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
3280           if compiled with GCC. Thanks to Raphael Neider
3281
3282 2007-01-31 Raphael Neider <rneider AT web.de>
3283
3284         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
3285             operand names, handles name and (name + n) for all n,
3286           (sameBank): restructured, also check bank allocation policy,
3287         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
3288           (pic14_operandsAllocatedInSameBank): check whether to operands
3289             will be allocated into the same bank (i.e., section) to reduce
3290             BANKSEL overhead, queried from pcode.c:sameBank,
3291           (pic14printLocals): reintroduced clustering registers into a single
3292             section: all compiler generated symbols will now reside in one
3293             bank (per file), reducing BANKSEL overhead and code size,
3294           (showAllMemmaps): use local dbuf where possible
3295
3296 2007-01-29 Raphael Neider <rneider AT web.de>
3297
3298         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
3299           (call_libraryfunc): retrieve/create symbol and mark as used,
3300           (genFunction): mark defined functions as non-extern and add again
3301            to code memmap for later output
3302         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
3303           (pic14printLocals): reworked for new symbol emission,
3304           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
3305           showAllMemmaps): reworked symbol output using dbufs, added handling
3306             of string literals (still incomplete),
3307           (picglue): removed symbol emission, moved into showAllMemmaps,
3308           (emitSymbolSet): new workhorse for symbol output,
3309           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
3310
3311 2007-01-29 Borut Razem <borut.razem AT siol.net>
3312
3313         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
3314           component contains the extension separator.
3315
3316 2007-01-28 Borut Razem <borut.razem AT siol.net>
3317
3318         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
3319           on WIN32
3320         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
3321           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
3322           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
3323           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
3324           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
3325           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
3326           src/z80/gen.c, support/Util/MySystem.c:
3327           accept slash and backslash as directory separator on WIN32 and
3328           Cygwin ports
3329
3330 2007-01-28 Raphael Neider <rneider AT web.de>
3331
3332         * src/pic16/devices.inc,
3333         * device/include/pic16/pic18f[24][23]21.h,
3334         * device/include/pic16/pic18fregs.h,
3335         * device/lib/pic16/libdev/pic18f[24][23]21.c,
3336         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
3337         * device/lib/pic16/libio/adc.ignore,
3338         * device/lib/pic16/libio/i2c.ignore,
3339         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
3340           family, as gputils do not yet support the devices
3341         * device/lib/pic16/Makefile.subdir: ignore errors on install
3342         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
3343           headers and libraries from gputils .inc files
3344
3345 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
3346
3347         * doc/sdccman.lyx: add printf_fast_f precision limitation note
3348
3349 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
3350
3351         * doc/sdccman.lyx: add printf benchmarks
3352
3353 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
3354
3355         * device/lib/printf_fast.c: fix %c, char promoted to int
3356         * device/lib/printf_tiny.c: fix %c, char promoted to int
3357
3358 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
3359
3360         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
3361
3362 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3363
3364         * support/regression/tests/swap.c: 64 bit hosts failed
3365         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
3366
3367 2007-01-25 Raphael Neider <rneider AT web.de>
3368
3369         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
3370           based on absolute register address, patch by Alex Blond
3371
3372 2007-01-22 Raphael Neider <rneider AT web.de>
3373
3374         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
3375           emitted, do not emit them again...
3376
3377 2007-01-22 Raphael Neider <rneider AT web.de>
3378
3379         * src/regression/bank1.c, src/regression/compare6.c,
3380           src/regression/add.c: cosmetic changes
3381         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
3382         * src/pic/gen.c: fixed global zero and one,
3383           (aopForSym): removed unued code,
3384           (aopGet): assert aop is defined, check and use `index' of
3385             pCodeImmd operands (fixes #1630908),
3386         * src/pic/pcode.c (get_op): added output of generic pointer tag,
3387           (register_reassign): prevent accidental register unification,
3388           (ReuseReg): cosmetic changes (also above)
3389         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
3390           pic14emitStaticSeg): do not emit initialized data,
3391           (printIval*): replaced with working versions,
3392           (pic14createInterruptVect,picglue): use idata for initialized data,
3393             now init data should work in all modules (not only main()),
3394         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
3395
3396 2007-01-21 Borut Razem <borut.razem AT siol.net>
3397
3398         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
3399           use -fPIC or -fpic if they are supported and not ignored
3400         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
3401         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
3402
3403 2007-01-20 Borut Razem <borut.razem AT siol.net>
3404
3405         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
3406           implemented RFE #1470316: allow "$" in variable names
3407
3408 2007-01-20 Raphael Neider <rneider AT web.de>
3409
3410         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
3411
3412 2007-01-20 Raphael Neider <rneider AT web.de>
3413
3414         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
3415         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
3416         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
3417         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
3418           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
3419         * device/lib/pic/libdev/pic*.c,
3420         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
3421         * device/lib/pic/libdev/Makefile.in: show progress
3422
3423 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
3424
3425         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
3426         * support/scripts/sdcc_cygwin_mingw32,
3427         * support/scripts/sdcc_mingw32,
3428         * support/scripts/build.mak: replaced --datadir by --datarootdir for
3429         conformance with autoconf 2.6
3430
3431 2007-01-19 Raphael Neider <rneider AT web.de>
3432
3433         * src/pic/device.c (register_map): fixed list construction
3434         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
3435           (genMod): removed case for genModbits,
3436           (genModbits): removed as now unused/unimplemented
3437         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
3438
3439 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3440
3441         * support/regression/tests/swap.c: added in response to #1638622
3442         * doc/sdccman.lyx: synced version, minor changes
3443
3444 2007-01-18 Borut Razem <borut.razem AT siol.net>
3445
3446         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
3447           thanks to Gunther Jehle
3448         * src/asm.c: don't die if the file drfined in #line couldn't be opened
3449         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
3450           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
3451           use filename in lineno instead.
3452         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
3453           print the file name in ast_print()
3454
3455 2007-01-18 Borut Razem <borut.razem AT siol.net>
3456
3457         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
3458           defined in MSVC
3459         * src/SDCC.lex: stringLiteral() returns const char pointer,
3460           EOF detection in stringLiteral(), fixed asmbuf memory leak,
3461           fixed column counting
3462         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
3463           accept const char pointer as parameter
3464         * src/SDCCdwarf2.c: corrected buffer size
3465
3466 2007-01-17 Borut Razem <borut.razem AT siol.net>
3467
3468         * support/Util/dbuf_string.c: fixed for amd64
3469
3470 2007-01-15 Borut Razem <borut.razem AT siol.net>
3471
3472         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
3473           removed terminal symbol ELIPSIS, since it was never generated by the
3474           lexer and it was wrongly used in parameter_identifier_list rule
3475
3476 2007-01-15 Raphael Neider <rneider AT web.de>
3477
3478         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
3479             code page and data banking description
3480         * src/pic/genarith.c,
3481         * src/pic/gen.h: removed bit arithmetic functions,
3482             updated exit(1) to exit(EXIT_FAILURE)
3483         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
3484         * device/include/pic16/pic18f2455.h,
3485         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
3486             TRISD and TRISE, fixed/added some bit names
3487         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
3488         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
3489             updated pic18f2455.{c,h} instead of duplicating them
3490
3491 2007-01-14 Borut Razem <borut.razem AT siol.net>
3492
3493         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
3494           Cannot debug files that contain spaces in the path name
3495           by converting spaces in asm file name to underscores
3496
3497 2007-01-13 Borut Razem <borut.razem AT siol.net>
3498
3499         * doc/sdccman.lyx: fixed format errors
3500
3501 2007-01-10 Borut Razem <borut.razem AT siol.net>
3502
3503         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
3504           codeseg/constseg #pragma fail
3505         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
3506         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
3507           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
3508           suppoprt/cpp2/sdcpp.[ch]: house cleaning
3509
3510 2007-01-09 Borut Razem <borut.razem AT siol.net>
3511
3512         * get rid of diagnistic.[ch], pretty-print.[ch],
3513           c-pretty-print.[ch], ... used just for error, warning, ...
3514           message formatting
3515         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
3516           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
3517           suppoprt/cpp2/pretty-print.[ch]:
3518           removed
3519         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
3520           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
3521           suppoprt/cpp2/sdcpp.dsp:
3522           changed
3523
3524 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
3525
3526         * device/lib/printf_large.c (output_float): removed recursion,
3527           use smaller buffer on stack for mcs51,
3528           fixed bug printing 1.96
3529         * support/regression/tests/snprintf.c: added test
3530
3531 2007-01-07 Borut Razem <borut.razem AT siol.net>
3532
3533         * use dynamic memory buffers instead temporary files
3534         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
3535           added
3536         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
3537           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
3538           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
3539           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
3540           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
3541           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
3542           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
3543           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
3544           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
3545           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
3546           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
3547           support/Util/dbuf.c, support/Util/dbuf.h:
3548           modified
3549         * .version, sdcc.spec: bumped version to 2.6.4
3550
3551 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
3552
3553         * src/port.h: added TARGET_Z80_LIKE macro
3554         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
3555           output PSEG location if --xram-loc or --xstack-loc was used
3556         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
3557
3558 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
3559
3560         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
3561         * as/as_z80.dsp,   as/z80/as_z80.dsp,
3562         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
3563         * sdcc.dsw: moved project files into subdir
3564         * as/hc08/as_hc08.dsp,
3565         * as/hc08/Makefile.bcc,
3566         * as/hc08/Makefile.in,
3567         * as/mcs51/Makefile.bcc,
3568         * as/mcs51/Makefile.in,
3569         * as/z80/Makefile.bcc,
3570         * as/z80/Makefile.in,
3571         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
3572         * as/hc08/asm.h,
3573         * as/mcs51/asm.h,
3574         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
3575         * as/hc08/asmain.c,
3576         * as/hc08/assym.c,
3577         * as/mcs51/asmain.c,
3578         * as/mcs51/assym.c,
3579         * as/z80/assym.c: removed include "strcmpi.h"
3580         * as/hc08/strcmpi.c,
3581         * as/hc08/strcmpi.h,
3582         * as/mcs51/strcmpi.c,
3583         * as/mcs51/strcmpi.h,
3584         * support/Util/strcmpi.c,
3585         * support/Util/strcmpi.h: removed files
3586         * as/strcmpi.c: added as_strncmpi()
3587
3588 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3589
3590         * sdcc.dsw: Added some dependencies on project config.dsp
3591
3592 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
3593
3594         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
3595           with [di]ram_start to fix a regresion
3596
3597 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
3598
3599         * configure.in: added missing mcs51 in status output
3600         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
3601         directory
3602         * debugger/mcs51/clean.mk (distclean): remove config.h
3603         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
3604         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
3605         options.h, s-options-h and options.c
3606         * support/cpp2/clean.mk: unused, removed
3607         * Makefile.common.in,
3608         * main_in.mk,
3609         * as/Makefile.in,
3610         * as/hc08/Makefile.in,
3611         * as/hc08/clean.mk,
3612         * as/mcs51/Makefile.in,
3613         * as/mcs51/clean.mk,
3614         * as/z80/clean.mk,
3615         * as/z80/conf.mk,
3616         * as/z80/Makefile.in,
3617         * as/z80/clean.mk,
3618         * as/link/Makefile.in,
3619         * as/link/hc08/Makefile.in,
3620         * as/link/hc08/clean.mk,
3621         * as/link/mcs51/Makefile.in,
3622         * as/link/mcs51/clean.mk,
3623         * as/link/z80/Makefile.in,
3624         * as/link/z80/clean.mk,
3625         * as/link/z80/conf.mk,
3626         * debugger/mcs51/Makefile.in,
3627         * debugger/mcs51/clean.mk,
3628         * device/include/Makefile.in,
3629         * device/lib/Makefile.in,
3630         * device/lib/mcs51/Makefile.in,
3631         * device/lib/pic/Makefile.in,
3632         * device/lib/pic/Makefile.common.in,
3633         * device/lib/pic/Makefile.subdir,
3634         * device/lib/pic/Makefile.rules,
3635         * device/lib/pic16/libio/Makefile.in,
3636         * device/lib/pic16/Makefile.subdir,
3637         * device/lib/pic16/libdev/Makefile.in,
3638         * device/lib/pic16/Makefile.rules,
3639         * device/lib/pic16/Makefile.common.in,
3640         * sim/ucsim/avr.src/Makefile.in,
3641         * sim/ucsim/main_in.mk,
3642         * sim/ucsim/cmd.src/Makefile.in,
3643         * sim/ucsim/doc/Makefile.in,
3644         * sim/ucsim/gui.src/Makefile.in,
3645         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
3646         * sim/ucsim/gui.src/serio.src/Makefile.in,
3647         * sim/ucsim/hc08.src/Makefile.in,
3648         * sim/ucsim/libltdl/Makefile.in,
3649         * sim/ucsim/s51.src/Makefile.in,
3650         * sim/ucsim/sim.src/Makefile.in,
3651         * sim/ucsim/sim.src/conf.mk,
3652         * sim/ucsim/xa.src/Makefile.in,
3653         * sim/ucsim/z80.src/Makefile.in,
3654         * src/Makefile.in,
3655         * src/clean.mk,
3656         * src/port.mk,
3657         * support/cpp2/Makefile.in,
3658         * support/librarian/Makefile.in,
3659         * support/librarian/clean.mk,
3660         * support/makebin/Makefile.in,
3661         * support/makebin/clean.mk,
3662         * support/packihx/Makefile.in,
3663         * support/regression/Makefile.in,
3664         * support/regression/ports/ds390/spec.mk,
3665         * support/regression/ports/gbz80/spec.mk,
3666         * support/regression/ports/hc08/spec.mk,
3667         * support/regression/ports/mcs51/spec.mk,
3668         * support/regression/ports/mcs51-large/spec.mk,
3669         * support/regression/ports/mcs51-medium/spec.mk,
3670         * support/regression/ports/mcs51-xstack-auto/spec.mk,
3671         * support/regression/ports/pic14/spec.mk,
3672         * support/regression/ports/pic16/spec.mk,
3673         * support/regression/ports/mcs51-stack-auto/spec.mk,
3674         * support/regression/ports/ucz80/spec.mk,
3675         * support/regression/ports/xa51/spec.mk,
3676         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
3677         adding a slash after $(top_builddir) and/or adding @datarootdir@
3678         * configure.in,
3679         * debugger/mcs51/configure.in,
3680         * device/lib/pic/configure.in,
3681         * device/lib/pic16/configure.in,
3682         * sim/ucsim/configure.in,
3683         * support/cpp2/configure.in,
3684         * support/packihx/configure.in: changed AC_PREREQ to 2.60
3685         * configure,
3686         * debugger/mcs51/configure,
3687         * device/lib/pic/configure,
3688         * device/lib/pic16/configure,
3689         * sim/ucsim/configure,
3690         * support/cpp2/configure,
3691         * support/packihx/configure: generated with autoconf 2.60
3692
3693 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
3694
3695         * as/link/hc08/lkihx.c (newArea),
3696         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
3697
3698 2007-01-02 Borut Razem <borut.razem AT siol.net>
3699
3700         * doc/sdccman.lyx: documented #pragma sdcc_hash
3701         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
3702           initialized to 0
3703         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
3704
3705 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
3706
3707         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
3708         empty 'while'-loop to work correctly, see regression test 'while.c'
3709         * support/regression/tests/while.c: added
3710
3711 2007-01-01 Borut Razem <borut.razem AT siol.net>
3712
3713         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
3714           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
3715           support/cpp2/libcpp/sdcpp.c:
3716           sdcpp specific pragma/directive/option handling moved to sdcpp.c
3717         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
3718         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
3719
3720 2006-12-31 Borut Razem <borut.razem AT siol.net>
3721
3722         * SDCPP synchronized with GCC CPP release version 4.1.1,
3723           currently the latest release:
3724         * support/cpp2/libcpp, support/cpp2/libcpp/include,
3725           support/cpp2/libcpp/include/cpp-id-data.h
3726           support/cpp2/libiberty/fopen_unlocked.c
3727           support/cpp2/libiberty/md5.c
3728           support/cpp2/md5.h
3729           support/cpp2/opt-functions.awk
3730           support/cpp2/opt-gather.awk
3731           support/cpp2/optc-gen.awk
3732           support/cpp2/opth-gen.awk:
3733           added
3734         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
3735           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
3736           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
3737           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
3738           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
3739           support/cpp2/diagnostic.h, support/cpp2/except.h,
3740           support/cpp2/hwint.h, support/cpp2/input.h,
3741           support/cpp2/intl.h, support/cpp2/move-if-change,
3742           support/cpp2/opts.c, support/cpp2/opts.h,
3743           support/cpp2/output.h, support/cpp2/prefix.c,
3744           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
3745           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
3746           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
3747           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
3748           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
3749           support/cpp2/version.c:
3750           modified
3751         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
3752           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
3753           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
3754           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
3755           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
3756           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
3757           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
3758           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
3759           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
3760           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
3761           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
3762           moved
3763         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
3764           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
3765           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
3766           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
3767           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
3768           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
3769           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
3770           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
3771           support/cpp2/hashtable.h, support/cpp2/line-map.c,
3772           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
3773           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
3774           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
3775           support/cpp2/system.h:
3776           deleted / moved
3777
3778 2006-12-31 Borut Razem <borut.razem AT siol.net>
3779
3780         * configure.in, configure: fixed bug #1538756: configure dies if bison
3781           and flex are not installed, 2nd try
3782
3783 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
3784
3785         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
3786         400.x for better code in RFE 899102
3787
3788 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
3789
3790         * src/SDCCpeeph.c (deadMove),
3791         * src/port.h,
3792         * src/mcs51/peep.h: renamed 'op' by 'reg'
3793         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
3794         (scan4op): small change for removeDeadMove(), added support for
3795         'callee saves' and/or PACLL function calls,
3796         (removeDeadMove): added, removes superflous 'mov r%1,%2',
3797         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
3798         left in new dispatcher mcs51DeadMove()
3799         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
3800         removeDeadMove()
3801         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
3802
3803 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3804
3805         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
3806           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
3807
3808 2006-12-30 Borut Razem <borut.razem AT siol.net>
3809
3810         * support/cpp2/spacs.h: deleted from svn
3811         * configure.in, configure: fixed bug #1538756: configure dies if bison
3812           and flex are not installed
3813
3814 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
3815
3816         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
3817           with this z80 passes printf float test when enabled
3818         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
3819
3820 2006-12-28 Borut Razem <borut.razem AT siol.net>
3821
3822         * support/cpp2/config.in, support/cpp2/configure.in,
3823           support/cpp2/configure, support/cpp2/Makefile.in:
3824           fix for the solaris build
3825
3826 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3827
3828         * src/SDCC.y (type_specifier2, pointer),
3829         * src/SDCCsymt.h,
3830         * src/SDCCsymt.c (mergeSpec, checkSClass),
3831         * support/Util/SDCCerr.c,
3832         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
3833         * support/valdiag/valdiag.py: Allow test cases to specify
3834           required language standard
3835         * support/valdiag/tests/restrict.c: New file to test restrict keyword
3836         * support/valdiag/tests/tentdecl.c: Supress empty source file error
3837
3838 2006-12-27 Borut Razem <borut.razem AT siol.net>
3839
3840         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
3841         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
3842           mbchar removed
3843         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
3844           fixed for borland C
3845         * support/cpp2/libiberty/Makefile.bcc: updated
3846         * src/pic16/main.c: fixed #pragma udata handling
3847         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
3848
3849 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
3850
3851         * src/SDCCpeeph.c: made labelHashEntry global,
3852         made pcDistance, FBYNAME static,
3853         (pcDistance): made static, use isComment and isLabel,
3854         (deadMove): added,
3855         (getLabelRef): added, extracted from labelRefCount(),
3856         (labelRefCount): use new getLabelRef(),
3857         (callFuncByName): made static, added deadMove,
3858         use isComment and isLabel,
3859         (newPeepRule): made static, set isLabel,
3860         (isLabelDefinition): added parameter isPeepRule to allow '%' in
3861         labels from peephole rules,
3862         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
3863         when isComment or isLabel is set
3864         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
3865         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
3866         to make them global
3867         * src/mcs51/peep.h: added
3868         * src/mcs51/peep.c: added, implements mcs51DeadMove()
3869         * src/port.h: added peep->deadMove to port structure
3870         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
3871         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
3872         deadMove, finally removed no. 1 and 2
3873         * src/mcs51/gen.c,
3874         * src/pic/gen.c,
3875         * src/z80/gen.c,
3876         * src/z80/ralloc.c,
3877         * src/pic16/gen.c,
3878         * src/ds390/gen.c,
3879         * src/hc08/gen.c: mark lines with isComment or isLabel
3880         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
3881         * .version,
3882         * sdcc.spec: bumped version to 2.6.3
3883
3884 2006-12-26 Borut Razem <borut.razem AT siol.net>
3885
3886         * support/cpp2/Makefile.in: added dependency on options.h
3887         * configure: regenerated
3888         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
3889         * support/cpp2/Makefile.in: added vasprintf.c
3890
3891 2006-12-25 Borut Razem <borut.razem AT siol.net>
3892
3893         * SDCPP synchronized with GCC CPP release version 3.4.6,
3894           the latest release before 4.x:
3895         * support/cpp2/Makefile.in, support/cpp2/config.h,
3896           support/cpp2/configure, support/cpp2/configure.in,
3897           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
3898           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
3899           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
3900           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
3901           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
3902           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
3903           support/cpp2/cpptrad.c, support/cpp2/except.h,
3904           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
3905           support/cpp2/hwint.h, support/cpp2/intl.h,
3906           support/cpp2/line-map.c, support/cpp2/line-map.h,
3907           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
3908           support/cpp2/output.h, support/cpp2/prefix.c,
3909           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
3910           support/cpp2/system.h, support/cpp2/version.c:
3911           modified
3912         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
3913           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
3914           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
3915           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
3916           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
3917           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
3918           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
3919           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
3920           support/cpp2/move-if-change, support/cpp2/opts.c,
3921           support/cpp2/opts.h, support/cpp2/opts.sh,
3922           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
3923           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
3924           support/cpp2/win32, support/cpp2/win32/dirent.c,
3925           support/cpp2/win32/dirent.h:
3926           added
3927         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
3928         * support/cpp2/sdcpp.h: renamed from sdcc.h
3929         * sdcppinit.c: deleted
3930
3931 2006-12-23 Borut Razem <borut.razem AT siol.net>
3932
3933         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
3934           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
3935           preproc.c: an other try to fix bug #982435: introduced
3936           -pedantic-parse-number command line option and pedantic_parse_number
3937           pragma
3938
3939 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
3940
3941         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
3942            BSEG handling,
3943           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
3944            corrected overlayed areax addresses, warn about memory overlaps
3945         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
3946         * src/avr/main.c,
3947         * src/ds390/main.c,
3948         * src/hc08/main.c,
3949         * src/mcs51/main.c,
3950         * src/pic16/main.c,
3951         * src/pic/main.c,
3952         * src/xa51/main.c,
3953         * src/z80/main.c,
3954         * src/port.h: added xabs_name and iabs_name
3955         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
3956           (glue, emitMaps): create and emit maps d_abs and i_abs
3957         * src/SDCCglue.h: cosmetic changes
3958         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
3959         * src/SDCCmem.h,
3960         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
3961           (allocDefault): put absolute, initialized globals in them
3962         * support/regression/tests/absolute.c: added absolute bdata test
3963         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
3964
3965 2006-12-20 Borut Razem <borut.razem AT siol.net>
3966
3967         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
3968         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
3969           added regression test for bug #982435
3970
3971 2006-12-18 Borut Razem <borut.razem AT siol.net>
3972
3973         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
3974         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
3975           small cosmetic changes
3976         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
3977         * support/regression/tests/bug-1351710.c: added regression test
3978
3979 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3980
3981         * doc/sdccman.lyx: added the long missed iCode table
3982           "<where is figure II?>", added links to wiki
3983
3984 2006-12-17 Borut Razem <borut.razem AT siol.net>
3985
3986         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
3987           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
3988           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
3989           unified table driven pragma handling, pragma argument type checking
3990         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
3991           current one - version 1.1.3
3992         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
3993
3994 2006-12-13 Raphael Neider <rneider AT web.de>
3995
3996         * src/pic/device.h: removed AssignedMemory structure and macros
3997         * src/pic/device.c: removed global finalMapping (linker assigns
3998             memory locations),
3999           (register_map): add SFRs to remembered memRanges
4000           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
4001           assignFixedRegisters,assignRelocatableRegisters): removed,
4002           (setMaxRAM,validAddress): adapted accordingly,
4003           (pic14_hasSharebank,pic14_getSharedStack): only report and use
4004             reasonably sized sharebanks,
4005         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
4006           (allDefsOutOfRange): removed unused code,
4007         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
4008             handling
4009         * src/pic/pcode.c (register_reassign): removed recursion warning,
4010             fired far too often,
4011         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
4012             to use existing pic14_stringInSet() to avoid duplicate symbols,
4013             tidied up the code a bit,
4014           (pic14printLocals): added in symmetry to printExterns, replaces
4015             writeUsedRegs more or less,
4016           (picglue): call new pic14_printLocals(),
4017         * device/include/pic/pic*.h: removed #pragma memmap directives,
4018             information gathered from include/pic/pic14devices.txt
4019         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
4020
4021 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
4022
4023         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
4024
4025 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4026
4027         * device/include/mcs51/cc2430.h: fixed missing ';'
4028
4029 2006-12-10 Raphael Neider <rneider AT web.de>
4030
4031         * device/lib/pic16/libc/stdio/vfprintf.c,
4032         * device/lib/pic16/libc/stdio/printf_small.c,
4033         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
4034           char arguments, as char varargs are cast to int by the caller,
4035           hopefully fixes #1604915 (other device libraries are still affected)
4036
4037 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4038
4039         * src/mcs51/ralloc.c (packRegsForAssign),
4040         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
4041
4042 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
4043
4044         * device/include/malloc.h: removed init_dynamic_memory
4045         * device/lib/malloc.c: made init_dynamic_memory static and automatically
4046           call it once from malloc. Also use _sdcc_heap[] from _heap.c
4047         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
4048         * device/lib/libsdcc.lib,
4049         * device/lib/Makefile.in,
4050         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
4051         * doc/sdccman.lyx: documented use of new _heap.c
4052         * support/regression/tests/malloc.c: removed init_dynamic_memory
4053         * src/cdbFile.c(spacesToUnderscores): new function,
4054           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
4055           1068030
4056         * device/include/tinibios.h: removed defines for putchar and getchar
4057         * device/lib/ds390/Makefile.in: added putchar.c
4058         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
4059
4060 2006-12-09 Borut Razem <borut.razem AT siol.net>
4061
4062         * support/cpp2/sdcc.h: prevent multiple inclusion
4063         * support/cpp2/options.h: deleted
4064
4065 2006-12-08 Borut Razem <borut.razem AT siol.net>
4066
4067         * support/cpp2/sdcc.h: removed x*alloc() macros
4068         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
4069         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
4070           support/cpp2/sdcpp.sdc: x*alloc files added to the project
4071         * support/cpp2/system.h: moved #include "sdcc.h"
4072         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
4073           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
4074           added
4075         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
4076           -funsigned-char options
4077         * support/cpp2/sdcppmain.c: fixed bug 1611411
4078
4079 2006-12-07 Borut Razem <borut.razem AT siol.net>
4080
4081         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
4082           directive
4083
4084 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4085
4086         * src/SDCCsymt.c (addDecl): fixed bug 1609244
4087         * src/SDCCmain.c (linkEdit): fixed bug 1609279
4088         * doc/sdccman.lyx,
4089         * .version: bumped to 2.6.2 because a) it's been a while
4090           b) the linker sources have moved c) the preprocessor is upgraded
4091
4092 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4093
4094         * support/regression/tests/snprintf.c: some checks
4095         * lib/src/printf_large.c: %bc: read char instead of int from stack
4096
4097 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
4098
4099         * device/include/mcs51/cc2430.h: inserted _XPAGE
4100
4101 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4102
4103         * device/include/mcs51/cc2430.h: added
4104
4105 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
4106
4107         * device/include/asm/default/features.h,
4108         * device/include/asm/ds390/features.h,
4109         * device/include/mcs51/at89s53.h,
4110         * device/include/ser.h,
4111         * device/include/ser_ir.h,
4112         * device/include/serial.h: changed keywords to double underscore variants,
4113           fixes bug 1590261 some more, thanks Steven Borley
4114
4115 2006-12-01 Raphael Neider <rneider AT web.de>
4116
4117         * src/pic/pcode.c (register_reassign): do not crash on recursive code
4118           but emit warning (recursion is not supported for pic14)
4119
4120 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4121
4122         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
4123         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
4124
4125 2006-11-30 Raphael Neider <rneider AT web.de>
4126
4127         * src/pic/device.c (dump_sfr): always emit symbols
4128         * src/pic/glue.c (pic14printPublics): fixed typo
4129
4130 2006-11-30 Raphael Neider <rneider AT web.de>
4131
4132         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
4133           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
4134           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
4135            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
4136            a sharebank, use a non-shared bank for the stack if none available
4137         * src/pic/device.h (struct memRange): added linked list next field,
4138           added prototypes for above functions
4139         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
4140           (typeRegWithIdx): accept fixed and unfixed stack registers
4141         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
4142           the stack, handle shared and banked stack (except for WSAVE),
4143           (insertBankSel): removed useless optimization (will never fire),
4144           (FixRegisterBanking): added optimization for devices with only one
4145           possibly aliased bank of memory, like 16f84
4146         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
4147           devices have no SHAREBANK in the linker script
4148         * device/include/pic/pic14devices.txt: documented memmap
4149         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
4150
4151 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4152
4153         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
4154           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
4155           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
4156           genhc08Code): switched most of the D (debug) macros to DD (detailed
4157           debug) macros to better control clutter in the generated .asm file.
4158         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
4159           genRightShift): fixed bug with non-constant bit shift stored to
4160           a volatile result (SF Open Discussion forum thread #1616749).
4161           Single byte case is not yet optimized.
4162
4163 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
4164
4165         * device/include/asm/mcs51/features.h,
4166         * device/include/malloc.h,
4167         * device/include/stdio.h: changed keywords to double underscore variants,
4168           fixes bug 1590261
4169
4170 2006-11-27 Borut Razem <borut.razem AT siol.net>
4171
4172         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
4173           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
4174           support/cpp2/output.h, support/cpp2/cppinit.c,
4175           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
4176           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
4177           support/cpp2/cppdefault.c, support/cpp2/system.h,
4178           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
4179           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
4180           support/cpp2/prefix.c, support/cpp2/except.h,
4181           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
4182           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
4183           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
4184           support/cpp2/version.c, support/cpp2/cppmain.c,
4185           support/cpp2/version.h, support/cpp2/hashtable.c,
4186           support/cpp2/cpperror.c:
4187           synchronized with GCC CPP release version 3.3.6,
4188           the latest where cppmain.c still exists.
4189         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
4190           support/cpp2/sdcppinit.c: added
4191
4192 2006-11-27 Borut Razem <borut.razem AT siol.net>
4193
4194         * support/cpp2/cpplex.c:
4195           fixed _asm ... _endasm handling bug, introduce with GCC CPP
4196           synchronization
4197         * support/cpp2/cpplib.c: removed definitions of unused variables
4198
4199 2006-11-26 Borut Razem <borut.razem AT siol.net>
4200
4201         * support/cpp2/libiberty.h: commented out x*alloc() declarations
4202           since they are redefined by macros in support/cpp2/sdcc.h
4203         * support/cpp2/sdcc.h: x*alloc macro redefinition
4204
4205 2006-11-25 Borut Razem <borut.razem AT siol.net>
4206
4207         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
4208           support/cpp2/configure, support/cpp2/Makefile.in,
4209           support/cpp2/cppfiles.c, support/cpp2/output.h,
4210           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
4211           support/cpp2/config.h, support/cpp2/cpplib.h,
4212           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
4213           support/cpp2/cppdefault.c, support/cpp2/config.in,
4214           support/cpp2/system.h, support/cpp2/cpplex.c,
4215           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
4216           support/cpp2/cppdefault.h, support/cpp2/prefix.c
4217           support/cpp2/hwint.h, support/cpp2/mbchar.h,
4218           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
4219           support/cpp2/configure.in, support/cpp2/intl.h,
4220           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
4221           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
4222           support/cpp2/version.c, support/cpp2/cppmain.c,
4223           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
4224           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
4225           support/cpp2/cpperror.c,
4226           support/cpp2/libiberty/safe-ctype.c,
4227           support/cpp2/libiberty/safe-ctype.h,
4228           support/cpp2/libiberty/splay-tree.c,
4229           support/cpp2/libiberty/obstack.c,
4230           support/cpp2/libiberty/lbasename.c,
4231           support/cpp2/libiberty/splay-tree.h,
4232           support/cpp2/libiberty/obstack.h:
4233           synchronized with GCC CPP release version 3.2.3,
4234           the latest before integration of cpp into gcc
4235         * support/cpp2/except.h, support/cpp2/line-map.c,
4236           support/cpp2/line-map.h,
4237           support/cpp2/libiberty/hex.c,
4238           support/cpp2/libiberty/concat.c,
4239           support/cpp2/libiberty/filenames.h: added
4240         * support/cpp2/intl.c: deleted
4241
4242 2006-11-24 Borut Razem <borut.razem AT siol.net>
4243
4244         * src/SDCC.y: enabled compilation of empty source file
4245         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
4246           "ISO C forbids an empty source file"
4247         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
4248           if all the code is ifdefed out.
4249
4250 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4251
4252         * src/hc08/gen.c (genPcall): fix for bug #1601032
4253
4254 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
4255
4256         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
4257         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
4258         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
4259         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
4260         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
4261         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
4262         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
4263         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
4264         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
4265         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
4266         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
4267         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
4268         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
4269         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
4270         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
4271           Renamed to all upper case as per the standard set by SiLabs
4272
4273 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
4274
4275         * device/include/mcs51/C8051F520.h: new, added
4276         * device/include/mcs51/compiler.h: added link about predefined macros
4277
4278 2006-11-23 Raphael Neider <rneider AT web.de>
4279
4280         * src/regression/Makefile: add -L path to fresh library
4281         * src/regression/simulate: emphasize FAILED output
4282         * src/regression/create_stc: output _failures from gpsim
4283         * src/regression/compare4.c,
4284         * src/regression/rotate6.c: fixed char literals,
4285           all compile, all run =8-D
4286
4287         * src/pic/pcode.h: added isPCASMDIR macro
4288         * src/pic/gen.c (genAnd): fixed bit offset
4289         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
4290           packBits): unified register numbering schemes,
4291           (newReg): do not insert stack registers into hash table,
4292           (initStack): unpinned pseudo stack, simplified,
4293           (typeRegWithIdx): fixed retrieval of stack registers,
4294         * src/pic/pcode.c (addpCodeComment,sameBank): added,
4295           (pCodeReplace): removed invalid assertion,
4296           (insertPCodeInstruction): fixed newly added labels,
4297           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
4298           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
4299           DumpFlow): removed unsed (broken?) code,
4300           (insertBankSel): prevent STATUS from being BANKSELed,
4301           (FixRegisterBanking): rewritten from scratch, implemented generic
4302             optimizations (suppress BANKSELs to same register and to registers
4303             present in all banks),
4304           (AnalyzeBanking): update flow after BANKSELection
4305
4306         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
4307             sharebank, let linker place it, mark STKxx symbols as emitted
4308
4309 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4310
4311         * src/regression/arrays.c,
4312         * src/regression/bank1.c,
4313         * src/regression/bool2.c,
4314         * src/regression/compare7.c,
4315         * src/regression/compare8.c,
4316         * src/regression/compare9.c,
4317         * src/regression/compare10.c,
4318         * src/regression/configword.c,
4319         * src/regression/for.c,
4320         * src/regression/mult1.c,
4321         * src/regression/pointer1.c,
4322         * src/regression/rotate6.c,
4323         * src/regression/string1.c,
4324         * src/regression/struct1.c,
4325         * src/regression/Makefile: make PIC14 regression tests run again
4326           (3 fail, 6 won't compile)
4327
4328 2006-11-21 Raphael Neider <rneider AT web.de>
4329
4330         * device/include/pic16/pic18f4550.h,
4331         * device/include/pic16/pic18f4455.h,
4332         * device/lib/pic16/libdev/pic18f4550.c,
4333         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
4334         * configure.in: removed superfluous closing bracket
4335
4336 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4337
4338         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
4339           always positive.
4340
4341 2006-11-21 Raphael Neider <rneider AT web.de>
4342
4343         * src/pic/device.{c,h}: added pic14_getPIC()
4344         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
4345           (genAnd): added PIC code for one case, fixes #1597044
4346         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
4347           SFRs that are present in all banks (e.g., STATUS)
4348
4349 2006-11-20 Raphael Neider <rneider AT web.de>
4350
4351         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
4352           INCFSZ/INCFSZW and declared them as changing Z bit,
4353           (insertPCodeInstruction): correctly invert the above instructions,
4354           fixes #1599333,
4355           (DoBankSelect): don't panic on po_immediates
4356
4357 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4358
4359         * as/link/aslink.h,
4360         * as/link/mcs51/lkihx.c (newArea),
4361         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
4362         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
4363
4364 2006-11-11 Raphael Neider <rneider AT web.de>
4365
4366         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
4367           bitfield symbols, fixes #1579535 (once more...).
4368
4369 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4370
4371         * support/regression/generate-cases.py,
4372         * support/regression/fwk/include/testfwk.h,
4373         * support/regression/fwk/lib/testfwk.c: used code pointers,
4374           (about 50kByte less code generated for mcs51)
4375
4376 2006-11-06 Borut Razem <borut.razem AT siol.net>
4377
4378         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
4379           debugger/mcs51/configure: fixed failed check because the function
4380           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
4381           who submitted the patch for gpsim.
4382         * debugger/mcs51/configure.in: removed the result message
4383         * debugger/mcs51/Makefile.in: fixed the config.status warning
4384           "... seems to ignore the --datarootdir setting"
4385
4386 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
4387
4388         * device/include/mcs51/c8051f020.h,
4389         * device/include/mcs51/c8051f040.h,
4390         * device/include/mcs51/c8051f060.h,
4391         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
4392         * src/z80/gen.c (gencjneshort),
4393         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
4394
4395 2006-10-31 Borut Razem <borut.razem AT siol.net>
4396
4397         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
4398           debugger/mcs51/configure: get readline version
4399
4400 2006-10-30 Borut Razem <borut.razem AT siol.net>
4401
4402         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
4403         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
4404           debugger/mcs51/configure: locate readline even when cross compiling
4405         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
4406
4407 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4408
4409         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
4410           serial port.
4411
4412 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
4413
4414         * device/include/malloc.h,
4415         * device/lib/calloc.c,
4416         * device/lib/free.c,
4417         * device/lib/malloc.c,
4418         * device/lib/realloc.c: moved definition of struct into sources
4419         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
4420
4421 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
4422
4423         * as/asx8051.dsp: corrected output directories
4424         * as/link/hc08: new directory for hc08 linker
4425         * as/hc08/aslink.h,             as/link/aslink.h,
4426         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
4427         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
4428         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
4429         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
4430         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
4431         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
4432         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
4433         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
4434         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
4435         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
4436         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
4437         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
4438         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
4439         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
4440         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
4441         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
4442         * as/link/hc08/conf.mk,
4443         * configure,
4444         * configure.in,
4445         * Makefile.in,
4446         * sdcc.dsw: moved hc08 linker to as/link/hc08
4447         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
4448         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
4449         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
4450         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
4451         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
4452         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
4453         * as/link/mcs51/aslink.dsp,
4454         * as/link/mcs51/Makefile.in: factored out the common files
4455         * as/hc08/lkstore.c: deleted, use the one already in as/link/
4456         * as/clean.mk: extra cleaning common files
4457         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
4458         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
4459         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
4460
4461 2006-10-29 Raphael Neider <rneider AT web.de>
4462
4463         * src/pic/ralloc.c (newReg): create aliases for registers with
4464           multiple names to fix #1579535 and #1584001,
4465           (regWithIdx,dirregWithName): resolve aliases on lookup
4466         * src/pic/pcode.c (DoBankSelect): die with error message on failing
4467           bankselect
4468         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
4469           to prevent build errors on small devices
4470
4471 2006-10-28 Raphael Neider <rneider AT web.de>
4472
4473         * src/pic/gen.c (genFunction,genCall): drop "same code page"
4474           assumption within interrupt handlers, fixes #1584940
4475         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
4476           "emitted" to avoid emitting them again in udata
4477
4478 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4479
4480         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
4481         Removed.
4482
4483 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4484
4485         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
4486         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
4487         on/off CR to CRLF conversion.
4488
4489 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4490
4491         * doc/sdccman.lyx: updated IRQ section
4492
4493 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4494
4495         * device/lib/serial_io.c: removed
4496         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
4497         replacements for serial_io.c
4498
4499 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
4500
4501         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
4502
4503 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4504
4505         * device/lib/serial_io.c: Default putchar() and getchar() for
4506           mcs51 uses serial port.
4507
4508 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
4509
4510         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
4511
4512 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4513
4514         * support/regression/ports/mcs51/support.c: smaller
4515         _sdcc_external_startup()
4516         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
4517
4518 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
4519
4520         * device/lib/gbz80/crt0.s,
4521         * device/lib/gbz80/crt0_rle.s,
4522         * device/lib/gbz80/div.s,
4523         * device/lib/gbz80/fstubs.s,
4524         * device/lib/gbz80/heap.s,
4525         * device/lib/gbz80/mul.s,
4526         * device/lib/gbz80/putchar.s,
4527         * device/lib/gbz80/stubs.s,
4528         * device/lib/z80/crt0.s,
4529         * device/lib/z80/crt0_rle.s,
4530         * device/lib/z80/div.s,
4531         * device/lib/z80/fstubs.s,
4532         * device/lib/z80/heap.s,
4533         * device/lib/z80/mul.s,
4534         * device/lib/z80/putchar.s,
4535         * device/lib/z80/stubs.s: reverted, I was mistaken
4536
4537 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4538
4539         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
4540         * support/regression/ports/mcs51/support.c: removed race
4541         condition on TI in _putchar allowing to use serial port mode 0
4542
4543 2006-10-20 Borut Razem <borut.razem AT siol.net>
4544
4545         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
4546
4547 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
4548
4549         * device/lib/gbz80/crt0.s,
4550         * device/lib/gbz80/crt0_rle.s,
4551         * device/lib/gbz80/div.s,
4552         * device/lib/gbz80/fstubs.s,
4553         * device/lib/gbz80/heap.s,
4554         * device/lib/gbz80/mul.s,
4555         * device/lib/gbz80/putchar.s,
4556         * device/lib/gbz80/stubs.s,
4557         * device/lib/z80/crt0.s,
4558         * device/lib/z80/crt0_rle.s,
4559         * device/lib/z80/div.s,
4560         * device/lib/z80/fstubs.s,
4561         * device/lib/z80/heap.s,
4562         * device/lib/z80/mul.s,
4563         * device/lib/z80/putchar.s,
4564         * device/lib/z80/stubs.s: removed all leading underscores from area names
4565
4566 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
4567
4568         * support/regression/ports/mcs51/support.c: use highest baudrate so the
4569           regression tests are not waiting in the simulator for simulated
4570           transmission of debug output
4571
4572 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4573
4574         * device/lib/printf_large.c: slightly smaller
4575         * doc/sdccman.lyx: do not use spaces within html links
4576
4577 2006-10-16 Borut Razem <borut.razem AT siol.net>
4578
4579         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
4580           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
4581           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
4582           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
4583           debugger/mcs51/configure:
4584           [ 1185668 ] add gnu readline support to sdcdb - enabled
4585
4586 2006-10-16 Raphael Neider <rneider AT web.de>
4587
4588         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
4589           fixes #1577882, removes close to all banking optimizations
4590
4591 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
4592
4593         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
4594           variables in code memory
4595         * support/regression/tests/absolute.c: added test for this
4596
4597 2006-10-15 Raphael Neider <rneider AT web.de>
4598
4599         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
4600           devices,
4601           (BankSelect): emit BANKSEL before touching linker-placed regs,
4602           fixes #1570934
4603
4604 2006-10-10 Raphael Neider <rneider AT web.de>
4605
4606         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
4607         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
4608         * src/pic/main.c (_pic14_parseOptions),
4609         * src/pic/main.h: mostly reverted to previous state, now use results
4610             from SDCCmain.c's argument parsing
4611
4612 2006-10-10 Borut Razem <borut.razem AT siol.net>
4613
4614         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
4615           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
4616           [ 1185668 ] add gnu readline support to sdcdb -
4617           prepared for READLINE, not enabled yet,
4618           thanks to <tal.bav AT gmail.com>
4619
4620 2006-10-10 Raphael Neider <rneider AT web.de>
4621
4622         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
4623         * src/pic16/devices.inc,
4624         * device/include/pic16 (pic18f[24]620.h),
4625         * device/include/pic18fregs.h,
4626         * device/lib/pic16/pics.all,
4627         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
4628             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
4629             Gary Plumbridge and Anton Strobl
4630
4631 2006-10-10 Raphael Neider <rneider AT web.de>
4632
4633         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
4634           --stack-siz=NUM options to configure the argument passing stack
4635         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
4636         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
4637           (pic14_getSharebankSize): obey --stack-siz=NUM,
4638           (pic14_getSharebankAddress): obey --stack-loc=NUM
4639
4640 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4641
4642         * doc/sdccman.lyx: added to the manual
4643         * doc/figures/ddd_example.png: added (neither pdflatex nor
4644         most browsers seem to like the .eps file)
4645
4646 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
4647
4648         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
4649         to /tmp and /var/tmp acc. LSB
4650         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
4651         RESULT_TYPE_IFX
4652         * support/regression/tests/onebyte.c: added test
4653
4654 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4655
4656         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
4657
4658 2006-10-05 Borut Razem <borut.razem AT siol.net>
4659
4660         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
4661           thanks to dfulab:
4662           - sdcc.dsw: changed property eol-style to CRLF
4663           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
4664
4665 2006-10-04 Raphael Neider <rneider AT web.de>
4666
4667         * device/include/pic/{pic16f84.h,pic16f84a.h},
4668         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
4669           from patch #1522504, thanks to Robas Teodor
4670
4671 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
4672
4673         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
4674           fixes bug 1566015
4675
4676 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
4677
4678         * src/pic16/glue.c (pic16emitMaps),
4679         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
4680         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
4681         * device/lib/pic16/libc/string/memcpypgm2ram.c,
4682         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
4683           Philipp Krause
4684         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
4685         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
4686
4687 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4688
4689         * support/librarian/sdcclib.c: Added option -l.
4690         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
4691           usage totals.
4692         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
4693           using Windows command prompt.
4694
4695 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
4696
4697         * device/lib/libsdcc.lib: added module rand
4698         * src/ds390/ralloc.c (rematStr),
4699         * src/hc08/ralloc.c (rematStr),
4700         * src/mcs51/ralloc.c (rematStr),
4701         * src/z80/ralloc.c (rematStr): made output more consistent
4702         * src/mcs51/gen.c: cosmetic changes
4703
4704 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
4705
4706         * src/port.h: added mem.cabs_name to PORT
4707         * src/ds390/main.c,
4708         * src/hc08/main.c,
4709         * src/mcs51/main.c,
4710         * src/pic16/main.c,
4711         * src/pic/main.c,
4712         * src/xa51/main.c,
4713         * src/z80/main.c: added cabs_name initializers
4714         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
4715           constants
4716           (emitMaps): emit absolutes in code memory into cabs_name
4717         * src/SDCCmem.c,
4718         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
4719         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
4720         * support/regression/fwk/include/testfwk.h: added define for at
4721         * support/regression/tests/absolute.c: added, new
4722
4723 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
4724
4725         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
4726           optimizations, see also patch 887161 by Stas Sergeev
4727         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
4728           to be necessary anymore,
4729           (102, 103, 104, 127): renamed all occurances of bp to _bp
4730
4731 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
4732
4733         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
4734           thanks Weston T. Schmidt for patch 1555221
4735         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
4736         * src/SDCCicode.c(geniCodeMultiply): small optimization
4737
4738 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4739
4740         * device/include/stdlib.h: added rand prototypes
4741         * device/lib/rand.c: new, added
4742         * device/lib/Makefile.in: added rand.c
4743         * src/z80/peeph.def,
4744         * src/z80/peeph-gbz80.def,
4745         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
4746
4747 2006-09-20 Raphael Neider <rneider AT web.de>
4748
4749         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
4750
4751 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
4752
4753         * as/link/aslink.h: cosmetic changes
4754         * as/link/mcs51/Makefile.in,
4755         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
4756
4757 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
4758
4759         * as/link/aslink.h,
4760         * as/link/mcs51/aslink.h,
4761         * as/link/z80/aslink.h: merged and moved to as/link/
4762         * as/link/lkstore.c,
4763         * as/link/mcs51/lkstore.c: moved to as/link/
4764         * as/link/clean.mk: remove *.o
4765         * as/link/mcs51/alloc.h: deleted
4766         * as/link/mcs51/lkarea.c: added lnksect prototype
4767         * as/link/mcs51/lkdata.c,
4768         * as/link/mcs51/lklex.c,
4769         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
4770         * as/link/mcs51/lkmem.c,
4771         * as/link/mcs51/lknoice.c: removed include strcmpi.h
4772         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
4773         * as/link/mcs51/aslink.dsp,
4774         * as/link/mcs51/Makefile.aslink,
4775         * as/link/mcs51/Makefile.bcc,
4776         * as/link/mcs51/Makefile.in: updated for moved files
4777         * as/link/z80/lkarea.c,
4778         * as/link/z80/lkhead.c,
4779         * as/link/z80/lklex.c,
4780         * as/link/z80/lklibr.c,
4781         * as/link/z80/lklist.c,
4782         * as/link/z80/lkmain.c,
4783         * as/link/z80/lkrloc.c,
4784         * as/link/z80/lksym.c: synced with mcs51
4785         * as/link/z80/lkdata.c,
4786         * as/link/z80/lkeval.c,
4787         * as/link/z80/lkihx.c,
4788         * as/link/z80/lks19.c: cosmetic changes
4789         * as/link/z80/Makefile.in,
4790         * as/link/z80/linkgbz80.dsp,
4791         * as/link/z80/linkz80.dsp: updated for moved files
4792
4793 2006-09-16 Borut Razem <borut.razem AT siol.net>
4794
4795         * debugger/mcs51/sdcdb.c: partially fixed
4796           [ 1203664 ] sdcdb fails to open files w. two "." periods
4797         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
4798           debugger/mcs51/symtab.h: fixed indenting
4799         * configure.in, configure: up to date with latest Maarten's changes
4800
4801 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
4802
4803         as/link/mcs51
4804         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
4805         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
4806         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
4807         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
4808         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
4809         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
4810         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
4811         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
4812         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
4813         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
4814         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
4815         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
4816         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
4817         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
4818         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
4819         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
4820         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
4821         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
4822         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
4823         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
4824         as/link/mcs51/alloc.h,
4825         as/link/mcs51/clean.mk,
4826         as/link/mcs51/conf.mk,
4827         as/link/mcs51/Makefile.bcc,
4828         as/link/mcs51/Makefile.in,
4829         as/link/mcs51/readme.390,
4830         as/link/mcs51/strcmpi.c,
4831         as/link/mcs51/strcmpi.h,
4832         as/mcs51/clean.mk,
4833         as/mcs51/Makefile.bcc,
4834         as/mcs51/Makefile.in,
4835         configure,
4836         Makefile.in,
4837         sdcc.dsw: moved mcs51 linker to as/link/mcs51
4838
4839 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
4840
4841         * as/link,
4842         * as/link/Makefile.in,
4843         * as/link/z80/linkgbz80.dsp,
4844         * as/link/z80/linkz80.dsp,
4845         * configure,
4846         * link,
4847         * link/clean.mk,
4848         * link/Makefile.in,
4849         * link/README,
4850         * link/z80,
4851         * link/z80/aslink.h,
4852         * link/z80/clean.mk,
4853         * link/z80/conf.mk,
4854         * link/z80/linkgbz80.dsp,
4855         * link/z80/linkz80.dsp,
4856         * link/z80/lkarea.c,
4857         * link/z80/lkdata.c,
4858         * link/z80/lkeval.c,
4859         * link/z80/lkgb.c,
4860         * link/z80/lkgg.c,
4861         * link/z80/lkhead.c,
4862         * link/z80/lkihx.c,
4863         * link/z80/lklex.c,
4864         * link/z80/lklibr.c,
4865         * link/z80/lklist.c,
4866         * link/z80/lkmain.c,
4867         * link/z80/lkrloc.c,
4868         * link/z80/lks19.c,
4869         * link/z80/lksym.c,
4870         * link/z80/Makefile.in,
4871         * Makefile.in,
4872         * sdcc.dsw: moved link/ to as/link/
4873
4874 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
4875
4876         * as/mcs51/i51mch.c (machine): fixed warning
4877
4878 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4879
4880         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
4881
4882 2006-09-09 Borut Razem <borut.razem AT siol.net>
4883
4884         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
4885           sdcdb WIN32 native port
4886         * src/clean.mk: fixed
4887
4888 2006-09-08 Borut Razem <borut.razem AT siol.net>
4889
4890         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
4891
4892 2006-09-08 Raphael Neider <rneider AT web.de>
4893
4894         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
4895         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
4896             to gplink to disable processor mismatch warning and to allow
4897             the use of devices with only aliased (shared) memory banks,
4898           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
4899
4900 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4901
4902         * doc/sdccman.lyx: Some re-formating plus example on using
4903           #pragma preproc_asm +/-
4904
4905 2006-09-07 Borut Razem <borut.razem AT siol.net>
4906
4907         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
4908           section
4909
4910 2006-09-06 Borut Razem <borut.razem AT siol.net>
4911
4912         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
4913           line at sdcc.nsi:153
4914         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
4915
4916 2006-09-05 Borut Razem <borut.razem AT siol.net>
4917
4918         * configure.in, configure: support for winsock2
4919         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
4920           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
4921           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
4922           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
4923           debugger/mcs51/symtab.h: sdcdb WIN32 native port
4924
4925 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
4926
4927         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
4928           and OP_DEFS
4929         * support/regression/tests/bug1551947.c: new, added
4930         * src/SDCCsymt.h: strings are char* not byte*
4931
4932 2006-09-05 Raphael Neider <rneider AT web.de>
4933
4934         * device/lib/pic16/libdev/pic18f4550.c,
4935           device/include/pic16/pic18f4550.h: added PORTD/TRISD
4936             declarations/definitions from patch #1520949
4937
4938 2006-09-05 Raphael Neider <rneider AT web.de>
4939
4940         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
4941           byte-aligned bitfields, fixes #1539278
4942
4943 2006-09-05 Raphael Neider <rneider AT web.de>
4944
4945         * src/pic/gen.c (genReceive): skip unreferenced arguments,
4946           fixes #1544120
4947
4948 2006-09-04 Borut Razem <borut.razem AT siol.net>
4949
4950         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
4951         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
4952           -mno-cygwin is a part of the compiler name
4953         * support/scripts/sdcc_mingw32: don't disable ucsim
4954
4955 2006-09-03 Borut Razem <borut.razem AT siol.net>
4956
4957         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
4958         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
4959
4960 2006-09-03 Raphael Neider <rneider AT web.de>
4961
4962         * src/pic/ralloc.c,
4963         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
4964           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
4965           fixes #1550049
4966
4967 2006-09-01 Borut Razem <borut.razem AT siol.net>
4968
4969         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
4970           to make ppc-osx happy
4971
4972 2006-08-31 Borut Razem <borut.razem AT siol.net>
4973
4974         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
4975         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
4976         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
4977         * support/regression/ports/ds390/spec.mk,
4978           support/regression/ports/mcs51/spec.mk,
4979           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
4980           To run regression tests in mingw environment:
4981           make DEV_NULL=NUL CC=gcc
4982
4983 2006-08-30 Borut Razem <borut.razem AT siol.net>
4984
4985         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
4986           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
4987           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
4988           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
4989           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
4990           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
4991           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
4992           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
4993           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
4994           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
4995           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
4996           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
4997           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
4998           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
4999           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
5000           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
5001           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
5002           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
5003           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
5004           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
5005           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
5006           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
5007           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
5008           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
5009           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
5010           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
5011           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
5012           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
5013           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
5014           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
5015           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
5016           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
5017           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
5018           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
5019           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
5020           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
5021           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5022           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
5023           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
5024           ucsim WIN32 native port
5025
5026 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5027
5028         * doc/sdccman.lyx: added note on dynamic memory heap initialization
5029
5030 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5031
5032         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
5033         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
5034
5035 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
5036
5037         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
5038         * support/regression/tests/bug1546986.c: new, added
5039         * as/mcs51/.cvsignore,
5040         * debugger/mcs51/.cvsignore,
5041         * src/.cvsignore: deleted
5042
5043 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5044
5045         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
5046           definitions)
5047
5048 2006-08-20 Borut Razem <borut.razem AT siol.net>
5049
5050         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
5051           removed cl_listen_console::match(), cl_console::match(),
5052           restructured cl_commander::proc_input()
5053
5054 2006-08-16 Borut Razem <borut.razem AT siol.net>
5055
5056         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
5057           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
5058           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
5059
5060 2006-08-14 Borut Razem <borut.razem AT siol.net>
5061
5062         * support/regression/Makefile.in,
5063           support/regression/ports/pic14/gpsim.cmd,
5064           support/regression/ports/pic14/spec.mk,
5065           support/regression/ports/pic14/support.c:
5066           added pic14 regression test
5067
5068 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
5069
5070         * as/doc/asxhtm.html: documented changed ABS behaviour
5071         * as/doc/README: fixed some typos
5072
5073 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
5074
5075         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
5076           not defined on host
5077
5078 2006-08-12 Borut Razem <borut.razem AT siol.net>
5079
5080         * support/regression/fwk/include/testfwk.h,
5081           support/regression/fwk/lib/testfwk.c,
5082           support/regression/generate-cases.py,
5083           support/regression/Makefile.in:
5084           regression test framework does not depend on function pointers and
5085           variable arguments
5086
5087 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
5088
5089         * device/include/stddef.h: c temporary hack to fix bug 1518273
5090
5091 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5092
5093         * device/include/mcs51/cc2510fx.h: added
5094         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
5095           to projects.
5096
5097 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
5098
5099         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
5100         * as/z80/Makefile.in: added strcmpi.c
5101         * as/z80/z80adr.c: added upper case registers and lower case conditionals
5102         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
5103
5104 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
5105
5106         * device/lib/gbz80/asm_strings.s,
5107         * device/lib/gbz80/crt0_rle.s,
5108         * device/lib/gbz80/div.s,
5109         * device/lib/gbz80/mul.s,
5110         * device/lib/gbz80/shift.s,
5111         * device/lib/z80/asm_strings.s,
5112         * device/lib/z80/crt0_rle.s,
5113         * device/lib/z80/div.s,
5114         * device/lib/z80/mul.s,
5115         * device/lib/z80/shift.s: changed to all lower case menmonics except the
5116           flags which are all upper case
5117
5118 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
5119
5120         * as/z80/asm.h: made CASE_SENSITIVE 1
5121         * link/z80/aslink.h: made CASE_SENSITIVE 1
5122         * src/z80/gen.c (throughout): made all conditionals upper case
5123         * support/regression/tests/bug1503067.c: new
5124
5125 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
5126
5127         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
5128           (shiftIntoPair): added case 2 for PAIR_IY,
5129           (setupToPreserveCarry): replaced parameters with iCode and check if
5130            PAIR_DE is in use to fix bug 1399290,
5131           (genPlus, genMinus): updated call to setupToPreserveCarry
5132         * support/regression/tests/bug1399290.c: new
5133
5134 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
5135
5136         * device/lib/Makefile.in (Z80SOURCES): enabled float support
5137         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
5138         * src/ds390/gen.c (shiftRLong),
5139         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
5140         * src/mcs51/gen.c (sameReg): changed to sameByte,
5141           (xch_a_aopGet): new,
5142           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
5143            shiftRLong): fixed bug 1533966
5144         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
5145           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
5146         * support/regression/Makefile.in: disabled z80, enabled ucz80
5147         * support/regression/tests/float_trans.c: enabled test for z80 and host
5148         * support/regression/tests/shifts2.c: new, for testing bug 1533966
5149
5150 2006-08-01 Borut Razem <borut.razem AT siol.net>
5151
5152         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
5153           comparison is always false due to limited range of data type
5154           on PPC64 machine (openpower-linux1) where "char = unsigned char"
5155
5156 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
5157
5158         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
5159         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
5160         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
5161         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
5162
5163 2006-07-31 Borut Razem <borut.razem AT siol.net>
5164
5165         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
5166           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
5167           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
5168           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
5169           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
5170           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
5171           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
5172           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
5173           enable ucsim mingw compilation. Serial port is disabled,
5174           since it uses termios.h API, which is not available on native
5175           WIN32
5176
5177 2006-07-31 Borut Razem <borut.razem AT siol.net>
5178
5179         * Small Device C Compiler 2.6.0 released
5180         * support/scripts/sdcc.nsi: added FULL_DOC option
5181         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
5182
5183 2006-07-28 Borut Razem <borut.razem AT siol.net>
5184
5185         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
5186         * doc/INSTALL.txt: updated
5187
5188 2006-07-27 Borut Razem <borut.razem AT siol.net>
5189
5190         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
5191           device/lib/pic/libdev/Makefile.in: fixed bug
5192           [ 1438354 ] pic libsdcc: distclean doesn't work
5193         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
5194           device/lib/pic16/libio/Makefile.in: fixed bug
5195           [ 1438344 ] pic16 lib: clean doesn't work properly
5196         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
5197
5198 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
5199
5200         * device/lib/pic/libsdcc/fsdiv.c,
5201         * device/lib/pic/libsdcc/fsmul.c,
5202         * device/lib/pic16/libsdcc/float/fsdiv.c,
5203         * device/lib/pic16/libsdcc/float/fsmul.c,
5204         * device/lib/_fsdiv.c,
5205         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
5206         * support/regression/tests/bug1520966.c: added
5207         * doc/knownbugs.html: removed [ 1520966 ] from the list
5208
5209 2006-07-25 Borut Razem <borut.razem AT siol.net>
5210
5211         * configure.in, configure, sdccconf_in.h: fixed bug
5212           [ 1519095 ] regression test onebyte.c fails on ppc64 host
5213         * doc/knownbugs.html: removed [ 1519095 ] from the list
5214
5215 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
5216
5217         * doc/knownbugs.html: added, contains list of known bugs at release
5218         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
5219
5220 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5221
5222         * device/include/mcs51/compiler.h: added SFRX for xdata based special
5223           function registers and corrected defaults with additional warning
5224         * device/lib/malloc.c: cosmetic changes
5225         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
5226         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
5227           (fillGaps): and used it
5228
5229 2006-07-20 Raphael Neider <rneider AT web.de>
5230
5231         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
5232           output unless SDCCPICDEBUG is set
5233         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
5234           output if SILENT is set
5235
5236 2006-07-11 Borut Razem <borut.razem AT siol.net>
5237
5238         * doc/README.txt: updated
5239
5240 2006-07-10 Borut Razem <borut.razem AT siol.net>
5241
5242         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
5243           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
5244           in WIN32 installation
5245         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
5246           release candidate 1
5247
5248 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
5249
5250         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
5251         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
5252
5253 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
5254
5255         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
5256
5257 2006-07-06 Borut Razem <borut.razem AT siol.net>
5258
5259         * support/regression/tests/bitfields.c:
5260           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
5261         * support/regression/tests/constantRange.c:
5262           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
5263
5264 2006-07-04 Borut Razem <borut.razem AT siol.net>
5265
5266         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
5267           src/port.mk,
5268           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
5269           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
5270           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
5271           reverted changes from 2006-07-03
5272         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
5273         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
5274           added CPPFLAGS, used by the host port
5275
5276 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
5277
5278         * support/regression/valdiag/tests/switch.c,
5279         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
5280         * support/regression/tests/libmullong.c: fixed for host
5281         * support/regression/ports/host/spec.mk: disable all warnings for host,
5282         SDCC runs with --less-pedantic too
5283
5284 2006-07-03 Borut Razem <borut.razem AT siol.net>
5285
5286         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
5287           defined CPPFLAGS
5288         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
5289         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
5290           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
5291           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
5292           include ../port.mk
5293         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
5294           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5295           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
5296           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
5297
5298 2006-07-02 Raphael Neider <rneider AT web.de>
5299
5300         * src/pic16/devices.inc,
5301         * device/include/pic16/pic18fregs.h,
5302         * device/include/pic16/pic18f4550.h,
5303         * device/lib/pic16/pics.all,
5304         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
5305
5306 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
5307
5308         * as/hc08/lkaomf51.c (OutputName),
5309         * as/mcs51/lkaomf51.c (OutputName),
5310         * as/z80/asmain.c (asmbl),
5311         * src/ds390/main.c (asmLineNodeFromLineNode),
5312         * src/hc08/ralloc.c (hc08_assignRegisters),
5313         * src/mcs51/main.c (asmLineNodeFromLineNode),
5314         * src/xa51/ralloc.c (checkRegMask),
5315         * src/xa51/gen.c (emitcode),
5316         * src/z80/gen.c (_emit2),
5317         * src/SDCCast.c (searchLitOp),
5318         * src/SDCCglobl.h,
5319         * support/packihx/packihx.c,
5320         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
5321         * src/ds390/gen.c (aopPutUsesAcc),
5322         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
5323         * support/regression/tests/libmullong.c (mullong_wrapper),
5324         * src/SDCCsymt.c (powof2),
5325         * src/SDCCast.c,
5326         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
5327         * src/SDCCsymt.h: added TYPE_TARGET_*
5328         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
5329         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
5330         SDCCast because 1) header problems 2) this is the right place
5331         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
5332         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
5333         prototype
5334
5335 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
5336
5337         * src/SDCCicode.h: removed buggy semicolon in unused macro
5338         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
5339         search for previous definiton of auto symbols too,
5340         (findPrevUse): fixed logic of emitWarnings
5341
5342 2006-06-26 Raphael Neider <rneider AT web.de>
5343
5344         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
5345           PCLATH and PCLATU on interrupts, potentially fixes #1505141
5346
5347 2006-06-25 Raphael Neider <rneider AT web.de>
5348
5349         * device/lib/pic/libm: NEW, added math library functions
5350         * device/lib/pic/libsdcc: NEW; added float support functions
5351         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
5352         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
5353           NEW, added math related headers
5354         * device/include/asm/pic/features.h: NEW
5355         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
5356           (popGet): allow larger offsets for AOP_PCODE,
5357           (genDataPointerSet): handle literals explicitly, more debug output,
5358           (genAssign): fixed for float using aopLiteral ;-)
5359         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
5360           GOTO initialisation routine
5361         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
5362           flag on registers, fixes #1469043 (local variables do not work)
5363         * src/pic/main.c (_pic14_do_link),
5364         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
5365           available
5366
5367 2006-06-25 Borut Razem <borut.razem AT siol.net>
5368
5369         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
5370           characters printed (not including the trailing '\0' used to end
5371           output to strings). Problem detected in regression test bug-927659.c.
5372           NOTE: printf() family functions should return int instead
5373           unsigned int!
5374         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
5375           specifier are printed as themselves
5376         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
5377           support flags, width and precision specifiers
5378
5379 2006-06-24 Borut Razem <borut.razem AT siol.net>
5380
5381         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
5382           to the list of sdcc tagrets not supporting bit type
5383         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
5384           testfor pic16 due to bug:
5385           [ 1511794 ] pic16: regression test bug-895992.c fails
5386
5387 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
5388
5389         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
5390         * src/SDCCglue.c (initPointer), fixed bug 1496419
5391         * support/regression/tests/bug1496419.c: new, added
5392
5393 2006-06-22 Borut Razem <borut.razem AT siol.net>
5394
5395         * support/regression/ports/pic16/support.c: use gpsim usart module from
5396           libgpsim_modules library
5397
5398 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5399
5400         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
5401         IP0H to IPH0.
5402
5403 2006-06-19 Raphael Neider <rneider AT web.de>
5404
5405         * src/pic/glue.h,src/pic16/glue.h: added prototypes
5406         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
5407           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
5408           (pic14printExterns,pic14printPublics,pic16printPublics,
5409           pic16_printExterns): use new functions to emit symbols
5410           (picglue,pic16glue): emit publics before emitting externs
5411         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
5412           locally defined functions to avoid bug #1443651
5413         * support/regression/tests/bug-716242.c: removed pic16 workaround
5414         * support/regression/ports/pic16/spec.mk: ignore errors during build
5415
5416 2006-06-19 Raphael Neider <rneider AT web.de>
5417
5418         * src/pic/glue.h: added pic14aopLiteral prototype
5419         * src/pic/glue.c (pic14aopLiteral): return unsigned int
5420         * src/pic/gen.c: removed stdint.h dependency
5421           (aopGet): use Safe_strdup()
5422           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
5423           (genDataPointerSet): use pic14aopLiteral()
5424         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
5425           for pic16; thanks to Bernhard and Maarten
5426
5427 2006-06-18 Borut Razem <borut.razem AT siol.net>
5428
5429         * support/regression/tests/structflexarray.c: flexible array members
5430           not supported by gcc < 3
5431         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
5432           GUI tool by default
5433         * src/pic/gen.c: don't include [p]strdin.h on solaris
5434         * support/Util/pstdint.h: addad svn attributes
5435         * support/regression/tests/constantRange.c,
5436           support/regression/tests/rotate.c: include inttypes.h instead
5437           stdint.h on solaris, addad svn attributes
5438
5439 2006-06-18 Raphael Neider <rneider AT web.de>
5440
5441         * src/SDCCsymt.c (initCSupport): change return type of divschar to
5442           int for PIC16
5443         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
5444           (pic16_genMinusBits): simplified sign-extension
5445           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
5446             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
5447             adjusted to correctly handle mixed-signed operands, disabled
5448             now unused multiplciation routines
5449         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
5450           (assignResultValue): added argument denoting the size of the result
5451             as returned by the function (fixes upcasts in assigning from
5452             function calls: char foo(); int i = foo();)
5453           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
5454             function result to assignResultValue
5455           (genMult): disabled inlined multiplication code
5456           (genDiv): augmented to also handle the modulus operator, fixed to
5457             handle mixed-signed operands correctly
5458           (genMod): simply call genDiv, disabled unused code
5459           (genAssign): fixed missing (sign-)extension on result
5460         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
5461             valid char operands, allow signed operands for native code, added
5462             division and modulo operator handling
5463         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
5464
5465         As a consequence, onebyte.c (if split into two files) and muldiv.c
5466         pass regression tests.
5467
5468 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5469
5470         * doc/Makefile.in: two runs of makeindex seem needed to get
5471         correct page references in the index of sdccman.pdf
5472         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
5473
5474 2006-06-17 Borut Razem <borut.razem AT siol.net>
5475
5476         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
5477
5478 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5479
5480         * doc/sdccman.lyx: updated, added (porting source code, debugging),
5481         mentioned ec2drv and paulmon
5482
5483 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
5484
5485         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
5486           consecutive abs areas
5487           (find_empty_space, allocate_space): added map to handle codemap or
5488            xdatamap,
5489           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
5490            absolute idata and xdata
5491         * as/mcs51/lkmem.c (summary2): updated legend
5492
5493 2006-06-16 Raphael Neider <rneider AT web.de>
5494
5495         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
5496
5497 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
5498
5499         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
5500           1208515
5501         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
5502
5503 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
5504
5505         * src/port.h (struct PORT): added field gp_tags, to hold the tag
5506         value of generic pointers,
5507         * src/avr/main.c,
5508           src/ds390/main.c,
5509           src/hc08/main.c,
5510           src/izt/i186.c,
5511           src/izt/tlcs900h.c,
5512           src/mcs51/main.c,
5513           src/pic/main.c,
5514           src/pic16/main.c,
5515           src/xa51/main.c,
5516           src/z80/main.c: PORT structure, added elements for gp_tags field,
5517         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
5518         fields in the PORT structure of each port,
5519         * src/SDCCast.c (decorateType): allow processing of generic pointers
5520         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
5521         S_FIXED symbols
5522
5523 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
5524
5525         * link/z80/lkgb.c,
5526         * link/z80/lkgg.c,
5527         * src/pic16/gen.c,
5528         * src/pic16/main.c,
5529         * src/pic16/pcode.c,
5530         * src/pic/main.c,
5531         * src/pic/pcoderegs.c,
5532         * src/SDCCicode.c,
5533         * src/SDCCmain.c,
5534         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
5535           bug 1504689 on minGW
5536
5537 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5538
5539         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
5540
5541 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
5542
5543         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
5544
5545 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
5546
5547         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
5548           for optimization
5549
5550 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
5551
5552         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
5553         to a char variable. Fixed bug #1504211
5554         * device/include/pic16/adc.h,
5555         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
5556         and fixed bug #1364390
5557
5558 2006-06-10 Borut Razem <borut.razem AT siol.net>
5559
5560         * CVSROOT: removed the CVS left-over
5561
5562 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
5563
5564         * as/hc08/asmain.c (asexit),
5565         * as/hc08/lkmain.c (lkexit),
5566         * as/mcs51/asmain.c (asexit),
5567         * as/mcs51/lkmain.c (lkexit),
5568         * src/SDCCglue.c (DEFSETFUNC),
5569         * src/SDCCmain.c (linkEdit, assemble),
5570         * support/librarian/sdcclib.c (AddRel),
5571           replaced unlink() by standard C remove()
5572         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
5573         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
5574           gatherImplicitVariables): new, added to fix bug 608752,
5575           (createFunction): added gatherImplicitVariables()
5576         * src/SDCCast.h: added createRMW prototype
5577         * src/SDCCsymt.h (struct symbol): added infertype
5578         * support/regression/tests/bug608752.c: new, added
5579
5580 2006-06-10 Raphael Neider <rneider AT web.de>
5581
5582         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
5583           multibyte dummy reads (fixes #1503234)
5584
5585 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
5586
5587         * device/include/mcs51/compiler.h: new, added header file to enable
5588           creating common sfr definition header files for different compilers
5589
5590 2006-06-05 Raphael Neider <rneider AT web.de>
5591
5592         * src/pic16/{pcode.h,genarith.c}:
5593           introduced pCodeOp combining any two pCodeOps (previously only
5594           two register operands could be combined), removed pcop2 from
5595           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
5596         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
5597         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
5598           rewritten to use new PO_TWO_OPS
5599         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
5600         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
5601           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
5602           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
5603           (pic16_get_op): embraced return arg to allow #define return(x),
5604             added new case for combined opcodes
5605           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
5606           (pic16_pCode2str,pic16_getRegFrompCodeOp,
5607            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
5608
5609 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
5610
5611         * src/SDCCval.c (checkConstantRange): added
5612         * src/SDCCval.h: added checkConstantRange
5613         * support/Util/SDCCerr.c,
5614         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
5615         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
5616         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
5617         * src/SDCCast.c (decorateType): added checkConstantRange,
5618         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
5619         can be emitted with the correct always true/false warning,
5620         added optimization for double '!';
5621         result of decorateType() must be assigned back to the tree, because
5622         decorateType() can change the tree
5623         * src/SDCCicode.c (geniCodeLogic),
5624         (geniCodeAssign): replaced new checkConstantRange, added warnings,
5625         (checkConstantRange): removed, it was only a fragment which never
5626         emitted a warning
5627         * src/SDCCsymt.c (computeType): fixed promotion for
5628         "-1 < (unsigned bit) b"
5629         * src/pic/ralloc.c (packRegsForAssign),
5630         * src/pic16/ralloc.c (packRegsForAssign),
5631         * src/hc08/ralloc.c (packRegsForAssign),
5632         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
5633         from mcs51
5634         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
5635         * support/regression/tests/constantRange.c: added
5636         * support/valdiag/tests/constantRange.c: added
5637         * support/valdiag/valdiag.py: added -DPORT_HOST=1
5638
5639 2006-06-02 Borut Razem <borut.razem AT siol.net>
5640
5641         * support/regression/ports/pic16/support.c: increase stack size
5642           to 255 bytes
5643         * support/regression/Makefile.in: sort tests by name so that the
5644           resutlts can be compared on different machines / platforms
5645
5646 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5647
5648         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
5649         * src/ds390/gen.c (emitLabel): new, added,
5650           (genDjnz): fixed stack overflow bug,
5651           (throughout): cosmetic changes to sync with mcs51/gen.c,
5652           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
5653         * src/mcs51/gen.c (genEndFunction): small optimization,
5654           (throughout): cosmetic changes to sync with ds390/gen.c
5655
5656 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5657
5658         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
5659           (_print_format): fixed printing pointers
5660         * src/mcs51/gen.c (emitLabel, movb): new, added,
5661           (genAssign): small optimization,
5662           (genDjnz): fixed stack overflow bug,
5663           (throughout): replaced sprintf with SNPRINTF,
5664           replaced mcs51_regWithIdx with REG_WITH_INDEX,
5665           replaced emitcode("mov", "b,...") with MOVB(...),
5666           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
5667           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
5668         * src/mcs51/peeph.def: added rules 140 and 264
5669         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
5670           so they may get optimized into registers
5671
5672 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
5673
5674         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
5675           immediately when encountered,
5676           (printUsage): always use stderr even on windows
5677
5678 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
5679
5680         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
5681         (processParms): fixed bug #1247551
5682         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
5683         parseCmdLine, main): print '--version' to stdout,
5684         print 'help' to stdout if --help is given,
5685         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
5686         arguments are given; fixed --help
5687
5688 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
5689
5690         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
5691         * support/regression/tests/bug-1493710.c: added
5692
5693 2006-05-27 Borut Razem <borut.razem AT siol.net>
5694
5695         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
5696           static instead auto
5697         * support/regression/ports/pic16/support.c: increase stack size
5698           from default 64 bytes to 128 bytes
5699         * support/regression/tests/staticinit.c,
5700           support/regression/tests/float.c: regression tests fully enabled
5701           for pic16 port by putting the initialized data arrays into the code
5702           section
5703         * support/regression/ports/pic16/spec.mk: don't link default libraries.
5704           This was changed by mistake in the previous version.
5705
5706 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
5707
5708         * src/pic16/gen.c (genFunction, genEndFunction): some
5709         beautifications, fixed bug with falsely restoring FSR2 in large
5710         stack model, thanks to Beau E. Cox for reporting the bug
5711
5712 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5713
5714         * debugger/mcs51/break.c,
5715         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
5716           use %p to print pointers, made address variables unsigned
5717         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
5718         * debugger/mcs51/symtab.c (parseSymbol): must return something
5719         * src/mcs51/gen.c (aopForSym): small optimization,
5720            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
5721           (freeAsmop): added missing break,
5722           (aopPut): removed parameter bvolatile, determine it inside the function,
5723           (saveRegisters, unsaveRegisters): small optimization,
5724           (genIpush): removed pointless check,
5725           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
5726           replaced sprintf with SNPRINTF,
5727           replaced strcpy with strncpyz,
5728           updated aopPut calls,
5729           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
5730         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
5731
5732 2006-05-24 Borut Razem <borut.razem AT siol.net>
5733
5734         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
5735           modification of test for the pic16 port, put the array to the code
5736           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
5737
5738 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5739
5740         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
5741         * support/Util/pstdint.h: added
5742
5743 2006-05-22 Borut Razem <borut.razem AT siol.net>
5744
5745         * src/regression/Makefile: removed bool2.c test, added -q linker option
5746         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
5747           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
5748           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
5749           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
5750           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
5751           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
5752           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
5753           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
5754           define SUPPORT_BIT_TYPES 0, removed unused bit variables
5755
5756 2006-05-22 Raphael Neider <rneider AT web.de>
5757
5758         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
5759           bug #1492360 (problematic due to generic pointers, see code)
5760
5761 2006-05-22 Borut Razem <borut.razem AT siol.net>
5762
5763         * support/regression/ports/pic16/specs.mk: removed stack size linker
5764           directive
5765         * support/regression/tests/array.c,
5766           support/regression/tests/bitopcse.c,
5767           support/regression/tests/bug-908454.c,
5768           support/regression/tests/malloc.c: modified for pic16 regression test
5769         * support/regression/tests/bitfields.c:
5770           pic16 - excluded bitfileds of size > 8
5771         * support/regression/tests/bp.c: pic16 - reduced data size
5772         * support/regression/tests/bug-221100.c: pic16 - reduced data size
5773         * support/regression/tests/bug-460010.c:
5774           pic16 - used the absolute address the fits in memory
5775         * support/regression/tests/bug-716242.c:
5776           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
5777         * support/regression/tests/float.c:
5778           pic16 - excluded - data size too big
5779         * support/regression/tests/onebyte.c:
5780           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
5781         * support/regression/tests/shifts.c:
5782           pic16 - function names probably have to differ in first X characters
5783           (gpasm limitation?)
5784         * support/regression/tests/staticinit.c:
5785           pic16 - excluded some tests due error: no target memory available for
5786           section ".idata"
5787
5788 2006-05-22 Borut Razem <borut.razem AT siol.net>
5789
5790         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
5791           second try. Thanks Stas Sergeev once more.
5792
5793 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5794
5795         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
5796           (genLeftShift, genRightShift): fixed bug 1491627
5797         * src/hc08/peeph.def (rules 7, 8.x): added
5798         * support/regression/tests/shifts.c (ShiftLeftByParam,
5799           ShiftRightByParam, testShiftByParam): added to test variable shifting
5800
5801 2006-05-20 Raphael Neider <rneider AT web.de>
5802
5803         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
5804         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
5805           (allocReg): add only new registers to dynAllocRegs,
5806           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
5807             #1489055, #1445850, and probably #1483693
5808
5809 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
5810
5811         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
5812         bug in for-loop that didn't emit the last of CONFIG and ID registers
5813
5814 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
5815
5816         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
5817           with offset
5818         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
5819           1489016, 1434401 and 1490124
5820         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
5821           1489016, 1434401 and 1490124
5822
5823 2006-05-17 Borut Razem <borut.razem AT siol.net>
5824
5825         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
5826           thanks Stas Sergeev
5827
5828 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5829
5830         * device/include/mcs51/P89c51RD2.h,
5831         * device/include/mcs51/P89LPC901.h,
5832         * device/include/mcs51/P89LPC922.h,
5833         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
5834
5835 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5836
5837         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
5838         to fix missing stack pragma in compiled binary object file,
5839
5840 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
5841
5842         * support/packihx/configure.in,
5843         * support/packihx/configure: removed warning, autoconf >= 2.5x can
5844         determine sizeof basic types even while cross compiling
5845
5846 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
5847
5848         * src/avr/gen.c (aopop),
5849         * src/ds390/gen.c (aopOp),
5850         * src/hc08/gen.c (aopOp),
5851         * src/mcs51/gen.c (aopop),
5852         * src/pic16/gen.c (pic16_aopOp),
5853         * src/pic/gen.c (aopOp),
5854         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
5855         if size of operand is smaller than spill location
5856
5857 2006-05-12 Borut Razem <borut.razem AT siol.net>
5858
5859         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
5860           have to have CR/LF line endings even if they are checked out on *nix
5861           or on WIN32 in cygwin binmode
5862
5863 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
5864
5865         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
5866         * device/include/ds80c390.h: added sfr16 definitions
5867         * src/ds390/gen.c,
5868         * src/ds390/gen.h,
5869         * src/ds390/main.c,
5870         * src/ds390/ralloc.c,
5871         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
5872           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
5873           bit returning functions
5874         * support/regression/tests/sfr16.c: enabled test on ds390
5875
5876 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5877
5878         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
5879         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
5880
5881 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
5882
5883         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
5884         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
5885           (cl_address_space constructor): removed expensive initialization,
5886           (cl_address_space::get_cell): extended for late initialization,
5887           (cl_address_space::*): use late initialization,
5888           (cl_address_decoder::activate): removed expensive initialization,
5889           This reduced regression test running time by 25%
5890
5891 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
5892
5893         * packihx/,
5894         * configure.in,
5895         * configure,
5896         * sdcc.dsw,
5897         * Makefile.bcc,
5898         * Makefile.in,
5899         * support/packihx/Makefile.in,
5900         * support/packihx/clean.mk,
5901         * support/packihx/Makefile.bcc,
5902         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
5903
5904 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5905
5906         * src/SDCCval.c (valNot): fix for regression test failure
5907           of not.c on big endian hosts
5908
5909 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
5910
5911         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
5912
5913 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5914
5915         * device/lib/mcs51/Makefile.in: changed string comparison operator
5916           to = for POSIX compliance; == is bash extension
5917
5918 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
5919
5920         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
5921           kosmonaut_pirx
5922
5923 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
5924
5925         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
5926         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
5927         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
5928         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
5929         bug report #1478657,
5930
5931 2006-05-05 Borut Razem <borut.razem AT siol.net>
5932
5933         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
5934           making the html
5935
5936 2006-05-02 Borut Razem <borut.razem AT siol.net>
5937
5938         * doc/Makefile.in: removed *.ind dependency since there is no rule to
5939           create *.ind, which made make to fail if invoked with -j 2
5940
5941 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
5942
5943         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
5944           Hubert Sack for patch 1479782
5945
5946 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
5947
5948         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
5949
5950 2006-05-01 Raphael Neider <rneider AT web.de>
5951
5952         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
5953           (create_pic): store only prefix-free device name,
5954           (init_pic): check for device names with "16" prefix,
5955           (list_valid_pics),
5956         * src/pic/device.h (struct PIC_device),
5957         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
5958             stored device name,
5959         * device/include/pic/pic12f{635,675,629,683}.h,
5960         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
5961         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
5962         * device/include/pic/pic16f505.h,
5963         * device/lib/pic/libdev/pic16f505.c: removed
5964         * device/include/pic/pic14devices.txt: added support for pic12f
5965             devices, removed unsupported non 16-bit devices
5966             [above changes provided by patch from Zik Saleeba]
5967         * src/pic/*, src/pic16/*, device/include/pic16/*,
5968           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
5969
5970 2006-05-01 Borut Razem <borut.razem AT siol.net>
5971
5972         * configure.in, configure, doc/Makefile.in:
5973           sync with nightly build makefile - latex, dvipdf and dvips
5974           not needed any more
5975
5976 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
5977
5978         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
5979         in the library source
5980
5981 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
5982
5983         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
5984
5985 2006-04-28 Raphael Neider <rneider AT web.de>
5986
5987         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
5988         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
5989           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
5990         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
5991
5992 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
5993
5994         * device/lib/pic/libdev/Makefile.in,
5995         * device/lib/hc08/Makefile.in,
5996         * device/lib/gbz80/Makefile.in,
5997         * device/lib/z80/Makefile.in,
5998         * device/lib/ds390/Makefile.in,
5999         * device/lib/ds400/Makefile.in: added srcdir to include search path,
6000         thanks to Borut for the bug report
6001         * configure.in,
6002         * configure: always create doc/Makefile independent from --enable-doc
6003         * Makefile.in: always install from directory doc independent from
6004         --enable-doc
6005         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
6006         removed
6007         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
6008         * doc/Makefile.in: install *.txt if present
6009         * device/include/Makefile.in (install): added installation of pic/*.inc
6010         and pic/*.txt files again, they were erroneously removed
6011
6012 2006-04-28 Raphael Neider <rneider AT web.de>
6013
6014         * src/pic/{gen.c,main.h,pcode.c},
6015         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
6016             concerning signedness with casts
6017
6018 2006-04-28 Raphael Neider <rneider AT web.de>
6019
6020         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
6021             definition of an interrupt handler,
6022         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
6023             interrupt handler stuff from picglue() to separate routine,
6024           (picglue): enabled definition of intr handlers in files w/o main()
6025
6026 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6027
6028         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
6029           compilation with MSVC 2005 Express Edition (VC8)
6030
6031 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
6032
6033         * device/lib/Makefile: fixed build of gbz80 lib
6034
6035 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6036
6037         * support/regression/tests/bug-460010.c,
6038         * support/regression/tests/bug-524691.c,
6039         * support/regression/tests/bug-716242.c: removed conditional defines
6040           that are already in testfwk.h
6041
6042 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6043
6044         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
6045           (AccAXRsh1): added, shift right by 1,
6046           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
6047            AccAXLrl1
6048         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
6049
6050 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
6051
6052         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
6053         remove cast to same type
6054         * src/SDCCast.c (decorateType): fix for RFE 1475742,
6055         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
6056         * as/z80/Makefile,
6057         * link/z80/Makefile: removed, they have moved to
6058         Makefile.in files
6059         * configure,
6060         * configure.in: replaced duplicate message about ucsim by missing sdcpp
6061         * install-sh: fix bug #1204398 by setting umask 0022
6062         * device/lib/Makefile: separate build of z80 and gbz80 lib
6063
6064 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
6065
6066         Enabled VPATH feature: changed nearly all Makefiles (149 files).
6067         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
6068
6069         One basic decision: e.g. src/clean.mk includes further files. In order
6070         to make this work there are two solutions:
6071         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
6072           run configure on them. This way they can use
6073           'include $(srcdir)/port-clean.mk'
6074         - always include clean.mk by the Makefile at the same level. To avoid
6075           that `make clean` tries to include and build Makefile.dep the
6076           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
6077           implemented, because now even `make uninstall` doesn't create
6078           Makefile.in. clean.mk could be eliminated by pasting it in
6079           Makefile.in.
6080
6081         * debugger/mcs51/Makefile.in: build own objects from library sources
6082         (SLIB, SDCC) in current directory
6083
6084         * configure, configure.in: renamed --disable-device-lib-build in
6085         --disable-device-lib; added --enable-doc, the required tools are
6086         searched by configure; added result message; the toolchain for the
6087         belonging ports are now only built, if the port is enabled.
6088
6089         * support/regression/*: all output is written in directory gen, because
6090         the fwk and ports directories don't livet in the build tree using vpath
6091
6092         * doc/sdccman.lyx: renamed --disable-device-lib-build to
6093         --disable-device-lib, added --enable-doc, added section VPATH
6094
6095         * sim/ucsim/configure.in,
6096         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
6097         z80 are enabled by default
6098
6099 2006-04-24 Raphael Neider <rneider AT web.de>
6100
6101         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
6102             to config word, "pic14_"-prefixed some extern functions
6103           (pic14_emitConfigWord): emit __config directive(s) if assignment to
6104             config word has been found
6105         * src/pic/device.h: added prototypes
6106         * src/pic/pcode.c: added "pic14_"-prefix where needed
6107         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
6108             fixup
6109         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
6110             words,
6111           (pic14emitRegularMap): ignore config words,
6112           (pic14createInterruptVect): moved generating __config directives away
6113           (picglue): have __config directives emitted
6114
6115 2006-04-24 Borut Razem <borut.razem AT siol.net>
6116
6117         * doc/Makefile: sync with nightly build makefile
6118
6119 2006-04-24 Raphael Neider <rneider AT web.de>
6120
6121         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
6122             registers that have not been assigned proper liveranges,
6123             fixes #1469504 and #1474602,
6124           (pCodeRegOptimizeRegUsage): fixed typo in comment
6125
6126 2006-04-24 Borut Razem <borut.razem AT siol.net>
6127
6128         * device/examples/main8051.c: deleted - it was removed from CVS
6129           24.mar.2000 and after that modified 18.feb.2001, so it reappered
6130           after the transition to Subversion
6131         * src/SDCCalloc.h: deleted - it was removed  from CVS
6132           3.feb.2001 and after that modified 18.feb.2001, so it reappered
6133           after the transition to Subversion
6134         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
6135           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
6136           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
6137           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
6138
6139 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
6140
6141         * as/asx8051.dsp: added mcs51/strcmpi.h
6142         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
6143         * as/hc08/aslink.h: updated lnksect prototype
6144         * as/hc08/asm.h,
6145         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
6146         * as/hc08/asmain.c,
6147         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
6148           (newdot): handle A_ABS
6149         * as/hc08/asout.c,
6150         * as/mcs51/asout.c (outarea): output address
6151         * as/hc08/lkaomf51.c,
6152         * as/mcs51/lkaomf51.c: disabled unused array UsageType
6153         * as/hc08/m08pst.c,
6154         * as/mcs51/i51pst.c,
6155         * as/z80/z80pst.c: "ABS" is not A_OVR
6156         * as/hc08/lkarea.c (newarea): read a_addr,
6157           (lnkarea): added codemap array, sort absolute areas to the front,
6158            combine all GSINITx/GSFINAL,
6159           (find_empty_space, allocate_space): new functions,
6160           (lnksect): return next address, handle absolute sections
6161         * as/mcs51/lkarea.c (newarea): read a_addr,
6162           lnksect2 prototype changed,
6163           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
6164           (find_empty_space, allocate_space): new, factored out of lnksect2,
6165           (lnksect2): return next address, handle absolute sections
6166         * as/hc08/lkhead.c,
6167         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
6168         * as/hc08/lklibr.c (addfile, fndsym),
6169         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
6170           index out of range and detect both '\' and '/'
6171         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
6172         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
6173           regression tests (ds390 cannot return bool yet)
6174         * doc/sdccman.lyx: changed version number, document changed --no-peep,
6175           document critical interrupts on z80, document changed SDCC define
6176         * src/asm.c (_asxxxx_mapping): fixed .org directive,
6177           (_a390_mapping): added .org directive
6178         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
6179           (genMultOneByte): fixed warnings
6180         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
6181           ones
6182         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
6183         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
6184           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
6185         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
6186         * src/pic16/main.c: removed newReg prototype
6187         * src/pic16/pcode.c,
6188         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
6189           warnings
6190         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
6191           ones
6192         * src/pic16/ralloc.c
6193         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
6194           to fix warnings
6195         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
6196           from short to PIC_OPTYPE
6197         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
6198         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
6199           optype from short to PIC_OPTYPE
6200         * src/port.h: made int_size unsigned to fix warnings
6201         * src/SDCC.y: fixed warning on MSVC
6202         * src/SDCCicode.c (getArraySizePtr): return unsigned int
6203         * src/SDCCopt.c (convertToFcall): fixed warnings
6204         * src/SDCCsymt.h: removed double prototype for genSymName
6205         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
6206           offset int to fix warnings
6207
6208 2006-04-22 Borut Razem <borut.razem AT siol.net>
6209
6210         * doc/sdccman.lyx, */Makefile, */Makefile.in:
6211           references to CVS replaced with Subversion
6212
6213 2006-04-21 Borut Razem <borut.razem AT siol.net>
6214
6215         * doc/sdccman.lyx, */Makefile, */Makefile.in:
6216           references to CVS replaced with Subversion
6217
6218 2006-04-19 Borut Razem <borut.razem AT siol.net>
6219
6220         * src/version.awk: adapted for svn
6221         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
6222           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
6223           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
6224           /binutils-avr/etc/*.vi, *.jin: removed all properties
6225           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
6226
6227 2006-04-19 Borut Razem <borut.razem AT siol.net>
6228
6229         * CVS to Subversion migration completed
6230
6231 2006-04-18 Borut Razem <borut.razem AT siol.net>
6232
6233         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}/lib/pic/*.o,
6234           ${DEV_ROOT}/lib/src/pic/libdev/*.S, ${DEV_ROOT}/lib/src/pic/libdev/*.inc
6235
6236 2006-04-17 Borut Razem <borut.razem AT siol.net>
6237
6238         * device/include/Makefile.in: added pic/*.inc to the installation
6239
6240 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
6241
6242         * support/regression/collate-results.py: fixed output in case of
6243         a valdiag error
6244         * support/regression/generate-cases.py: fixed splitting of pathnames
6245         with dots
6246         * as/hc08/lklibr.c (addfile),
6247         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
6248
6249 2006-04-11 Raphael Neider <rneider AT web.de>
6250
6251         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
6252         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
6253         * src/pic16/pcode.c (assignValnums): fixed #1460578
6254
6255 2006-04-11 Raphael Neider <rneider AT web.de>
6256
6257         * device/lib/pic/libdev/*.c,
6258         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
6259           fixes #1468739, enables compilation in --std-c99 mode
6260         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
6261
6262 2006-04-11 Raphael Neider <rneider AT web.de>
6263
6264         * src/pic/device.c (find_device): removed debug output
6265           (list_valid_pics): enabled verbose listing of supported devices
6266         * device/include/stdbool.h: define bool as char for pic14/16 as well
6267
6268 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6269
6270         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
6271
6272 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6273
6274         * .version: bumped version to 2.5.6
6275         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
6276
6277 2006-04-06 Raphael Neider <rneider AT web.de>
6278
6279         * .version: bumped version to 2.5.6 (pic14 ABI changed)
6280         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
6281         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
6282           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
6283             pic14_constructAbsMap
6284           (pic14printPublics): declare absolute global symbols as global
6285           (pic14createInterruptVect),
6286         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
6287           (newReg): assume new registers unused, use correct name in
6288             hashtable (reg->name instead of name), more debugLog output
6289         * src/pic/device.h (PIC_device): added fields for verbose output
6290         * src/pic/device.c: moved device definition to pic14devices.txt,
6291             added routines for runtime parsing of pic14devices.txt,
6292             added support for second config word
6293         * src/pic/main.c (_process_pragma): removed #pragma maxram,
6294           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
6295           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
6296           (_pic14_parseOptions): moved pCodeInitRegisters here
6297           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
6298         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
6299           (pCodeInitRegisters): rewrapped comments, perpared new approach to
6300             handling the pseudo stack
6301         * device/lib/Makefile.in: ignore failures in objects-pic16,
6302         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
6303         * device/lib/pic/NEWS: document new dependency on picXXX.lib
6304         * device/lib/pic/Makefile.subdir,
6305         * device/lib/pic16/Makefile.subdir: improved clean rules
6306         * device/lib/pic/libdev/: NEW, pic14 device libraries
6307         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
6308         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
6309         * device/include/Makefile.in: create subdir and install pic14 headers
6310         * device/include/pic/p16f_common.inc: removed unused declarations
6311         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
6312             PICs from inc2h.pl v1.6,
6313             replaced BIT_AT macros with struct declarations
6314         * device/include/pic/pic14devices.txt: definition of supported devices,
6315             all above improvements contributed by Zik Saleeba, thanks
6316         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
6317         * support/scripts/sdcc.nsi: also install pic14 device libraries and
6318             headers
6319
6320 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6321
6322         * device/include/mcs51/c8051f410.h: added interrupt numbers,
6323         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
6324           thanks to Charles Olds
6325
6326 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6327
6328         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
6329
6330 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6331
6332         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
6333         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
6334         * support/regression/bug1464657.c: added, new test
6335
6336 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
6337
6338         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
6339           version number
6340
6341 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
6342
6343         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
6344           --no-peep and --peep-file <file> are used don't use default rules but
6345           do use the <file>
6346
6347 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
6348
6349         * src/mcs51/gen.c (genCall): fixed bug 1457608
6350
6351 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6352
6353         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
6354         changes seem to cause (trigger?) problems with the build system.
6355
6356 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
6357
6358         * src/SDCCpeeph.c (operandsLiteral): new, added,
6359           (callFuncByName): inserted operandsLiteral
6360         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
6361
6362 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6363
6364         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
6365         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
6366
6367 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6368
6369         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
6370           implemented patch 1120823 Thanks to Willy De la Court (normal
6371           interrupts need an interrupt number now if they are made critical),
6372           and enabled nesting of critical functions though not for gbz80
6373           (genCritical, genEndCritical): added functions
6374           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
6375         * src/z80/mappings.i: added "ei" to all mappings
6376
6377 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6378
6379         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
6380         submitted by the Debian SDCC maintainer Aurelien Jarno:
6381         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
6382         archive with gcc 4.1 on mips and wrote the patch"
6383
6384 2006-03-16 Raphael Neider <rneider AT web.de>
6385
6386         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
6387           the left operand is shorter than the result (c* = lit-c* + int),
6388           fixes bug #1450796
6389         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
6390           OP_SYMBOL
6391
6392 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6393
6394         * src/.version: increased version number to 2.5.5
6395         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
6396         linking is done manually in pic16 port's _linkEdit,
6397         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
6398         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
6399         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
6400         allocate asmop as AOP_ACC,
6401         (aopForRemat): added parameter 'bool result' in function declaration,
6402         (pic16_aopGet): return AOP_ACC when accessing WREG,
6403         (pic16_popGetTempReg): minor modification,
6404         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
6405         'pic16_allocWithIdx',
6406         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
6407         calling function in absolute addresses,
6408         (genAssign): take into account AOP_ACC asmop,
6409         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
6410         * src/pic16/pcoderegs.c: some debug functions and lines added,
6411         * src/pic16/ralloc.c (decodeRegType): added but commented out,
6412         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
6413         register too,
6414         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
6415         call to allocReg, not by manually allocating a new one,
6416         (pic16_assignRegisters): now before going through the register
6417         allocating functions mark all registers as free. This eliminates some
6418         side effects resulting from peephole parser done earlier in the backbone
6419
6420 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
6421
6422         * src/SDCCicode.c (geniCodeLogic),
6423         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
6424
6425 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
6426
6427         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
6428           (genSend): bugfix, do not allocate and free twice,
6429           (shiftRLong): handle partially overlapping aops
6430         * support/regression/tests/bitopcse.c: fixed warning redefined idata
6431
6432 2006-03-08 Borut Razem <borut.razem AT siol.net>
6433
6434         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
6435           for pic16
6436
6437 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
6438
6439         * support/regression/tests/bug1409955.c: new, added
6440         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
6441         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
6442           (aopForSym, aopOp): increment asmop.allocated if reused,
6443           (freeAsmop): decrement asmop.allocated and check for zero instead of
6444           using asmop.freed,
6445           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
6446           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
6447            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
6448            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
6449            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
6450            genSignedRightShift, genRightShift, genDataPointerGet,
6451            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
6452            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
6453             in reverse order from allocation,
6454           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
6455             added swappedLR to keep track
6456         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
6457           pdata & code for GCC, z80, gbz80 & hc08
6458         * support/regression/tests/zeropad.c: moved defines to testfwk.h
6459
6460 2006-03-08 Raphael Neider <rneider AT web.de>
6461
6462         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
6463
6464 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
6465
6466         * device/include/mcs51/c8051f410.h: new SiLabs mcu
6467         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
6468         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
6469
6470 2006-03-06 Borut Razem <borut.razem AT siol.net>
6471
6472         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
6473           made the linker quiet
6474
6475 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6476
6477         * src/pic16/gen.c (genPcall): fixed bug #1443644
6478         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
6479         which dumps before the function entry point a data byte which represents
6480         the number of the local variables used by the specified function, added
6481         'xinst' for initial support for Extended Instruction Support,
6482         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
6483         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
6484         port->fun_prefix anymore (may change later),
6485         (genFunction, genEndFunction): do not store/restore local registers for
6486         _main (this should take care the --main-return command line option in
6487         the future),
6488         (genOr): removed some legacy pic-port instructions,
6489         * src/pic16/genarith.c (genAddLit): re-enabled old code because
6490         performing operations with SFR's causes data to be written more than
6491         once to each SFR. Perhaps SFRs should be handled in special cases...
6492         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
6493         pcode.h
6494         * src/pic16/main.c (_process_pragma): stack bound checking did not take
6495         into account for stack starting position,
6496         (struct OPTIONS pic16_optionsTable): added command line argument
6497         --extended or -y for Extended Instruction Support,
6498         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
6499         (deassignLRs): *** perhaps the most important change, old 'for' code
6500         (commented out for reference), didn't account for some registers which
6501         were left marked 'not free' after a pointer operation. The change
6502         reduces register usage a lot in some cases
6503
6504 2006-03-04 Borut Razem <borut.razem AT siol.net>
6505
6506         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
6507           _clean
6508         * support/regression/tests/bug-524697.c: decreased array size for
6509           mcs51 to fit into the internal RAM
6510         * support/regression/Makefile.in: a little bit more verbose
6511
6512 2006-03-03 Borut Razem <borut.razem AT siol.net>
6513
6514         * support/regression/fwk/lib/testfwk.c,
6515           support/regression/fwk/include/testfwk.h: introduced function
6516           _prints(), nonrecursive _printn(), call _initEmu() from main()
6517         * support/regression/ports/gbz80/support.asm,
6518           support/regression/ports/ucz80/support.asm,
6519           support/regression/ports/z80/support.asm,
6520           support/regression/ports/ds390/support.c,
6521           support/regression/ports/hc08/support.c,
6522           support/regression/ports/host/support.c,
6523           support/regression/ports/mcs51/support.c,
6524           support/regression/ports/xa51/support.c: added empty _initEmu()
6525           function
6526         * support/regression/ports/pic16/gpsim.cmd,
6527           support/regression/ports/pic16/spec.mk,
6528           support/regression/ports/pic16/support.c,
6529           support/regression/Makefile.in: added pic16 regression test
6530
6531 2006-03-01 Raphael Neider <rneider AT web.de>
6532
6533         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
6534           genConstPointerGet): use safe way of generating MOVFF to cover
6535             literals as well as registers, fixes bug #1440527
6536         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
6537             dereference
6538           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
6539             more correctly, fixes bug #1232186
6540           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
6541         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
6542             gplink guess the correct processor in more cases, applied patch
6543             from Till Riedel attached to and fixing bug #1436552
6544
6545 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6546
6547         * support/regression/tests/array.c: added, contains check for #1434401
6548         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
6549
6550 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
6551
6552         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
6553         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
6554         * device/include/mcs51/c8051f326.h,
6555         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
6556         * device/include/mcs51/c8051f000.h,
6557         * device/include/mcs51/c8051f018.h,
6558         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
6559           PCON_IDLE,PCON_STOP and added sfr16 definitions
6560
6561 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
6562
6563         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
6564           genGetWord): fixed bug 1409955
6565
6566 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
6567
6568         * device/include/hc08/mc68hc908gp32.h,
6569         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
6570
6571 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
6572
6573         * src/SDCCast.c (constExprValue): return NULL if not a value
6574         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
6575         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
6576         * support/regression/tests/bitfields.c: enabled signed bitfield for all
6577
6578 2006-02-13 Borut Razem <borut.razem AT siol.net>
6579
6580         * src/regression/ptrarg.c: added, fails due to bug #1430967
6581         * src/regression/Makefile: ptrarg.c added, ...
6582
6583 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
6584
6585         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
6586         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
6587
6588 2006-02-11 Borut Razem <borut.razem AT siol.net>
6589
6590         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
6591           print "Processor: xxx" message to stdout only if --verbose
6592
6593 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6594
6595         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
6596         * support/regression/tests/bug1426356.c: added
6597         * support/regression/tests/bitfields.c: removed 2 tests
6598
6599 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6600
6601         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
6602         * device/include/mcs51/c8051f330.h,
6603         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
6604           PCON_IDLE,PCON_STOP and added sfr16 definitions
6605         * device/lib/_divsint.c,
6606         * device/lib/_divuint.c,
6607         * device/lib/_divulong.c,
6608         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
6609           register bank bug for small stackauto
6610
6611 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6612
6613         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
6614
6615 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
6616
6617         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
6618         * all.dsp: corrected several bin paths
6619         * device/include/mcs51/c8051f120.h,
6620         * device/include/mcs51/c8051f300.h,
6621         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
6622           to PCON_IDLE,PCON_STOP
6623         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
6624         * device/lib/printf_large.c (output_float): fixed bug 1388703
6625         * support/regression/tests/bug1057979.c: added test for bug 1388703
6626
6627 2006-02-08 Raphael Neider <rneider AT web.de>
6628
6629         * src/pic/pcode.c (pciTRIS): fixed typo,
6630           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
6631           (LinkFlow): fixed handling of flows that end in a call,
6632           (ReuseReg): perform safety check earlier
6633         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
6634             to work with flows at the beginning of a pBlock,
6635             fixes #1426557 (Symbol not previously defined),
6636           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
6637             usage information
6638           (RemoveUnusedRegisters): update register usage info
6639         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
6640             created, reuse existing ones instead
6641         * src/pic/gen.c (genPcall): fixed #1424719
6642
6643 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
6644
6645         * link/z80/lkmain.c,
6646         * link/z80/lklex.c,
6647         * link/z80/lkdata.c,
6648         * link/z80/aslink.h: fixed build on current cygwin:
6649         replaced getline() by lk_getline()
6650
6651 2006-02-01 Borut Razem <borut.razem AT siol.net>
6652
6653         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
6654           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
6655           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
6656           src/regression/bool1.c, src/regression/bool2.c,
6657           src/regression/bool3.c, src/regression/call1.c,
6658           src/regression/compare.c, src/regression/compare10.c,
6659           src/regression/compare2.c, src/regression/compare3.c,
6660           src/regression/compare4.c, src/regression/compare5.c,
6661           src/regression/compare6.c, src/regression/compare7.c,
6662           src/regression/compare8.c, src/regression/compare9.c,
6663           src/regression/configword.c, src/regression/for.c,
6664           src/regression/inline.c, src/regression/mult1.c,
6665           src/regression/nestfor.c, src/regression/or1.c,
6666           src/regression/pointer1.c, src/regression/ptrfunc.c,
6667           src/regression/rotate1.c, src/regression/rotate2.c,
6668           src/regression/rotate3.c, src/regression/rotate4.c,
6669           src/regression/rotate5.c, src/regression/rotate6.c,
6670           src/regression/rotate7.c, src/regression/string1.c,
6671           src/regression/struct1.c, src/regression/sub.c,
6672           src/regression/sub2.c, src/regression/switch1.c,
6673           src/regression/while.c, src/regression/xor.c,
6674           src/regression/create_stc, src/regression/simulate,
6675           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
6676           regression tests
6677         * src/regression/gpsim_assert.h: added
6678
6679 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
6680
6681         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
6682         ((void (code *) (void)) 0) ();
6683         * as/hc08/aslex.c,
6684         * as/hc08/aslink.h,
6685         * as/hc08/asm.h,
6686         * as/hc08/asmain.c,
6687         * as/hc08/lkdata.c,
6688         * as/hc08/lklex.c,
6689         * as/hc08/lkmain.c,
6690         * as/mcs51/aslex.c,
6691         * as/mcs51/aslink.h,
6692         * as/mcs51/asm.h,
6693         * as/mcs51/asmain.c,
6694         * as/mcs51/lkdata.c,
6695         * as/mcs51/lklex.c,
6696         * as/mcs51/lkmain.c,
6697         * as/z80/aslex.c,
6698         * as/z80/asm.h,
6699         * as/z80/asmain.c: fixed build on current cygwin:
6700         replaced getline() by as_getline()
6701
6702 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6703
6704         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
6705         declarator in the symbol chain
6706         * src/SDCCsymt.h,
6707         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
6708         parameter list for function pointers
6709         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
6710         * support/regression/tests/bug-716242.c: added
6711
6712 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
6713
6714         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
6715         offset if possible
6716         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
6717
6718 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
6719
6720         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
6721         inifinitely recurseable, added static
6722         * support/regression/tests/bug-1408066.c: added
6723
6724 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
6725
6726         * src/SDCCicode.h,
6727         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
6728         renamed, added possibility to create "postLoopLbl"-labels
6729         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
6730         newiTempLoopHeaderLabel
6731         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
6732         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
6733         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
6734         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
6735         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
6736         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
6737         (basicInduction): fixed bug #136564, made static,
6738         (loopInduction): changed parameter of basicInduction, made static,
6739         (addPostLoopBlock): added
6740         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
6741         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
6742         findLoopEndSeq
6743         * support/regression/tests/bug-136564.c: added
6744         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
6745         --std-sdcc99 to LIBSDCCFLAGS
6746
6747 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
6748
6749         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
6750         while loop
6751         * support/regression/tests/bug-1406131.c: added
6752
6753 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
6754
6755         * src/SDCCast.c (decorateType): fix promotion of unary minus
6756         * src/SDCCsymt.c (computeType): beautified
6757         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
6758         (valUnaryPM, valComplement): fix sign and promotion,
6759         (valNot): ANSI: result type is int (SDCC: unsigned char)
6760         * support/regression/tests/uminus.c: speedup by removing superflous
6761         test case 'int'
6762         * support/regression/tests/onebyte.c: added promotion and signedness
6763         tests for unary minus
6764         * support/regressions/tests/bug-477927.c: disable warning about
6765         uninitialized variables
6766         * support/regression/tests/not.c: added
6767
6768 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
6769
6770         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
6771         * src/mcs51/gen.c (gen51Code): show final register usage after
6772         fillGaps in asm with --i-code-in-asm
6773         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
6774         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
6775         incUsed, rliveClear, adjustIChain): made static,
6776         (setFromRange): excluded because it's unused,
6777         (findPrevUseSym, markWholeLoop): added,
6778         (findPrevUse): rewritten; fixes bug 895992; now a complete search
6779         through all branches of predecessors enables sdcc to emit the warning
6780         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
6781         (rlivePoint): made static, added parameter emitWarnings which is only
6782         true during the first run out of two,
6783         (findRecursiveSucc, findRecursivePred): removed,
6784         (computeLiveRanges): made static, added parameter emitWarnings,
6785         (dumpIcRlive): added for debugging only
6786         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
6787         removed prototype of setFromRange()
6788         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
6789         in call of computeLiveRanges()
6790         * support/regression/tests/bug-895992.c: added
6791         * support/regression/tests/bug-971834.c: added
6792         * support/valdiag/tests/bug-895992.c: added
6793         * support/valdiag/tests/bug-971834.c: added
6794
6795 2005-12-18 Raphael Neider <rneider AT web.de>
6796
6797         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
6798           (genUnpackBits): improved code for direct operands,
6799           (genPackBits): improved code for literal assignment to bitfields
6800             and for direct destination operands (no FSR indirection),
6801             prevented redundant AND, fixes #1362800,
6802           (AccLsh): added parameter to disable masking of the result
6803         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
6804           skip instructions with side-effects (like incfsz),
6805           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
6806         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
6807         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
6808           fixes #1375263
6809
6810 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
6811
6812         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
6813         volatile variables as spill location
6814
6815 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
6816
6817         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
6818         replacing literals
6819         * support/regression/tests/bug-1376320.c: added
6820
6821 2005-12-08 Raphael Neider <rneider AT web.de>
6822
6823         * src/pic/device.c: renamed is_shared to pic14_is_shared
6824         * src/pic/gen.c (genIfx): re-enabled handling of sbits
6825         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
6826           (is_valid_identifier): added for above workaround
6827
6828 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
6829
6830         * device/lib/Makefile.in: fixed to enable port-specific-objects
6831         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
6832           char, thanks Hubert Sack
6833         * doc/sdccman.lyx: documented --xstack-loc,
6834           elaborated a bit more on interrupts and pitfalls,
6835           removed "setjmp/longjmp unsupported",
6836           documented some unsupported C99 features
6837         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
6838         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
6839           if, thanks Hubert Sack
6840         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
6841         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
6842           make make_library
6843         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
6844           regression tests can report resource usage (rfe 700441)
6845         * support/regression/collate-results.py: report resource usage
6846         * support/regression/ports/ds390/spec.mk,
6847         * support/regression/ports/hc08/spec.mk,
6848         * support/regression/ports/mcs51/spec.mk,
6849         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
6850         * support/regression/ports/ds390/uCsim.cmd,
6851         * support/regression/ports/hc08/uCsim.cmd,
6852         * support/regression/ports/mcs51/uCsim.cmd,
6853         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
6854         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
6855           library, use the default one
6856         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
6857           building the library
6858
6859 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
6860
6861         * config.dsp: added dependency on .version and configure_vc.awk
6862         * device/include/setjmp.h: updated for --stack-auto and --xstack
6863         * device/include/mcs51/at89c51snd1c.h: corrected line endings
6864         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
6865         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
6866         * device/lib/libsdcc.lib: added _setjmp
6867         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
6868           (decorateType): fixed bug 1372851,
6869           (optimizeGetHbit): fixed warning
6870         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
6871           array initialisation
6872         * support/regression/tests/bug1057979.c: added test for bug 1358192
6873         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
6874
6875 2005-12-03 Borut Razem <borut.razem AT siol.net>
6876
6877         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
6878           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
6879
6880 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
6881
6882         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
6883         createIval): implement symbol independant "flexible array member",
6884         (createIvalCharPtr): implemented flexible array initialisation with a
6885         string
6886         * src/SDCCsymt.c (copyStruct): removed,
6887         (getSize): fixed misleading comment,
6888         (getAllocSize): removed, the additional allocation size is now in
6889         sym->flexArrayLength,
6890         (checkStructFlexArray): new, syntax checks for flexible array members,
6891         (compStructSize): added syntax checks for "flexible array members"
6892         (copyStruct): removed,
6893         (copyLinkChain): removed inefficient fix for bug 770487
6894         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
6895         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
6896         symbol->flexArrayLength
6897         * src/SDCCerr.c,
6898         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
6899         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
6900         * support/regression/tests/structflexarray.c: added
6901         * support/valdiag/tests/structflexiblearray.c: added
6902
6903 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
6904
6905         * src/SDCCast.c (decorateType): fixed bug 1368489
6906         * support/Util/SDCCerr.c,
6907         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
6908
6909 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6910
6911         * device/include/mcs51/at89c51snd1c.h: added file submitted by
6912           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
6913
6914 2005-11-27 Borut Razem <borut.razem AT siol.net>
6915
6916         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
6917           support/cpp2/mkdeps.h: added command line option
6918           -obj-ext=<extension> to SDCPP to define object file externion, used
6919           for generation of make dependencies (-M)
6920         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
6921
6922 2005-11-26 Borut Razem <borut.razem AT siol.net>
6923
6924         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
6925           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
6926           added pic and pic16 libraries
6927
6928 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6929
6930         * device/include/float.h: Corrected typo in prototype of __fsgt
6931
6932 2005-11-25 Borut Razem <borut.razem AT siol.net>
6933
6934         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
6935           added creation of model-mcs51-stack-auto libraries
6936
6937 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
6938
6939         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
6940         and fields-list too
6941         * src/SDCCast.c (createIvalArray): removed obsolete comment
6942
6943 2005-11-24 Borut Razem <borut.razem AT siol.net>
6944
6945         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
6946           added missing device/lib/mcs51/crt*.asm sources
6947
6948 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
6949
6950         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
6951
6952 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
6953
6954         * device/lib/_fs2schar.c,
6955         * device/lib/_fs2sint.c,
6956         * device/lib/_fs2slong.c: optimized inline asm
6957
6958 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6959
6960         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
6961           Better handling of floats between -1.0 and 0.0.
6962
6963 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6964
6965         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
6966           (the missing "if"s prohibited removal of redundant labels)
6967
6968 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6969
6970         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
6971           Properly convert floats between -1.0 and 0.0 to long, int, and char
6972           types (max integer value of negative floats tends to zero).
6973         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
6974           Removed changes made so to work properly with floats between
6975           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
6976           and _fs2char.c
6977
6978 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
6979
6980         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
6981         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
6982         (genCast) cosmetic change
6983         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
6984         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
6985         from mcs51
6986         * support/regression/tests/bitfields (testSignedBitfields): added
6987
6988 2005-11-18 Borut Razem <borut.razem AT siol.net>
6989
6990         * sdcc/device/lib/Makefile.in: remove all unnecessary files
6991         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
6992           introduced SILENT option to make building of pic16 libraries less
6993
6994 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6995
6996         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
6997           Now they work properly with floats between -1.0 and 0.0
6998         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
6999
7000 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7001
7002         * src/SDCCicode.c (printOperand): added missing else
7003
7004 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
7005
7006         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
7007         reformatted for better readability
7008         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
7009         signed bitfields
7010
7011 2005-11-17 Borut Razem <borut.razem AT siol.net>
7012
7013         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
7014           introduced SILENT option to make building of pic16 libraries less
7015           verbose - used for nightly snapshot build
7016         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
7017           available on Win32 platforms.
7018         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
7019           medium, large, pic and pic16
7020
7021 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7022
7023         * device/lib/printf_large.c: Temporary patch for bug 1358192:
7024           printf("%f"...) sets fraction to zero.
7025
7026 2005-11-16 Raphael Neider <rneider AT web.de>
7027
7028         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
7029           fixes #1357221
7030         * src/pic/gen.c (genIfx): implemented for CARRY bit
7031         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
7032           to generic pointers, fixes #1357332,
7033           (pic16_movLit2f): NEW,
7034           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
7035
7036 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7037
7038         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
7039
7040 2005-11-11 Raphael Neider <rneider AT web.de>
7041
7042         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
7043         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
7044           compute pointer's type from operand,
7045           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
7046           improved single bit reads, fixes bug #1353379
7047
7048 2005-11-09 Borut Razem <borut.razem AT siol.net>
7049
7050         * support/scripts/sdcc.nsi: added lib/pic to the package
7051
7052 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
7053
7054         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
7055
7056 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7057
7058         * support/regression/tests/bug1348008.c: added
7059         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
7060         * support/regression/tests/bug1337835.c: updated comment
7061
7062 2005-11-06 Borut Razem <borut.razem AT siol.net>
7063
7064         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
7065           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
7066           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
7067           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
7068           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
7069           dynamic construction of cl_error_class and derivates - 2.nd try
7070
7071 2005-11-05 Borut Razem <borut.razem AT siol.net>
7072
7073         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
7074           bug, which caused Bus Errors on sparc solaris
7075
7076 2005-11-04 Borut Razem <borut.razem AT siol.net>
7077
7078         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
7079           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
7080           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
7081           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
7082           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
7083           and derivates to resolve the initialization problem on OSX
7084
7085 2005-11-02 Borut Razem <borut.razem AT siol.net>
7086
7087         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
7088           corrected typo - #include <winsock2.h>
7089
7090 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
7091
7092         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
7093           (_asxxxx_mapping): added org directive for future enhancements
7094
7095 2005-11-01 Borut Razem <borut.razem AT siol.net>
7096
7097         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
7098           enabled sockets on WIN32
7099         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
7100
7101 2005-10-31 Borut Razem <borut.razem AT siol.net>
7102
7103         * support/regression/generate-cases.py: escape backslashes in {testcase}:
7104           WIN32 backslash path delimiters should be escaped when used in C strings
7105         * support/regression/tests/bitfields.c: exclude failing assertions for
7106           __CYGWIN32__ and __MINGW32__ hosts
7107
7108 2005-10-30 Borut Razem <borut.razem AT siol.net>
7109
7110         * src/SDCCutil.c: corrected double comparison typo
7111
7112 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
7113
7114         * device/lib/medium/Makefile: added for new memory model medium
7115         * device/include/asm/mcs51/features.h: updated for medium/pdata
7116         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
7117           added Multiply & Accumulate sbit's and MAC0_PAGE define
7118         * device/include/mcs51/c8051f300.h: added sfr16 definitions
7119         * device/include/mcs51/c8051f310.h: added sfr16 definitions
7120         * device/lib/_mullong.c: update for medium model
7121         * device/lib/incl.mk: added medium model
7122         * doc/sdccman.lyx: documented medium model
7123         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
7124         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
7125         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
7126         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
7127           (allocParms): set SCLS and OCLS to pdata for medium model
7128         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
7129           for pdata,
7130           (powof2): return <0 if not power of 2
7131         * src/avr/gen.c (genBitWise): use updated powof2
7132         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
7133           (shiftR2Left2Result): small optimization in setup, save acc when storing,
7134           (shiftLLeftOrResult): use B if necessary
7135         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
7136         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
7137         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
7138         * support/regression/Makefile.in: added test-mcs51-medium
7139         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
7140
7141 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
7142
7143         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
7144         specifier unsigned
7145         * device/lib/time.c (mktime): fixed bug 1334315
7146
7147 2005-10-28 Raphael Neider <rneider AT web.de>
7148
7149         * device/include/pic/p16f_common.inc: added common declarations
7150         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
7151
7152 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
7153
7154         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
7155           (aopPutUsesAcc): added to predict accumulator use,
7156           (assignResultValue): save acc if necessary,
7157           (genMinusDec): store result if indirectly addressed,
7158           (genDivOneByte):  save acc if necessary,
7159           (movLeft2Result): bugfix if left already in acc,
7160           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
7161             attention to accumulator use (esp. pdata),
7162           (genReceive): receive pdata correctly
7163         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
7164         * src/SDCCicode.h: added isOperandInPagedSpace prototype
7165
7166 2005-10-27 Raphael Neider <rneider AT web.de>
7167
7168         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
7169
7170 2005-10-27 Raphael Neider <rneider AT web.de>
7171
7172         * .version: changed version to 2.5.4
7173         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
7174         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
7175           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
7176             arithmetics support routines
7177         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
7178         * device/lib/Makefile.in: also create installdir for pic
7179
7180         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
7181           pic14 port as well
7182         * src/pic/device.c (dump_sfr): rewritten to delegate register
7183           placement to the linker (use `extern sym' rather than sym EQU addr),
7184           (validAddress): fixed to check last specified address
7185         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
7186           (popGetLit): truncate literal value to 8 bit,
7187           (popGet): moved assert to more appropriate place
7188           (popGetExternal): create pCode operand from and mark the according
7189             symbol as being `extern'
7190           (popGetAddr): added sanity check on immediate's offset, provide
7191             GPOINTER tag on demand
7192           (aopPut): fixed for immediates,
7193           (mov2w_op): move operand's address or contents to WREG (depending on
7194             operand type), safer variant of mov2w,
7195           (movwf,call_libraryfunc): NEW, handy abbreviations,
7196           (get_argument_pcop,get_return_val_pcop,pass_argument,
7197           get_returnvalue): interface for accessing function parameters and
7198             return values,
7199           (assignResultValuei,genRet): use new parameter/return value interface
7200           (pic14_getDataSize): back to old version handling generic pointers,
7201           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
7202             provided implementation and/or fixed old one,
7203           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
7204             calls, removed legacy 8051 reference code
7205           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
7206           (loadSignToC): NEW, move the operands sign bit to CARRY,
7207           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
7208             genRightShiftSigned, accepts negative shift counts,
7209           (setup_fsr): load FSR and adjust IRP (indirect memory access),
7210           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
7211             generic pointers, __data pointers and __code pointers,
7212           (genUnpackBits,genPackBits): rewritten to work with generic pointers
7213             and signed bitfields, limit bitfields to 8 bit,
7214           (genDataPointerGet): fixed number of bytes read,
7215           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
7216           (genPointerGet,genPointerSet): fixed handling of __code pointers,
7217             pointers to constant data are no longer assumed to point to __code
7218             space, removed invalid pointer types,
7219           (bitpatternFromVal): retrieve the PICs representation of an integer
7220             or float literal,
7221           (genDataPointerSet): fixed assigning to po_immediate operands,
7222           (genGenPointerSet): implemented as library call,
7223           (genIfx): fixed incorrect condition,
7224           (genAddrOf): limit generic pointers' addresses to 2 bytes,
7225             provide GPOINTER tag according to destination's storage class,
7226           (genCast): added code to handle casting to generic pointers, added
7227             sign-/zero extension of the result
7228           (aop_isLitLike,op_isLitLike): fixed handling of immediates
7229         * src/pic/gen.h: added macros to access IRP bit in STATUS register
7230         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
7231           extend the result
7232         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
7233           address/register resides in the shared banks
7234           (emitSymbolToFile): improved to handle global and `pinned' symbols,
7235             put all variables into separate sections (have the linker arrange
7236             them)
7237           (picglue): put init code and interrupt handlers in separate sections
7238         * src/pic/main.c: added port specific options table, modified to PORT
7239           structure to make GPOINTERs 3 byte, added pic14_options
7240           (_pic14_do_link): private linking routine (update paths to libraries,
7241             add libsdcc.lib by default)
7242         * src/pic/main.h: declare pic14_options
7243         * src/pic/pcode.c: fixed instructions i/o relations,
7244           (RegCond): reverted to correct version,
7245           (newpCodeOpLit): truncate literals to 8 bit,
7246           (genericPrint): added debug output,
7247           (getRegFromInstruction): fixed for various operand types, simplified
7248           (BuildFlow): fixed broken handling of isntructions with labels
7249           (LinkFlow): start at last instruction in flow (skip trailing comments),
7250             pass the flow on to the next instruction after CALL
7251           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
7252           (insertPCodeInstruction): fixed inserting after a skip instruction,
7253           (DoBankSelect): fixed for labeled instructions
7254           (OptimizepBlock): honor --nopeep switch
7255           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
7256         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
7257         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
7258           (pCodeOptime2pCodes): allow disabling this optimization via
7259             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
7260             but is still buggy), started implementation of a dataflow based
7261             pCode optimization (CSE + dead code elimination)
7262           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
7263         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
7264           names are independant of the stack location and therefore portable across
7265           devices
7266
7267 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
7268
7269         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
7270           (selectSpil): fixed bug 1337835 by not spilling bit variables
7271         * support/regression/tests/bug1337835.c: added test for this bug
7272         * src/mcs51/peeph.def: restart after rule 3.c,
7273           addded rules 263.x to optimize loading constants
7274
7275 2005-10-26 Raphael Neider <rneider AT web.de>
7276
7277         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
7278         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
7279           (genAssign): emit warning when casting literals to generic pointer
7280             type, also applies when taking the address of a fixed variable,
7281           (genCast): improved casting to generic pointers
7282         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
7283           extern variables, added verbose error message
7284         * device/include/pic16/{string.h,errno.h}: added #pragma library c
7285
7286 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
7287
7288         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
7289         carry must be complemented too
7290         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
7291         could be emitted by genMinus
7292         * src/SDCCval.c (constVal): fixed bug 1305065
7293
7294 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
7295
7296         * src/SDCCast.c (addCast): added promotion for bit variables
7297         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
7298         promotion casts + optimisation
7299         (optimizeGetWord): fix warning 'i' might be used uninitialized
7300         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
7301         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
7302
7303 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
7304
7305         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
7306         all chars are promoted to int; promotion should be handled in SDCCast.c
7307
7308 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7309
7310         * device/lib/_strcmp.c: Fixed bug 1326457
7311
7312 2005-10-11 Raphael Neider <rneider AT web.de>
7313
7314         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
7315         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
7316
7317 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7318
7319         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
7320         * support/regression/tests/sfr16.c: added test for the sfr32 bug
7321
7322 2005-10-04 Raphael Neider <rneider AT web.de>
7323
7324         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
7325           device/lib/pic16/pics.all: added pic18f1320
7326         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
7327
7328 2005-09-30 Raphael Neider <rneider AT web.de>
7329
7330         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
7331         * src/pic16/devices.inc: NEW, provides device descriptions
7332         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
7333
7334 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
7335
7336         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
7337           GETHBIT
7338
7339 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
7340
7341         * doc/sdccman.lyx: updated Highest Order Bit documentation,
7342           documented Any Order Bit, Higher Order Byte and Higher Order Word
7343         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
7344         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
7345           (optimizeGetAbit): new, to get any bit, not only the high bit,
7346           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
7347           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
7348           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
7349           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
7350             RIGHT_OP: also try GETBYTE, GETWORD optimization,
7351             GETABIT, GETBYTE, GETWORD: decorate them,
7352           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
7353           (ast_print): added GETABIT, GETBYTE, GETWORD
7354         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
7355         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
7356           (geniCodeBinary): new generic binary icode,
7357           (ast2iCode): added GETABIT, GETBYTE, GETWORD
7358         * src/port.h: updated comment for PORT.hasExtBitOp
7359         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
7360           (genGetByte): new, to get a single byte,
7361           (genGetWord): new, to get a word from a long,
7362           (gen51Code): added GETABIT, GETBYTE, GETWORD
7363         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
7364
7365 2005-09-23 Raphael Neider <rneider AT web.de>
7366
7367         * configure.in, configure: have device/lib/pic configured
7368         * device/lib/Makefile.in: added model-pic14
7369         * device/lib/clean.mk: added pic/ to clean rule
7370         * device/lib/pic: added rudimentary pic14 library providing support
7371           functions for multiplication/division/generic pointer access
7372         * src/SDCCopt.c (convilong): mark support functions as extern
7373           for pic14 port as well
7374         * src/pic/gen.c (genMult): added assertions,
7375           (genpic14Code): emit warning on unhandled iCodes
7376         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
7377         * src/pic/pcode.c (pCodeOpCopy),
7378         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
7379           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
7380           SFR_REGISTER}), made safe for future extensions
7381         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
7382           instructions even if preceeded by SKIP instructions (also remove
7383           them); removed unused code
7384         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
7385           prevents leaving parts of the structure uninitialized after copying
7386
7387 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
7388
7389         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
7390           ago by me
7391         * support/regression/tests/addsub.c: added test for the bug
7392
7393 2005-09-21 Raphael Neider <rneider AT web.de>
7394
7395         * device/include/pic16/pic18f1220.h,
7396           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
7397         * device/lib/pic16/Makefile.rules: added missing opening paren
7398         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
7399           are provided in genutils.c,
7400           (genUminusFloat,genUminus,genCmpEq): added asserts on different
7401           operand/result sizes,
7402           (genCmp): assert on NULL pointers first, then check deref'ed values
7403         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
7404           result size
7405
7406 2005-09-18 Raphael Neider <rneider AT web.de>
7407
7408         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
7409           as these are now unused,
7410           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
7411         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
7412           local, avoids uninitialized pointer dereference on r->name
7413         * src/pic16/ralloc.c (newReg): fixed indentation
7414
7415 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
7416
7417         * src/SDCCval.c (constVal): fixed bug 730366
7418         * support/Util/SDCCerr.c,
7419         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
7420
7421 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
7422
7423         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
7424
7425 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
7426
7427         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
7428
7429 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7430
7431         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
7432           (hex2dec): made hex_digit unsigned char, removed ascii dependance
7433         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
7434           (hex2dec): made hex_digit unsigned char, removed ascii dependance
7435         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
7436         * packihx/packihx.c (hexDigit): made c unsigned char
7437         * as/mcs51/lklibr.c (fndsym),
7438         * link/z80/lkgb.c (gb),
7439         * link/z80/lklibr.c (fndsym),
7440         * link/z80/lkrloc.c (relr),
7441         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
7442         * src/SDCC.lex (checkCurrFile, process_pragma),
7443         * src/SDCCglue.c (spacesToUnderscores),
7444         * src/SDCCmain.c (setParseWithComma, processFile),
7445         * src/asm.c (tvsprintf, printCLine),
7446         * src/avr/gen.c (emitcode, aopPut),
7447         * src/ds390/gen.c (emitcode),
7448         * src/hc08/gen.c (emitcode, emitinline),
7449         * src/mcs51/gen.c (emitcode, genInline),
7450         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
7451           tokenizeLineNode),
7452         * src/pic/ralloc.c (debugLog),
7453         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
7454           tokenizeLineNode),
7455         * src/pic16/ralloc.c (debugLog),
7456         * src/z80/main.c (_process_pragma):
7457            made all ctype.h function calls safe
7458         * src/SDCCopt.c: include math.h for fabs
7459         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
7460           and used them throughout the code to make ctype.h function calls safe
7461         * src/ds390/main.c (asmLineNodeFromLineNode),
7462         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
7463         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
7464            unsigned char*
7465         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
7466           (newpCodeAsmDir): made ctype.h function calls safe
7467         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
7468           pic16_emitcode):  made lbp unsigned char*
7469         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
7470           (pic16_newpCodeAsmDir): made ctype.h function calls safe
7471         * src/xa51/gen.c (emitcode),
7472         * src/z80/gen.c (_emit2): made lbp unsigned char*
7473         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
7474            char*
7475
7476 2005-09-05 Raphael Neider <rneider AT web.de>
7477
7478         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
7479           access bank splitpoint
7480
7481 2005-09-05 Raphael Neider <rneider AT web.de>
7482
7483         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
7484
7485 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
7486
7487         * .version: changed to version 2.5.3
7488         * doc/sdccman.lyx: changed version to 2.5.3,
7489           documented --codeseg and --constseg and pragma codeseg and constseg,
7490           documented bit parameters (reentrant) and bit returning
7491         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
7492            currFunc->recvSize, but is this ok for all ports?
7493           (ast2iCode): result of ~ on unsigned char must be cast to int for
7494            bool to work
7495         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
7496           function pointers in bit space
7497         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
7498           (processFuncArgs): call port.reg_parm() with reentrancy info
7499         * src/port.h,
7500         * src/avr/main.c,
7501         * src/ds390/main.c,
7502         * src/hc08/main.c,
7503         * src/pic/main.c,
7504         * src/pic16/main.c,
7505         * src/xa51/main.c,
7506         * src/z80/main.c: port.reg_parm prototype extended with
7507           "bool reentrant" parameter
7508         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
7509           options.stackAuto for allocating bit register parameters
7510         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
7511           (genSend): set BitBankUsed if it is,
7512           (selectRegBank): factored out of genCall for use in genPcall,
7513           (genCall): removed redundant dtype assignmen, use selectRegBank,
7514           (genPcall): handle returning in Carry properly, save in F0 if needed,
7515           (genReceive): handle bit register parameters
7516         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
7517           (mcs51_assignRegisters): enable bit registers for all reentrant
7518            functions and don't set BitBankUsed unconditionally
7519         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
7520         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
7521         * support/regression/tests/funptrs.c: added tests for BOOL and for return
7522
7523 2005-08-27 Borut Razem <borut.razem AT siol.net>
7524
7525         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
7526         ppc-osx (Darwin) does not support -u option. It seems that it is
7527         supported only on Linux - GNU cp
7528
7529 2005-08-25 Borut Razem <borut.razem AT siol.net>
7530
7531         * sim/ucsim/gui.src/serio.src/Makefile.in,
7532           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
7533           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
7534           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
7535           install and strip, since the strip at /usr/ccs/bin should be used
7536           on solaris
7537
7538 2005-08-24 Borut Razem <borut.razem AT siol.net>
7539
7540         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
7541
7542 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
7543
7544         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
7545         ffffffffu
7546
7547 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
7548
7549         * as/mcs51/aslink.h: completed lkrloc.c prototypes
7550         * as/mcs51/lkmain.c (link_main): fixed warning
7551         * device/include/stdbool.h: ds390 has no advanced bit support yet
7552         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
7553         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
7554         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
7555           and updated their macros
7556         * src/SDCCval.c (constVal): updated comment for renamed b_long
7557
7558 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
7559
7560         * as/mcs51/asdata.c: changed ctype['['] to BINOP
7561         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
7562           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
7563           (oprio): set priority for '['
7564         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
7565            and adb_24_bit
7566         * as/mcs51/asm.h: added defines R_BIT and S_BIT
7567         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
7568         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
7569         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
7570           added overlayable BIT_BANK area
7571         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
7572           (summary2): explain 'T' in legenda
7573         * as/mcs51/lkrloc.c: replaced old K&R style,
7574           (relr): added R_BIT processing,
7575           (errmsg): added "Bit-addressable relocation error",
7576           (adb_bit): added for converting from byte- to bit-addressable space,
7577           (adb_24_bit): added for converting from byte- to bit-addressable space
7578         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
7579            used in reentrant functions now even as return value
7580         * device/lib/_gptrput.c (_gptrput): removed obsolete code
7581         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
7582           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
7583         * src/SDCCglobl.h: added indicator BitBankUsed
7584         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
7585            the bit registers b0-b7
7586         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
7587           (geniCodeCast): fixed bug 1263853,
7588           (geniCodeLogicAndOr): put result in bool or char,
7589           (geniCodeReceive): added parameter func for accessing the return type,
7590           (geniCodeFunctionBody): pass func to geniCodeReceive
7591         * src/SDCCmain.c: added indicator BitBankUsed
7592         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
7593         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
7594           (checkSClass): don't put automatic bool/bit on stack,
7595           (checkFunction): removed check on function cannot return bit
7596         * src/SDCCsymt.h: added newBoolLink prototype
7597         * src/mcs51/gen.c (rb1regs): added bit registers,
7598           (movc): created for assigning to carry,
7599           (pushReg, popReg): created for pushing registers,
7600           (sameRegs): check both AOP_REG and AOP_CRY types,
7601           (aopOp): handle bit registers,
7602           (aopPut): optimization no self-assign,
7603           (saveRegisters): push reg->base (bits) only once for bit registers,
7604            and use pushReg,
7605           (unsaveRegisters): pop reg->base only once and use popReg,
7606           (assignResultValue): added parameter func and return in carry for bits,
7607           (genIpush): optimization no reload in A if not changed,
7608           (genSend): bit parameters in reentrant functions are passed in bit
7609            registers by first assigning to bits in B, then save registers and
7610            copy B to bits,
7611           (genCall): handle returning in Carry properly, save it in F0 if needed,
7612           (genPcall): updated assignResultValue call, this is not safe yet for bit
7613            returning function !!!
7614           (genFunction): don't generate equ's for bit registers and use pushReg,
7615           (genEndFunction): take care of bit returning functions and use popReg,
7616           (genRet): return bit in Carry,
7617           (genIfx): optimize bit registers and other directly addressable bits,
7618           (genReceive): updated assignResultValue call
7619         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
7620           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
7621            registers when using stack-auto
7622         * src/mcs51/ralloc.c (_G): added allBitregs,
7623           (regs8051): added the bit registers,
7624           (createStackSpil): use macro IS_BIT,
7625           (getRegBit): added to allocate a bit register, else spill,
7626           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
7627           (updateRegUsage): factored out to ease stepping while debugging,
7628           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
7629            also allocate bit registers,
7630           (fillGaps): handle bit registers,
7631           (findAllBitregs): added to create bit vector with all bit registers,
7632           (mcs51_allBitregs): returns this bit vector,
7633           (mcs51_assignRegisters): when using stack-auto use bit registers for
7634            passing parameters and creating local variables
7635         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
7636
7637 2005-08-22 Borut Razem <borut.razem AT siol.net>
7638
7639         * device/lib/Makefile.in: replaced find option -or with -o
7640           to make it run on solaris
7641
7642 2005-08-22 Raphael Neider <rneider AT web.de>
7643
7644         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
7645           fixes #1265442 (crash on Solaris)
7646
7647 2005-08-20 Borut Razem <borut.razem AT siol.net>
7648
7649         * configure, configure.in: added tests for libsocket and libnsl libraries,
7650           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
7651           from support/regression/Makefile.in
7652         * support/regression/Makefile.in: added
7653         * device/lib/pic16/Makefile.common.in: force make to use bash shell
7654         * sim/ucsim/libtool: regenerated on sparc-solaris
7655         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
7656           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
7657           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
7658           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
7659           sparc-solaris, which doesn't use GNU ld linker
7660         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
7661         * as/Makefile: find on sparc-solaris does not support -maxdepth option
7662
7663 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
7664
7665         * src/mcs51/peeph.def: updated comments
7666
7667 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7668
7669         * device/lib/_gptrget.c,
7670         * device/lib/_gptrput.c: slightly shorter
7671         * doc/sdccman.lyx: incremented version
7672         * src/mcs51/peeph.def: moved peephole comments to the line of first
7673           change to better keep line correlation, reanimated 186.e
7674         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
7675
7676 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7677
7678         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
7679           David Saxton with quotes around file name.
7680
7681 2005-08-15 Borut Razem <borut.razem AT siol.net>
7682
7683         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
7684           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
7685           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
7686           make tests run on x86_64 platform
7687
7688 2005-08-13 Raphael Neider <rneider AT web.de>
7689
7690         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
7691           as it might be executed DURING a build (parallel make is wonderful)
7692
7693 2005-08-13 Raphael Neider <rneider AT web.de>
7694
7695         * device/lib/Makefile.in (port-specific-objects-pic16):
7696           revert to cp $(PORT)/bin/*.* $(PORTDIR)
7697         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
7698           dependency
7699         * device/lib/pic16/Makefile.rules: build subdirs before creating
7700           the library, removed builddir rule, create $(builddir) early in
7701           recurse rule, use empty recurse rule for leaf directories
7702         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
7703           mkdir errors (race condition), removed duplicate suffix "hex"
7704           from clean rules
7705         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
7706         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
7707           prevents mkdir -p from aborting on Alpha
7708
7709 2005-08-12 Raphael Neider <rneider AT web.de>
7710
7711         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
7712           db-statements in order to allow for arrays of pointers in code
7713           sections to be placed without interspersed 0-padding, fixes
7714           bug #1256215
7715         * (emitStatistics): fixed division by zero for pic18f1220
7716         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
7717           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
7718         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
7719         * (pic16_pCodeConstString): keep track of already emitted string
7720           literals to prevent "duplicate definitions of symbol _str_NR"
7721         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
7722           debug message
7723         * device/lib/Makefile.in: ignore failing PIC16 library builds
7724         * device/lib/pic16/Makefile: do not build if gputils are missing
7725         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
7726
7727 2005-08-10 Raphael Neider <rneider AT web.de>
7728
7729         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
7730           my last commit)
7731
7732 2005-08-10 Raphael Neider <rneider AT web.de>
7733
7734         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
7735           Rokas' patch to add the new fixed point type "__fixed16x16"
7736         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
7737           functions for __fixed16x16 arithmetics
7738         * device/lib/pic16: reimplemented the build system to support
7739           a separate build directory, better handling of libio (create
7740           the library in a separate subdir for each architecture) and
7741           easier configuration (centralized in Makefile.common)
7742
7743 2005-08-07 Raphael Neider <rneider AT web.de>
7744
7745         * src/pic16/gen.c (genrshTwo): fixed sign extension
7746         * src/pic16/device.c: added pic18f2320, 4220 and 4320
7747         * device/include/pic16/pic18f2220.h: changed some bit definitions,
7748           added T0CONbits
7749         * device/include/pic16/pic18f4220.h: NEW, header for
7750           pic18f4220 and pic18f4320
7751         * device/include/pic16/pic18fregs.h: added new devices,
7752           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
7753         * device/include/pic16/signal.h: resolved name clashes
7754           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
7755           to also allow testing for interrupt enable bits, added
7756           comments on how to use the macros
7757         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
7758         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
7759           register definitions for the devices
7760         * device/lib/pic16/pics.all: added new devices
7761         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
7762           allocated memory
7763         * device/lib/pic16/libc/stdlib/memfree: do not count
7764           the block header as free memory
7765         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
7766           simplified and added missing end-of-blocklist-marker
7767           (reported by Peter Onion, fixes #1252814)
7768         * (_mergeHeapBlock): fixed loop condition
7769         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
7770           len==0, restructured code
7771         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
7772           up a bit, reduced bitfield accesses, prevent endless loops
7773           in case of heap corruption
7774         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
7775           "unreferenced arguments/must return a value" warnings
7776         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
7777           replaced BAUDREG with SPBRG
7778         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
7779           device/lib/pic16/debug/gstack/gstack.c: replaced
7780           _naked, _asm, _endasm with __naked, __asm, __endasm
7781
7782 2005-08-05 Raphael Neider <rneider AT web.de>
7783
7784         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
7785           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
7786
7787 2005-08-05 Borut Razem <borut.razem AT siol.net>
7788
7789         * device/lib/Makefile.in: added missing ';'
7790         * configure: removed ^M characters
7791
7792 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7793
7794         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
7795           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
7796           License
7797
7798 2005-08-04 Borut Razem <borut.razem AT siol.net>
7799
7800         * configure.in: pic16 libraries build 2nd try - enable running
7801           configure in device/lib/pic16
7802         * configure: regenerated from configure.in
7803         * device/lib/Makefile.in: create $(PORT)/bin directory
7804
7805 2005-08-03 Raphael Neider <rneider AT web.de>
7806
7807         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
7808           to get/set values via pointers
7809         * (genUnpackBits,genPackBits): changed detection of
7810           ptr->bitfield vs. sym.bitfield, fixed access via generic
7811           pointers, removed dead (wrong) code for multibyte bitfields
7812         * (genNearPointerGet, genGenPointerGet): removed useless code,
7813           fixed bitfield detection, fixes #1250594
7814         * (genNearPointerSet): removed useless code
7815         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
7816           and introduced macro pic16_emitpcode that conditionally emits
7817           the origin of the following pCode (useful for debugging SDCC)
7818         * src/pic16/pcode.c: changed (and disabled) some debug outputs
7819         * (createDefmap): fixed handling of LFSR for --optimize-df
7820
7821 2005-08-02 Borut Razem <borut.razem AT siol.net>
7822
7823         * device/lib/Makefile.in: pic16 libraries build enabled since
7824           gputils-0.13.2 are now localy installed at sourceforge's compile farm
7825
7826 2005-08-02 Raphael Neider <rneider AT web.de>
7827
7828         * src/pic16/gen.c (genPackBits): removed deprecated warning
7829         * (genGenPointerSet): fixed bitfield detection
7830
7831 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7832
7833         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
7834
7835 2005-07-31 Raphael Neider <rneider AT web.de>
7836
7837         * device/lib/pic16/libdev/pic18f458.c,
7838           device/include/pic16/pic18f458.h: added missing T0CONbits
7839
7840 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
7841
7842         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
7843
7844 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
7845
7846         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
7847
7848 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7849
7850         * device/include/mcs51/at89c51ed2.h: added.
7851
7852 2005-07-23 Raphael Neider <rneider AT web.de>
7853
7854         * src/pic/gen.h: added emitpcode macro for debugging
7855         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
7856           and replace by macro adding debug information on demand
7857         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
7858         * (gencjne): tried to fix; replaced with correct (slower) code
7859         * (gen{Unp,P}ackBits): fixed single bit access
7860         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
7861         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
7862           previous instruction
7863         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
7864           register has to be handled with care (forbidding movement
7865           of assignments/uses, removing assignments completely, ...)
7866         * (pCodeOptime2pCodes): make use of regIsSpecial
7867         * added lots of debugging output (commented out)
7868         * src/pic/rallloc.c (deassignLRs): prevent operand registers
7869           from being reused as result UNLESS it is known to work
7870
7871 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
7872
7873         * support/Util/dbuf.h: include <stddef.h> for size_t
7874         * .version: changed to version 2.5.2
7875
7876 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7877
7878         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
7879
7880 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7881
7882         * src/hc08/gen.c (genMinus): fixed bug #1241835,
7883           (genModOneByte): removed needless psha/pula
7884
7885 2005-07-22 Raphael Neider <rneider AT web.de>
7886
7887         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
7888           have PIC14 handled like PIC16, fixes broken pic14 linker calls
7889         * src/pic/gen.c (resolveIfx): do not "invent" labels
7890         * (genSkipc): changed to positive logic
7891         * (genSkipCond): removed as no longer needed
7892         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
7893           backport from PIC16
7894         * (genLeftShift): check operands are in different registers
7895         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
7896           INCF does not update CARRY...
7897         * src/pic/main.c: fixed _linkCmd
7898         * src/pic/pcode.c (unlinkpCode): added inactive code
7899         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
7900           alive (do not assign result and operand overlapping registers)
7901
7902 2005-07-22 Raphael Neider <rneider AT web.de>
7903
7904         * src/pic/device.c (dump_sfr): replaced register declaration with
7905           call to emitSymbolToFile() to avoid duplicate symbols
7906         * (assignRelocatableRegisters): do not declare external symbols
7907         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
7908           right (take size of type, not etype)
7909         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
7910         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
7911         * (packRegsForAccUse): disabled assignment of WREG as
7912           the result reg to prevent occurence of just fixed #1235003,
7913           fixes #1242954
7914         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
7915           symbols (avoids duplicate symbols in .asm file)
7916         * (pic14emitRegularMap): use emitSymbolToFile()
7917         * src/pic/gen.c (aopOp): fixed spillLocation handling
7918         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
7919         * (genDataPointerSet): removed unneccessary variables/output
7920
7921 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
7922
7923         * as/mcs51/lkarea.c: enlarged codemap for banked memory
7924         * device/lib/mcs51/crtbank.asm: added # to 0x0F
7925
7926 2005-07-21 Raphael Neider <rneider AT web.de>
7927
7928         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
7929           architecture cannot handle them efficiently, fixes bug #1235003
7930         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
7931           check for empty sets before using them (fixes bug #1232190)
7932
7933 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
7934
7935         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
7936           (lnksect2): generate warnings for memory overlap
7937         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
7938           constseg to set the name of these segments so you can instruct the linker
7939           to place them in banks
7940         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
7941         * src/SDCCglobl.h: added MODEL_HUGE to enum,
7942           added code_seg and const_seg to options
7943         * src/SDCCglue.c (emitMaps): use options.const_seg,
7944           (createInterruptVect): put interrupt vectors in segment HOME,
7945           (glue): put HOME before static segment and put the main glue in HOME,
7946           (glue): use options.code_seg
7947         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
7948         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
7949           these segments so you can instruct the linker to place them in banks
7950           (linkEdit): use code_loc for HOME segment which should be the first
7951           segment in code memory now
7952         * src/SDCCmem.c: fixed more stuff like bug 1238386
7953         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
7954           (changePointer): don't change function pointers to code pointers for
7955           banked functions,
7956           (compareType): added exceptional check for banked function pointers
7957         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
7958         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
7959           after static in code memory
7960         * src/mcs51/gen.c: added aopLiteralLong prototype,
7961           (aopForSym): use getSize for functions,
7962           (genCall): generate banked calls over one trampoline __sdcc_banked_call
7963           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
7964           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
7965           the segment,
7966           (genPcall): use call for literal function pointers and generate banked
7967           calls over the one trampoline so there's only one place for the user to
7968           modify according to his/hers hardware,
7969           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
7970           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
7971         * src/mcs51/main.c: added keyword banked,
7972           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
7973         * support/Util/SDCCerr.c,
7974         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
7975           needed for passing the bank and address to the trampoline
7976         * device/lib/mcs51/crtbank.asm: added for bankswitching
7977         * device/lib/mcs51/Makefile: added crtbank
7978
7979 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7980
7981         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
7982           for fields at offset 0 of a struct or union as reported
7983           on 2005-07-07 in the developer mailing list.
7984
7985 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
7986
7987         * src/SDCCmem.c: fixed bug 1238386
7988
7989 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7990
7991         * src/mcs51/peeph.def: added labelrefcounting for peepholes
7992           (patch #1144962), added peephole 300, enabled 259.x
7993         * doc/sdccman.lyx: removed screenshot and provided link instead
7994
7995 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7996
7997         * doc/sdccman.lyx: added section about debugging with ddd
7998         * doc/figures/ddd_example.eps: screenshot of debugging session
7999
8000 2005-07-04 Raphael Neider <rneider AT web.de>
8001
8002         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
8003           like CODE pointers, fixes #1115683
8004         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
8005           call, fixes bugs #1232211, #1228110,
8006           fixed wrong casts to pCodeFlow from pCodeInstructions
8007
8008 2005-07-04 Raphael Neider <rneider AT web.de>
8009
8010         * src/pic/gen.c (popGet): changed assert to allow for
8011           bit operands
8012         * (popGetAddr): changed signature to provide
8013           an additional index, patched all call sites
8014         * (genCmpEq): handle literal-like operands correctly
8015         * (genAddrOf): added sanity checks on __code/__data pointers
8016         * (genAssign): added handling of symbols from __code section
8017         * (gencjne): do not generate code for comparisons whose result
8018           is neither stored nor used, fixes bug #1171114
8019         * (AccLsh, AccRsh): operate on operand instead of WREG
8020         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
8021           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
8022           by known count
8023         * rewrote complete shift-by-literal logic, commented unused
8024           functions out
8025         * (genConstPointerGet): get multiple bytes (if result size > 1),
8026           fixed handling of non-immediate addresses
8027         * (genPointerGet): handle CODE pointers like CONST pointers
8028         * (genpic14Code): insert C-SRC lines as Cource-pCodes
8029         * ({aop,op}_isLitLike): NEW, single place to decide whether an
8030           operand is to be treated as a literal or not
8031         * (mov2w,genPcall,genCmpEq),
8032           src/pic/genarith.c: use aop_isLitLike() to decide between
8033           literal/register contents
8034         * (addSign): added missing offset
8035         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
8036           only emit comment in debug-mode,
8037           use {aop,op}_isLitLike throughout the file
8038         * src/pic/glue.c: fix initializers for pointers (work in progress)
8039         * src/pic/pcode.c (get_op): honor index on _const symbols
8040         * ({reset,dump}pCodeStatistics): NEW, estimate code size
8041         * (dumppBlock): added pCode size estimation
8042         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
8043           check for IS_SYMOP before OP_SYMBOL'ing
8044         * fixed indentation, compacted switch-statements
8045         * (allocReg): find free register and allocate it instead of
8046           allocating new registers all the time
8047         * (deassignLRs): prevent POINTER_GET's from being assigned the same
8048           registers as its operands (necessary only for multibyte GETs)
8049
8050 2005-07-01 Raphael Neider <rneider AT web.de>
8051
8052         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
8053           debugging .asm-output macros FENTRY + FEXIT
8054         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
8055           way... I wonder...
8056         * (emitpComment): NEW, printf to pCode
8057         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
8058           offset handling
8059         * (popGetAddr): NEW, variant of popGet to access an immediates
8060           high(er) bytes instead of the n'th byte of memory they reference,
8061           replaced popGet with popGetAddr where neccessary
8062         * (genDataPointerGet): reactivated and fixed implementation
8063         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
8064           accesses
8065         * (genDataPointerSet): fixed multibyte assignments
8066         * (genpic14Code): fixed --i-code-in-asm handling
8067         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
8068         * (genPlus): fixed index-out-of-bounds error
8069         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
8070         * src/pic/ralloc.c: added debugging output macro FENTRY2
8071         * (spillThis): fixed indentation, enbraced for-body for clarity
8072         * (rematStr): commented out as now unused
8073         * (regTypeNum): commented out special spill case (overwrites
8074           arbitrary values)
8075         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
8076
8077 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
8078
8079         * doc/sdccman.lyx: documented sfr16/sfr32,
8080           added example for using storage class with function pointers
8081         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
8082
8083 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
8084
8085         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
8086         * device/lib/_itoa.c,
8087         * device/lib/_ltoa.c: optimized codesize
8088         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
8089           but don't know how to suppress the double warning.
8090         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
8091         * support/Util/SDCCerr.c,
8092         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
8093
8094 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
8095
8096         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
8097           fixed old K&R prototypes
8098         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
8099         * device/lib/_gptrget.c,
8100         * device/lib/_gptrgetc.c,
8101         * device/lib/_gptrput.c: changed versions for new memory indicator values,
8102           also new versions for small generic pointers and banked generic pointers
8103         * src/port.h: added const_name
8104         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
8105         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
8106         * src/SDCCcse.c (findPrevIc): check all associative operators
8107         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
8108         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
8109         * src/SDCCmem.c: updated comments,
8110           set far-space to 0 for pdata, results in optimized code
8111         * src/SDCCmem.h: added macro CONST_NAME
8112         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
8113           moving the info into the highest bits, see also gptrget/gptrput
8114         * src/src.dsp: added sdcc.ico to project files
8115         * src/avr/gen.c (genCast): fixed bug 0x%d
8116         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
8117         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
8118           relation between ptr_type and DCL_TYPE,
8119           (genCast): fixed bug 0x%d
8120         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
8121           (CODE)" for const_name
8122         * src/hc08/gen.c (genCast): fixed bug 0x%d
8123         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
8124           (hc08_port): added "CONST (CODE)" for const_name
8125         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
8126           (aopForRemat, adjustArithmeticResult): disconnected direct relation
8127           between ptr_type and DCL_TYPE,
8128           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
8129           operand* and took AOP() inside function so sfr-ness can be checked,
8130           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
8131           new prototype,
8132           (genFunction, genEndFunction): optimized stack setup,
8133           (genMinus): optimized for literals with ending zeroes (in bytes),
8134           (genCast): fixed bug 0x%d
8135         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
8136           (mcs51_port): added "CONST (CODE)" for const_name
8137         * src/mcs51/peeph.def: made rule 226 more generic
8138         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
8139         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
8140         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
8141         * src/z80/main.c (z80_port): added NULL for const_name,
8142           (gbz80_port): added NULL for const_name
8143         * support/regression/tests/bug663539.c,
8144         * support/regression/tests/sfr16.c: new tests
8145
8146 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8147
8148         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
8149
8150 2005-06-24 Raphael Neider <rneider AT web.de>
8151
8152         * device/lib/pic16/libdev/pic18f[68][567]20.c:
8153           corrected typos...
8154         * device/include/pic16/signal.h: added USBIF
8155           and SIG_USB
8156
8157 2005-06-24 Raphael Neider <rneider AT web.de>
8158
8159         * device/lib/pic16/libdev/pic18f2455.c,
8160           device/include/pic16/pic18f2455.h: NEW
8161         * device/include/pic16/pic18fregs.h,
8162           device/lib/pic16/pics.all,
8163           src/pic16/device.c: added 18f2455
8164         * device/lib/pic16/libdev/pic18f[68][567]20.c,
8165           device/include/pic16/{pic18f[68][567].h,usart.h}:
8166           replaced MULTIPLE_USARTS define with more relaible
8167           compatibility sfrs (for USART access)
8168
8169 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
8170
8171         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
8172           and the output asm file line is printed on two lines.
8173
8174 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8175
8176         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
8177           BGT, BLE, BHI, and BLS instructions
8178         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
8179           genCmpEq): removed
8180         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
8181           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
8182           fixes bug #1216342
8183         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
8184
8185 2005-06-15 Raphael Neider <rneider AT web.de>
8186
8187         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
8188         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
8189         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
8190           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
8191           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
8192
8193 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8194
8195         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
8196           Marcel Telka in bug #1215704
8197
8198 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
8199
8200         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
8201           located in shared memory bank.
8202
8203 2005-05-31 Raphael Neider <rneider AT web.de>
8204
8205         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
8206           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
8207           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
8208
8209 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
8210
8211         * device/lib/_strncpy.c: fixed the fix
8212
8213 2005-05-26 Raphael Neider <rneider AT web.de>
8214
8215         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
8216           initializers with \0, bug #1208187
8217         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
8218           intializers with \0, bug #1208187
8219
8220 2005-05-26 Raphael Neider <rneider AT web.de>
8221
8222         * src/pic16/glue.c (pic16_printIvalChar): fixed string
8223           initializers with \0, bug #1208187
8224         * src/pic16/main.c (_process_pragma): added sanity checks
8225           for stack position and size, emit warnings when appropriate
8226
8227 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
8228
8229         * device/lib/_strncpy.c: fixed not filling with \0
8230
8231 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8232
8233         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
8234           createFunction),
8235         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
8236           compound_statement),
8237         * src/SDCCsymt.h,
8238         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
8239
8240 2005-05-24 Raphael Neider <rneider AT web.de>
8241
8242         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
8243
8244 2005-05-24 Raphael Neider <rneider AT web.de>
8245
8246         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
8247           TRISE definitions, closes bug #1162453
8248
8249 2005-05-22 Raphael Neider <rneider AT web.de>
8250
8251         * src/pic16/main.c (_process_pragma): check for missing
8252           arguments to pragmas code and udata
8253         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
8254           consistency fixes to match other headers (thanks to Jim Paris)
8255         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
8256
8257 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
8258
8259         * src/SDCCicode.c (isOperandEqual): fixed missing ;
8260
8261 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
8262
8263         * support/regression/tests/bug1198642.c: new test
8264         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
8265         * src/SDCCcse.c (findPrevIc): added comment, please have a look
8266         * support/scripts/resource.h,
8267         * support/scripts/resource.rc,
8268         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
8269         * support/scripts/sdcc.ico: added 32x32 icon
8270
8271 2005-05-18 Raphael Neider <rneider AT web.de>
8272
8273         * device/lib/pic16/libdev/pic18f*.c,
8274         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
8275           keywords to "__sfr" and "__at (X)"
8276         * device/include/pic16/pic18fregs.h: added pic18f4520
8277         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
8278           #1203088 (MPLAB compatibility)
8279
8280 2005-05-17 Raphael Neider <rneider AT web.de>
8281
8282         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
8283         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
8284         * device/lib/pic16/pics.all: added new devices
8285         * src/pic16/device.c: added support for pic18f4520
8286
8287 2005-05-16 Raphael Neider <rneider AT web.de>
8288         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
8289         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
8290         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
8291           convenience function for bit access
8292
8293 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8294
8295         * device/lib/printf_large.c: fixed bug 1193299
8296         * support/regression/tests/bug1057979.c: added test %3.3s
8297
8298 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8299
8300         * device/include/mcs51/8051.h,
8301         * device/include/mcs51/8052.h: made parseable with lint
8302         * device/include/mcs51/lint.h: added include file for (sp)lint
8303         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
8304         * doc/cdbfileformat.lyx,
8305         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
8306
8307 2005-05-14 Raphael Neider <rneider AT web.de>
8308
8309         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
8310         * device/lib/pic16/libc/stdlib/itoa.c (new)
8311         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
8312         * device/lib/pic16/libio/Makefile: exclude subdir according to
8313           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
8314         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
8315         * src/pic16/gen.c (genFunction): prevent annoying warning
8316         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
8317           nameclashes on BeOS
8318         * support/cpp2/cppmain.c (cpp_output_string): new
8319         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
8320           fixes bug 1116802
8321
8322 2005-05-13 Borut Razem <borut.razem AT siol.net>
8323
8324         * src/SDCCmain.c (linkEdit): fixed bug 1195202
8325
8326 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8327
8328         * .version: changed to version 2.5.1; back to bleeding edge development
8329
8330 2005-05-11 Borut Razem <borut.razem AT siol.net>
8331
8332         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
8333           generate PDF version 1.3 documents
8334
8335 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8336
8337         * .version: changed to version 2.5.0
8338
8339 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8340
8341         * doc/sdccman.lyx: updated weblinks, index and smaller updates
8342
8343 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8344
8345         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
8346         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
8347         well as many smaller updates.
8348         * .version: changed to version 2.5.0-pre1
8349
8350 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8351
8352         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
8353
8354 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
8355
8356         * support/regression/tests/bug1185672.c: added
8357         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
8358           bug 1185672
8359         * src/mcs51/gen.c (genCall): added comments, made it look safer
8360         * src/mcs51/gen.c (genEndFunction): simplified
8361
8362 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
8363
8364         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
8365
8366 2005-04-14 Borut Razem <borut.razem AT siol.net>
8367
8368         * fixed bug 1045046 - SIGSEGV with really simple code?:
8369           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
8370           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
8371
8372 2005-04-14 Borut Razem <borut.razem AT siol.net>
8373
8374         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
8375           src/pic16/device.h: temporarily disabled experimental #inline pragma
8376           for 2.5.0 release
8377
8378 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
8379
8380         * device/include/z80/stdio.h,
8381         * device/include/z80/string.h: removed these highly incomplete files so
8382           SDCC can use the default ones in device/include/
8383
8384 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8385
8386         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
8387         gcc warning.
8388         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
8389         fix sdcpp warnings.
8390
8391 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
8392
8393         * device/include/malloc.h: removed redundant __reentrant prototypes
8394         * device/lib/_mullong.c: added working xstack variant in asm (C version
8395           doesn't pass regression tests)
8396         * device/lib/bpx.c: used __data and made bpx char for mcs51
8397         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
8398           (createFunction): fixed bug with xstackPtr
8399         * src/SDCCcse.c: corrected comments
8400         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
8401           (killDeadCode, eBBlockFromiCode): removed unused code
8402         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
8403           corrected comments
8404         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
8405           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
8406           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
8407           (genModOneByte): fixed warning in MSVC
8408         * src/mcs51/main.c (): added comments
8409         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
8410
8411 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
8412
8413         * src/SDCCmain.c (linkEdit): oops, changed one line too many
8414
8415 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
8416
8417         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
8418
8419 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
8420
8421         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
8422         characters arrays of larger size than the declared one.
8423
8424 2005-04-10 Borut Razem <borut.razem AT siol.net>
8425
8426         * src/pic/gen.c (genInline),
8427           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
8428           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
8429           (findNextInstruction), (findPrevInstruction),
8430           (findInstructionUsingLabel),
8431           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
8432         * src/pic/pcode.c (findLabel): added missing '\n'
8433         * src/src.dsp: added SDCCdwarf2.c to the project
8434
8435 2005-04-09 Borut Razem <borut.razem AT siol.net>
8436
8437         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
8438
8439 2005-04-08 Raphael Neider <rneider AT web.de>
8440
8441         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
8442           into the chain after a given one) and mergeDefmapSymbols (combine
8443           defmap entries for each symbol per pcode)
8444         * (createDefmap): have defmap entries merged in the end
8445         * (defmapReplaceSymRef): split defmap entries covering two accesses to
8446           a symbol before replacing one access type's symbol, merge symbols in
8447           the end (replacement symbol might already have an entry)
8448         * (assignValnums): keep reference to written WREG intact
8449
8450 2005-04-08 Raphael Neider <rneider AT web.de>
8451
8452         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
8453           Alpha)
8454
8455 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
8456
8457         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
8458         bytes
8459
8460 2005-04-07 Raphael Neider <rneider AT web.de>
8461
8462         * device/include/pic16/usart.h: added compatibility defines for
8463           devices with more than one USART
8464         * device/include/pic16/pic18f[68][567]20.h: activated above defines
8465
8466 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8467
8468         * device/lib/Makefile.in: updated for port specific include
8469
8470 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8471
8472         * support/regression/ports/mcs51/spec.mk: added mcs51 include
8473
8474 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8475
8476         * device/include/8051.h,
8477         * device/include/8052.h,
8478         * device/include/at89S8252.h,
8479         * device/include/at89c55.h,
8480         * device/include/at89x051.h,
8481         * device/include/at89x51.h,
8482         * device/include/at89x52.h,
8483         * device/include/mcs51reg.h,
8484         * device/include/reg51.h,
8485         * device/include/reg764.h,
8486         * device/include/regc515c.h,
8487         * device/include/sab80515.h: (re)moved these 12 files
8488         * device/include/mcs51/8051.h,
8489         * device/include/mcs51/8052.h,
8490         * device/include/mcs51/at89S8252.h,
8491         * device/include/mcs51/at89c55.h,
8492         * device/include/mcs51/at89x051.h,
8493         * device/include/mcs51/at89x51.h,
8494         * device/include/mcs51/at89x52.h,
8495         * device/include/mcs51/mcs51reg.h,
8496         * device/include/mcs51/reg51.h,
8497         * device/include/mcs51/reg764.h,
8498         * device/include/mcs51/regc515c.h,
8499         * device/include/mcs51/sab80515.h: and added them here
8500
8501 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
8502
8503         * device/include/stdarg.h: changed SDCC specific keywords to double
8504           underlined form.
8505         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
8506           mcs51 and ds390.
8507         * device/include/hc08/mc68hc908gp32.h,
8508         * device/include/hc08/mc68hc908jb8.h,
8509         * device/include/hc08/mc68hc908jkjl.h,
8510         * device/include/hc08/mc68hc908qy.h: fixed comments
8511         * device/include/mcs51/README: updated
8512         * device/include/mcs51/c8051f120.h: added PINRSF
8513         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
8514         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
8515           amidst code. Also inline is not supported.
8516
8517 2005-04-06 Raphael Neider <rneider AT web.de>
8518
8519         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
8520         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
8521           callers stack/frame pointers
8522
8523 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
8524
8525         * device/include/pic16/usart.h: added, missing in previous commit,
8526         * device/include/pic16/adc.h: fixed typo,
8527         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
8528         commit,
8529         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
8530         <p18fxxx.inc>
8531         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
8532         uninitialized because a bug appears with gplink
8533         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
8534         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
8535         complains for unrecognised option
8536
8537 2005-04-05 Raphael Neider <rneider AT web.de>
8538
8539         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
8540           structs as well (using memcpy)
8541         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
8542           on ISRs (GOTO has no label)
8543         * src/pic16/device.h: added OF_OPTIMIZE_DF
8544         * src/pic16/main.c: added compiler switch --optimize-df to enable the
8545           new data flow analysis/optimization
8546         * src/pic16/pcode.c: added (prototypes for and implementation of)
8547           dataflow analysis functions, fixed pCodeInstructions' inCond and
8548           outCond values, made RCALL a branch instruction
8549         * (pic16_unlinkpCode): keep C line if possible
8550         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
8551           C line moved if possible
8552         * (pic16_getRegFrompCodeOp): NEW, improved version of...
8553         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
8554           to use new pic16_getRegFrompCodeOp (works for more SFRs)
8555         * (pic16_BuildFlow): fixed skip instructions with label (did not start
8556           new flow)
8557         * (pic16_getJumptabpCode): NEW, needed in...
8558         * (LinkFlow): fixed handling of jumptables, calls and conditional
8559           branches
8560         * (pic16_InsertCommentAfter): NEW
8561         * (pic16_pCodeReplace): made verbose and flow preserving
8562         * (AnalyzeFlow): added call to data flow analysis
8563         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
8564         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
8565         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
8566
8567 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8568
8569         * src/SDCCast.c (decorateType): fixed bug #1105626
8570
8571 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
8572
8573         * device/include/asm/pic16/features.h,
8574         * pic18f*.h headers,
8575         * device/include/pic16/adc.h,
8576         * device/include/pic16/delay.h,
8577         * device/include/pic16/i2c.h,
8578         * device/include/pic16/malloc.h,
8579         * device/include/pic16/stdio.h,
8580         * device/include/pic16/stdlib.h,
8581         * device/include/pic16/string.h,
8582         * device/lib/pic16/libc/stdio/printf_tiny.c,
8583         * device/lib/pic16/libc/stdio/printf_small.c,
8584         * device/lib/pic16/libc/stdio/strmgpsim.c,
8585         * device/lib/pic16/libc/stdio/strmmssp.c,
8586         * device/lib/pic16/libc/stdio/strmusart.c,
8587         * device/lib/pic16/libc/stdio/vfprintf.c,
8588         * device/lib/pic16/libc/stdlib/ltoa.c,
8589         * device/lib/pic16/libc/stdlib/putchar.c,
8590         * device/lib/pic16/libc/stdlib/x_ftoa.c,
8591         * device/lib/pic16/libc/stdlib/memchrpgm.c,
8592         * device/lib/pic16/libc/stdlib/memchrram.c,
8593         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
8594         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
8595         * device/lib/pic16/libio/adc/adcbusy.c,
8596         * device/lib/pic16/libio/adc/adcread.c,
8597         * device/lib/pic16/libio/adc/adcsetch.c,
8598         * device/lib/pic16/libio/usart/ubaud.c,
8599         * device/lib/pic16/libio/usart/ubusy.c,
8600         * device/lib/pic16/libio/usart/udrdy.c,
8601         * device/lib/pic16/libio/usart/uopen.c,
8602         * device/lib/pic16/libio/usart/uputc.c,
8603         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
8604         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
8605         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
8606         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
8607         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
8608         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
8609         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
8610         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
8611         specific keywords to double underlined form,
8612         * device/lib/pic16/libc/Makefile.rules,
8613         * device/lib/pic16/libsdcc/Makefile.rules,
8614         * device/lib/pic16/libm/Makefile,
8615         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
8616         to compile with C standard set in Makefile.common
8617         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
8618         rand.c and crc.c in compilation process,
8619         * device/lib/pic16/libsdcc/int/divuint.c,
8620         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
8621         `c' from signed to unsigned,
8622         * device/lib/pic16/startup/crt0.c,
8623         * device/lib/pic16/startup/crt0i.c,
8624         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
8625         keywords to double underlined form, bug fixes in _do_cinit function
8626         which prevented the correct initialization of the .idata segment,
8627         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
8628         core to enter a infinite loop
8629         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
8630
8631 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8632
8633         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
8634
8635 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8636
8637         * device/include/Makefile.in: add support for hc08 subdirectory
8638         * device/include/hc08/: new subdirectory
8639         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
8640         Lucas Loizaga, thanks!
8641         * device/include/hc08/mc68hc908qy.h,
8642         * device/include/hc08/mc68hc908gp32.h,
8643         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
8644         their own directory. Changed internal macro names to use the compiler
8645         reserved namespace. Changed SDCC specific keywords to double
8646         underlined form.
8647         * device/include/math.h,
8648         * device/include/malloc.h,
8649         * device/include/stdarg.h,
8650         * device/include/stdbool.h
8651         * device/include/string.h,
8652         * device/include/tinibios.h,
8653         * device/include/ds400rom.h,
8654         * device/include/8051.h,
8655         * device/include/8052.h,
8656         * device/include/80c51xa.h,
8657         * device/include/at89c55.h,
8658         * device/include/at89S8252.h,
8659         * device/include/at89x51.h,
8660         * device/include/at89x52.h,
8661         * device/include/ds80c390.h,
8662         * device/include/reg764.h,
8663         * device/include/regc515c.h,
8664         * device/include/sab80515.h,
8665         * device/include/mcs51/c8051f000.h,
8666         * device/include/mcs51/c8051f018.h,
8667         * device/include/mcs51/c8051f020.h,
8668         * device/include/mcs51/c8051f040.h,
8669         * device/include/mcs51/c8051f060.h,
8670         * device/include/mcs51/c8051f120.h,
8671         * device/include/mcs51/c8051f300.h,
8672         * device/include/mcs51/c8051f310.h,
8673         * device/include/mcs51/c8051f320.h,
8674         * device/include/mcs51/c8051f330.h,
8675         * device/include/mcs51/c8051f350.h,
8676         * device/include/z180.h: Changed SDCC specific keywords to double
8677         underlined form.
8678
8679 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
8680
8681         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
8682         18F4455,
8683         * (pic16_assignConfigWordValue): disable testing of configuration
8684         register value with config mask,
8685         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
8686         function with port->fun_prefix,
8687         * (genFunction): when generating a naked interrupt function never
8688         create an absolute segment placed in interrupt vector address, place
8689         the actual interrupt function at IVA instead, when an interrupt
8690         function is generated with unspecified interrupt then do not create
8691         the absolute section,
8692         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
8693         code for generating a call to generic pointer get/put function with
8694         a call to function pic16_callGenericPointer(),
8695         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
8696         the call to the generic pointer get/put functions with prefixing the
8697         function name with port->fun_prefix,
8698         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
8699         * src/pic16/main.c (_process_pragma): prefix function with
8700         port->fun_prefix,
8701         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
8702         calling assembler, old 18Fxxxx macro is deprecated,
8703         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
8704         PC_ASMDIR in while condition,
8705         * (findInstruction): add PC_ASMDIR in while condition,
8706         * (buildCallTree): prefix main with port->fun_prefix,
8707         * (pic16_pCode2str): fixed bug that didn't emit the memory access
8708         identifier for variable with banked access in instructions BTFSS,
8709         BTFSC, BCF, BSF, BTG
8710         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
8711         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
8712         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
8713         perform optimization when enviroment variable NO_REG_OPT is set,
8714         * (insideLRBlock): NEW, return 1 if register is inside an
8715         INF_LOCALREGS block,
8716         * (RemoveRegFromLRBlock): remove a register that is completely
8717         eliminated by register optimization, but it is still left in local
8718         register store/restore in/from stack block,
8719         * (Remove2pcodes): after removing register, check to see if it
8720         should be removed from local register store/restore in/from stack
8721         block,
8722         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
8723         DUMMY_READ_VOLATILE,
8724
8725         * device/include/pic16/adc.h: minor prototype modifications and
8726         update,
8727         * device/include/pic16/malloc.h: added GPL notice various
8728         modifications,
8729         * device/include/pic16/stdint.h: NEW, standard header for ints
8730         * device/include/pic16/delay.h: NEW, header for delay functions,
8731         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
8732         delay1mtcy,
8733         * device/include/pic16/signal.h: NEW, header providing helper macros
8734         for implementing signal handlers,
8735         * device/include/pic16/stdio.h: added prototypes for functions,
8736         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
8737         prototypes for stdin and stdout, added macro PUTCHAR to
8738         automatically implement putchar function prototype,
8739         * device/include/pic16/usart.h: modified and updated USART library,
8740         * device/lib/pic16/libio/adc/,
8741         * device/lib/pic16/libio/i2c: some modifications to improve library
8742         performance,
8743         * device/lib/pic16/libc/stdio/: modifications for the new printf*
8744         family of functions,
8745         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
8746         family of functions and other sources,
8747         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
8748         of the PIC18Fxx[28] devices,
8749         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
8750         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
8751         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
8752         _do_cinit function, because the previous failed when local variables
8753         where not placed in the same memory bank,
8754         * device/lib/pic16/libsdcc/char/: various modifications to improve
8755         library performance,
8756         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
8757         information on the new functions of the c library and more...
8758
8759 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8760
8761         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
8762
8763 2005-03-26 Raphael Neider <rneider AT web.de>
8764
8765         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
8766           if condition == CARRY)
8767         * (genCmp): adapted to new genSkipc semantics
8768         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
8769           on rIfx (genCmp was broken)
8770
8771 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8772
8773         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
8774         * src/z80/main.c (_keywords[]),
8775         * src/SDCCglobal.h (struct options),
8776         * src/SDCC.y,
8777         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
8778         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
8779         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
8780         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
8781         always available in leading double underscore form. The C99 support is
8782         mostly missing, but it's a start.
8783         * support/regression/tests/bug-227710.c: fixed nonconforming use of
8784         reserved identifier "__data".
8785
8786 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
8787
8788         * src/mcs51/peeph.def: fixed bug 1170013
8789
8790 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
8791
8792         * device/include/mcs51reg.h: fixed bug 842007
8793
8794 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8795
8796         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
8797         last time.
8798
8799 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8800
8801         * src/port.h (struct PORT),
8802         * src/avr/ralloc.c (avr_assignRegisters),
8803         * src/avr/main.c,
8804         * src/ds390/ralloc.c (ds390_assignRegisters),
8805         * src/ds390/main.c,
8806         * src/hc08/ralloc.c (hc08_assignRegisters),
8807         * src/hc08/main.c,
8808         * src/mcs51/ralloc.c (mcs51_assignRegisters),
8809         * src/mcs51/main.c,
8810         * src/pic/ralloc.c (pic14_assignRegisters),
8811         * src/pic/main.c,
8812         * src/pic16/ralloc.c (pic16_assignRegisters),
8813         * src/pic16/main.c,
8814         * src/xa51/ralloc.c (xa51_assignRegisters),
8815         * src/xa51/main.c,
8816         * src/z80/ralloc.c (z80_assignRegisters),
8817         * src/z80/ralloc.h,
8818         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
8819         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
8820         * src/SDCCcse.h,
8821         * src/SDCCdflow.c (computeDataFlow),
8822         * src/SDCCdflow.h,
8823         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
8824         * src/SDCCloop.h,
8825         * src/SDCCcflow.c (*),
8826         * src/SDCCcflow.h,
8827         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
8828         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
8829         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
8830         immedDom() returning wrong block; probably fixes bug #1160833)
8831
8832 2005-03-20 Borut Razem <borut.razem AT siol.net>
8833
8834         * support/scripts/inc2h.pl: WIN32 port
8835
8836 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
8837
8838         * device/lib/makefile.in: added abs.c and labs.c
8839
8840 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
8841
8842         * device/include/stdint.h: added
8843         * device/lib/abs.c: added
8844         * device/lib/labs.c: added
8845         * device/include/stdlib.h: added abs() and labs() prototypes
8846         * device/lib/libsdcc.lib: added abs and labs
8847         * device/include/float.h,
8848         * device/lib/_fsmul.c,
8849         * device/lib/printf_fast.c,
8850         * device/lib/printf_tiny.c: updated comments
8851
8852 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8853
8854         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
8855         bug #1164313
8856
8857 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8858
8859         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
8860         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
8861
8862 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
8863
8864         * device/lib/printf_large.c: removed inline assembly for portability and
8865           readability. Use printf_fast if speed or size are more important.
8866         * src/pic16/gen.c: removed conditions around use of DEBUGpc
8867         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
8868
8869 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
8870
8871         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
8872         prevent compiler warning
8873
8874 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
8875
8876         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
8877         moved to level 0 and declared as static. Also they are explicit
8878         placed in access bank. This was necessery because some times they
8879         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
8880         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
8881         optimizations. Currently only compare to unsigned char is implemented,
8882         * src/pic16/gen.c: added fReturnIdx array,
8883         * (struct resolvedIfx) is moved to gen.h and made public,
8884         * (struct _G): added sregsAlloc and sregsAllocSet fields,
8885         * (aopForSym): added an optimization to directly store in stack of
8886         the operand of a SEND iCode,
8887         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
8888         but as registers instead (AOP_REG) using the fReturnIdx array,
8889         * (pic16_freeAsmop): remove the freed register from the
8890         _G.sregsAlloc field,
8891         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
8892         a compare of 'WREG',
8893         * (pic16_popGetTempRegCond): changed function prototype, now
8894         function takes also a bitVector argument v which holds the current
8895         set of registers that are allocated for stack access by aopForSym,
8896         registers allocated in aopForSym for accessing stack symbols are not
8897         any more part of the functions usedRegs field,
8898         * (genCall): some times aopOp is called for a stack variable to be
8899         send, aopForSym might perform the push, if this is true make sure
8900         that genCall doesn't push the variable twice by testing _G.resDirect,
8901         * (genFunction): changed testing for unspecified interrupt number
8902         from 256 to INTNO_UNSPEC,
8903         * modified selection scheme of frame pointer generation. Previously
8904         if function did use local registers a frame pointer was generated,
8905         now a frame pointer is generated only if function has arguments
8906         (that need PLUSW2 register access), or has stack arguments, or the
8907         compiler is not instructed to omit the frame pointer,
8908         * (genEndFunction): before restoring local registers that were saved
8909         in the function preamble, also restore the registers that *might*
8910         have been allocated for stack access,
8911         * (genRet): removed some old comments,
8912         * (genCmp, the active (RN's) version): added a call to the
8913         pic16_genCmp_special function to perform the compare with a more
8914         robust and optimized way,
8915         * (genInline): a feature has been added in inline code generation,
8916         which allows a wildcard variable substitution when writing inline
8917         assembly. Code is incomplete and experimental therefore undocumented,
8918         * (genCast): changed order of aopOp for result and right to allow
8919         aopForSym to directly load the result if possible,
8920         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
8921         perform an optimized compare on some selected special occasions,
8922         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
8923         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
8924         generate an IVT any more,
8925         * src/pic16/main.c (pic16_optionsTable): added command line option
8926         --optimize-cmp,
8927         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
8928         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
8929         macros,
8930         * src/pic16/NOTES: Raphael Neider added in list of active developers
8931         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
8932         jumptable_end to prevent bug #,
8933         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
8934         inCond and outCond fields,
8935         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
8936         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
8937         turn off register spilling,
8938         * (packRegsForOneUse): synced with other ports' versions although it
8939         is not used currently,
8940         * (pic16_packRegisters): added an optimization while reading
8941         structure bitfields, some registers may be saved (malloc code is
8942         decreased by 80 bytes)
8943
8944 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
8945
8946         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
8947         left is a bitfield, if yes, then don't optimize assignment. Perhaps
8948         this can be optimized more?
8949
8950 2005-03-10 Raphael Neider <rneider AT web.de>
8951
8952         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
8953           genNearPointerGet): (hopefully) fixed access to bitfields via
8954           pointers (p->bitN = x; and x = p->bitN; failed)
8955
8956 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
8957
8958         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
8959
8960 2005-03-09 Raphael Neider <rneider AT web.de>
8961
8962         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
8963
8964 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
8965
8966         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
8967         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
8968           (regTypeNum): set REG_BIT type if necessary
8969         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
8970         * support/regression/tests/critical.c: check bug 1144613
8971
8972 2005-03-02 Raphael Neider <rneider AT web.de>
8973
8974         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
8975
8976 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8977
8978         * src/avr/ralloc.c (serialRegAssign),
8979         * src/ds390/ralloc.c (serialRegAssign),
8980         * src/hc08/ralloc.c (serialRegAssign),
8981         * src/mcs51/ralloc.c (serialRegAssign),
8982         * src/pic/ralloc.c (serialRegAssign),
8983         * src/pic16/ralloc.c (serialRegAssign),
8984         * src/xa51/ralloc.c (serialRegAssign),
8985         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
8986
8987 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
8988
8989         * src/SDCCast.c (decorateType): fixed bug 1124787
8990
8991 2005-02-20 Hubert Sack <sack AT digiplan.de>
8992         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8993
8994         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
8995         patch #1121755
8996
8997 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8998
8999         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
9000         to keep the correct label reference count when adding/removing references
9001         to labels. A peephole file using this is appended to patch #1144962.
9002
9003 2005-02-14 Raphael Neider <rneider AT web.de>
9004
9005         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
9006         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
9007         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
9008           retrievals of result operand's value on assignment
9009
9010 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
9011
9012         * device/include/pic16/string.h: modified prototype for memccpy()
9013         to memccpy(void *, void *, char, size_t)
9014         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
9015         check whether to omit frame pointer or not,
9016         * (genInline): convert all occurences of "\n" to LF in inline
9017         assembler blocks, this helps formatting the inline text,
9018         * (pic16_loadFSR0): modified prototype,
9019         * (genNearPointerGet, genNearPointerSet): reorganization of code,
9020         removed some 8051 legacy code,
9021         * (genPackBits): enabled handling bitfields exceeding one byte in size,
9022         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
9023         before allocating temporary registers in functions,
9024
9025 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
9026
9027         * support/regression/tests/bitvars.c: corrected the "fix"
9028
9029 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
9030
9031         * support/regression/tests/bitvars.c,
9032         * support/regression/tests/bitwise.c,
9033         * support/regression/tests/rotate.c: "fixed" problems on Alpha
9034
9035 2005-02-10 Raphael Neider <rneider AT web.de>
9036
9037         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
9038           different size for Alpha
9039         * src/pic16/gen.c (genCmpEq) : improved compare with 0
9040
9041 2005-02-09 Raphael Neider <rneider AT web.de>
9042
9043         * src/SDCC.lex(doPragma) : save and restore warning options as well
9044           (also added new stack plus clone- and copyAndFreeSDCCERRG())
9045         * have #pragma less_pedantic set the errorlevel to WARNING
9046           (fixes #1117001)
9047         * (cloneOptimize) : fixed wrong malloc's size
9048         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
9049           facilitate correct handling of #pragma (save|restore)
9050
9051 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
9052
9053         * src/mcs51/gen.c: removed non-standard C nameless struct/union
9054
9055 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
9056
9057         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
9058
9059 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
9060
9061         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
9062
9063 2005-02-02 Raphael Neider <rneider AT web.de>
9064
9065         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
9066         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
9067         * (pic16_storeForReturn): fixed to allow returning function pointers
9068         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
9069         * device/include/pic16/{stddef.h,stdbool.h}: added
9070
9071 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
9072
9073         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
9074
9075 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
9076
9077         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
9078         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
9079          appeared to be required
9080
9081 2005-01-31 Borut Razem <borut.razem AT siol.net>
9082
9083         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
9084           include/mcs51 and include/z80 directories to the package
9085
9086 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9087
9088         * src/hc08/gen.c (genFunction): fixed bug #1112752
9089
9090 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9091
9092         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
9093
9094 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9095
9096         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
9097
9098 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
9099
9100         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
9101
9102 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
9103
9104         * device/include/c8051fxxx.h: removed these 6 files
9105         * device/include/mcs51/c8051fxxx.h: added these 11 new files
9106
9107 2005-01-26 Raphael Neider <rneider AT web.de>
9108
9109         * src/pic16/gen.c (genAssign): fixed assignment from longs
9110           in codespace (were cut to three bytes)
9111         * (genDummyRead): implemented (except for CODESPACE...),
9112           fixed bug #1108575
9113         * src/pic16/glue.c (emitStatistics): beautified
9114         * device/lib/pic16/libm/Makefile: added include path
9115
9116 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9117
9118         * src/z80/gen.c (aopPut): fixed bug #1103902
9119
9120 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9121
9122         * device/lib/expf.c: fixed bug #1095792
9123
9124 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
9125
9126         * device/lib/pic16/libm: added Math library sources
9127
9128 2005-01-24 Raphael Neider <rneider AT web.de>
9129
9130         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
9131           to enable upcast to pCodeOpReg2 (there is no type tag to
9132           differenciate the two and pic16_popGet2p cast into PCOR2)
9133         * src/pic16/main.c (_process_pragma): fixed another malloc bug
9134           (sizeof(sectNames) changed to sizeof(sectName))
9135           Both patches fix segfaults under MinGW.
9136
9137 2005-01-23 Raphael Neider <rneider AT web.de>
9138
9139         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
9140           Safe_[mc]?alloc()'ed variables
9141         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
9142           of (byte sized) temporaries (assign them to WREG for now)
9143         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
9144           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
9145           this might fix SIGSEGVs on MinGW...
9146         * src/SDCCopt.c (killDeadCode): restored original behaviour
9147           (volatile operands might get thrown away though)
9148
9149 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
9150
9151         * src/pic16/gen.c: fixed bug #1106975,
9152         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
9153         pointer update, INTCON is saved, global interrupts are disabled and
9154         restored after updateing TOS.
9155         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
9156         * added function attribute 'shadowregs' to take advantage of shadow
9157         registers,
9158         * added function attribute 'wparam' as an alternative to the wparam
9159         pragma,
9160         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
9161         user declares a non-ISR function as 'shadowregs',
9162         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
9163
9164 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
9165
9166         * .version: bumped version number to 2.4.8
9167         * device/lib/pic16/pics.all: list of PIC18F devices supported by
9168         pic16 port,
9169         * device/lib/pic16/libio/i2c/: I2C module support library,
9170         * device/include/pic16/i2c.h: I2C support library header,
9171         * device/lib/pic16/libc/stdio/: standard IO support sources,
9172         * (printf_small.c): printf_small() source, supports float print,
9173         * (printf_tiny.c): printf_tiny() source, does not support floats,
9174         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
9175         enable global optimizations for entire library source, other
9176         Makefiles in the source tree are also modified to reflect this,
9177         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
9178         function,
9179         * doc/sdccman.lyx: updated to reflect new changes,
9180         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
9181         sym->onStack if-case,
9182         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
9183         sbit, idata, _idata, xdata, _xdata,
9184         * added pragma library, to link an external library, (see doc),
9185         * removed command line options, --pomit-config-words, --pomit-ivt,
9186         --pleave-reset-vector,
9187         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
9188         when calling assembler to reflect memory model used, also define
9189         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
9190         reflect stack model used,
9191         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
9192         on stack return NULL,
9193
9194 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
9195
9196         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
9197           of the operands is volatile. Fixes #1020220
9198
9199 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
9200
9201         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
9202         * (OptimizeRegUsage): make sure that there is really no other flow where
9203           the first pCode is used
9204
9205 2005-01-22 Raphael Neider <rneider AT web.de>
9206
9207         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
9208           to fix #1106967 (pCode->seq are not set up correctly)
9209
9210 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9211
9212         * src/SDCCglue.c (glue): make sure code area is declared before the
9213         static initialization area.
9214
9215 2005-01-21 Raphael Neider <rneider AT web.de>
9216
9217         * device/lib/Makefile.in: fixed test for pic16 install dir
9218         * device/lib/pic16/*/Makefile*: modified compile flags to enable
9219           optimizations
9220         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
9221           added --optimize-goto compiler switch and pragma wparam documentation
9222         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
9223         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
9224           and PRODH closing bug #1071770 (peephole optimizer)
9225
9226 2005-01-19 Raphael Neider <rneider AT web.de>
9227
9228         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
9229           cmdLine buffers (used when calling sdcpp...) are large enough
9230           (MAX_PATH=256 truncates arguments leading to system halts when
9231           used in MinGW...)
9232         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
9233         * (genUminus): rewritten to for efficiency
9234         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
9235           used uninitialized in some cases)
9236         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
9237           copy the third byte from the int -- now assumes 0x80 (data memory)
9238         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
9239           operands (genAddLit expects the iCode's operands to swapped as
9240           well), fixed leftover bytes (crashed for short left operands)
9241         * (pic16_genMinusDec): performance improvements, removed false
9242           PIC14 emitSKPNCs
9243         * (pic16_genMinus): fixed to cope with differently sized operands
9244         * src/pic16/glue.c (pic16_glue): added new banksel optimization
9245           for --obanksel > 1
9246         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
9247         * src/pic16/graph.[ch]: implementation of directed graphs, used by
9248           new banksel optimization
9249         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
9250           analysis for temporary registers (segfaults...)
9251         * src/pic16/peeph.def: added rule
9252
9253 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
9254
9255         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
9256         which converts a float number to its ASCII representation
9257         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
9258         functions to convert the fractional and integer part of a float to ASCII,
9259         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
9260         realloc.c): added _MALLOC_SPEC to explicit place variables in data
9261         ram
9262         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
9263         _STATMEM macros,
9264         * device/include/pic16/adc.h: added GPL info,
9265         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
9266         a pCodeOp as tested operand,
9267         * (genNearPointerGet): optimized bit testing, does not use
9268         intermediate register for bit value, test directly instead with
9269         BTFSS, BTFSC, works only for single bits,
9270         * (genpic16Code): dump the name of the iCode in the asm,
9271         * src/pic16/ralloc.c (decodeOp): removed static declaration and
9272         renamed to pic16_decodeOp,
9273         * (serialRegAssign): do not allocate a temporary register for iCode
9274         sequences that test a single bit for 1/0
9275
9276 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
9277
9278         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
9279         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
9280         access stack and frame pointers. They are initially assigned to
9281         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
9282         accessing SFRs. Updated all occurences of modification of stack or
9283         frame pointer in gen.c and pcode.c,
9284         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
9285         assigning of a literal value to pointers,
9286         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
9287         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
9288         selected
9289
9290 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
9291
9292         * doc/sdccman.lyx: update documentation about stack pragma, added
9293         some info for stack memory models
9294
9295 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9296
9297         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
9298
9299 2005-01-08 Raphael Neider <rneider AT web.de>
9300
9301         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
9302           udata sections to fix bug #1097823
9303
9304 2005-01-05 Raphael Neider <rneider AT web.de>
9305
9306         * src/pic16/gen.c (genGenericShift): added handling of differently
9307           sized left operand and result
9308
9309 2005-01-04 Raphael Neider <rneider AT web.de>
9310
9311         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
9312         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
9313           to hold the condition bit)
9314         * added new version of genCmp (old code available via #define)
9315         * added new version of genShiftLeft/genShiftRight in a generic
9316           way, now supports shifting by negative values
9317         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
9318           shiftCount (expected by genGenericShift)
9319         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
9320         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
9321           dump
9322         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
9323           is an invalid literal too...)
9324
9325 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
9326
9327         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
9328         from Raphael Neider,
9329         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
9330         for 8-bit literals. This fixes some literal operands which are sign
9331         extended to 16-bits ints when instruction needs only 8-bits.
9332
9333 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
9334
9335         * device/lib/logf.c: added mcs51 assembly version
9336         * device/lib/expf.c: added mcs51 assembly version
9337         * device/lib/_logexpf.c: new shared asm code for expf and logf
9338         * device/include/math.h: add defines for assembly math library
9339         * device/lib/Makefile.in: build new _logexpf.c
9340         * device/lib/libfloat.lib: use new _logexpf.c
9341
9342 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
9343
9344         * src/pic/device.c
9345         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
9346           device types which have less than 0x7f registers.
9347
9348 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
9349
9350         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
9351
9352 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
9353
9354         * device/lib/printf_fast.c: only build on supported arch.
9355         * device/lib/printf_tiny.c: only build on supported arch.
9356         * device/lib/printf_fast_f.c: only build if asm float lib
9357         * device/lib/_fsget1arg.c: only build if asm float lib
9358         * device/lib/_fsget2args.c: only build if asm float lib
9359         * device/lib/_fsnormalize.c: only build if asm float lib
9360         * device/lib/_fsreturnval.c: only build if asm float lib
9361         * device/lib/_fsrshift.c: only build if asm float lib
9362         * device/lib/_fsswapargs.c: only build if asm float lib
9363         * device/include/stdio.h: don't provide print_fast,
9364           print_fast_f, print_tiny prototypes if --xstack used
9365
9366 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
9367
9368         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
9369         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
9370           to the SOURCES
9371
9372 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
9373
9374         * device/lib/printf_fast_f.c: same as printf_fast, but
9375           with floating point enabled
9376         * device/lib/printf_fast.c: minor tweaks
9377         * device/include/stdio.h: add printf_fast_f
9378
9379 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
9380
9381         * src/SDCCmain.c: make --float-reent default for mcs51
9382         * device/lib/_fsadd.c: added mcs51 assembly version
9383         * device/lib/_fssub.c: added mcs51 assembly version
9384         * device/lib/_fsmul.c: added mcs51 assembly version
9385         * device/lib/_fsdiv.c: added mcs51 assembly version
9386         * device/lib/_fseq.c: added mcs51 assembly version
9387         * device/lib/_fsneq.c: added mcs51 assembly version
9388         * device/lib/_fsgt.c: added mcs51 assembly version
9389         * device/lib/_fslt.c: added mcs51 assembly version
9390         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
9391         * device/lib/Makefile.in: add _fscmp to build
9392         * device/lib/libfloat.lib: add _fscmp to build
9393
9394 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
9395
9396         * device/lib/_fs2slong.c: added mcs51 assembly version
9397         * device/lib/_fs2sint.c: added mcs51 assembly version
9398         * device/lib/_fs2schar.c: added mcs51 assembly version
9399         * device/lib/_fs2ulong.c: added mcs51 assembly version
9400         * device/lib/_fs2uint.c: added mcs51 assembly version
9401         * device/lib/_fs2uchar.c: added mcs51 assembly version
9402         * device/lib/_slong2fs.c: added mcs51 assembly version
9403         * device/lib/_sint2fs.c: added mcs51 assembly version
9404         * device/lib/_schar2fs.c: added mcs51 assembly version
9405         * device/lib/_ulong2fs.c: added mcs51 assembly version
9406         * device/lib/_uint2fs.c: added mcs51 assembly version
9407         * device/lib/_uchar2fs.c: added mcs51 assembly version
9408         * device/include/float.h: added #define to select asm vs c
9409
9410 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
9411
9412         * device/lib/printf_fast.c: improvements to float output
9413         * device/include/float.h: add defines for assembly float library
9414         * device/lib/_fsget1arg.c: receive 1 float arg
9415         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
9416         * device/lib/_fsnormalize.c: normalize a float
9417         * device/lib/_fsreturnval.c: return float, various helper routines
9418         * device/lib/_fsrshift.c: right shift a float's mantissa
9419         * device/lib/_fsswapargs.c: swap 2 floats
9420         * device/lib/Makefile.in: build these 6 new files for mcs51
9421         * device/lib/libfloat.lib: add these 6 files to the library
9422
9423 2004-12-26 Borut Razem <borut.razem AT siol.net>
9424
9425         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
9426           built by gcc 3.4.2
9427
9428 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
9429
9430         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
9431           and fully reentrant and register bank neutral.
9432         * device/lib/printf_fast.c: added float (not enabled by default),
9433           added compact/slower integer (also not enabled by default),
9434           improved size/speed of fast integer code, other minor changes
9435         * device/include/stdio.h, device/lib/Makefile.in,
9436           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
9437
9438 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
9439
9440         * src/pic16/pcode.c: declaring variables other than at the start of a
9441           block is not supported in C by VC6.
9442
9443 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
9444
9445         * applied a previous patch from Raphael Neider that wasn't included
9446         in the previous commits, which fixes infinite loops within jumptable
9447         improvements,
9448         * made some fixes that previous patches introduced
9449
9450 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
9451
9452         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
9453         that fixes an issue with AOP_PCODE asmop's offset,
9454         * (pic16_popCopyReg): update instance field too,
9455         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
9456         function of pic port,
9457         * (genCmp, genAnd, genAssign),
9458         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
9459
9460 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
9461
9462         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
9463         variables initial values to idata section,
9464         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
9465         variables in some functions. This utilizes parmBytes field of iCode
9466         structure to hold the offset of the variable in stack. (might be
9467         able to use the stack field too?)
9468         * applied patch from Raphael Neider # ### , # ###
9469         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
9470         variable initial values in idata section,
9471         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
9472         for static variables with initial value
9473         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
9474         applied fix in while loop from Raphael Neider.
9475
9476 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
9477
9478         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
9479         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
9480         * src/ds390/ralloc.c (serialRegAssign): spill bits
9481         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
9482         * support/Util/SDCCerr.c,
9483         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
9484         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
9485         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
9486
9487 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
9488
9489         * device/include/sdcc-lib.h: inserted LGPL, added includes
9490           asm/ds390/features.h and asm/mcs51/features.h
9491         * device/include/asm/default/features.h,
9492         * device/include/asm/gbz80/features.h,
9493         * device/include/asm/z80/features.h: added empty _AUTOMEM
9494           and _STATMEM
9495         * device/include/asm/ds390/features.h,
9496         * device/include/asm/mcs51/features.h: added files with defines for
9497           _AUTOMEM and _STATMEM indicating automatic and static storage class
9498         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
9499         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
9500         * src/SDCCicode.c (geniCodeCast),
9501         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
9502         * src/SDCCloop.c (loopInduction): removed unused variable lr
9503         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
9504           to convertToFcall to include char modulo (RFE 1065037), added check
9505           if left operand is unsigned and use abs of literal value
9506         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
9507           as it doesn't work after conversion from peephole.def to peephole.rul
9508         * src/mcs51/gen.c (toBoolean): added check for size,
9509           (genModOneByte): optimized code for signed char modulo a literal
9510           power of 2 (thanks to Hubert Sack),
9511           (genRRC): removed unnecessary "clr c",
9512           (genRLC): replaced "add a,acc" with cheaper "rlc a"
9513         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
9514           jump optimization,
9515           swapped rules 256.c and 256.d,
9516           extended 256.d by using new multiple checks (thanks Erik),
9517           added rules 256.e and 256.f,
9518           updated rule 261.a and 261.b to new generated code
9519         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
9520
9521 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9522
9523         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
9524           induction related bugs, including first part of bug #1074377
9525
9526 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
9527
9528         * applied patch from bug-report #1076292,
9529         * applied patches for genAnd and Goto-optimizations for Raphael
9530         Neider,
9531         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
9532         dump a less iCode information,
9533         * src/pic16/device.h (pic16_options_t): added field debgen,
9534         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
9535         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
9536         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
9537         puclic,
9538         * (various functions): added macros FENTRY and FENTRY2 to functions,
9539         to emit function prologue,
9540         * (various functions): fixed indentation,
9541         * (genNearPointerGet): fixed loading of FSR0,
9542         * (genPackBits): applied patch from Raphael Neider to fix updating
9543         of FSR0 and touching only the modified bits,
9544         * src/pic16/genarith.c (various functions): added macros FENTRY to
9545         emit function prologue in comments,
9546         * src/pic16/pcode.h: added functions debugf2, debugf3,
9547         * src/pic16/ralloc.c: partial fix for packForPush caused
9548         segmentation fault,
9549
9550 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9551
9552         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
9553           <stsp AT users.sourceforge.net> with reversed byte order
9554         * support/regression/tests/rotate.c: added (ds390 skips some tests)
9555
9556 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9557
9558         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
9559           bug #1074377
9560         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
9561         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
9562
9563 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
9564
9565         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
9566
9567 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9568
9569         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
9570           conditions,
9571           (setFromConditionArgs): friendly operand parser for peephole rules,
9572           (operandBaseName, operandsNotRelated): new peephole condition
9573           "operandsNotRelated" -- similar to "operandsNotSame", but takes
9574           architecture specific register naming into account, handles n-way
9575           comparisons, and supports quoted literals
9576         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
9577
9578 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9579
9580         * src/mcs51/peeph.def: fixed bug #1076940
9581
9582 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
9583
9584         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
9585
9586 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9587
9588         Adding support for replacing ljmps with sjmps in jumptables
9589         generated for switch statements. For now you need to set the
9590         environment variable SDCC_SJMP_JUMPTABLE to enable this.
9591         Now 4 algorithms for mcs51 jumptable generation are used:
9592         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
9593         addresses loaded pc-relative for up to 112 cases and stack-pushing
9594         target addresses loaded with offset from dptr for up to 256 cases.
9595
9596         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
9597         * src/mcs51/main.c: adapted constants for switch table generation
9598         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
9599
9600 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
9601
9602         * device/lib/printf_large.c (_print_format): fixed bug 1073386
9603         * support/regression/tests/bug1057979.c: added test for bug 1073386
9604
9605 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
9606
9607         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
9608         compilers
9609
9610 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
9611
9612         * src/pic16/device.h,
9613         * src/pic16/genarith.c,
9614         * src/pic16/glue.c,
9615         * src/pic16/main.c,
9616         * src/pic16/pcode.c: applied patches #1068154 and #1070213
9617
9618 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
9619
9620         Large cummulative patch for pic16 port.
9621         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
9622         to call when a stack overflow occurs,
9623         * (malloc.h): added CVS Id tag,
9624         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
9625         variable,
9626         * added libc directory. The current version of LibC contains string
9627         functions, ctype functions and macros and some functions of the
9628         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
9629         be extensively tested in the future. Standard disclaimer here.
9630         Library is not automatically build yet. But one can build it by
9631         invoking 'make' inside the libc directory.
9632         * added ADC library under libio. Preliminary version yet.
9633
9634         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
9635         * src/pic16/gen.c (aopForRemat): asmop size is filled by
9636         aopForRemat() now and not by pic16_aopOp(),
9637         * (pic16_popGetTempReg): removed warning messgae when allocating
9638         temporary registers, its a buggy feature and will be removed,
9639         * (pic16_popGet): set register instance field in AOP_CRY,
9640         * (pic16_outBitC): fixed for results in size greater than 1,
9641         * (genUminusFloat): fixed for pic16, ported code from mcs51,
9642         * (pic16_storeForReturn): optimized return of 0,
9643         * (genCmp): experimental code for new genCmp which uses PIC18's
9644         special compare&skip instructions. Initial tests fail some times
9645         with variables grater than 1 byte in size, so new code is disabled,
9646         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
9647         a single bit,
9648         * (genCast): began a fix to optimize the casting of a bit to another
9649         bit, now assigning a bitfield to another bitfield will fail, sorry,
9650         * src/pic16/main.c: disabled the use of lr-support feature,
9651         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
9652         * added some function prototypes, added function _debugf prototype,
9653         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
9654         bits with offset (case PO_GPR_BIT),
9655         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
9656         command line,
9657         * (isBankInstruction): modified to return 0 for no banking instruction,
9658         and 1 for banking instruction,
9659         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
9660         caused stop processing pCodes after a inline assembly block,
9661         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
9662         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
9663         registers when it shouldn't,
9664         * src/pic16/ralloc.c (allocReg): add preliminary support for
9665         supporting a limited set of temporary registers,
9666
9667 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9668
9669         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
9670           genDataPointerSet): ensure assignments always copy in MSB to LSB
9671           order,
9672           (loadRegFromAop): recognize CLRH optimization,
9673           (genFunction): optimize RECEIVE iCodes in reentrant functions
9674
9675 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9676
9677         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
9678           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
9679           selected.
9680         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
9681         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
9682           contiguous with data
9683
9684 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9685
9686         * device/lib/_gptrget.c (_gptrget),
9687         * device/lib/_gptrgetc.c (_gptrgetc),
9688         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
9689           instead of sjmp to ret
9690         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
9691           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
9692
9693 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
9694
9695         * .version: bumped version to 2.4.7
9696         * device/lib/_gptrget.c (_gptrget): is now _naked
9697         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
9698         * device/lib/_gptrput.c (_gptrput): is now _naked
9699         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
9700           (createFunction): fixed xstack
9701         * src/SDCCglue.c (emitMaps): set allocation required for bit area
9702         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
9703           or bit either,
9704           (geniCodeCritical): store original interrupt state in an iTemp bit
9705           var unless stack-auto
9706         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
9707         * src/SDCCmain.c (setIncludePath): added include/target to search path
9708         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
9709         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
9710           prototype,
9711           (processFuncArgs): put bit vars in bit area
9712         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
9713           unsaveRBank): fixed xstack,
9714           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
9715           (genFunction, genEndFunction): fixed xstack,
9716           (genAssign): optimization don't walk backwards through mem
9717         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
9718         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
9719         * support/regression/Makefile: also make library (for stack-auto) when
9720           making "all" and added "test-mcs51-xstack-auto"
9721         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
9722         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
9723         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
9724         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
9725         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
9726           make-library by MAKE_LIBRARY
9727         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
9728           regression tests for xstack
9729         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
9730         * support/regression/tests/critical.c: test for critical on mcs51
9731
9732 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9733
9734         * support/regression/ports/ucz80/spec.mk: use include and lib files from
9735           built version of sdcc instead of installed version
9736
9737 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
9738
9739         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
9740         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
9741           vprintf.c now
9742         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
9743         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
9744           WARNING: remove device/lib/build/z80/printf.o by hand when
9745           updating from previous build!
9746         * device/lib/z80/printf.c: updated comment
9747         * support/regression/tests/bug1057979.c: test all ports now
9748         * support/regression/tests/bug1065458.c: file added
9749
9750 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9751
9752         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
9753           *_start and *_end symbols for static functions
9754
9755 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
9756
9757         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
9758           and search crt0.o in all library paths,
9759           (setIncludePath): proper handling of --nostdinc,
9760           (setLibPath): proper handling of --nostdlib
9761         * support/regression/Makefile,
9762         * support/regression/ports/ds390/spec.mk,
9763         * support/regression/ports/gbz80/spec.mk,
9764         * support/regression/ports/hc08/spec.mk,
9765         * support/regression/ports/mcs51/spec.mk,
9766         * support/regression/ports/mcs51-large/spec.mk,
9767         * support/regression/ports/mcs51-stack-auto/spec.mk,
9768         * support/regression/ports/z80/spec.mk: use include and lib files from
9769           built version of sdcc instead of installed version
9770         * doc/sdccman.lyx: fixed typo in --nostdinc
9771
9772 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
9773
9774         * src/pic/pcode.c,
9775         * src/pic/device.c,
9776         * src/pic/ralloc.c,
9777         * src/pic/gen.c : added support to generate code for struct bit fields.
9778
9779 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
9780
9781         * as/xa51/xa_version.h,
9782         * device/include/errno.h,
9783         * device/include/regc515c.h,
9784         * device/lib/_itoa.c,
9785         * device/lib/_ltoa.c,
9786         * device/lib/ser_ir_cts_rts.c,
9787         * sim/ucsim/xa.src/glob.cc,
9788         * sim/ucsim/xa.src/inst_gen.cc,
9789         * sim/ucsim/xa.src/xa_bit.cc,
9790         * sim/ucsim/xa.src/xa_sfr.cc,
9791         * sim/ucsim/z80.src/inst_dd.cc,
9792         * sim/ucsim/z80.src/inst_fdcb.cc,
9793         * support/scripts/keil2sdcc.pl,
9794         * src/pic16/pic16.dsp,
9795         * src/pic16/pic16a.dsp: corrected cvs line endings
9796         * device/lib/printf_large.c: fixed bug 1057979
9797         * src/pic16/gen.c: fixed non-C standard code
9798         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
9799         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
9800         * support/regression/ports/mcs51/support.c: reload T1 asap
9801         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
9802           pdata use and clear idata startup behaviour
9803         * support/regression/tests/bug1057979.c: added
9804
9805 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
9806
9807         * device/examples/ds390/ow390/ad26.h,
9808         * device/examples/ds390/ow390/cnt1d.h,
9809         * device/examples/ds390/ow390/crcutil.c,
9810         * device/examples/ds390/ow390/ownet.h,
9811         * device/examples/ds390/ow390/owsesu.c,
9812         * device/examples/ds390/ow390/swt12.h,
9813         * device/examples/ds390/ow390/swtoper.c,
9814         * device/examples/ds390/ow390/temp10.h,
9815         * device/examples/ds390/ow390/thermodl.c,
9816         * device/examples/ds390/tinitalk/tinitalk.dsp,
9817         * device/examples/ds390/tinitalk/tinitalk.dsw,
9818         * device/examples/mcs51/clock/hw.h,
9819         * device/examples/mcs51/simple2/go.bat,
9820         * device/examples/serialcomm/windows/serial.h,
9821         * device/examples/xa51/dummy.c,
9822         * device/examples/xa51/hello.c,
9823         * device/include/80c51xa.h,
9824         * device/include/at89x051.h: corrected cvs line endings
9825
9826 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
9827
9828         * src/pic16/main.c (options): added command line --gstack, to trace
9829         stack over/under flows,
9830         * added pragma 'wparam' to allow passing first byte of function
9831         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
9832         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
9833         call to __gstack_test function and sets up the symbol as extern,
9834         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
9835         * popaop): added call to pic16_testStackOverflow,
9836         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
9837         wparamList list,
9838         * (genCall, genPcall): now all parameters are passed via stack
9839         except in functions that are pass to wparam pragma in which WREG is
9840         used too,
9841         * (genPcall): REENTRANT flag is checked to see if variable prototype
9842         contains reentrant keyword, don't call a non-reentrant function, via
9843         a reentrant function pointer or vice versa, functions are never
9844         passed via WREG,
9845         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
9846         D.Winkler,
9847         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
9848         SIGSEGV when accessing a NULL register stucture,
9849         * (pic16_printGPointerType): modified to handle UPPER modifier for
9850         function initializers, changed prototype of function to simpler one,
9851         * (pic16_printIvalFuncPtr): check to see if function is already
9852         added in externs list,
9853         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
9854         optimized a move from W to SFR with a move to the same register
9855         later after a CALL,
9856         * device/lib/pic16/debug: NEW directory, contains debug features
9857         which are enabled when linking with libdebug.lib, currently command
9858         line option --gstack enables stack pointer tracing for over/under
9859         flow, corresponding sources are in debug/gstack
9860
9861 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
9862
9863         * doc/sdccman.lyx: updated SDCC version,
9864         * (PIC16 port): update list of command line options,
9865         * src/pic16/device.h (structure pic16_options_t): added field gstack
9866         to enable stack overflow tracing on push/pops,
9867         * src/pic16/device.c (statistics structure): added statistics
9868         structure,
9869         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
9870         pic16_dump_int_registers): increase statistics counters for each
9871         * variable which is encountered
9872         * (pic16_dump_usection): emit each .udata variable to its own udata
9873         section,
9874         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
9875         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
9876         parameters via stack, otherwise use old scheme,
9877         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
9878         assembler output file,
9879         * src/pic16/main.c: added command line options --gstack to enable
9880         push/pop tracing for stack overflow,
9881         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
9882         instructions): added size of each instruction,
9883         * (pic16_countInstruction): estimate size of instructions in
9884         the_pFile list, inline assembly blocks are not counted,
9885         * (pic16_FixRegisterBanking): trace previous register usage, when
9886         banksel optimizations is greater than 0, don't emit a redudant
9887         banksel directive,
9888
9889 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
9890
9891         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
9892         * src/pic16/ralloc.c : applied same fix for pic16.
9893         * src/pic/gen.c : tidied it up a little.
9894
9895 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9896
9897         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
9898         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
9899
9900 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9901
9902         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
9903
9904 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9905
9906         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
9907         non-reentrant function __modsint in the interrupt function (thus
9908         corrupting math operations during serial I/O)
9909         * device/lib/ser_ir.c: as above, changed buffersize
9910         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
9911         256.c,d for zeroing
9912         * doc/Makefile: added option -t for rsync
9913
9914 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9915
9916         * src/SDCCast.h (struct ast),
9917         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
9918
9919 2004-10-20 Borut Razem <borut.razem AT siol.net>
9920
9921         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
9922         package
9923
9924 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
9925
9926         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
9927         makefile targets,
9928         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
9929         support functions to replace long sequences of MOVFF's from access
9930         bank registers to stack and vice versa,
9931         * src/pic16/device.h: added new field opt_flags, where optimization
9932         flags can be set to enable certain features,
9933         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
9934         * pBlock, (genFunction, genEndFunction): surroung loop for
9935         saving/loading used registers in stack with PC_INFO pCodes,
9936         INF_LREGS. Code in between can then be optimized by pCode optimizer
9937         to support function calls,
9938         * (genDataPointerSet): fixed bug which loaded float fields in
9939         structures with corrupt data,
9940         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
9941         in a standard way debug info on stderr. Feature used for developing
9942         and debugging only,
9943         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
9944         obsolete chunks of code,
9945         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
9946         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
9947         * pic16/src/pcode.c (pic16_newpCodeInfo,
9948         * (pic16_newpCodeOpLocalRegs),
9949         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
9950         feature,
9951         * (pic16_pCodeConstString): printing of the initial value of a
9952         symbol as a comment is inhibited since parsing was already done by
9953         copyStr and output is corrupt,
9954         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
9955
9956 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9957
9958         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
9959
9960 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
9961
9962         * as/mcs51/lkarea.c: removed old K&R style,
9963           (lnksect): changed check on boundary error,
9964           (lnksect2): changed check on boundary error,
9965           (lnksect2): extend XSTK to end of page if size = 1
9966         * as/mcs51/lkmain.c: removed old K&R style,
9967           (Areas51): create l_IRAM symbol
9968         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
9969         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
9970           model-mcs51-stack-auto, added model-mcs51-xstack-auto
9971         * device/lib/_mullong.c: added version to be compiled with xstack
9972         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
9973         * device/lib/mcs51/crtxclear.asm: clear pdata as well
9974         * device/lib/mcs51/crtxstack.asm: fixed comment
9975         * src/SDCCglue.c: maxInterrupts defaults to 0,
9976           (emitMaps): added pdata,
9977           (createInterruptVect): (re)moved default,
9978           (glue): added pdata,
9979           (glue): moved __start__xstack to XSTK with default size 1
9980         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
9981           and options.float_rent when options.stackAuto is set,
9982           (linkEdit): only write XDATA_NAME if provided on command line
9983         * src/SDCCmem.h,
9984         * src/SDCCmem.c: added pdata
9985         * src/port.h: added pdata_name to PORT
9986         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
9987           (saveRegisters, unsaveRegisters): removed usage of B,
9988           (genMinus): fixed accumulator clash,
9989           (genJumpTab): added comment, this needs another look
9990         * src/mcs51/gen.c: added check for "B in use" paranoia,
9991           added pushB() and popB()
9992         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
9993           chance
9994         * src/avr/main.c,
9995         * src/ds390/main.c,
9996         * src/hc08/main.c,
9997         * src/mcs51/main.c,
9998         * src/pic/main.c,
9999         * src/pic16/main.c,
10000         * src/xa51/main.c,
10001         * src/z80/main.c: (reset_regparms) made void parameter explicit and
10002           added PSEG (PAG,XDATA) or NULL to port specifier
10003         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
10004         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
10005           (_mcs51_genInitStartup): removed __start__xstack equ,
10006           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
10007         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
10008         * src/z80/gen.c (_rleAppend): fixed warnings
10009         * support/regression/tests/zeropad.c: added pdata test
10010         * .version: bumped to 2.4.6
10011
10012 2004-10-17 Borut Razem <borut.razem AT siol.net>
10013
10014         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
10015         as a part of nightly build
10016
10017 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
10018
10019         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
10020         WREG holds the first byte function parameters,
10021         * (aopForSym): take special case for symbols which are in FARSPACE
10022         but in CODESPACE too,
10023         * (assignResultValue): modified to take into account _G.useWreg,
10024         * (genCall): don't use wreg for parameter passing when function is
10025         declared as reentrant, too, added optimization INCF to stack
10026         pointer when stack parameter count is 1,
10027         * (genFunction, genEndFunction): refurnished and fixed to not using
10028         wreg for passing parameters when function has varargs or is
10029         reentrant, fixed bug with symbol name compare for generating
10030         functions in absolute address,
10031         * (pic16_storeForReturn): refurnished,
10032         * (genCmp): began writing a new version of the function, not ready
10033         yet, therefore it is disabled,
10034         * (genAssign): do not read code memory when assigning a function to
10035         a pointer function,
10036         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
10037         array of characters, not pointer,
10038         * (pic16initialComments): in debug mode emit an .ident directive for
10039         the assembler,
10040         * (_process_pragma): emit a new warning type (internal to pic16)
10041         when setting stack to default length, emit a similar warning when
10042         placing a function at absolute address and address is not word aligned
10043         * (_pic16_parseOptions): added 'return TRUE' statement,
10044         * (_pic16_linkEdit): if compiling a source, then add the source's
10045         file object, first in the list of objects to link,
10046
10047 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
10048
10049         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
10050         * src/pic/main.c : removed VC warning.
10051         * src/pic/gen.c : changed comment.
10052
10053 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
10054
10055         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
10056         reference to a deprecated symbol _GPTRREG was causing failure to
10057         link. Thanks G. M. Gallant for the info.
10058
10059 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
10060
10061         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
10062         comments for Bugs item #954788.
10063
10064 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
10065
10066         * src/pic16/device.c (pic16_dump_gsection,
10067         * pic16_groupRegistersInSection): handle symbols declared to be in
10068         access bank differently,
10069         * src/pic16/gen.c (struct _G): added field resDirect,
10070         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
10071         send values read from stack directly to result and don't allocate
10072         temporary values,
10073         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
10074         same registers,
10075         * (pic16_sameRegsOfs): NEW,
10076         * (freeAsmop): if _G.resDirect is set then do not mark registers as
10077         free because they were not allocated from temporary pool,
10078         * pic16_popRegFromString): workaround to fix a problem with
10079         allocating variables twice or never,
10080         * (genGenPointerGet): using PRODL instead of FSR0H,
10081         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
10082         instead of FSR0H,
10083         * (genAssign): take advantage of the _G.resDirect flag,
10084         * (genCast): around line 11844, use mov2f instead of directly
10085         MOVFF'ing between operands to account for literal values,
10086         * src/pic16/genutils.c: some new debug functions for gpsim have been
10087         added,
10088         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
10089         float with integer part only,
10090         * src/pic16/main.c (_process_pragma): handle pragma udata access to
10091         place variables in access bank
10092         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
10093         updated sources to reflect recent changes in gen.c
10094
10095 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
10096
10097         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
10098         sources that searched for headers in installation path, now the
10099         device/include/pic16 is used,
10100         * src/pic16/glue.c (pic16glue),
10101         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
10102         .line directives if not in debug mode, this suppresses assembler's
10103         warnings for ignored directives
10104
10105 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
10106
10107         * src/port.h: made reset_regparms prototype void parameter explicit.
10108         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
10109         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
10110         * doc/sdccman.lyx: documented warning disabling and how to use
10111           printf_large to make it print floats.
10112         * device/include/stdbool.h: NEW
10113         * device/lib/_atof.c,
10114         * device/lib/_divuint.c,
10115         * device/lib/_divulong.c,
10116         * device/lib/expf.c,
10117         * device/lib/printf_large.c,
10118         * device/lib/sincosf.c,
10119         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
10120         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
10121           a completely reentrant lib.
10122
10123 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
10124
10125         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
10126         * device/include/pic16/stdio.h: fixed bug with colon
10127
10128 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
10129
10130         * device/include/pic16/stdio.h,
10131         * device/include/pic16/stdlib.h,
10132         * device/include/pic16/math.h: NEW
10133         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
10134         declared as _naked to reduce overhead
10135         * device/lib/Makefile.in (target port-specific-objects-pic16):
10136         changed * to *.* so to ignore the CVS directory,
10137         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
10138         stacked variables back in stack,
10139         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
10140         corruption
10141
10142 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
10143
10144         * .version: bumped version number to 2.4.5
10145         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
10146         * support/Util/SDCCerr.c (messages structure): added entry for
10147         W_POSSBUG2
10148
10149         Large cumulative patch for pic16 port and libraries.
10150         * device/include/pic16/sdcc-lib.h,
10151         * device/include/pic16/stdarg.h,
10152         * device/include/asm/pic16/features.h,
10153         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
10154         * device/include/pic16/float.h: changes reentrant keyword with
10155         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
10156         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
10157         updated target build-libraries to include objects from gptr,
10158         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
10159         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
10160         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
10161         all function headings,
10162         * src/SDCCmain.c: added global parameter userIncDirsSet,
10163         * (parseCmdLine): when option -I is encountered add directory to
10164         userIncDirsSet too,
10165         * src/version.awk: added space between control and long,
10166         * src/pic16/NOTES: added some notes for the port,
10167         * src/pic16/gen.c: added prototype for mov2fp function,
10168         * (fReturnpic16[]): properly named return value registers,
10169         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
10170         * (aopForSym): added code to handle symbols with onStack flag set,
10171         symbols onStack are allocated PTRSIZE bytes,
10172         * (aopFreeAsmop): handles special case where asmops are stack objects,
10173         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
10174         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
10175         added argument lock to trace flaws in allocating temporary registers
10176         when developing port,
10177         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
10178         * (pic16_popRegFromString): reenabled allocating a direct register
10179         from string,
10180         * (assignResultValue): various beautifications,
10181         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
10182         referenced function argument,
10183         * (genIpush): reenabled to allow stacked arguments, handles only
10184         ic->parmPush iCodes,
10185         * (genCall, genPcall): major changes to allow for variable argument
10186         functions, fixed a bug with falsely restoring stack pointer after
10187         returning from call,
10188         * (genFunction): pending code for critical function,
10189         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
10190         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
10191         * (genNearPointerGet): fixed bug with indirect reading, was always
10192         reading from INDF0
10193         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
10194         pointers,
10195         * (genAddrOf): rewrote code to take address of a stacked function parameter
10196         * (genCast): fixed casting to generic pointer type,
10197         * src/pic16/gen.h: added AOP_STA,
10198         * (struct asmop): added field stk,
10199         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
10200         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
10201         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
10202         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
10203         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
10204         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
10205         generic pointers,
10206         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
10207         and library paths,
10208         * (pic16_port structure): generic pointer size is set to 3,
10209         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
10210         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
10211         compiler warning,
10212         * src/pic16/ralloc.c (allocReg): prevent allocating register when
10213         operand is an iTemp,
10214
10215 2004-09-24 Martin Helmling <mh AT octo-soft.de>
10216
10217         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
10218         * debugger/mcs51/simi.c: addapt new syntax of s51
10219
10220 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
10221
10222         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
10223         * src/pic16/pcode.c: commented out some calls to free() in order to
10224         fix bug #989576,
10225
10226 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10227
10228         * src/SDCCicode.h,
10229         * src/SDCCicode.c (isiCodeInFunctionCall),
10230         * src/avr/ralloc.c (selectSpil),
10231         * src/pic/ralloc.c (selectSpil),
10232         * src/pic16/ralloc.c (selectSpil),
10233         * src/ds390/ralloc.c (selectSpil),
10234         * src/hc08/ralloc.c (selectSpil),
10235         * src/xa51/ralloc.c (selectSpil),
10236         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
10237         stack in the middle of a function call sequence (fixes bug #1020268)
10238         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
10239         costs associated with the minimum switch case.
10240
10241 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10242
10243         * src/SDCC.lex: fixed bug #1030549
10244
10245 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10246
10247         * src/SDCCcse.h (struct cseDef),
10248         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
10249         over a function call if the CSE is derived from a symbol whose
10250         address has been taken (fixes bug #1029883)
10251         * support/regression/tests/bug-1029883: a new regression test for
10252         this bug
10253
10254 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10255
10256         * src/hc08/gen.c (emitinline): fixed bug #1029778
10257         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
10258         to a cast object is no longer a syntax error ("fixes" bug #1030006,
10259         and starts toward RFE #905167)
10260
10261 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
10262
10263         * src/pic16/gen.c (mov2f): New function to move an operand to
10264         another without considering if it is a literal or a register,
10265         * (pic16_sameRegs): don't check if they are both AOP_REG,
10266         * (AccRsh): removed andmask=0 lines,
10267         * (genLeftShift): duplicated to be improved in future versions,
10268         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
10269         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
10270         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
10271         * (pic16initMnemonics): added initialization for POC_INFSNZW,
10272         * (insertBankSwitch): fixed inserting banksel directives algorithm
10273         for instructions that follow a skip instruction, this fixes a report
10274         for broken subtraction code generation,
10275         * src/pic16/ralloc.c (deassignLRs): do not free register if current
10276         iCode is a left op, just in case result and right share the same
10277         registers
10278
10279 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10280
10281         * src/hc08/main.c,
10282         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
10283         preservation of HX
10284         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
10285         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
10286         on 2004-09-12; it was buggy
10287
10288 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
10289
10290         * src/SDCCsymt.h: removed RESULT_CHECK
10291         * src/SDCCast.c,
10292         * src/SDCCglue.c,
10293         * src/SDCCval.c,
10294         * src/pic/glue.c,
10295         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
10296
10297 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
10298
10299         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
10300         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
10301         configuration values no more rejected by compiler, they are assigned
10302         to configuration registers with a warning message instead,
10303         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
10304         the for-loop so last conf register is emitted too,
10305         * (_pic16_initPaths): link library libsdcc.lib by default,
10306         * (_hasNativeMulFor): modified test for multiplication according to
10307         Raphael Neider's remarks. Integer multiplication is also done with
10308         support functions,
10309         * device/include/pic16/pic18fregs.h: corrected type error in while
10310         testing and including 18f6720 header file
10311
10312 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
10313
10314         * src/pic16/device.h (pic16_options): removed field use_crt,
10315         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
10316         until an optimization to handle single bits is added,
10317         * (pic16_loadFSR0): moved before genUnpackBits,
10318         * (genAnd): some white lines removed,
10319         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
10320         leave_reset flags in pic16_options when using crt modules,
10321
10322 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
10323
10324         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
10325           for bugs 898889 & 979599. Also used some safer print instructions.
10326
10327 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
10328
10329         * src/pic16/device.h (pic16_options_t): added field use_crt,
10330         crt_name, no_crt,
10331         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
10332         catch a probable future bug,
10333         * src/pic16/gen.c: aopIdx function commented out,
10334         * (genAssign): commented out old code which used aopIdx,
10335         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
10336         code, added if conditionals to take into account the --use-crt
10337         command line options,
10338         * src/pic16/main.c (pic16_optionsTable): added new command line
10339         options, --use-crt= and --no-crt,
10340         * (_pic16_linkEdit): now the proper crt object is added in the
10341         linker command line except than when --no-crt is specified,
10342         * src/pic16/pcode.c,
10343         * src/pic16/pcode.h: added some structures and functions for a new
10344         optimization scheme to compansate for instruction overhead between
10345         same iCodes, this scheme is currently under development and is not
10346         working in any way,
10347         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
10348         to && operator,
10349         * device/lib/pic16/startup/crt0i.c,
10350         * device/lib/pic16/startup/crt0iz.c: added global char variable
10351         __uflags to force the generation of an idata section
10352
10353 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
10354
10355         * doc/Makefile,
10356         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
10357         * doc/sdccman.lyx: updated sdcc version to 2.4.4
10358
10359 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10360
10361         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
10362         Frieder) and clarified the default code optimization mode
10363
10364 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10365
10366         * src/SDCC.lex (doPragma, process_pragma),
10367         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
10368         "opt_code_size", and "opt_code_balanced"
10369         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
10370         regrouped options by category, added support for category headers
10371         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
10372         and "--opt-code-size"
10373         * doc/sdccman.lyx: documented these new options and pragmas
10374         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
10375         preference into account
10376
10377 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
10378
10379         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
10380           geniCodePreDec): Fixed bug 904237 by generating a warning
10381         * src/SDCCerr.h,
10382         * src/SDCCerr.c: added warning W_SIZEOF_VOID
10383
10384 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
10385
10386         * src/pic/device.c : When no max ram set validate full memory range.
10387         * src/pic/pcode.c,
10388         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
10389
10390 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
10391
10392         * device/lib/_gptrget.c,
10393         * device/lib/_gptrput.c: updated comment
10394         * device/lib/calloc.c,
10395         * device/lib/free.c,
10396         * device/lib/malloc.c,
10397         * device/lib/realloc.c: added LGPL, made them reentrant-safe
10398         * src/SDCCcse.c (cseBBlock),
10399         * src/SDCCicode.c (printOperand, geniCodeArray),
10400         * src/SDCCicode.h (struct operand): fixed bug 868103
10401         * support/regression/tests/bug-868103.c: added
10402         * src/SDCCast.c (searchLitOp),
10403         * src/SDCCcse.h (struct cseDef),
10404         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
10405         * src/SDCCicode.h (struct operand),
10406         * src/SDCCsymt.h (struct sym_link),
10407         * src/avr/gen.c (hasInc),
10408         * src/ds390/gen.c (hasInc),
10409         * src/hc08/gen.c (genPlusIncr, hasInc),
10410         * src/mcs51/gen.c (hasInc),
10411         * src/pic16/glue.c (pic16_printIvalChar),
10412         * src/pic16/ralloc.c (regWithIdx),
10413         * src/xa51/gen.c (hasInc) : removed warnings
10414         * src/SDCCast.c (createBlock): added comment ???
10415         * src/hc08/ralloc.c: updated comments
10416
10417 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10418
10419         * doc/sdccman.lyx: updated section on switch statements, added
10420         section about semaphore locking
10421         * doc/Makefile: added option -info for latex2html
10422         * device/lib/_gptrget.c,
10423         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
10424
10425 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
10426
10427         * src/pic/device.h,
10428         * src/pic/device.c,
10429         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
10430          maxram is less than 0x100.
10431
10432 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
10433
10434         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
10435
10436 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10437
10438         * src/port.h,
10439         * src/mcs51/main.c,
10440         * src/ds390/main.c,
10441         * src/z80/main.c,
10442         * src/hc08/main.c,
10443         * src/pic/main.c,
10444         * src/pic16/main.c,
10445         * src/avr/main.c,
10446         * src/xa51/main.c
10447         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
10448         a jump table is the best form for a switch statement, including
10449         automatic insertion of missing cases to make the case range
10450         continuous. Developed in collaboration with Frieder Ferlemann.
10451
10452 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10453
10454         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
10455         accumulator result if it needs sign extension
10456
10457 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10458
10459         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
10460
10461 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10462
10463         * device/lib/gbz80/printf.c,
10464         * device/lib/z80/printf.c: removed define for NULL
10465
10466 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10467
10468         * as/xa51/xa_link.c,
10469         * device/examples/ds390/ow390/ad26.c,
10470         * device/examples/ds390/ow390/cnt1d.c,
10471         * device/examples/ds390/ow390/counter.c,
10472         * device/examples/ds390/ow390/ds2480.h,
10473         * device/examples/ds390/ow390/ds2480ut.c,
10474         * device/examples/ds390/ow390/findtype.c,
10475         * device/examples/ds390/ow390/gethumd.c,
10476         * device/examples/ds390/ow390/owllu.c,
10477         * device/examples/ds390/ow390/ownetu.c,
10478         * device/examples/ds390/ow390/swt12.c,
10479         * device/examples/ds390/ow390/swtloop.c,
10480         * device/examples/ds390/ow390/temp.c,
10481         * device/examples/ds390/ow390/temp10.c,
10482         * device/examples/ds390/ow390/thermo21.c,
10483         * device/examples/ds390/ow390/tinilnk.c,
10484         * device/examples/ds390/ow390/tstfind.c,
10485         * device/examples/serialcomm/windows/serial.cpp,
10486         * device/examples/serialcomm/windows/test_serialcomm.cpp,
10487         * device/include/reg51.h: fixed line endings for cvs
10488
10489 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10490
10491         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
10492         packRegsForAccUse, packRegisters): new accumulator register
10493         packing algorithm
10494         * support/regression/ports/hc08/support.c (_putchar): suppress
10495         warning of unused variable
10496         * src/SDCCicode.c: added SWAP entry to codeTable
10497
10498 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
10499
10500         * device/lib/sprintf.c: forgot to add this file before previous commit
10501
10502 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
10503
10504         * src/pic16/gen.c (genPackBits): added operand right in function
10505         parameters, load result directly if p_type is POINTER (that is
10506         called by genNearPointerSet)
10507         * (genUnPackBits): added operand left in function parameters,
10508         * (genNearPointerGet, genNearPointerSet): prevent the loading of
10509         FSR0 if accessing bitfields,
10510
10511 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
10512
10513         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
10514           _print_format; updated printf, sprintf, vsprintf
10515         * device/include/asm/default/features.h: corrected comment/define
10516         * device/lib/Makefile.in: added sprintf.c
10517         * device/lib/libsdcc.lib: added sprintf module
10518         * device/lib/printf_large.c,
10519         * device/lib/vprintf.c,
10520         * device/lib/sprintf.c: totally refactored printf_large and vprintf
10521           into these 3 files
10522         * support/regression/Makefile: changed ALL_PORTS into a usefull default
10523         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
10524         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
10525           hc08 test
10526         * support/regression/tests/zeropad.c: define idata as data for hc08
10527
10528 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10529
10530         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
10531         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
10532         labels are referenced at least once (even if a reference is not found)
10533         * src/hc08/gen.c (emitcode): set isComment flag for comments
10534         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
10535         loads), rules 6a..6b (optimize jumps to return)
10536
10537 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10538
10539         * device/lib/acosf.c (acosf),
10540         * device/lib/asinf.c (asinf),
10541         * device/lib/atanf.c (atanf),
10542         * device/lib/ceilf.c (ceilf),
10543         * device/lib/cosf.c (cosf),
10544         * device/lib/coshf.c (coshf),
10545         * device/lib/cotf.c (cotf),
10546         * device/lib/fabsf.c (fabsf),
10547         * device/lib/floorf.c (floorf),
10548         * device/lib/log10f.c (log10f),
10549         * device/lib/logf.c (logf),
10550         * device/lib/sinf.c (sinf),
10551         * device/lib/sinhf.c (sinhf),
10552         * device/lib/sqrtf.c (sqrtf),
10553         * device/lib/tanf.c (tanf),
10554         * device/lib/tanhf.c (tanhf),
10555         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
10556         replaced all instances of "reentrant" in the library functions
10557         defined in math.h with this macro.
10558         * support/regression/tests/float_trans.c: reenabled test for hc08
10559
10560 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
10561
10562         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
10563         erroneously deleted
10564
10565 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10566
10567         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
10568         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
10569         multi-byte volatile operands are used
10570         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
10571         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
10572         initialization to area GSINIT0 so that it would always precede
10573         any static initializers in GSINIT
10574         * support/regression/tests/zeropad.c: fixed idata define for hc08
10575         * support/regression/tests/bug-927659.c,
10576         * support/regression/tests/float_trans.c: disabled tests for hc08
10577         pending missing library routines
10578         * .version: increased version number to 2.4.4 - hc08 port now passes
10579         regression tests
10580
10581
10582 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
10583
10584         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
10585         * Makefile.common.in,
10586         * as/Makefile,
10587         * as/hc08/Makefile.in,
10588         * as/mcs51/Makefile.in,
10589         * as/z80/Makefile.in,
10590         * debugger/mcs51/Makefile.in,
10591         * device/include/Makefile.in,
10592         * device/lib/Makefile.in,
10593         * doc/Makefile,
10594         * link/Makefile,
10595         * link/z80/Makefile.in,
10596         * packihx/Makefile.in,
10597         * sim/ucsim/main_in.mk,
10598         * sim/ucsim/avr.src/Makefile.in,
10599         * sim/ucsim/doc/Makefile.in,
10600         * sim/ucsim/gui.src/serio.src/Makefile.in,
10601         * sim/ucsim/hc08.src/Makefile.in,
10602         * sim/ucsim/s51.src/Makefile.in,
10603         * sim/ucsim/xa.src/Makefile.in,
10604         * sim/ucsim/z80.src/Makefile.in,
10605         * src/Makefile.in,
10606         * support/cpp2/Makefile.in,
10607         * support/librarian/Makefile,
10608         * support/makebin/Makefile: added DESTDIR to the install path proposed
10609         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
10610         * doc/sdccman.lyx: added DESTDIR documentation
10611
10612 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
10613
10614         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
10615         instruction for interrupt handlers, use fast returns when returning
10616         from high priority interrupts
10617
10618 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10619
10620         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
10621         code generation
10622         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
10623         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
10624         bugs, ported much of Bernhard's code from mcs51
10625         * src/mcs51/gen.c (genSend),
10626         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
10627         than one when calling a reentrant function
10628         * device/lib/_mullong.c: defined an alternate struct layout for big
10629         endian ports (hc08)
10630
10631 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10632
10633         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
10634         test
10635
10636 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10637
10638         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
10639         are sane and complete before asking the port its prefered parameter
10640         passing method (fixes bug #1017633)
10641         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
10642         and _ret3
10643
10644 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10645
10646         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
10647         problem in bitfields >= 8 bits.
10648
10649 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10650
10651         * src/SDCCsymt.c: undid changes that were not meant to be committed
10652
10653 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10654
10655         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
10656
10657 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10658
10659         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
10660           copied and wrong bit got inverted
10661
10662 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10663
10664         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
10665         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
10666         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
10667         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
10668         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
10669         assignments to bitfields at known addresses
10670         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
10671         reads from bitfields at known addresses
10672         * src/hc08/ralloc.c (packRegisters),
10673         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
10674         genhc08Code): optimize pointer get values used as conditionals
10675         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
10676         and branch
10677
10678 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10679
10680         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
10681         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
10682         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
10683         as conditionals
10684
10685 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10686
10687         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
10688
10689 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10690
10691         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
10692         related problems
10693
10694 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
10695
10696         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
10697
10698 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10699
10700         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
10701         mcs51 port
10702
10703 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
10704
10705         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
10706
10707 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10708
10709         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
10710         cases use more compact code.
10711
10712 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
10713
10714         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
10715
10716 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10717
10718         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
10719
10720 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10721
10722         * src/SDCCsymt.h,
10723         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
10724         parameter of changePointer() from symbol* to sym_link*
10725         * src/SDCCast.c (decorateType): call changePointer() for CAST op
10726         * src/SDCCsymt.c (compareType): void* type is castable to other
10727         pointers, but not necesarily an exact match.
10728         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
10729         is no longer blindly treated as an exact match.
10730         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
10731
10732 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
10733
10734         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
10735
10736 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
10737
10738         * src/pic/gen.c,
10739         * src/pic/pcode.c,
10740         * src/pic/ralloc.h,
10741         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
10742
10743 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
10744
10745         * src/pic/device.c,
10746         * src/pic/device.h,
10747         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
10748
10749 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10750
10751         * src/mcs51/gen.c (emitcode): fixed bug #992819
10752
10753 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
10754
10755         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
10756           there's no need to make it worse
10757
10758 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10759
10760         * src/mcs51/ralloc.c (deassignLR),
10761         * src/ds390/ralloc.c (deassignLR),
10762         * src/hc08/ralloc.c (deassignLR),
10763         * src/z80/ralloc.c (deassignLR),
10764         * src/pic/ralloc.c (deassignLR),
10765         * src/pic16/ralloc.c (deassignLR),
10766         * src/avr/ralloc.c (deassignLR),
10767         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
10768         rlivePoint): fixed another part of bug #971834
10769
10770 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10771
10772         * src/z80/main.c: enabled "critical" keyword
10773         * src/z80/mappings.i,
10774         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
10775         functions (fixes bug #979646)
10776         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
10777
10778 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10779
10780         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
10781           such as c:\mydir.
10782
10783 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
10784
10785         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
10786           doesn't disable too much optimizations
10787
10788 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
10789
10790         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
10791
10792 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
10793
10794         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
10795
10796 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
10797
10798         * src/pic/gen.c tidied up tabs
10799         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
10800         * src/pic/main.c tidied up tabs
10801         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
10802         * src/pic/pcoderegs.c tidied up tabs
10803         * src/pic/ralloc.c tidied up tabs
10804
10805 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
10806
10807         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
10808         to S_FIXED for pic16 port and when symbol is not in level 0,
10809         allocate for S_REGISTER storage class and pic16 port, too,
10810         * src/pic16/device.h: prototype for checkSym,
10811         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
10812         * (pic16_assignConfigWordValue): test the value and the mask to
10813         validate that the value is suitable for the configuration word,
10814         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
10815         collect extern declared symbols, don't emit symbol twice, check
10816         first if symbol is in publics set first,
10817         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
10818         * added command line '--fstack' which enables an experimental
10819         feature for stack access, too buggy to be used yet...
10820         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
10821         * (pic16_allocDirReg): when register has storage class S_REGISTER
10822         allocate in pic16_dynAccessRegs,
10823         * device/include/pic16/pic18f????.h: modified configuration word
10824         naming convention, words started as CONFIG0H but should be CONFIG1H
10825
10826 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
10827
10828         * device/include/mcs51reg.h: fixed bug 970993
10829
10830 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
10831
10832         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
10833         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
10834         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
10835         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
10836         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
10837         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
10838           error/warning numbers,
10839           added function setWarningDisabled()
10840         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
10841         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
10842           _memcmp.c _memmove.c calloc.c realloc.c free.c
10843         * support/regression/tests/malloc.c: added tests for new functionality
10844         * support/regression/tests/zeropad.c: added tests for truncated initializers
10845           and initialized char arrays starting with '\x0'
10846         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
10847
10848 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
10849
10850         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
10851
10852 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10853
10854         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
10855         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
10856         peephole 177.e. Thanks to anonymous
10857
10858 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
10859
10860         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
10861         function isn't used in the source but referenced as a
10862         variable initializer then declare it as extern in .asm file
10863
10864 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
10865
10866         * .version: increased version number to 2.4.3
10867
10868         Adding version extension according to ChangeLog CVS revision
10869         * src/Makefile.in (target all): added dependency 'version.h'
10870         * (rule version.h): added rule to create version.h from ChangeLog,
10871         * (rule dep): added dependency version.h,
10872         * src/version.awk: AWK script to create version.h
10873         * src/SDCCdwarf2.c (dwWriteModule),
10874         * src/SDCCglue.c (initialComments),
10875         * src/SDCCmain.c (printVersionInfo): modified to write after
10876         version string the version extension number,
10877         * src/SDCCutil.c: included "version.h"
10878         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
10879         number,
10880         * src/SDCCutil.h: added prototype for getBuildNumber
10881
10882         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
10883         includeDirsSet, too,
10884         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
10885         const char [] is found in function prototype...
10886
10887         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
10888         moving to WREG with source is already in WREG,
10889         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
10890         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
10891         * (aopForSym): stack'ed symbols are partially supported, added
10892         if-clause to support symbols in FARSPACE,
10893         * (sameRegs): added test for AOP_ACC to see if registers are same,
10894         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
10895         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
10896         * (pic16_popRegFromString): will not allocate a new register if it
10897         doesn't find one by name, bug may have introduced...
10898         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
10899         * (genIpush): revived to use pic16 port's stack,
10900         * (genAddrOf): added incomplete case for stack'ed operand,
10901         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
10902         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
10903         can handle multibyte operands,
10904         * src/pic16/glue.c (pic16_printIval*): some debug info added,
10905         * (pic16initialComments): added message for MPLAB compatibility
10906         mode enabled,
10907         * src/pic16/main.h: prototype for pic16_mplab_comp,
10908         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
10909         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
10910         * (_pic16_linkEdit): NEW, handles link stage, transferred here
10911         because of increased complexity of procedure,
10912         * (_process_pragma): stack pragma changed to format 'stack pos len',
10913         emit symbol '_stack_end' to conform with gplink,
10914         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
10915         to search for register,
10916         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
10917         PO_GPR_REGISTER,
10918         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
10919         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
10920         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10921         case for PO_GPR_REGISTER,
10922         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
10923         dies, the new era is ahead !...
10924         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
10925         pic16_dynInternalRegs,
10926         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
10927         * (pic16_allocDirReg): minor optimizations and bug fixes,
10928         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
10929
10930         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
10931         load stack and frame pointer with address of 'stack_end' symbol
10932
10933 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
10934
10935         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
10936         without source code but only variable initializers
10937
10938 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
10939
10940         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
10941         external are not declared as extern to reduce overhead while linking
10942
10943 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
10944
10945         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
10946
10947 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
10948
10949         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
10950           Yee Keat for the patch
10951         * src/SDCCast.c (decorateType): fixed bug #979599
10952         * src/ds390/gen.h: removed local fReturnSizeDS390
10953         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
10954         * src/ds390/gen.c (genAnd, genOr, genXor),
10955         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
10956
10957 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
10958
10959         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
10960         add relFilesSet to $3, manipulate $2 to handle linking of object
10961         files without source files in command line,
10962         * device/include/pic16 (all headers): added ID location macros,
10963         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
10964         entries for ID location bytes,
10965         * (pic16_assignIdByteValue): NEW,
10966         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
10967         added field dumpcalltree to pic16_options_t,
10968         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
10969         is used instead of pic16_Gstack_base_addr, check if (ifx) before
10970         emitting rFalseIfx label after check_carry label,
10971         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
10972         pic16_emitDIRegs), NEW
10973         * (pic16glue): dump .calltree file when option --calltree found,
10974         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
10975         * (_pic16_genAssemblerPreamble): emit ID locations after
10976         configuration registers,
10977         * (pic16_linkCmd): modifications of the link command,
10978         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
10979         * (pic16_pCodeInitRegisters): don't init stack registers,
10980         * (pic16_findPrevInstruction): fixed bug,
10981         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
10982         bug with immediate registers,
10983         * (buildCallTree): traces stack push and pop,
10984         * (pct2): dump also stack usage for each function,
10985         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
10986         * (pic16_allocDirReg): various modifications,
10987         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
10988         fixed to 1,
10989
10990 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
10991
10992         * src/pic16/pcode.c: removed buggy double colon
10993
10994 2004-07-01 Borut Razem <borut.razem AT siol.net>
10995
10996         * support/scripts/sdcc.nsi: added include/pic16 to setup
10997
10998 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
10999
11000         * device/lib/Makefile.in: fixed bug in target objects-pic16,
11001         * device/lib/pic16/Makefile: prefixed with dash (-) command under
11002         target 'clean',
11003         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
11004         specific command line arguments. Also added sample lkr script
11005         for placing a variable at a specific memory bank.
11006         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
11007         at a specific memory bank,
11008         * (pic16_dump_isection): fixed bug which caused string literals to
11009         be omitted when dumping idata section,
11010         * (pic16_groupRegistersInSection): added code to handle registers
11011         in specific memory banks,
11012         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
11013         public, all references are renamed too,
11014         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
11015         AOP_DPTR2,
11016         * (pic16_storeForReturn): added case to handle when dest is WREG,
11017         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
11018         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
11019         pic16_rel_udata, check to see if that register is marked as being
11020         a member of a specific memory bank,
11021         * (pic16_printIvalCharPtr): added code to add string literals either
11022         to code or the idata sections,
11023         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
11024         also accept the 'udata' pragma,
11025         * src/pic16/main.h: new structure types sectName and sectSym
11026         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
11027         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
11028         * (pic16_findPrevInstruction): fixed, it returned nothing,
11029         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
11030         instruction combinations,
11031         * (pic16_FixRegisterBanking): heavily reorganised,
11032         * (pic16_AnalyzeBanking): if generating banksel directives is
11033         disabled, then don't call FixRegisterBanking at all,
11034         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
11035         completely removed,
11036         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
11037
11038 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
11039
11040         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
11041         Phuah Yee Keat <yk.phuah AT nestac.com>
11042
11043 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
11044
11045         * src/pic16/glue.c (pic16createInterruptVect): function now emits
11046         correctly the IVT even if it is relocated to some other location
11047
11048 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
11049
11050         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
11051         * device/include/pic16/pic18f2220.h: NEW,
11052         * device/lib/pic16/libdev/pic18f2220.c: NEW,
11053         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
11054         * src/pic16/device.c (struct Pics16): added info for 18f2220,
11055         * src/pic16/device.h (struct pic16_options): added ivt_loc and
11056         nodefaultlibs, ivt_loc is the location of the interrupt vector
11057         table, and nodefaultlibs signs that default libraries should not be
11058         linked in link stage,
11059         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
11060         according to --ivt-loc argument,
11061         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
11062         when pragma stack is found,
11063
11064 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11065
11066         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
11067         256 (range check), 257 (do while), 258.a-f (bit banging
11068         f.e. on 3-wire SPI bus)
11069
11070 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11071
11072         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
11073         variables used exclusively within a loop
11074
11075 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
11076
11077         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
11078
11079 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11080
11081         * src/SDCClrange.c (computeClash): fixed bug #971834
11082
11083 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11084
11085         * src/mcs51/gen.c (genCmp): fixed bug #975903
11086         * src/hc08/gen.c (operandsEqu),
11087         * src/ds390/gen.c (operandsEqu),
11088         * src/z80/gen.c (operandsEqu),
11089         * src/pic/gen.c (operandsEqu),
11090         * src/pic16/gen.c (operandsEqu),
11091         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
11092         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
11093
11094 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11095
11096         * src/SDCCcse.c (cseBBlock): fixed bug #966963
11097
11098 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
11099
11100         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
11101         default case in switch statement,
11102         * glue.c (pic16_initPointer): expr is initialised via decoarteType
11103         to eliminate problem with initialisation of pointers, but problem
11104         still exists,
11105         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
11106         * (emitStaticSegment): removed various lines emitting debug info,
11107         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
11108         added processor registers for utilizing EEPROM,
11109         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
11110         configurable and set 8
11111
11112 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
11113
11114         * .version: increased version number to 2.4.2,
11115
11116         Cumulative patch for pic16 port
11117         * src/pic16/device.c: changed scheme to dump initial values for
11118         variables in idata segment, all print_idata* functions were removed,
11119         now the pic16_printIval* will be called,
11120         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
11121         * _pic16_printPointerType, pic16_printPointerType,
11122         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
11123         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
11124         NEW, similar to the respective functions in SDCCglue.c,
11125         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
11126         way, emitting hex bytes,
11127         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
11128
11129 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11130
11131         * src/avr/ralloc.c (serialRegAssign),
11132         * src/xa51/ralloc.c (serialRegAssign),
11133         * src/pic/ralloc.c (serialRegAssign),
11134         * src/pic16/ralloc.c (serialRegAssign),
11135         * src/hc08/ralloc.c (serialRegAssign),
11136         * src/z80/ralloc.c (serialRegAssign),
11137         * src/ds390/ralloc.c (serialRegAssign),
11138         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
11139
11140 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11141
11142         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
11143         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
11144
11145 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
11146
11147         Cumulative patch for pic16 port:
11148         * src/pic16/device.h (typedef PIC16_device) modified fields for
11149         defining microcontrollers,
11150         * src/pic16/device.c: added new info for all devices in Pics16 array,
11151         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
11152         to be optimised out by the pCode optimiser,
11153         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
11154         specially, bug reported by G.M. Gallant,
11155         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
11156         as force'd so that cannot be optimised out by pCode optimiser,
11157         * src/pic16/pcode.c,
11158         * src/pic16/pcodepeeph.c,
11159         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
11160         they are disabled by default, but can be enabled explicit with
11161         command argument --denable-peeps, for testing,
11162         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
11163         --pomit-ivt in COMPILE_FLAGS
11164
11165 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
11166
11167         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
11168           compilation on MSVC
11169
11170 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
11171
11172         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
11173
11174 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11175
11176         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
11177         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
11178
11179 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
11180
11181         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
11182         would only assign 0x300001 register.
11183
11184 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
11185
11186         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
11187         in COMPILE_FLAGS. Thanks to G. Gallant for report.
11188
11189 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11190
11191         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
11192         for ds80c400
11193         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
11194         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
11195         added peephole 254 (left shift), 255 (jump table)
11196
11197 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
11198
11199         * device/lib/Makefile.in: removed comment line with model-pic16,
11200         * (target port-specific-objects-pic16): the libraries and objects
11201         are copied to the build directory form the device/lib/pic16/bin
11202         directory
11203
11204         Cumulative patch concerning pic16 port:
11205         * library directory has been re-organized,
11206         * added support for PIC18F1220,
11207         * added headers and library sources for chips 18f1220,18f6520,
11208         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
11209
11210         * configuration registers setting has changed, now each supported
11211         device has a complete description of the registers it uses,
11212         * all initialisations are moved to idata sections, these section
11213         can be absolute or relocatable,
11214         * fixed initialisation of codespace variables,
11215         * fixed warning about PCLATU and gpsim,
11216         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
11217         * (genAssign): use table reads when assigning from variables in codespace,
11218         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
11219         char/int variables placed in codespace,
11220         * (pic16_emitConfigRegs): NEW, emits a list with configuration
11221         registers set in .asm file, no need for --pomit-config-words anymore,
11222         * (pic16glue): some 8051 legacy segments are commented out
11223         (to be removed completely),
11224         * added support for alternative assembler and linker with --asm=
11225         and --link= command line arguments,
11226         * peepholes are disabled automatically in the port, no need to
11227         specify on command line,
11228         * port supports natively char/int/long multiplication, but converts
11229         all divisions to support functions,
11230         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
11231         to the file set in variable $2,
11232         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
11233         strings in ASCII format and not in hex,
11234         * ralloc.c (serialRegAssign): added a triplet of conditional calls
11235         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
11236         allocate proper register if iCodes aren't temporary,
11237
11238 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
11239
11240         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
11241
11242 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
11243
11244         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
11245         is commented out
11246
11247 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11248
11249         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
11250         computed address is reused
11251         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
11252         multi-byte bitfields
11253
11254 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
11255
11256         * src/z80/gen.c: (genArrayInit): must check for pointers too
11257
11258 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
11259
11260         * support/regression/tests/zeropad.c: never meant to commit the
11261           nestedstruct test: removed, added check for GCC version
11262
11263 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
11264
11265         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
11266         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
11267         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
11268           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
11269           bugs 928906 and 954082 half-empty initializers
11270         * src/SDCCsymt.h,
11271         * src/SDCCsymt.c (getAllocSize): added for above fix
11272         * src/z80/gen.c (genArrayInit): fixed bug 741044
11273         * support/regression/tests/zeropad.c: added tests
11274
11275 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
11276
11277         * src/pic16/device.c (pic16_dump_section): corrected bug which
11278         caused some symbols of the libraries to be misplaced
11279
11280 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
11281
11282         * src/pic16/glue.c,
11283         * src/pic16/ralloc.h,
11284         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
11285         to fix conflict with pic port
11286
11287 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
11288
11289         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
11290         externs configuration variables,
11291         * src/pic16/ralloc.h,
11292         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
11293         prototype in header, commented out some debug messages
11294
11295 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
11296
11297         * src/pic16/glue.c,
11298         * src/pic16/main.c,
11299         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
11300         for gpasm COFF object generation. Thanks to D. Hawkins for
11301         his patch info
11302
11303 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11304
11305         * src/ds390/main.c,
11306         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
11307         Brock for spotting this)
11308         * src/ds390/gen.c (genEndFunction),
11309         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
11310         interrupt handler and critical. Disable push/pop optimizations when
11311         peephole optimizations disabled.
11312
11313 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
11314
11315         Updated pic16 library sources and headers.
11316         * device/lib/pic16/pic18f*/ ,
11317         * device/include/pic16/*.h: modified to handle structured SFR
11318         definitions
11319
11320 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
11321
11322         * src/port.h (PORT structure): added hook initPaths, now each
11323         port can declare its own default search paths,
11324         which can been seen with the --print-search-dirs option,
11325         see pic16 port for example,
11326         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
11327         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
11328         * (doPrintSearchDirs): NEW, replaces in a central manner the
11329         printing of search dirs which was split in set*Paths functions,
11330         * (main): added call to port->initPaths and doPrintSearchDirs,
11331         * src/avr/main.c,
11332         * src/ds390/main.c,
11333         * src/hc08/main.c,
11334         * src/izt/i186.c,
11335         * src/izt/tlcs900h.c,
11336         * src/mcs51/main.c,
11337         * src/pic/main.c,
11338         * src/pic16/main.c: modified port structures to reflect addition of
11339         initPaths hook,
11340
11341         * src/pic16/device.c (regCompare): registers are finally sorted by name,
11342         * (pic16_dump_section): for registers in same address reserve memory once,
11343         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
11344         to no_banksel,
11345         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
11346         result is greater in size than right or left,
11347         * (pic16_genUMult8X8_8): there are some cases where the result can
11348         be 16 bits size, so handle these,
11349         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
11350         * (pic16_outBitC): modified to emit pcodes,
11351         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
11352         or not,
11353         * (genDivOneByte): implemented algorithm to divide 8-bits,
11354         * (genCmp): uncommented goto, but issues still exist,
11355         * (genAnd): fixed a bug with variables >8bits,
11356         * (genPackBits): optimization added that uses BCF/BSF to change a
11357         single bit,
11358         * (genAssign): fixed bug when assigning floating point literals,
11359         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
11360         __sdcc_gsinit_startup label,
11361         * src/pic16/main.c (_pic16_init): removed search directory
11362         initialisations,
11363         * (_pic16_initPaths): NEW, used to initialise search directories,
11364         * (_hasNativeMulFor): support functions for all except char/int
11365         multiplication, and char division,
11366         * (PIC16_port struct): modified entry for native mul support,
11367         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
11368         no_banksel option,
11369         * (buildCallTree): call to register_usage is ifdef'ed out,
11370
11371 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11372
11373         * device/include/string.h: applied Stas Sergeev's patch to make this
11374         header file compatible with the preprocessor -Wundef option
11375         * src/SDCCmain.c (main): abort compilation if preprocessor reports
11376         failure (fixes bug #941458)
11377
11378 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11379
11380         * src/SDCCopt.c (killDeadCode): fixed bug #907733
11381         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
11382         that the variable, not the function, should be static
11383         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
11384         to be consistent with non-literal case
11385
11386 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11387
11388         * src/SDCCast.c (isConformingBody): fixed bug #949967
11389         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
11390         convilong): fixed bug #952086
11391
11392 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11393
11394         * src/SDCCmem.c (allocVariables): fixed bug #955321
11395
11396 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11397
11398         * src/hc08/main.c (_hc08_genAssemblerEnd),
11399         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
11400         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
11401         completely eliminated the use of a temporary file
11402         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
11403         when more than one file linked
11404         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
11405
11406 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11407
11408         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
11409         which fixes bug #543481
11410         * support/regression/tests/bug-751703.c: fixed comments left from a
11411         cut and paste error
11412         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
11413         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
11414         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
11415         scopes
11416         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
11417         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
11418         are now changed to underscores in moduleName
11419
11420 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11421
11422         * as/mcs51/lkmem.c: better fix for bug #954173
11423
11424 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
11425         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11426
11427         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
11428         * device/include/c8051f000.h,
11429         * device/include/c8051f120.h,
11430         * device/include/c8051f300.h,
11431         * device/include/c8051f310.h,
11432         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
11433         PWM16) and detab'ed
11434
11435 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11436
11437         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
11438         and mailing lists, doc'ed --no-peep-comments, removed reference
11439         to knoppix (newest version has no LyX/LaTeX), other minor changes
11440         * src/SDCCglue.c (glue): save 2 bytes stack space with
11441         option --main-return. The ljmp could probably be avoided too
11442
11443 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11444
11445         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
11446
11447 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11448
11449         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
11450         * src/SDCCopt.c (isLocalWithoutDef),
11451         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
11452         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
11453         (credit to Maarten Brock for patch #949363, on which this is based)
11454         * support/regression/tests/bug-751703.c: some test cases of extern used
11455         within inner scopes.
11456
11457 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11458
11459         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
11460         SPEC_STRUCT
11461         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
11462         struct definitions
11463         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
11464         dwWriteLabel): fix to create valid debugger symbols even when
11465         the module name has non-alphanumeric symbols in it
11466         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
11467         when a variable's allocation has been optimized away
11468
11469
11470 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11471
11472         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
11473         * src/hc08/main.c,
11474         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
11475         * src/mcs51/main.c,
11476         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
11477         * src/ds390/main.c,
11478         * src/z80/gen.c (z80_emitDebuggerSymbol),
11479         * src/z80/main.c,
11480         * src/pic/gen.c (pic14_emitDebuggerSymbol),
11481         * src/pic/main.c,
11482         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
11483         * src/pic16/main.c,
11484         * src/avr/gen.c (avr_emitDebuggerSymbol),
11485         * src/avr/main.c,
11486         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
11487         * src/xa51/main.c,
11488         * src/SDCCdebug.c (emitDebuggerSymbol),
11489         * src/SDCCdebug.h,
11490         * src/port.h: added a debugger struct to the port struct. Added a
11491         callback for defining debugger symbols
11492
11493         * src/SDCCast.c (createLabel),
11494         * src/SDCC.y (labeled_statement): mark all compiler generated labels
11495         with isitmp = 1
11496         * src/SDCCicode.h,
11497         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
11498         iCode back to the ast for the function
11499
11500         * src/hc08/ralloc.c (hc08_assignRegisters),
11501         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
11502         unneeded fields from the regs struct.
11503         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
11504         pushReg() & pullReg() functions instead of emitcode()
11505
11506         * src/hc08/gen.c (genLabel, genhc08Code),
11507         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
11508
11509         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
11510         debugger hooks
11511
11512         * src/hc08/gen.c (genEndFunction, genhc08Code),
11513         * src/hc08/gen.h,
11514         * src/mcs51/gen.c (genEndFunction, gen51Code),
11515         * src/mcs51/gen.h,
11516         * src/ds390/gen.c (genEndFunction, gen390Code),
11517         * src/ds390/gen.h,
11518         * src/z80/gen.c (genEndFunction, genZ80Code),
11519         * src/z80/gen.h,
11520         * src/z80/z80.h,
11521         * src/pic/gen.c (genEndFunction, genpic14Code),
11522         * src/pic/gen.h,
11523         * src/pic16/gen.c (genEndFunction, genpic16Code),
11524         * src/pic16/gen.h,
11525         * src/avr/gen.c (genEndFunction, genAVRCode),
11526         * src/avr/gen.h,
11527         * src/xa51/gen.c (genEndFunction, genXA51Code),
11528         * src/xa51/gen.h,
11529         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
11530         specific code to cdbFile.c and out of the backend code generators
11531
11532         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
11533         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
11534         starting address is now 0
11535
11536         * as/hc08/asm.h,
11537         * as/hc08/m08pst.c,
11538         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
11539         assembler directive for DWARF support
11540         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
11541
11542         * src/src.dsp,
11543         * src/Makefile.in,
11544         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
11545
11546 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11547
11548         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
11549         and inappropriate peephole optimization in jump tables
11550
11551 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11552
11553         * as/hc08/m08pst.c,
11554         * src/SDCCglue.c: sdccopt works for the hc08 port now
11555
11556 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
11557
11558         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
11559
11560 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11561
11562         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
11563
11564 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11565
11566         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
11567         rules
11568         * src/SDCCmain.c,
11569         * src/SDCCglobl.h,
11570         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
11571         comments from the peephole optimizer replacement rules
11572         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
11573         symbols
11574         * src/SDCCcse.c (updateSpillLocation),
11575         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
11576         equivalents
11577         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
11578         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
11579         objects far pointers
11580
11581 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11582
11583         * src/SDCCsymt.h: a missing part of my last change
11584         * src/pic/ralloc.c (regTypeNum),
11585         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
11586
11587 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11588
11589         * src/SDCCicode.h,
11590         * src/SDCCicode.c (aggrToPtrDclType),
11591         * src/SDCCptropt.h,
11592         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
11593         ptrPseudoSymConvert),
11594         * src/pic/ralloc.c (regTypeNum),
11595         * src/pic16/ralloc.c (regTypeNum),
11596         * src/hc08/ralloc.c (regTypeNum),
11597         * src/ds390/ralloc.c (regTypeNum),
11598         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
11599         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
11600
11601 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11602
11603         * link/z80/lkmain.c (afile),
11604         * as/hc08/lkmain.c (afile),
11605         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
11606         prevent a pointer problem when a filename has no directory and
11607         no extension specified.
11608
11609 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11610
11611         * link/z80/lkmain.c (afile): allow periods in directory names
11612         * link/z80/lkmain.c (afile),
11613         * as/mcs51/lkmain.c (afile),
11614         * as/hc08/lkmain.c (afile): allow linker script file to have an
11615         extension other than ".lnk"
11616         * link/z80/lklex.c (getfid),
11617         * link/z80/lkmain.c (parse),
11618         * as/mcs51/lklex.c (getfid),
11619         * as/mcs51/lkmain.c (parse),
11620         * as/hc08/lklex.c (getfid),
11621         * as/hc08/lkmain.c (parse): Support comments in the linker script
11622         file on lines by themselves and after filenames
11623
11624 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11625
11626         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
11627
11628 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11629
11630         * src/z80/peeph-z80.def: removed some peephole rules that don't
11631         work with multibyte arithmetic (fixed bug #937126)
11632         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
11633         to registers and not global variables
11634         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
11635         geniCodePreInc, geniCodePostDec, geniCodePreDec,
11636         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
11637         checking for assignments not internally generated (fixed bug #931895)
11638         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
11639         structure member (fixed bug #930072)
11640
11641 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11642
11643         * src/SDCCmain.c (linkEdit),
11644         * src/hc08/main.c (_hc08_parseOptions),
11645         * as/hc08/Makefile.in,
11646         * as/hc08/aslink.h,
11647         * as/hc08/asm.h,
11648         * as/hc08/m08pst.c,
11649         * as/hc08/lkrloc.c (relr, rele),
11650         * as/hc08/lkarea.c (lnkarea)
11651         * as/hc08/lkmain.c (afile, parse),
11652         * as/hc08/lkelf.c: support for ELF output
11653         * as/hc08/lks19.c (s19),
11654         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
11655
11656 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11657
11658         * as/mcs51/lkihx.c: Fixed bug #899105.
11659
11660 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11661
11662         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
11663         .dsp files from Unix to DOS.
11664
11665 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11666
11667         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
11668         function pointers; we have been compliant for several months now.
11669         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
11670         change that was accidently commented out
11671         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
11672         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
11673         bug #922319
11674
11675 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11676
11677         * src/hc08/gen.c: output of all of the internal debugging information
11678         is now controlled by the D() macro; it is disabled by default
11679
11680 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11681
11682         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
11683         harder to keep the same registers during a CAST iCode
11684         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
11685         long via int can be done in a single cast, if the signedness is
11686         correct.
11687         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
11688         putchar() in tinibios.c in ds390's library
11689
11690 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
11691
11692         * src/SDCCast.c (decorateType): fixed bug #898889,
11693         cast result of a literal complement too
11694         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
11695         fixed check for bitfields
11696
11697 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
11698
11699         * src/SDCCicode.c (geniCodeLogic): made it static,
11700         (geniCodeLogicAndOr): added in order to fix bug #905492,
11701         (ast2iCode): fixed bug #905492
11702         * support/regression/tests/bug-905492.c: added
11703         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
11704         (processParms): fixed bug #927659: don't copy parms, this will clear
11705         decorated flag
11706         * support/regression/tests/bug-927659.c: added
11707
11708 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
11709
11710         * src/SDCCast.c (addCast): don't cast float to char
11711         * device/lib/libsdcc.lib: added _memmove
11712
11713 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
11714
11715         * device/lib/large/Makefile: fixed parallel execution by
11716         replacing `make` by `$(MAKE)`
11717
11718 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11719
11720         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
11721         offsets (fixes bug #923936)
11722
11723 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
11724
11725         * device/lib/small/Makefile: fixed parallel execution by
11726         replacing `make` by `$(MAKE)`
11727
11728 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
11729
11730         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
11731
11732 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
11733
11734         * src/pic/gen.c (genCpl): multi-byte complements were not working.
11735         * src/regression/Makefile: Regression test was not running.
11736
11737 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
11738
11739         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
11740         complement if possible
11741         * src/SDCCval.c (valComplement),
11742         * src/SDCCicode.c (operandOperation): fixed complement of literal
11743         * support/regression/tests/onebyte.c (testComplement): added
11744
11745 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
11746
11747         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
11748         return an optimized tree; actually replace actParm with the new tree
11749         * src/SDCCast.h: added some parantheses to remove side effects
11750         * support/regression/tests/bug-920866.c
11751
11752 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
11753         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
11754         Bit operands were not being handled properly in the pic14 port.
11755         (now src/regression/add.c passes again).
11756
11757 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11758
11759         * src/SDCC.y (labeled_statement): case and default no longer require
11760         a following statement (RFE #893037)
11761
11762 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11763
11764         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
11765         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
11766         disabled (fixes bug #916294)
11767         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
11768         "mov a,acc"; patch provided by Lenny Story
11769         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
11770
11771 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11772
11773         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
11774         functions
11775         * src/ds390/gen.c (genFunction, genEndFunction),
11776         * src/ds390/ralloc.c (ds390_assignRegisters),
11777         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
11778         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
11779         pushed if there are parameters passed on the stack. Also, a cleaner
11780         way to decide if r0/r1 should be pushed/popped. (Together they fix
11781         bug #918693)
11782
11783 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11784
11785         * doc/sdccman.lyx,
11786         * device/lib/mcs51/crtpagesfr.asm,
11787         * device/lib/mcs51/crtxinit.asm,
11788         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
11789         to avoid confusion with Si Lab's SFRPAGE register.
11790
11791 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11792
11793         * src/SDCCglue.c (emitMaps): allow public sfr variables
11794         * src/SDCCglue.c (initialComments): include compiler build date
11795         with compiler version and put the timestamp of the generated
11796         assembly file on a serperate line to be less confusing.
11797         * src/port.h: added genInitStartup hook
11798         * src/avr/main.c,
11799         * src/ds390/main.c,
11800         * src/hc08/main.c,
11801         * src/pic/main.c,
11802         * src/pic16/main.c,
11803         * src/xa51/main.c,
11804         * src/z80/main.c: genInitStartup initialize as NULL (default to
11805         historical behaviour)
11806         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
11807         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
11808         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
11809         library instead of hard coding it into the compiler.
11810         * support/regression/ports/mcs51-stack-auto/spec.mk,
11811         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
11812         * device/lib/mcs51/Makefile,
11813         * device/lib/small/Makefile,
11814         * device/lib/large/Makefile,
11815         * device/lib/mcs51/crtpagesfr.asm,
11816         * device/lib/mcs51/crtstart.asm,
11817         * device/lib/mcs51/crtxclear.asm,
11818         * device/lib/mcs51/crtxinit.asm,
11819         * device/lib/mcs51/crtclear.asm,
11820         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
11821         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
11822         and into user configurable files.
11823         * device/lib/clean.mk: clean mcs51 directory too
11824         * support/regression/tests/longlit.c: added static to T1 declaration
11825         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
11826         accesses in the initialization code
11827
11828 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11829
11830         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
11831         OSCTRIMVAL as noted in bug #916008
11832
11833 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11834
11835         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
11836         in loops with multiple exits (reported as incorrect registers
11837         used by Martin Helmling in Sdcc-user list)
11838
11839 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11840
11841         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
11842         made ds390 register extensions look less like error messages
11843
11844 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11845
11846         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
11847         reported by Adam Wozniak in Sdcc-user list
11848
11849 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
11850
11851         * src/SDCCast.c (decorateType): fixed with bug and promotion in
11852         arithmetic optimizations, added debug output
11853
11854 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
11855
11856         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
11857         * sdcc.spec: updated and split sdcc into 3 rpms
11858         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
11859         needed for literals of LEFT_OP and '+'
11860         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
11861         introduced RESULT_TYPE_NOPROM
11862         (geniCodeMultiply): fixed logic for decision if mul is optimized to
11863         left shift
11864         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
11865         limited promotion to int only for '*'
11866         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
11867
11868 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
11869
11870         * src/pic16/gen.c (genSkip),
11871         (genc16bit2lit), (gencjneshort): commented out
11872         (is_LitOp): new helper function, checks operand type
11873         (genCmpEq): rewritten
11874
11875 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
11876
11877         * support/regression/tests/bug-908454.c: added
11878
11879 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
11880
11881         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
11882         * src/SDCCicode.c (usualBinaryConversions): op needs int type
11883         (geniCodeCast): cosmetic, don't preserve bit storage class
11884         (geniCodeLeftShift): added promotion
11885         (geniCodeLogic): fixed regression
11886         * src/SDCCsymt.c (computeTypeOr): accept bits too
11887         (compareType): 2nd part of fix for bug #908454, needed for bitfields
11888
11889 2004-03-07  Borut Razem <borut.razem AT siol.net>
11890
11891         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
11892
11893 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
11894
11895         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
11896         version of pic16_genPackRegisters which does not check if ic is a
11897         CAST operator,
11898         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
11899         function cause string1.c regression test fails
11900
11901 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
11902
11903         * sim/ucsim/configure.in,
11904         * sim/ucsim/configure,
11905         * sim/ucsim/doc/Makefile.in: use docdir
11906         * src/SDCC.y: fixed sbit atrributes
11907         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
11908         * src/SDCCast.c (decorateType): |^& need special promotion handling
11909         * src/SDCCast.h,
11910         * src/SDCCsymt.h: moved definition of RESULT_TYPE
11911         * src/SDCCsymt.h (computeType),
11912         * src/SDCCicode.c: computeType() needs op
11913         * src/SDCCsymt.c (checkTypeSanity),
11914         * doc/sddman.lyx: "plain" bitfields are unsigned
11915         * src/SDCCsymt.c (computeTypeOr): added
11916         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
11917         |^& ops
11918         * src/SDCCval.c (val*): computeType() needs op
11919         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
11920         * support/regression/tests/onebyte.c: added tests for |^&
11921
11922 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
11923
11924         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
11925         for writing icode into asm output.
11926
11927 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
11928
11929         * src/pic16/device.c: added some debug lines enabled
11930         with macro DEBUG_CHECK,
11931         * src/pic16/genarith.c: more debug in genPlus,
11932         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
11933         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
11934         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
11935         * (aopForSym): onStack symbols are re-placed in data memspace,
11936         and onStack flag is cleared,
11937         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
11938         copy temporary pcodeop,
11939         * (genPcall): added warning for not updating PCLATU,
11940         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
11941         always true for pic16 port,
11942         * (genMultOneWord): NEW, supports integer multiplication,
11943         * (genMult): modified to call genMultOneWord,
11944         * (ifxForOp): added warning when return NULL,
11945         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
11946         flag is set before call to operandFromSymbol for implicit
11947         added structures,
11948         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
11949         options.intlong_rent are set by default,
11950         * (_hasNativeMulFor): modified to allow port generation of integer
11951         multiplication,
11952         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
11953         set regtype to REG_SFR for all registers, restricting seting the
11954         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
11955
11956 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11957
11958         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
11959         more than 500 times in the regression tests
11960
11961 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11962
11963         * support/Util/SDCCerr.h,
11964         * support/Util/SDCCerr.c,
11965         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
11966         enumerator_list),
11967         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
11968         for symbol conflicts.
11969         * support/valdiags/tests/enum.c,
11970         * support/valdiags/tests/tentdecl.c,
11971         * support/valdiags/tests/struct.c: expect possible error messages
11972         referring to original symbol definitions.
11973         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
11974         * src/SDCCsymt.h,
11975         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
11976
11977 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
11978
11979         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
11980
11981 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
11982
11983         * src/pic16/ralloc.c (newReg): fixed bug #908929
11984
11985 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11986
11987         * src/ds390/gen.c: added missing #include "main.h"
11988
11989 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
11990
11991         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
11992         checking if symbol is already in set,
11993         * src/pic16/device.h: prototype for checkAddSym,
11994         * src/pic16/gen.c: (_G): added entry interruptvector,
11995         * (assignResultValue): removed some commented out lines,
11996         * (genFunction): check for ISR via sym->type, absolute section for
11997         interrupt code is created via a new pBlock, the goto instruction is
11998         placed now correctly at the interrupt vector position, changed all
11999         references from ivec to _G.interruptvector,
12000         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
12001         is the interrupt is a high priority one, same for return from ISR,
12002         * src/pic16/glue.c: changed all calls of addSetHead for publics and
12003         externs to calls of checkAddSym,
12004         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
12005         pic16_pcode_verbose flag is set,
12006         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
12007         * src/pic16/pcoderegs.c: message about how many registers are saved
12008         will only be emitted if pic16_pcode_verbose flag is set,
12009
12010 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12011
12012         * src/ds390/ralloc.h,
12013         * src/ds390/ralloc.c (ds390_regWithIdx),
12014         * src/ds390/gen.c (emitcode),
12015         * src/ds390/main.h,
12016         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
12017         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
12018         ds390operandCompare, getRegsRead, getRegsWritten,
12019         initializeAsmLineNode): customized instruction size calculation for
12020         ds390, started basis for some register optimizations
12021         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
12022         corresponding assembly output
12023         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
12024         missing push/pop of r0/r1. Optimized push/pops
12025
12026 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12027
12028         * src/mcs51/main.c (instructionSize): fixed ACALL size
12029         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
12030
12031 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
12032
12033         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
12034         the sorting of rlist with NULL elements
12035         * (print_idataType, print_idata): NEW to create idata sections
12036         * src/pic16/device.h: idataSymSet new variable
12037         * src/pic16/gen.c (genFunction): fixed some bugs in string
12038         comparing, improved the absolute section creation for ISRs,
12039         added FSR0L/FSR0H in registers that are saved in an ISR,
12040         * (genInline): fixed the processing of inline snippets,
12041         now they undergo no process by the peephole optimizer
12042         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
12043         are placed in idataSymSet,
12044         * (pic16emitStaticSeg): extern symbols are added in externs,
12045         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
12046         switching when aboslute variables are placed in access bank memory
12047         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
12048         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
12049         commented out with #if,
12050         * (pic16_packRegisters): reintroduce the check for CAST because some
12051         symbols are not correctly handled,
12052         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
12053         pCodeInstruction instead of pCode,
12054         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
12055         pCodeAsmDir definition,
12056         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
12057         directive, then the argument directive is emitted without the leading
12058         tab, hack for inline labels which must be in the first column,
12059         * (compareLabel,pic16_findNextInstruction),
12060         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
12061         * (insertBankSwitch): modified for the new pCodeAsmDir,
12062
12063 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12064         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
12065
12066         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
12067         instance,
12068         * (pushSide): commented out with #if,
12069         * (assignResultValue): fixed some typos in saving
12070         registers,
12071         * (genPcall): FIXED and sync'ed with genCall,
12072         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
12073         * (genNearPointerGet): fixed to handle some more cases,
12074         implementation scheme via table reads,
12075         * (genConstPointerGet): modified to access code memory correct,
12076         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
12077         and improved to handle some cases
12078         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
12079         instead of "RETLW" for init data
12080         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
12081         not IN_DIRSPACE, work around to reduce bank switching when aboslute
12082         variables are placed in access bank memory (<0x80 and >=0xf80),
12083         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
12084         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
12085         TBLWT_POSTDEC,TBLWT_PREINC
12086         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
12087         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
12088         directives
12089         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
12090         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
12091         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
12092         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
12093
12094 2004-02-29  Borut Razem <borut.razem AT siol.net>
12095
12096         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
12097         support/Util/findme.h, support/Util/system.h: enhance binary relative
12098         search for lib and include by using findProgramPath()
12099
12100 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12101
12102         * src/SDCCpeeph.h,
12103         * src/SDCCpeeph.c (pcDistance),
12104         * src/port.h,
12105         * src/mcs51/ralloc.h,
12106         * src/mcs51/ralloc.c (mcs51_regWithIdx),
12107         * src/mcs51/main.h,
12108         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
12109         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
12110         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
12111         size calculation port specific, started basis for some register
12112         optimizations
12113         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
12114         missing push/pop of r0/r1. Optimized push/pops
12115         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
12116         * device/lib/_modsint.c (_modsint),
12117         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
12118         and stack version so regression tests pass
12119
12120 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
12121
12122         * src/Makefile.in (dep): include SLIBOBJS in dependency check
12123         * src/SDCCast.c (decorateType): catch another small optimization
12124         with '?' operator
12125         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
12126         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
12127         modified to finally use computeType() all over SDCC,
12128         see Feature Request #877103
12129         * src/SDCCval.h: cosmetic
12130         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
12131         valCompare(); regression tested in muldiv.c
12132         * support/regression/tests/muldiv.c (testMod): mod sign follows
12133         dividend only
12134
12135 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
12136
12137         * src/SDCCast.c (decorateType): fixed bug #902362
12138         * doc/INSTALL.txt: fixed install instructions for win32
12139
12140 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
12141
12142         * device/include/Makefile.in (install): fixed by replacing spaces
12143         by tabs
12144         * doc/README.txt,
12145         * doc/INSTALL.txt: updated for release
12146         * doc/sdccman.lyx: added warning for --xstack being buggy
12147
12148 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
12149
12150         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
12151         to eliminate build warnings.
12152         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
12153
12154 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
12155            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12156
12157         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
12158         removed -penable-stack, added comment for stack pragma, added
12159         warning for not initializing the stack/frame registers, removed
12160         comment at interrupts section
12161
12162         Stack is made permanent, there is no ability to disable stack usage.
12163         * src/pic16/device.h,
12164         * src/pic16/device.c: removed all references to USE_STACK macro,
12165         * src/pic16/device.c (pic16_dump_section): when no elements in
12166         rlist, free rlist before return,
12167         * (pic16_dump_int_registers): NEW, internal registers are a new set
12168         of general purpose registers reused by each function,
12169         * (checkAddReg): returns 1 if registers is added to set,
12170         * (pic16_groupRegistersInSection): when a registers is of type
12171         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
12172         * src/pic16/device.h: memRange and Assigned Memory are deleted,
12173         SRCASECMP macro is moved here from device.c
12174         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
12175         PO_PCLATU, PO_PRODL, PO_PRODH,
12176         * (pic16_pCodeOpType, genMinus,
12177         changed compares to "a" register, with AOP_ACC,
12178         * (pic16_genPlus): fixed some bugs and indented properly,
12179         * (pic16_addSign): changed size to size+offset in the MOVWF
12180         instruction,
12181         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
12182         multiply 8-bit operand by literal, result is 8-bit,
12183         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
12184         multiply 2 8-bit operand, result is 8-bit,
12185         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
12186         genUMult8X*_16,
12187         * src/pic16/gen.c: changed accUse to contain WREG only,
12188         * (pic16_emitcomment): renamed to pic16_emitpcomment,
12189         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
12190         true, do not use immediate addressing any more unless sym is a
12191         pointer in codespace,
12192         * (aopForRemat): do not use immediate addressing when symbol not in
12193         codespace and when symbol's address is requested,
12194         * (aopOp): for-loop in if(sym->accUse) is modified for the new
12195         accUse size (= 1),
12196         * (aopGet): added case for AOP_ACC and don't return "accumulator
12197         bug" but WREG instead,
12198         * (popGetTempReg): pushes contents of temporary register in stack,
12199         * (popReleaseTempReg): pops contents of temporary register from
12200         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
12201         * (pic16_popGet): separated case AOP_ACC to return register WREG
12202         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
12203         or PO_IMMEDIATE and initializes their instance/offset appropriately,
12204         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
12205         the use of immediate pointers to certain cases only.
12206
12207         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
12208         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
12209         * (assignResultValue, genCall, genRet): modified to use the new
12210         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
12211         genPcall is still broken,
12212         * (genFunction): added code to create 'A' type pBlocks when
12213         interrupt functions are generated, code not extensively tested yet,
12214         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
12215         * (genEndFunction): modified so ISRs pop stored registers from stack,
12216         * (genMultOneByte): cleanup,
12217         * (AccRsh): added flag andmask, to and result with appropriate mask,
12218         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
12219         * (genDataPointerGet): fixed and reenabled its use,
12220         * (genNearDataPointerGet): bugs fixed,
12221         * (genDataPointerSet): bugs fixed,
12222         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
12223         pic16_DumpSymbol, pic16_DumpOp,
12224         * src/pic16/genutils.h: function prototypes for the above functions,
12225         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
12226         pointers,
12227         * (pic16emitRegularMap): many many many improvements, but needs a
12228         major cleanup,
12229         * src/pic16/main.c: enable_stack in pic16_options is removed,
12230         * (_pic16_parseOptions): removed command line options -penable-stack,
12231         * (_process_pragma): emit stack symbol only when stack pragma is
12232         processed,
12233         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
12234         redirected to FSR0L/FSR0H pair,
12235         * (pic16_get_op, pic16_get_op2): modifications and improvements,
12236         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
12237         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
12238         for immediates,
12239         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
12240         * (dumpPicOptype): NEW,
12241         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
12242         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
12243         with movff instruction,
12244         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
12245         added pic16_int_regs, some packRegsFor* functions are commented out,
12246         because produce errors,
12247         * src/pic16/NOTES: minor modifications
12248
12249 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12250
12251         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
12252         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
12253         --pack-iram.
12254         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
12255         * as/mcs51/lkaomf51.c: fixed bug #895763
12256
12257 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
12258
12259         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
12260
12261 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12262
12263         * doc/sdccman.lyx: added details about the HC08 storage classes and
12264         interrupts, fixed the register usage info for z80 & gbz80
12265
12266 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
12267
12268         * doc/sdccman.lyx: added more pic16 port documentation
12269         * device/include/pic16/: added header pic18fregs.h
12270
12271 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
12272
12273         * doc/sdccman.lyx: added Vangelis' contribution
12274
12275 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12276
12277         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
12278         extend to the next CALL or PCALL, not just to the next CALL.
12279
12280 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
12281
12282         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
12283
12284 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12285
12286         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
12287         bug #895752 and a better fix for bug #716790
12288
12289 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12290
12291         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
12292
12293 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12294
12295         * doc/sdccman.lyx: minor changes, minor changed
12296
12297 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
12298
12299         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
12300         which can't handle SDCC_NEWONEBYTEOPS,
12301         (geniCodeMultiply): removed conversion from mult to shift for pic14
12302         and pic16
12303
12304 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12305
12306         * src/hc08/gen.h,
12307         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
12308         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
12309         thus fixing bug #895406
12310
12311 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
12312
12313         * device/lib/_modsint.c,
12314         * device/lib/_modslong.c: sign follows divisor only
12315         * src/hc08/gen.c (genMultOneByte): if result size is 1,
12316         signs or signedness can be ignored
12317         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
12318         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
12319         added optimization for IFX,
12320         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
12321         arguments;
12322         reenabled optimization for IFX, which was removed on 2004-01-11
12323         * src/SDCCast.h: added return type IFX
12324         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
12325         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
12326         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
12327         SDCC_OLDONEBYTEOPS selects the old behaviour
12328         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
12329         changed again and commented promotion rule
12330         * src/SDCCval.c (valDiv): promotion no longer necessary
12331         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
12332         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
12333         rewritten
12334         * support/regression/tests/onebyte.c: added
12335
12336 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
12337
12338         * gen.c (genInline): reverted to old code for assemnling inline
12339         code because of bug reported James Chadd
12340
12341 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
12342
12343         * ralloc.h: missing declarations from previous patch,
12344         seems that patch for ralloc.h was never applied, fixed
12345
12346 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12347            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
12348
12349         * pcode.c,
12350         * pcode.h,
12351         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
12352         indirect addressing. Marked FSR0 as deprecated
12353         * gen.c (pointerCode): commented out, not needed now
12354         (pic16_popGet2p): new MOVFF helper function
12355         (genGenPointerGet),
12356         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
12357         (shiftRLong): removed duplicate debugging info
12358
12359 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12360
12361         * src/ds390/gen.c (genNearPointerGet),
12362         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
12363         optimization with bits, but not bitfields.
12364         * src/ds390/ralloc.c (packRegisters),
12365         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
12366
12367 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
12368
12369         * src/SDCCcse.c (algebraicOpts): copy operands before modification
12370
12371 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12372
12373         * src/SDCCsymt.h,
12374         * src/SDCCicode.c (operandFromSymbol),
12375         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
12376         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
12377         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
12378         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
12379         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
12380         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
12381         bug #892038
12382         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
12383         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
12384         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
12385         * src/SDCCsymt.c (newSymbol),
12386         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
12387         enumerator_list),
12388         * src/SDCCval.h,
12389         * src/SDCCval.c (newiList): fixed bug #885705
12390
12391 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12392
12393         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
12394         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
12395
12396 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12397
12398         * device/include/c8051f120.h,
12399         * device/include/c8051f300.h,
12400         * device/include/c8051f310.h: added/updated header files for Silicon
12401         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
12402         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
12403         in new section Submitting patches
12404
12405 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12406
12407         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
12408         genFarPointerGet, genCodePointerGet, genGenPointerGet,
12409         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
12410         genGenPointerSet),
12411         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
12412         genFarPointerGet, genCodePointerGet, genGenPointerGet,
12413         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
12414         genGenPointerSet),
12415         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
12416         genFarPointerGet, genCodePointerGet, genGenPointerGet,
12417         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
12418         genGenPointerSet),
12419         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
12420         genFarPointerGet, genCodePointerGet, genGenPointerGet,
12421         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
12422         genGenPointerSet): fixed bug #892400
12423         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
12424         to eliminate build warnings.
12425         * src/SDCCast.c (processParms),
12426         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
12427         fixed bug 751859
12428         * support/valdiag/valdiag.py: added GCC to the list of defines active
12429         when compiling with gcc
12430
12431 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12432
12433         * support/Util/SDCCerr.h,
12434         * support/Util/SDCCerr.c,
12435         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
12436         with an incomplete type (fixed bug #883734)
12437         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
12438
12439 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12440
12441         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
12442
12443 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12444
12445         * src/SDCCast.c (decorateType),
12446         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
12447         function pointer implementation
12448         * support/regression/tests/funptrs.c: added tests to verify both forms
12449         of function pointers work correctly. Added tests to verify parameters
12450         are passed in the correct order.
12451
12452 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
12453
12454         * device.c (regCompare): registers are sorted by ascending
12455         address and increasing size,
12456         * main.c (_pic16_finaliseOptions): removed the declaration
12457         of compiler macro MCU. Now a macro of the format pic18fxxxx
12458         will be defined from the command line
12459
12460 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12461             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
12462
12463         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
12464         PCOP_RLCF was overwritten!
12465         * gen.c (genSkip): commented out calls to pic16_emitcode,
12466         * (genCmpEQ): fixed "long" compares, only high word did get compared,
12467         * (genlshTwo),
12468         * (genRRC): added debugging info,
12469         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
12470         overwritten while shifting,
12471         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
12472         overwritten while shifting,
12473         * (AccLsh),
12474         * (AccRsh),
12475         * (shiftLLeftOrResult),
12476         * (shiftRLeftOrResult),
12477         * (shiftRLong),
12478         * (shiftLLong): Implemented with pic16_emitpcode
12479         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
12480         * (genLeftShift): Fixed bug, operand for shift by variable always
12481         was "and"ed with 0x0f,
12482         * (genLeftShiftLiteral),
12483         * (genrshTwo),
12484         * (genRightShiftLiteral): added debugging info,
12485         * (genrshFour): added comment,
12486         * (genRightShift): determined signedness from operand "left"
12487         instead of "result"
12488
12489 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12490
12491         * src/SDCCicode.c (geniCodeParms),
12492         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
12493         function pointers, fixed function pointer bugs #861242 and #861896
12494
12495 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12496
12497         * device/include/c8051f000.h,
12498         * device/include/c8051f120.h,
12499         * device/include/c8051f300.h: added header files for Silicon
12500         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
12501
12502 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
12503
12504         * src/SDCCast.c (processParams): added new type flow and restructured
12505         (gatherAutoInit): added new type flow
12506         (addCast): cosmetic changes
12507         (getLeftResultType): added new type flow for array indices, patch
12508         provided by Stas, see FR #877103
12509         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
12510         array index patch by Stas
12511         * src/SDCCast.h: added prototype getResultTypeFromType()
12512         * src/SDCCval.h,
12513         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
12514         * src/pic/glue.c (pic14emitStaticSeg),
12515         * src/pic16/glue.c (pic16emitStaticSeg),
12516         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
12517         for initialization of symbols
12518         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
12519         * support/Util/SDCCerr.h:
12520         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
12521         * .version: bumped version number to 2.3.8
12522         * device/include/Makefile.in (install),
12523         * doc/Makefile (install): changed to 'rm `find ...`' construct to
12524         avoid warnings
12525
12526 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
12527
12528         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
12529         Slade Rich fixed an optimization bug
12530         * src/pic/pcodepeep.c,
12531         * src/pic/pcoderegs.c
12532         * doc/Makefile (install): added test for directory
12533
12534 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12535
12536         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
12537         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
12538         * src/pic/ralloc.c (getRegPtr, getRegGpr),
12539         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
12540         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
12541         * as/mcs51/asexpr.c (term),
12542         * as/hc08/asexpr.c (term): fixed bug #887146
12543
12544 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12545
12546         * src/z80/gen.c (genMult): handle single byte result product
12547         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
12548         DUMMY_READ_VOLATILE (fixed bug #886367)
12549
12550 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
12551
12552         * support/regression/tests/libmullong.c: fixed logic, on little endian
12553         hosts we ended without a mullong_wrapper()
12554
12555 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12556
12557         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
12558         virus/worm forged address usage.
12559
12560 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
12561
12562         Fixed promotion, it should be done on AST level:
12563         * src/SDCCast.c (addCast): added promotion to int
12564         (decorateType): updated call to upCast()
12565         * src/SDCCicode.c (geniCodeLeftShift): removed call to
12566         usualUnaryConversions()
12567
12568 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
12569
12570         * support/regression/tests/literalop.c (mulWrapper): Added a
12571         wrapper to remove integer overflow warnings.
12572
12573         * support/regression/tests/float_trans.c: Made work on host.
12574
12575         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
12576         location of sz80.
12577
12578         * support/regression/generate-cases.py (main): Changed from inline
12579         to a main method.
12580
12581         * doc/Makefile (install): Changed to depth first to get rid of
12582         missing directory install warning.
12583
12584         * as/Makefile (install-doc): Made work on Mac.
12585
12586 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
12587
12588         * src/SDCCast.c: added an additional type flow in decorateType() of
12589         opposite direction, see feature request #860006; it's enabled at runtime
12590         by setting the environment variable SDCC_NEWTYPEFLOW
12591         * src/SDCCast.h: changed prototype of decorateType()
12592         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
12593         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
12594         'char' to 'int' can be omitted, if both operands are 'unsigned char';
12595         see feature request #877103
12596         * src/SDCCval.c: updated call of decorateType()
12597         (valBitwise): fixed bug #882876
12598         (valMinus): added promotion
12599         (valLogicAndOr): result is unsigned
12600         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
12601         * src/SDCCsymt.c (computeType),
12602         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
12603         must not cause an unsigned operation
12604         * src/pic/glue (pic14emitRegularMap),
12605         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
12606
12607 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
12608
12609         * src/pic/pcode.c (PCodeID): commented out left over debug code
12610
12611 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
12612
12613         * support/valdiag/tests/overflow.c: added shift tests
12614         * src/pic/device.c,
12615         * src/pic/gen.c,
12616         * src/pic/gen.h,
12617         * src/pic/glue.c,
12618         * src/pic/main.c,
12619         * src/pic/pcode.c,
12620         * src/pic/pcode.h,
12621         * src/pic/pcodepeep.c,
12622         * src/pic/pcoderegs.c,
12623         * src/pic/ralloc.c,
12624         * src/pic/ralloc.h: applied patch from Slade Rich;
12625         added support for multiple code pages and multiple RAM banks on the
12626         PIC 14 port. The ASM files now no longer simply assume all the
12627         code / RAM are in the same page / bank. This means the linker can
12628         safely allocate code/RAM of separate ASM files to different pages/banks.
12629         * doc/sdccman.lyx: added Slade's tips
12630         * src/mcs51/peeph.def: fixed bug #880768
12631
12632 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12633
12634         * src/hc08/ralloc.c (rematStr): fixed bug #879282
12635         * src/SDCCast.c (decorateType): fixed bug #880197
12636
12637 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
12638
12639         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
12640         getopt.h.
12641
12642         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
12643         strtof is not part of C89 and isn't included with Mac OS X.
12644
12645 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12646
12647         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
12648         shiftL2Left2Result): fixed bug #879326
12649         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
12650         (genMultOneByte): fixed bug in signed vs unsigned multiplication
12651         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
12652         address fetch for clr instruction
12653         * device/lib/hc08/_mulint.c: created optimized assembly version
12654         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
12655
12656 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
12657
12658         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
12659         proposed in FR #877103
12660
12661 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
12662
12663         * src/SDCCval.c (cheapestVal): added missing checks
12664         * src/SDCCicode.c (usualBinaryConversions): fixed condition
12665         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
12666
12667 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
12668
12669         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
12670         equal operands
12671
12672 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
12673
12674         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
12675         loaded with the linker search paths (-L arguments) and the libraries
12676         to be linked with the current source (-l arguments). Changes
12677         currently will affect only the pic16 port.
12678         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
12679         include path the port specific paths and port specific libraries,
12680         * gplink command now contains the $3 argument,
12681         * src/pic16/device.h,
12682         * src/pic16/device.c,: structure PIC_device is made public and
12683         renamed to PIC16_device, the same for variable Pics which is renamed
12684         to Pics16. Updated all references to them.
12685         * src/pic16/glue.c (pic16glue): corrected bug with code
12686         initialization which bypassed the variable initializations block.
12687
12688         * device/lib/pic16/Makefile.rules: removed --penable-stack from
12689         COMPILE_FLAGS and added the --nostdinc option
12690
12691 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12692
12693         * device/include/mc68hc908jb8.h: Register defs for another member
12694         of the hc08 family. Contributed by Bjorn Bringert - thanks!
12695
12696 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
12697
12698         Documenting changes from previous commits.
12699         * configure.in (version 1.56),
12700         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
12701         when generating output files to configure the pic16 library,
12702         but now I've commented it out, since gputils aren't installed in the
12703         SF compile farm, so library won't compile
12704
12705         * device/lib/Makefile.in (version 1.56): initially I've added in
12706         target 'all' the prerequestive 'model-pic16' so it compiled the
12707         pic16 library, but now I've commented it out for the same reasons
12708         above,
12709         * added targets 'model-pic16' and 'objects-pic16' to compile the
12710         library
12711         * added target 'port-specific-objects-pic16' to handle the
12712         generated libraries and copy them into the build/ directory
12713         * added target 'clean-intermediate-pic16' to clean intermediate
12714         files into pic16 directory
12715         * in target 'installdirs' added line to create directory pic16 in
12716         the installation path
12717
12718         * device/include/Makefile.in (version 1.11): in target 'install'
12719         added lines to copy all header files to installation path,
12720         * in target 'installdirs' added line create directory for pic16
12721         headers in the installation path
12722
12723 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
12724
12725         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
12726          a function call
12727
12728 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
12729
12730         * configure,
12731         * device/lib/configure.in,
12732         * device/lib/configure: fixed for autoconf 2.57
12733
12734 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12735
12736         * src/z80/main.c (_parseOptions): fixed the portmode= command line
12737         option so that it actually works. Made it specific to the z80, since
12738         the gbz80 doesn't have these kinds of I/O ports.
12739
12740 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12741
12742         * device/include/z180.h,
12743         * device/lib/_memcpy.c,
12744         * device/lib/_memmove.c,
12745         * device/lib/_mulint.c,
12746         * device/lib/ser_ir.c,
12747         * device/lib/ser_ir_cts_rts.c,
12748         * device/lib/_strcmp.c,
12749         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
12750         * src/z80/main.c (_process_pragma): add support for pragmas bank and
12751         portmode; added deprecation warning for bank= and protmode= forms.
12752         Also, guard against buffer overflow.
12753         * src/z80/gen.c (aopGet): generate better code for sfr banked read
12754
12755 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12756
12757         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
12758         changed interrupt vector table generation to only emit declared vectors.
12759         * device/include/Makefile.in: added missing backslash
12760         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
12761
12762 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
12763
12764         Mainly changes to support compilation of the device libraries
12765         * src/pic16/device.c: stack is allocated via symbol and not
12766         via literal number. The symbol is placed in the corresponding
12767         position of the data ram
12768         * (pic16_dump_section): relocatable and absolute uninitialized
12769         data are now emitted in sorted order to reduce section naming,
12770         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
12771         weren't marked as being in the access bank,
12772
12773 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
12774
12775         Added portion of GNU PIC Library under the directory
12776         device/include/pic16 and device/lib/pic16. These files
12777         contain the declarations of SFRs for the PIC18Fxx2 devices.
12778         The directory is initialized via configure from toplevel.
12779
12780 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
12781
12782         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
12783         the spilllocations to be compared correctly
12784
12785 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
12786
12787         * src/SDCCast.c (decorateType): fixed bug introduced today
12788
12789 2004-01-12  Borut Razem <borut.razem AT siol.net>
12790
12791         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
12792         doc/sdccman.lyx: upper case pragmas are deprecated
12793
12794 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
12795
12796         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
12797         in simpler and even better code
12798
12799 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
12800
12801         * src/SDCCicode.c (operandOperation): fixed bug #874819
12802         * src/SDCCast.c (decorateType): fixed
12803         char foo (unsigned long ul) { return ul > 0; }
12804
12805 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12806
12807         * doc/sdccman.lyx: Moved and added some sections, small changes
12808         all over. Telling LaTeX to be less strict with word spacing
12809         to better keep the right margin. Changed some notes about
12810         maintainance of the ports in section 3.2.1 - is it OK like this?
12811
12812 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
12813
12814         SDCC source changes:
12815         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
12816         convilong): modified to inform the pic16 port that builtin functions
12817         are external
12818
12819         PIC16 PORT specific changes:
12820         * src/pic16/device.c pic16_dump_equates() added,
12821         processor registers declared internally by the port are emitted in
12822         the translation as equates,
12823         * src/pic16/gen.c: inline code is passed unprocessed to the
12824         translation,
12825         * (pic16_popGetLit2): fnuction modified to take second operand as
12826         pCodeOp pointer and not as literal,
12827         * (popRegFromIdx): prefixed with pic16_,
12828         * (pic16_popCombine2): modified to receive already allocated pCode
12829         operands,
12830         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
12831         * (genFunction): initializes local stack frame and pushes on stack
12832         all the registers used by this function,
12833         * (genEndFunction): restores all registers from stack and restores
12834         stack frame,
12835         * src/pic16/glue.c (pic16emitRegularMap): various changes and
12836         improvements,
12837         * (pic16glue): changed the program startup sequence,
12838         * added new dbName code 'A' for functions placed in absolute section
12839         * src/pic16/main.c: added function attribute _naked,
12840         * added pragma 'code' to place a fnuction at an absolute address,
12841         * added command line arguments --debug-ralloc and --pcode-verbose,
12842         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
12843         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
12844         * (pic16_newpCodeOpLit2): modified to take the second operand as
12845         pCodeOp pointer,
12846         * (pic16_printpBlock): modified to emit each function in a separate
12847         section,
12848         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
12849         UPPER for immediate operands,
12850         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
12851         instruction,
12852         * src/pic16/peeph.def: all peepholes with movff are commented out,
12853         because there is a problem in the pcode peep optimizer,
12854         * src/pic16/ralloc.c: the register allocator can now reuse local
12855         function symbols for another function. This saves register usage.
12856         * src/pic16/ralloc.h: added flag isLocal in structure regs,
12857
12858         Added file src/pic16/NOTES with information about program writing on
12859         the current port version.
12860
12861 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12862
12863         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
12864         and peephole 252 (array access)
12865
12866 2004-01-09  Borut Razem <borut.razem AT siol.net>
12867
12868         * src/SDCCmain.c : fixed #872250: -l command line defined library
12869           files are scanned before standard library files
12870
12871 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12872
12873         * src/SDCCast.c (decorateType): fixed bug #874046
12874
12875 2004-01-09  Borut Razem <borut.razem AT siol.net>
12876
12877         * support/scripts/sdcc.nsi: remove previous installation
12878
12879 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12880
12881         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
12882         bytes for last interrupt vector (mcs51)
12883         * sdcc.spec: fixed typo
12884
12885 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12886
12887         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
12888         gen51Code): more efficient parameter receive for --model-large
12889         ("bug" #845294)
12890
12891 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12892
12893         * src/ds390/main.c,
12894         * src/z80/main.c: added missed needLinkerScript flags (more than
12895         one port structure defined in these file)
12896         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
12897         bug #795325
12898
12899 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
12900
12901         * src/SDCCmain.c: removed various references to DEFAULT_PORT
12902         * src/port.h: added flag needLinkerScript in port->linker
12903         structure to inform whether to create a .lnk file or not,
12904         * src/avr/main.c,
12905         * src/ds390/main.c,
12906         * src/hc08/main.c,
12907         * src/mcs51/main.c,
12908         * src/pic/main.c,
12909         * src/pic16/main.c,
12910         * src/xa51/main.c,
12911         * src/z80/main.c: changed appropriately to configure
12912         needLinkerScript flag
12913         * src/pic/gen.c,
12914         * src/pic16/gen.c (genAddrOf): fixed bug #863624
12915         * src/pic/glue.c: added variable udata_section_name to
12916         override default uninitialized data segment definition for
12917         devices only with SHAREBANK memory (reported from Erik Epetrich)
12918         * (pic14emitOverlay): modified to emit a commented overlay segment
12919         directive when no overlay data exist
12920         * (picglue): modified to emit uninitialized data segment
12921         according to udata_section_name
12922         * src/pic/main.c (_pic14_parseOptions): added command line
12923         options --udata-section-name=[name] to override default
12924         udata definition name
12925         * modified _linkCmd and _asmCmd to include compiler passed
12926         arguments via -W option
12927         * src/pic16/main.c: added $l in _asmCmd, changed extension for
12928         object file from '.rel' to '.o' in port->linker structure,
12929         changed size of fptr from 2 to 3 in port structure
12930
12931 2004-01-07  Borut Razem <borut.razem AT siol.net>
12932
12933         * support/scripts/sdcc.nsi: update PATH
12934         * support/scripts/sdcc.ico: craeted
12935
12936 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
12937
12938         * device/include/Makefile.in: fix install
12939         * doc/Makefile: fix install
12940
12941 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12942
12943         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
12944         in bug #860505
12945         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
12946         how the function variable allocation summary is displayed; also
12947         include information about variables allocated to the overlay
12948         segment
12949
12950 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12951
12952         * as/mcs51/lkmain.c: Help about -Y option
12953         * as/mcs51/lkarea.c: Fixed gcc warnings
12954
12955 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
12956
12957         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
12958         fixed warning
12959         * support/valdiag/tests/overflow.c: added
12960         * src/SDCCast.c (decorateType),
12961         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
12962         LEFT_OP (left shift)
12963
12964 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12965
12966         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
12967         (default behaviour).
12968
12969 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12970
12971         A python script to validate compiler diagnostic messages. It can be
12972         used to verify that sdcc complains about bad c source code and
12973         gives a good location of the error.
12974         * support/valdiag/Makefile,
12975         * support/valdiag/valdiag.py,
12976         * support/valdiag/tests/*
12977
12978 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12979
12980         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
12981         * src/SDCCsymt.c (newEnumType),
12982         * src/SDCCsymt.h
12983         * support/Util/SDCCerr.c,
12984         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
12985         enum related bugs.
12986         * support/regression/tests/enum.c: added test for enum values that
12987         require at least 2 bytes of storage.
12988
12989 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
12990
12991         * src/common.h: added ifndef/define/endif macros
12992         around the header file.
12993         Bug reported from Jesus Calvino-Fraga
12994
12995 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
12996
12997         * sdcc.spec: updated
12998         * device/include/Makefile.in: don't install CVS directories
12999         * device/lib/Makefile.in: added removal of CVS directories after install
13000         * doc/Makefile: fixed install, added local_icons
13001         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
13002         * src/mcs51/gen.c (genRightShift): fixed bug #870788
13003         * src/ds390/gen.c (genRightShift): fixed bug #870788
13004         * src/SDCCast.c (decorateType): fixed bug #870781
13005
13006 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
13007
13008         PIC16 port related changes:
13009         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
13010         added variable stackPos,
13011
13012         * gen.c: genCall, assignResultValue: added support for
13013         pushing/retrieving function parameters to/from stack,
13014         genFunction,genEndFunction: setup stack frame for the
13015         generated function,
13016         genAddrOf: will be changed according to bug 863624
13017
13018         * added files genutils.c and genutils.h which contain gen*
13019         debugged and optimised functions extracted from gen.c
13020
13021         * glue.c: added variable 'externs' which holds extern symbols,
13022         pic16emitRegularMap: is modified to properly handle relocatable
13023          symbols under the new scheme,
13024         pic16createInterruptVect: is modified
13025         pic16printPublics: is modified to emit 'global' assembler directives,
13026         added pic16_printExterns to print extern symbols,
13027         pic16glue: initializes stack/frame pointer in the beginning of
13028         the assembly output. Temporary hack, will be corrected later,
13029         because gplink yet does not support stack and SDCC does not
13030         yet support a type of crt0.o object to create the final binary.
13031
13032         * Removed many lines that contain 8051 legacy code.
13033         * The code is finally placed under a 'code' directive.
13034         * Added port specific options.
13035
13036         * _process_pragma: simplified since now we do not need *special*
13037         include file to define SFR registers. But a separate header
13038         will be needed. This will be developed later.
13039         * _pic16_parseOptions: added, parses port specific options:
13040         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
13041         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
13042         --preplace-udata-with=
13043
13044         * _pic16_setDefaultOptions: modified to initialize section names,
13045         but hack is temporarly out of order since it needs improvement.
13046         * _pic16_genAssemblerPreamble: configuration words are emitted by
13047         their address instead of their name. This part is incomplete and
13048         supports only the 18Fxx2 devices. Other devices will emit an error
13049         during assembly since they do not contain the same set of config
13050         registers
13051         * _pic16_genIVT: is modified,
13052
13053         * pcode.c: added definitions for some hardware registers that are needed
13054         for stack support
13055         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
13056         All PCI entries are updated. Now LFSR is supported.
13057         * Removed pic16_pciTRIS is mentioned by mdubuc in source
13058         * added pic16_newpCodeOpLit2 to support instructions with
13059         two literal arguments
13060         * pic16_pCode2str: corrected code that emits assembler instructions
13061         with two literal operands and those that have an access bit modifier
13062         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
13063         this fixes a bug which caused some labels to be lost, when an
13064         assembler directive was added, i.e. banksel,
13065         * pic16_FixRegisterBanking: improved logic that causes the insertion
13066         of bank switching,
13067         * InlineFunction: functions that are called once, are not any more
13068         inlined. This can be a port option in the future,
13069
13070         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
13071
13072         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
13073         hold the corresponding uninitialized symbols,
13074         * pic16_allocProcessorRegister: registers have explicit marked the
13075         accessBank field,
13076         * pic16_allocInternalRegister: registers are explicit marked as
13077         not used,
13078         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
13079         processing list, so bit registers were lost,
13080         *
13081
13082         * ralloc.h: added field 'accessBank' and original symbol operand
13083         in register definition,
13084         * removed the field isMapped from register definition,
13085
13086         ** Several functions have been removed from various sources:
13087         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
13088         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
13089         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
13090         pic16_assignRelocatableRegisters
13091
13092         ** others have been introduced:
13093         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
13094         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
13095
13096 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
13097
13098         * support/scripts/inc2h.pl: changed definition of BIT_AT
13099         to emit 'sbit at' instead of 'bit at'. This was a request.
13100
13101         PIC16 port related preliminary changes:
13102         * gen.c: prefixed function popRegFromString with
13103         pic16_ and all references to it corrected
13104         * pcode.c: all pic16_pc_* hardware registers prefixed
13105         with underscore (_),
13106         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
13107         * ralloc.c: newReg(): when register is REG_SFR then
13108         set address to rIdx,
13109         pic16_allocProcessorRegister(): marks register wasUsed=0
13110         pic16_writeUsedRegs(): added a call to assign processor
13111         registers via pic16_assignFixedRegisters
13112
13113 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13114
13115         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
13116         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
13117         variables in unused register banks.  Also the SSEG is placed
13118         wherever there is enough space for it, and IDATA can be anywhere
13119         in internal RAM.  For now compile using -Wl-Y[stack_size].
13120         The mem file is different for this option as well, since it
13121         makes no sense of talking about DSEG lenght.
13122
13123 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
13124
13125         * src/SDCClrange.c: fixed bug 869095 that caused segfault
13126         in certain cases, e.g. when ROM assignment, patch provided
13127         from Albert den Haan.
13128
13129 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
13130
13131         Many signedness and type propagation fixes:
13132         * src/SDCCicode.c: made geniCodeCast() static
13133         replaced SPEC_ by IS_ (cosmetic)
13134         (operandOperation): fixed div and mod operation
13135         (usualBinaryConversions): added support for promotion of char
13136         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
13137         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
13138         (geniCodeAdd): an array index will stay unsigned, even if promoted
13139         from char to int
13140         (geniCodeArray): ditto
13141         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
13142         * src/SDCCsymt.c (computeType): added more support for char;
13143         promotion of char is selectable by promoteCharToInt, fixed signedness
13144         for all cases
13145         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
13146         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
13147         * src/SDCCval (val*): replaced signedness calculation by
13148         computeType()
13149         rearranged if-branches (cosmetic)
13150         (valShift): added warning W_SHIFT_CHANGED
13151         (valCompare): fixed problem with different types
13152         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
13153         * support/regression/tests/literalop.c: added many cases
13154         * support/regression/tests/ast_constant_folding.c: changed finally to
13155         'unsigned int'
13156         * .version: new year, new version: 2.3.7
13157         * src/SDCCmain.c (main): applied patch #866468
13158         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
13159         provided by Scott Bronson
13160         * doc/sdccman.lyx: updated documentation for sdcdb
13161         updated and added chapter tips
13162
13163 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13164
13165         * src/SDCCsymt.h: missing from yesterday's commits
13166
13167 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13168
13169         * src/SDCC.y (struct_or_union_specifier),
13170         * support/Util/SDCCerr.c,
13171         * support/Util/SDCCerr.h: verify that struct & union tags are used
13172         as declared.
13173
13174 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13175
13176         * src/SDCCglobl.h: missing from yesterday's commits
13177
13178 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13179
13180         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
13181         sft_attributes, struct_declaration, parameter_declaration,
13182         type_name, start_block, declaration_list),
13183         * src/SDCC.lex (check_type): support redefinition of typedef names
13184
13185 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13186
13187         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
13188         aligned xdata arrays. Erik helped me with the if clause.
13189
13190 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13191
13192         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
13193         warning
13194
13195 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13196
13197         * src/SDCCast.h,
13198         * src/SDCCast.c (newAst_),
13199         * src/SDCCicode.h,
13200         * src/SDCCicode.c (ast2iCode, newiCode),
13201         * src/SDCCglobl.h,
13202         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
13203         expr, statement, expression_statement, selection_statement,
13204         iteration_statement, expr_opt, jump_statement): foundation for tracking
13205         sequence points
13206         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
13207         point code too)
13208
13209 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13210
13211         * support/Util/SDCCerr.c,
13212         * src/SDCCast.h,
13213         * src/SDCCast.c (createCase, createDefault, decorateType),
13214         * src/SDCClabel.c (labelUnreach),
13215         * src/SDCC.y (labeled_statement, jump_statement): More improvements
13216         to error messages.
13217         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
13218         (with thanks to Stas Sergeev)
13219         * device/include/time.h,
13220         * device/lib/time.c (CheckTime): suppress unreachable code warning
13221
13222 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13223
13224         * src/SDCCast.c (createIvalCharPtr),
13225         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
13226         bug #753752)
13227         * support/regression/tests/nullstring.c: tests for these two bugs
13228
13229 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13230
13231         * support/Util/SDCCerr.h,
13232         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
13233         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
13234         about storage class and 'at' used inside struct or union
13235         * src/SDCCBBlock.c (iCodeFromeBBlock),
13236         * src/SDCCcse.c (ifxOptimize),
13237         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
13238         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
13239         printIval, emitStaticSeg, emitOverlay),
13240         * src/SDCClabel.c (deleteIfx),
13241         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
13242         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
13243         gatherAutoInit, processParms),
13244         * support/Util/SDCCerr.h,
13245         * support/Util/SDCCerr.c (werrorfl): Support for better error location
13246         reporting for post-parse errors.
13247
13248 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13249
13250         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
13251         implicit casts via union; they don't work on big endian systems
13252         (possible fix for bug #861138)
13253
13254 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13255
13256         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
13257         * src/mcs51/main.c: fixed the fix for bug #737001
13258
13259 2003-12-15  Borut Razem <borut.razem AT siol.net>
13260
13261         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
13262
13263 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13264
13265         * support/makebin/makebin.c: put output in binary mode
13266
13267 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13268
13269         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
13270         xdata and data memory on startup. Set the environment variable
13271         SDCC_NOGENRAMCLEAR to disable this.
13272         * src/mcs51/peephole.def,
13273         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
13274         (allows non-interrupt and interrupt code to safely compete for a resource
13275         without the non-interrupt code having to disable interrupts)
13276
13277 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13278
13279         * src/SDCCicode.c (geniCodeAdd),
13280         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
13281         with valFromType if type might be a pointer and host is big endian).
13282         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
13283         types, not just integer types.
13284         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
13285         multiply defined with mismatching "at" address.
13286
13287 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13288
13289         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
13290         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
13291         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
13292         with embedded nulls (fixed bug #753752)
13293
13294 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13295
13296         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
13297         Apparently this did not see much testing (endless loop)
13298
13299 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13300
13301         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
13302
13303 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13304
13305         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
13306         gracefully handle NULL memmap pointers
13307
13308 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13309
13310         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
13311         instead of deleting the iCode when an operand is volatile
13312         * src/z80/gen.c (genDummyRead),
13313         * src/mcs51/gen.c (genDummyRead),
13314         * src/ds390/gen.c (genDummyRead),
13315         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
13316         not just IC_RIGHT
13317         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
13318         * src/SDCC.y: fixed bug #850420
13319
13320 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13321
13322         Applied z80 i/o port patch from Peter Townson and fixed some operators
13323         to better handle operands in A register.
13324         * device/include/z180.h
13325         * src/SDCC.y
13326         * src/SDCCglue.c
13327         * src/z80/gen.c
13328         * src/z80/gen.h
13329         * src/z80/main.c
13330         * src/z80/peeph-z80.def
13331         * src/z80/peeph.def
13332         * src/z80/z80.h
13333
13334 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13335
13336         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
13337
13338 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13339
13340         * device/lib/hc08/_mullong.c: Removed extra #endif
13341
13342 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13343
13344         * sim/ucsim/hc08.src/inst.cc,
13345         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
13346         carries from x to h
13347         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
13348         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
13349         * device/include/stdarg.h: fixed varargs for hc08
13350         * device/lib/Makefile.in,
13351         * device/lib/hc08/Makefile,
13352         * device/lib/hc08/_mulint.c,
13353         * device/lib/hc08/_mullong.c: fixed some endian problems
13354
13355 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13356
13357         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
13358         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
13359         * device/lib/_gptrget.c,
13360         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
13361
13362 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13363
13364         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
13365         * src/SDCCast.c (astErrors): fixed bug #846007
13366         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
13367
13368 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13369
13370         * src/SDCCast.c (decorateType): disabled a transformation I added in
13371         revision 1.188 (access to fields of a structure at an absolute address);
13372         it breaks with bitfields, extern declarations, and gcse analysis.
13373         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
13374         could be assigned through a pointer, so don't complain.
13375         * src/SDCCast.c (astErrors),
13376         * src/SDCCast.h,
13377         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
13378
13379 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
13380
13381         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
13382         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
13383         output of __config directives, since gpasm now supports them
13384         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
13385         pre-processor macro, i.e. -DMCU=p18f452
13386         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
13387         and modified to handle 'cast' icode similarly to '=' icode
13388         * src/pic16/device.h (typedef struct PIC_device): added field
13389         'extMIface' to indicate that chip has external memory interface
13390         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
13391         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
13392         18F8720
13393
13394 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13395
13396         * src/SDCC.y (pointer): fixed bug #846006
13397         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
13398         * src/SDCCast.c (decorateType): fixed bug #846009
13399         * src/ds390/peeph.def,
13400         * src/ds390/gen.c (genAnd, genOr),
13401         * src/mcs51/peeph.def,
13402         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
13403
13404 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13405
13406         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
13407         * src/SDCCdflow.c
13408         * src/SDCCcse.c
13409         * src/SDCCcse.h
13410         * src/SDCCBBlock.h
13411         * src/SDCCBBlock.c
13412
13413 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
13414
13415         fixed bug #845089
13416         * src/SDCCbitv.h,
13417         * src/SDCCbitv.c: added function to free a bitvector
13418         * src/SDCClrange.h,
13419         * src/SDCClrange.c: added function to recompute the liveranges
13420         * src/avr/ralloc.c,
13421         * src/ds390/ralloc.c,
13422         * src/hc08/ralloc.c,
13423         * src/mcs51/ralloc.c,
13424         * src/pic/ralloc.c,
13425         * src/pic16/ralloc.c,
13426         * src/xa51/ralloc.c,
13427         * src/z80/ralloc.c: recompute the liveranges after register packing
13428
13429 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
13430
13431         * src/SDCCloop.c (newInduction): fixed bug #845630
13432
13433 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13434
13435         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
13436         inadvertantly left behind from my 2003-11-12 change
13437
13438 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13439
13440         Updated headers I neglected to commit yesterday.
13441         * src/SDCClrange.h,
13442         * src/SDCCicode.h
13443
13444 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13445
13446         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
13447         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
13448         * src/SDCCopt.c (eBBlockFromiCode),
13449         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
13450         the creation of the key hash table from the sequencing so it can be used
13451         earlier (for some GCSE bug fixes still pending)
13452
13453 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13454
13455         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
13456         * support/regression/tests/addsub.c: testing genPlus shortcut
13457
13458 2003-11-15  Borut Razem <borut.razem AT siol.net>
13459
13460         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
13461
13462 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13463
13464         * src/SDCCcse.c (cseBBlock): fixed bug #527779
13465         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
13466         ordering is immaterial.
13467         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
13468
13469 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13470
13471         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
13472         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
13473         (SIGSEV) of bug #840381
13474         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
13475         unlink new file before rename if new and old filenames are the same)
13476
13477 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13478
13479         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
13480         uninitialized variables) for the mcs51. Set environment variable
13481         SDCC_GENRAMCLEAR to test.
13482         xdata initialization slightly shorter
13483
13484 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13485
13486         * src/SDCCsymt.h,
13487         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
13488         #838241 & 780691 (basicly the same bug)
13489         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
13490         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
13491
13492 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
13493
13494         * src/SDCCmain.c (linkEdit): "fix" #834252
13495
13496 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13497
13498         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
13499         * src/SDCCast.h,
13500         * src/SDCC.y: fixed bug #819403
13501
13502 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13503
13504         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
13505         the reentrant attribute.
13506         * src/hc08/gen.c (genPackBits): added missing stack readjustment
13507         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
13508         simulation
13509         * src/SDCCast.c (decorateType): fixed bug with storage class not being
13510         updated during pointer dereference; f.e. ~(((char *)1)*) was being
13511         erroneously reduced to a literal.
13512         * src/hc08/ralloc.c (packRegisters, rematStr),
13513         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
13514         some cases
13515
13516 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13517
13518         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
13519         * doc/sdccman.lyx: changed from 'article' to 'book'
13520         * doc/Makefile: readded test_suite_spec and cdbfileformat
13521
13522 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
13523
13524         * device/include/stdlib.h: include malloc.h to comply with ANSI
13525         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
13526
13527 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13528
13529         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
13530         * doc/clean.mk: also remove *.out files
13531         * doc/sdccman.lyx: some additions, larger top/bottom margins
13532
13533 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13534
13535         * src/SDCC.y: fixed bug #837365
13536         * support/regression/tests/bitopcse.c
13537         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
13538         a symbol (might be valop instead)
13539         * device/lib/Makefile.in: added errno.c to HC08SOURCES
13540         * device/lib/clean.mk: added hc08 to the cleaning list
13541
13542 2003-11-04  Borut Razem <borut.razem AT siol.net>
13543
13544         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
13545           made 2003-11-04
13546         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
13547           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
13548           malloc is declared in standard stdlib.h
13549
13550 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13551
13552         * device/lib/hc08/Makefile: need to clean .rel not .o files
13553         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
13554
13555 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13556
13557         * src/port.h,
13558         * src/hc08/main.c,
13559         * src/mcs51/main.c,
13560         * src/ds390/main.c,
13561         * src/z80/main.c,
13562         * src/avr/main.c,
13563         * src/pic/main.c,
13564         * src/pic16/main.c,
13565         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
13566         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
13567         tests (which uses the port's oclsExpense function)
13568         * src/SDCC.y,
13569         * src/SDCCast.c,
13570         * src/SDCCicode.c,
13571         * src/hc08/gen.c,
13572         * src/ds390/gen.c,
13573         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
13574
13575 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13576
13577         * src/SDCCcse.c (ifxOptimize),
13578         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
13579         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
13580         deleting the IFX iCode.
13581         * src/hc08/ralloc.c: reduced unneeded slocs
13582         * src/hc08/gen.c: fixed bug in asmopToBoolean
13583
13584 2003-11-04  Borut Razem <borut.razem AT siol.net>
13585
13586         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
13587           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
13588           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
13589           transferred to configure
13590
13591 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
13592
13593         Use headers defined in the C[++] standards:
13594         * sim/ucsim/gui.src/serio.src/fileio.cc
13595         * sim/ucsim/gui.src/serio.src/frontend.cc
13596         * sim/ucsim/gui.src/serio.src/main.cc
13597         * sim/ucsim/gui.src/serio.src/posix_signal.cc
13598         * support/Util/NewAlloc.c
13599         * as/hc08/lklibr.c
13600         * as/mcs51/lklibr.c
13601         * as/z80/aslist.c
13602         * as/z80/assym.c
13603
13604 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13605
13606         * Added MSVC projects for hc08 assembler and linker:
13607         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
13608         /as/hc08/link_hc08.dsp
13609
13610 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
13611
13612         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
13613
13614 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
13615
13616         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
13617
13618 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13619
13620         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
13621
13622 2003-10-31  Borut Razem <borut.razem AT siol.net>
13623
13624         * support/cpp2/cpplib.h,
13625           support/cpp2/cpplib.c,
13626           support/cpp2/cpplex.c,
13627           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
13628           to switch _asm block preprocessing on / off. Default is
13629           #pragma preproc_asm +
13630
13631 2003-10-31  Borut Razem <borut.razem AT siol.net>
13632
13633         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
13634           when outputting comment blocks (when executed with -C option) and
13635           _asm (SDCPP specific) blocks
13636
13637 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13638
13639         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
13640
13641 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
13642
13643         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
13644
13645 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
13646
13647         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
13648         * src/SDCCast.c (decorateType): fixed bug #832664
13649
13650 2003-10-31  Borut Razem <borut.razem AT siol.net>
13651
13652         * support/cpp2/cpplex.c: fixed for SDCPP:
13653           comments(when executed with -C option) and _asm blocks
13654           were included even if they where in skipped #if block.
13655           Applied solution from GCC cpp 3.3.2
13656
13657 2003-10-31  Borut Razem <borut.razem AT siol.net>
13658
13659         * src/SDCC.lex: sdcc now understands both formats:
13660           '# <line_number> <file_name>' and
13661           '#line <line_number> <file_name>'
13662         * support/cpp2/cppmain.c: sdcpp now generates the standard
13663           '# <line_number> <file_name>' instead of former
13664           '#line <line_number> <file_name>'
13665
13666 2003-10-30  Borut Razem <borut.razem AT siol.net>
13667
13668         * support/cpp2/cpphash.h,
13669         * support/cpp2/cpplib.h
13670         * support/cpp2/cpplex.c,
13671         * support/cpp2/cppmain.c,
13672         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
13673
13674 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13675
13676         Fixed a number of problems revealed by bug #827883.
13677         * src/SDCCloop.c (loopInvariants): Spill location of the
13678         result operand should be recomputed if extracted from
13679         a loop. Also, don't extract assignments of an iTemp
13680         from a literal.
13681         * src/SDCCast.c (isConformingBody): loop reversal should
13682         not occur if the control variable is involved with a
13683         relational operator.
13684
13685 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
13686
13687         * .version: bumped to 2.3.6 to reflect the big improvements
13688         made by Erik and Klaus. Thanks!
13689
13690 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
13691
13692         Replaced the livrange code.
13693         * src/SDCClrange.c: added new LR code
13694         * src/SDCCloop.c,
13695         * src/SDCCBBlock.h: removed remainig parts from old LR code
13696         * src/ds390/ralloc.c,
13697         * src/ds390/gen.c: minor fixes to make it work with new code
13698
13699 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13700
13701         * as/hc08/asm.h,
13702         * as/hc08/lkrloc.c,
13703         * src/hc08/gen.c,
13704         * src/hc08/ralloc.c: Fix various warnings related to the hc08
13705         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
13706         (tweaked fix for bug #818696)
13707
13708 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13709
13710         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
13711
13712 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13713
13714         * src/SDCCmain.c,
13715         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
13716         * src/mcs51/gen.c (gencjneshort),
13717         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
13718         more efficient (per Scott Bronson's suggestion)
13719
13720 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13721
13722         Extended the semantics of the critical keyword to include
13723         individual statements. See RFE #827755 and #799831
13724         * src/SDCC.y
13725         * src/SDCCicode.c
13726         * src/SDCCopt.c
13727         * src/SDCCast.c
13728         * support/Util/SDCCerr.c
13729         * support/Util/SDCCerr.h
13730         * src/mcs51/gen.c
13731         * src/ds390/gen.c
13732         * src/hc08/gen.c
13733
13734 2003-10-19  Borut Razem <borut.razem AT siol.net>
13735
13736         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
13737
13738 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13739
13740         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
13741         Fixed bug #818696
13742         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
13743         and predecrement operand is displayed
13744
13745 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
13746
13747         * src/SDCCval.c (valMinus): fixed bug #826041
13748
13749 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13750
13751         Some hc08 related updates that I missed earlier
13752         * sim/ucsim/stypes.h
13753         * support/regression/ports/hc08/spec.mk
13754
13755 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13756
13757         New target "hc08" for the Motorola 68hc08 family of micros
13758
13759         * configure
13760         * configure.in
13761         * Makefile
13762         * src/hc08/*
13763         * src/SDCCmain.c
13764         * src/port.h
13765         * sim/ucsim/hc08.src/*
13766         * sim/ucsim/configure.in
13767         * src/ucsim/configure
13768         * sim/ucsim/packages_in.mk
13769         * as/hc08/*
13770         * as/Makefile
13771         * device/include/mc68hc908qy.h
13772         * device/lib/hc08/*
13773         * device/lib/Makefile.in
13774         * support/regression/ports/hc08/*
13775         * support/regression/Makefile
13776
13777 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13778
13779         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
13780         regression test
13781         * src/ds390/gen.c (genCast): fixed bug #821957
13782
13783 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
13784
13785         * device/lib/logf.c: "fixed" overlay bug
13786         * support/regression/ports/host/spec.mk: added m library
13787         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
13788         * support/regression/tests/float_trans: added (for Eric)
13789
13790 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
13791
13792         * src/mcs51/gen.c (genCpl): fixed bug
13793         http://sf.net/mailarchive/message.php?msg_id=6263915
13794
13795 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
13796
13797         * src/SDCCast.c (decorateType): added extended constant folding
13798         * src/SDCCsymt.c (computeType): cleanup
13799         * src/SDCCval.c (valShift): minor optimization
13800         * support/regression/tests/ast_constant_folding.c: added
13801
13802 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13803
13804         * src/SDCCmain.c: removed some unintended changes
13805
13806 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13807
13808         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
13809         * src/z80/gen.c: fixed part of bug #817589
13810         * src/SDCCsymt.c (checkFunction): fixed bug #817895
13811
13812 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
13813
13814         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
13815         * src/SDCCcflow.c
13816         * src/SDCCcse.c
13817         * src/SDCCdflow.c
13818         * src/SDCClabel.c
13819         * src/SDCClrange.c
13820         * src/SDCCmem.c
13821         * src/SDCCopt.c
13822         * src/SDCCpeeph.c
13823         * src/SDCCset.c
13824         * src/avr/ralloc.c
13825         * src/ds390/ralloc.c
13826         * src/izt/ralloc.c
13827         * src/mcs51/ralloc.c
13828         * src/pic/ralloc.c
13829         * src/pic16/ralloc.c
13830         * src/xa51/ralloc.c
13831         * src/z80/ralloc.c
13832         * src/z80/gen.c: removed unused label "release:"
13833
13834 2003-10-06  Borut Razem <borut.razem AT siol.net>
13835
13836         * src/SDCC.lex: removed definition of unused variables
13837           save_optimize and save_options
13838
13839 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
13840
13841         * clean.mk: removed '=' in "-maxdepth=1"
13842         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
13843         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
13844
13845 2003-10-06  Borut Razem <borut.razem AT siol.net>
13846
13847         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
13848           my_unput() replaced by unput()
13849
13850 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
13851
13852         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
13853         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
13854         type-punned pointer will break strict-aliasing rules"
13855         Old LR behaviour is again default; Klaus' LR can be choosen by
13856         defining the environment variable LRKLAUS
13857         * src/SDCCBBlock.h
13858         * src/SDCCloop.c
13859         * src/SDCClrange.c
13860         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
13861         * clean.mk: fixed removal of files in bin/CVS/
13862         * device/lib/clean.mk: fixed removal of directories small and large
13863         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
13864         * src/SDCCicode.c,
13865         * src/SDCCval.c: removed superflous test for pedantic
13866
13867 2003-10-05  Borut Razem <borut.razem AT siol.net>
13868
13869         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
13870           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
13871           message "unmatched #pragma SAVE and #pragma RESTORE"
13872
13873 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13874
13875         * doc/sdccman.lyx: various additions and updates (interrupts, inline
13876           assembly, critical functions, atomic, nojtbound)
13877
13878 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
13879
13880         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
13881         * src/SDCCBBlock.h
13882         * src/SDCCloop.c
13883         * src/SDCCloop.h
13884         * src/SDCClrange.c
13885
13886 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13887
13888         * src/z80/gen.h,
13889         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13890         * src/mcs51/gen.h
13891         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13892         * src/ds390/gen.h
13893         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13894         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
13895         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
13896
13897 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13898
13899         * src/z80/gen.c (genRet): fixed bug #524753
13900         * src/z80/gen.c (genCast): fixed internal error on cast from
13901         pointer to long
13902         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
13903         fix for bug #477835 to the z80
13904         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
13905         for tracking iCodes in the peephole optimizer for z80
13906
13907 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13908
13909         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
13910         the other part of bug #814548
13911         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
13912
13913 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
13914
13915         * src/SDCCcse.c: fixed part of bug #814548
13916
13917 2003-09-28  Borut Razem <borut.razem AT siol.net>
13918
13919         * src/asm.c: rewrite of printILine() to use temporary file instead
13920           a pipe
13921         * src/xa51/main.c: commented out declaration of int rewinds
13922
13923 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13924
13925         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
13926
13927 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13928
13929         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
13930         * src/asm.c (printILine): Fixed bug #811015
13931
13932 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13933
13934         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
13935         freeing.
13936
13937 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13938
13939         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
13940         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
13941         to correctly handle general case of AOP_PAIRPTR
13942         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
13943
13944 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13945
13946         * src/mcs51/ralloc.c (fillGaps),
13947         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
13948         register positioning bug)
13949
13950 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
13951
13952         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
13953
13954 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13955
13956         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
13957         genCodePointerGet, genGenPointerGet, genFarPointerSet,
13958         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
13959         (ralloc doesn't intentionally do this now, but perhaps later)
13960         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
13961         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
13962         register positioning bugs (Fixed bug #762602 and #795325)
13963         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
13964         (Fixed bug #808779)
13965         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
13966         lines that --i-code-in-asm generates
13967
13968 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13969
13970         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
13971         trying to fclose a FILE* that was already closed.
13972
13973 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13974
13975         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
13976         of const struct should be treated as if const themselves)
13977
13978 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
13979
13980         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
13981
13982 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13983
13984         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
13985         Unix (/n) and DOS (/r/n) line terminations.
13986
13987 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13988
13989         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
13990         bug #613775
13991
13992 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13993
13994         * src/mcs51/gen.c (genFunction, genEndFunction),
13995         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
13996         and restore of EA so that stack offsets to parameters are
13997         correct when using both critical and reentrant/stack-auto.
13998         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
13999         size (can be triggered in error if sloc is shared between
14000         different sized objects)
14001         * device/include/float.h: fixed macros to explicitly use
14002         unsigned long where needed
14003
14004 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
14005
14006         Feature req. 799831: added code to allow nesting of critical functions
14007         * src/mcs51/gen.c (genFunction, genEndFunction)
14008         * src/ds390/gen.c (genFunction, genEndFunction)
14009
14010 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14011
14012         * src/SDCCsymt.c (sclsFromPtr),
14013         * src/SDCCsymt.h,
14014         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
14015         support for standard C idiom of memory mapped variables; for
14016         example, *((xdata int*)0x1234) = 1 is now internally equivalent
14017         to xdata int at 0x1234 tempvar = 1.
14018         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
14019         provided by Akiya ISHIDA
14020
14021 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
14022
14023         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
14024         * src/SDCCval.c (constVal): added reduction from int to char
14025         * src/SDCCval.c (valMult, valDiv): fixed sign handling
14026         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
14027         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
14028         to ignore the sign
14029         * support/regression/tests/shifts.c: fixed
14030
14031 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14032
14033         * src/z80/gen.c (genXor): Fixed bug #805445
14034
14035 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14036
14037         Fixed bug #621531 (const & volatile confusion in the type chain).
14038         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
14039         refer to the const or volatile state of the pointer itself.
14040
14041         * src/SDCCast.c
14042         * src/SDCCglue.c
14043         * src/SDCCicode.c
14044         * src/SDCCsymt.c
14045         * src/SDCCval.c
14046         * src/SDCC.y
14047         * src/SDCCsymt.h
14048         * src/pic/gen.c
14049         * src/pic/ralloc.c
14050         * src/pic16/gen.c
14051         * src/pic16/ralloc.c
14052         * support/regression/tests/const.c
14053
14054 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14055
14056         When checking for duplicated modules, use absolute paths
14057         instead of relative paths.  Files changed:
14058
14059         * as/mcs51/lklib.c
14060         * link/z80/lklib.c
14061
14062 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14063
14064         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
14065
14066 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14067
14068         * device/include/string.h: added size_t typedef, changed
14069         prototypes to use size_t, eliminated separate reentrant and
14070         non-reentrant declarations, added _memmove declaration
14071         * device/lib/_memcpy.c: changed to use size_t instead of int,
14072         changed /4 to >>2 to avoid division library call
14073         * device/lib/_memcmp.c,
14074         * device/lib/_memset.c,
14075         * device/lib/_strncat.c,
14076         * device/lib/_strncpy.c,
14077         * device/lib/_strncmp.c: changed to use size_t instead of int
14078         * device/lib/_memmove.c: new file (fixed bug #772294)
14079         * device/lib/Makefile.in: added _memmove.c
14080         * device/lib/z80/asm_strings.s: fixed bug #772290
14081         * support/regression/tests/bitfields.c: attempt to fix host assertion
14082         failure on amd64-unknown-linux2.2
14083
14084 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14085
14086         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
14087         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
14088         * as/z80/asmain.c (main): fixed bug #801766
14089
14090 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
14091
14092         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
14093         compilers
14094
14095 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14096
14097         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
14098         reported in bug #800609
14099
14100 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
14101
14102         * Top header beautifications in src/pic16 directory:
14103           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
14104           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
14105           pcoderegs.h, ralloc.c, ralloc.h
14106         * main.c: added top header and GPL license notice
14107         * pcode.c: fixed the if-conditional warning
14108
14109 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
14110
14111         * device/lib/_mullong.c: replaced int by short for gcc
14112
14113 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14114
14115         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
14116         and JUMPTABLE iCodes properly now (worked by accident before)
14117         * src/mcs51/gen.c (leftRightUseAcc),
14118         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
14119         iCode properly now. Use getSize instead of nRegs since a & b
14120         aren't part of the nRegs tally.
14121
14122 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
14123
14124         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
14125         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
14126           before instructions that use the _STATUS register
14127
14128 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
14129
14130         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
14131         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
14132         fetching of the pointer
14133         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
14134         copied from genNearPointerSet()
14135         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
14136         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
14137         If they pop r0/r1 they must be called in the opposite order than aopOp().
14138         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
14139         (resp. --stack-auto), prepared for --xstack
14140
14141 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14142
14143         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
14144
14145 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
14146
14147         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
14148         these ports have their own __sdcc_external_start()
14149
14150 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
14151
14152         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
14153         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
14154         type for bits was changed. It resulted in bit variables becoming
14155         global, which is not permitted in PIC 14 assembly output.
14156
14157 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14158
14159         * doc/sdccman.lyx: various additions and updates. Rearranged sections
14160
14161 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14162
14163         Z80 and MCS51 linkers complaint if a public symbol is defined
14164         in more than one library module:
14165
14166         * as/mcs51/lklib.c
14167         * link/z80/lklib.c
14168         * as/mcs51/Makefile.in
14169
14170 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14171
14172         A few small changes that speed up the peephole optimizer.
14173
14174         * src/SDCCpeeph.c
14175
14176 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14177
14178         Try to make the peephole optimizer smarter by maintaining
14179         an association between the assembly source code and the
14180         iCodes that originated them. Put this information to use
14181         with a new peephole rule condition "notVolatile" so that
14182         the rules can be aggressive yet still safe.
14183
14184         * src/SDCCpeeph.c
14185         * src/SDCCpeeph.h
14186         * src/mcs51/gen.c
14187         * src/mcs51/peeph.def
14188
14189 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14190
14191         Fixed bug #741761
14192
14193         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
14194         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
14195         if the left or right operand symbols have the accuse flag set.
14196
14197 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14198
14199         Changed the type of the result of the ! (NOT) operator to char;
14200         previously it returned the same type as the source. This allows
14201         us to eliminate all the genFloatNot functions (all of its target
14202         implementations were very buggy) since !float can use the same
14203         code as !long now.
14204
14205         * src/SDCCicode.c (ast2iCode): ! returns char
14206         * src/mcs51/gen.c (genNot, genNotFloat),
14207         * src/ds390/gen.c (genNot, genNotFloat),
14208         * src/z80/gen.c (genNot, genNotFloat),
14209         * src/pic/gen.c (genNot, genNotFloat),
14210         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
14211
14212 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
14213
14214         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
14215         1. Interrupt would not compile properly. Ensure PCLATH register is saved
14216            during interrupts. Ensure WSAVE is located at a shared bank address.
14217         2. Fixed page selection in some places
14218         3. Fixed BTFSS/C to where necessary use registers directly and not simply
14219            the registers name strings.
14220         4. Fixed "signed / unsigned compare" compiler warnings.
14221         5. The PIC port manages its own allocation of the general purpose
14222            registers, but makes no attempt to reuse them. As a result when
14223            compiling it soon runs out of general purpose registers. Some
14224            additional code was added to the files pcode.c and device.c to walk
14225            through the function call tree and rename the registers so that they
14226            get reused.
14227
14228         * src/pic/device.c
14229         * src/pic/gen.c
14230         * src/pic/glue.c
14231         * src/pic/pcode.c
14232         * src/pic/pcode.h
14233         * src/pic/ralloc.c
14234         * src/pic/ralloc.h
14235         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
14236         genPlus() & genMinus() when the result is the same as left or right
14237
14238 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14239
14240         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
14241
14242 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14243
14244         Made bitfield a distinct type from bit so that bitfields
14245         convert as per ANSI C and bits retain their traditional
14246         boolean style behaviour. Implemented bitfield support in
14247         the z80 port.
14248
14249         * src/SDCCsymt.h,
14250         * src/SDCCsymt.c,
14251         * src/SDCCast.c,
14252         * src/cdbFile.c,
14253         * src/mcs51/gen.c,
14254         * src/ds390/gen.c: bit v bitfield split
14255         * src/z80/gen.c: New support for bitfields
14256         * support/regression/tests/bitfields.c: reenabled z80,
14257         added more tests
14258
14259 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14260
14261         Rules 246.x, 247.x relate to bitfields, the others speed up
14262         access to xdata mapped I/O devices.
14263
14264         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
14265
14266 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14267
14268         Cleaned up genPackBits and genUnpackBits and added two helper
14269         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
14270         for literal assignments in genPackBits (thanks to Frieder for
14271         reminding me).
14272
14273         * src/mcs51/gen.c
14274         * src/ds390/gen.c
14275
14276 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14277
14278         Fixed bug #748310 (pointer to function type mishandled when the
14279         function name is omitted). Also fixed a SIGSEGV when a function
14280         attribute (reentrant, etc) is used on a non-function or on a
14281         function but misplaced before the parameter list.
14282
14283         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
14284         bug #748310
14285         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
14286         * support/Util/SDCCerr.h,
14287         * support/Util/SDCCerr.c: Added func attr misuse error msg
14288
14289 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
14290
14291         Fixed bug #787649 by anonymous
14292         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
14293         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
14294
14295 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14296
14297         Fixed numerous bitfield problems.
14298
14299         * src/SDCC.y: More bitfield related error checking
14300         * src/SDCCsymt.h,
14301         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
14302         * support/Util/SDCCerr.h,
14303         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
14304         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
14305         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
14306         * support/regression/tests/bitfields.c: tests added
14307
14308 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14309
14310         Made the constant following the "interrupt" keyword optional. If
14311         omitted, the function will not automatically be given an entry
14312         in the interrupt vector table (similar to #pragma NOIV, but
14313         less syntacticly kludgy). The interrupt number is also now
14314         range checked. Also fixed a bug in the high order bit example
14315         in the manual.
14316
14317         * src/SDCC.y
14318         * src/SDCCmem.c
14319         * src/SDCCglue.c
14320         * src/SDCCsymt.h
14321         * support/Util/SDCCerr.c
14322         * support/Util/SDCCerr.h
14323         * doc/sdccman.lyx
14324
14325 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
14326
14327         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
14328         * src/SDCCicode.c (operandOperation): rewritten some ops
14329         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
14330         * src/SDCCsymt.c (computeType): literals are handled the same way as any
14331         other type
14332         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
14333         be re-activated by defining REDUCE_LITERALS)
14334         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
14335         unsigned, but are signed by default
14336         * src/SDCCval.c (constVal): rearranged
14337         * src/SDCCval.c (valMod): preliminary fix
14338         * src/SDCCval.c (valCastLiteral): use TYPE_* types
14339         * support/regression/literalop.c: added, work in progress
14340
14341 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14342
14343         Generate warnings for useless declarations like "char data;"
14344         that don't do what new users expect.
14345
14346         * src/SDCC.y
14347         * support/Util/SDCCerr.h
14348         * support/Util/SDCCerr.c
14349
14350 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
14351
14352         * src/SDCCval.c (valMult): fix overflow detection of negative int
14353
14354 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14355
14356         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
14357
14358         Changes to support big endian targets:
14359
14360         * src/ports.h
14361         * src/SDCCglue.c
14362         * src/avr/main.c
14363         * src/ds390/main.c
14364         * src/izt/i186.c
14365         * src/mcs51/main.c
14366         * src/pic/main.c
14367         * src/pic16/main.c
14368         * src/xa51/main.c
14369         * src/z80/main.c
14370
14371 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
14372
14373         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
14374         * device/lib/time.c: fixed warning "integer overflow in expression"
14375
14376 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
14377
14378         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
14379         * src/SDCCval.c (constVal): changed default to signed; hex and octal
14380         constants are unsigned; added recognition of "u" flag for unsigned
14381         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
14382         * src/SDCCval.c (valDiv, valMod): fixed signdness
14383         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
14384         signedness of modulo, left and right shift
14385         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
14386         * support/Util/SDCCerr.h: added warning W_INT_OVL
14387         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
14388         * src/SDCCast.c (ast_print): improved output of constants
14389
14390 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14391
14392         Fixed some warnings when building with MSVC:
14393
14394         * as/mcs51/asdata.c
14395         * as/z80/asdata.c
14396         * as/mcs51/asm.h
14397         * as/z80/asm.h
14398         * link/z80/aslink.h
14399         * link/z80/lkdata.c
14400         * link/z80/lkeval.c
14401         * link/z80/lkgb.c
14402         * link/z80/lkihx.c
14403         * link/z80/lks19.c
14404         * link/z80/lksym.c
14405         * support/cpp2/cpplib.c
14406         * src/ds390/gen.c
14407         * src/mcs51/gen.c
14408
14409 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
14410
14411         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
14412
14413 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14414
14415         * support/librarian/clean.mk: Do not remove Makefile.
14416         * support/librarian/Makefile: added.
14417
14418 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14419
14420         Added librarian to MSVC build:
14421         * all.dsp
14422         * sdcc.dsw
14423         * support/librarian/librarian.dsp
14424
14425         'configure' not needed for librarian, removed:
14426         * support/librarian/configure
14427         * support/librarian/configure.in
14428         * support/librarian/config_in.h
14429         * support/librarian/Makefile.in
14430
14431         Hopefully these ones built the librarian and the rest of sdcc properly:
14432         * Makefile
14433         * Makefile.common.in
14434
14435         Messed up 'configure', so revert to previous version:
14436         * configure
14437         * configure.in
14438
14439 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
14440
14441         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
14442         there, while the mantissa of a double is "only" 53 bits wide.
14443
14444 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14445
14446         Adding sdcclib to the build.  MSVC project coming soon.
14447         Files added/changed:
14448
14449         * support/librarian/clean.mk
14450         * support/librarian/configure
14451         * support/librarian/configure.in
14452         * support/librarian/config_in.h
14453         * support/librarian/Makefile.bcc
14454         * support/librarian/Makefile.in
14455         * support/librarian/sdcclib.c
14456         * Makefile.bcc
14457         * Makefile
14458         * Makefile.common.in
14459         * configure
14460         * configure.in
14461
14462 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14463
14464         Linker now complaints if linked modules have conflicting options, for
14465         example, one compiled using --model-large and another one compiled with
14466         --model-small.  The following files were modified:
14467
14468         * as/mcs51/asdata.c
14469         * as/mcs51/aslink.h
14470         * as/mcs51/asm.h
14471         * as/mcs51/asmain.c
14472         * as/mcs51/asout.c
14473         * as/mcs51/i51pst.c
14474         * as/mcs51/lkdata.c
14475         * as/mcs51/lklibr.c
14476         * as/mcs51/lkmain.c
14477         * as/z80/asdata.c
14478         * as/z80/asm.h
14479         * as/z80/asmain.c
14480         * as/z80/asout.c
14481         * as/z80/z80pst.c
14482         * link/z80/aslink.h
14483         * link/z80/lkdata.c
14484         * link/z80/lklibr.c
14485         * link/z80/lkmain.c
14486         * src/SDCCglue.c
14487
14488 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14489
14490         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
14491         as/mcs51/lklibr.c: Generate a warning when a library is not found.
14492
14493 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
14494
14495         * src/z80/mappings.i: fix _mul[us][int,long] entries
14496
14497 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14498
14499         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
14500
14501 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
14502
14503         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
14504         * support/regression/tests/bitopcse.c: added
14505         fixed warning:
14506         * src/avr/gen.c:
14507         * src/pic/gen.c:
14508         * src/pic16/gen.c:
14509         * src/z80/gen.c:
14510         * src/xa51/gen.c:
14511
14512 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14513
14514         added support for new library format to z80, gbz80 linkers:
14515         *link/z80/aslink.h
14516         *link/z80/lklex.c
14517         *link/z80/lklib.c
14518         *link/z80/lklist.c
14519
14520 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
14521
14522         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
14523         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
14524
14525 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
14526
14527         added DUMMY_READ_VOLATILE:
14528         * src/SDCC.y:
14529         * src/avr/gen.c:
14530         * src/xa51/gen.c:
14531         * src/z80/gen.c:
14532         * src/pic/gen.c:
14533         * src/pic16/gen.c:
14534         * src/mcs51/gen.c:
14535         * src/ds390/gen.c:
14536         * src/SDCCcse.c (algebraicOpts): many improvements
14537         * src/SDCCcse.h: removed algebraicOpts()
14538         * src/SDCCicode.c (picDummyRead): added
14539
14540 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14541
14542         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
14543         "Insufficient space in data memory".
14544
14545 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14546
14547         * src/mcs51/gen.c: fixed bug #771358
14548         * src/z80/gen.c: fixed bug #759087
14549
14550 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
14551
14552         * src/pic16/glue.c: minor cleanup by Vangelis
14553
14554 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14555
14556         * device/include/regc515c.h: fixed #758477
14557         * device/lib/_gptrget.c: saving some cycles in generic pointer get
14558         * device/lib/_gptrput.c: saved a few bytes
14559         * my tab spacing is 8, yours too?)
14560         * device/lib/_ser.c: process RX bytes earlier than TX bytes
14561         * device/lib/serial.c: process RX bytes earlier than TX bytes
14562         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
14563
14564 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14565
14566         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
14567
14568 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14569
14570     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
14571
14572 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
14573
14574         * device/lib/Makefile.in: bad fix, reverted to 1.43
14575
14576 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
14577
14578         * device/lib/Makefile.in: added missing z80 object files
14579
14580 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
14581
14582         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
14583         pic16 progress by Vangelis:
14584         * src/SDCCglobl.h:
14585         * src/SDCCmain.c:
14586         * src/pic/Makefile:
14587         * src/pic:
14588         * pic/Makefile:
14589         * pic16/device.c:
14590         * pic16/device.h:
14591         * pic16/gen.c:
14592         * pic16/gen.h:
14593         * pic16/genarith.c:
14594         * pic16/glue.c:
14595         * pic16/main.c:
14596         * pic16/pcode.c:
14597         * pic16/pcode.h:
14598         * pic16/pcodepeep.c:
14599         * pic16/peeph.def:
14600
14601 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14602
14603     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
14604
14605 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14606
14607     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
14608     added gbz80 build to MSVC project.
14609     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
14610     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
14611     from 8051 stuff and setup so it links using a .lnk file.
14612
14613 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14614
14615     * support/librarian/sdcclib.c: sdcc librarian.
14616     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
14617     with sdcclib.
14618
14619 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14620
14621     * as/mcs51/lkmain.c: properly handle extensions in function afile.
14622
14623 2003-07-02  Borut Razem <borut.razem AT siol.net>
14624
14625         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
14626         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
14627         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
14628         src/xa51/main.c, src/z80/main.c:
14629         virtualization of glue() function: each port has it's own glue function,
14630         which is accessed by do_glue function pointer in PORT.general structure
14631
14632 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
14633
14634         * DS800C400 fun, improved ROM interface and tinibios.
14635
14636 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
14637
14638         * More support for DS80C400. Now includes beginning of interface to ROM.
14639
14640 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
14641
14642         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
14643
14644 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14645
14646         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
14647
14648 2003-06-19  Borut Razem <borut.razem AT siol.net>
14649
14650         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
14651
14652 2003-06-19  Borut Razem <borut.razem AT siol.net>
14653
14654         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
14655         fixed Z80 port - crt0.o: cannot open.
14656
14657 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
14658
14659         * support/Util/MySystem.c (merge_command): revert bad fix
14660
14661 2003-06-18  Borut Razem <borut.razem AT siol.net>
14662
14663         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
14664
14665 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14666
14667         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
14668         option --use-stdout sends errors to stdout instead of stderr.
14669
14670 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
14671
14672         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
14673
14674 2003-06-15  Borut Razem <borut.razem AT siol.net>
14675
14676         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
14677         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
14678         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
14679         fixed width array of pointers replaced with sets;
14680         multiple include and lib paths ared transferred to preprocessor and linker
14681         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
14682         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
14683         fixed width array of pointers
14684         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
14685         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
14686         fixupPath(), getPathDifference()
14687         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
14688         fixed width array of pointers
14689
14690 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
14691
14692         * src/pic16/ralloc.c: fix warnings
14693         * src/pic16/pcode.c: fix warning
14694
14695 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
14696
14697          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
14698         know all the details, but essentially this set of changes enable
14699         the pic16 port to generate movff instructions and generate assembler
14700         directives,
14701         * src/SDCCmain.c:
14702         * src/pic16/gen.c:
14703         * src/pic16/glue.c:
14704         * src/pic16/pcode.c:
14705         * src/pic16/device.c:
14706         * src/pic16/main.c:
14707         * src/pic16/pcode.h:
14708         * src/pic16/pcoderegs.c:
14709         * src/pic16/ralloc.c:
14710         * src/pic16/ralloc.h:
14711
14712 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14713
14714         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
14715         added option --vc, so sdcc errors and warnings are compatible with
14716         Microsoft Visual Studio.
14717
14718 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14719
14720         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
14721           device/lib/libfloat.lib: added atof function.
14722
14723 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
14724
14725         * doc/sdccman.lyx: updated to Lyx 1.3
14726         * doc/cdbfileformat.lyx: updated to Lyx 1.3
14727         * doc/test_suite_spec.lyx: updated to Lyx 1.3
14728         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
14729
14730 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
14731
14732         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
14733
14734 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14735
14736         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
14737           additions to the "related tools/documentation" section
14738
14739 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
14740
14741         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
14742
14743 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
14744
14745         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
14746         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
14747
14748 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
14749
14750         * doc/sdccman.lyx: fix double dash and other minor things
14751         * doc/Makefile: fix double dash
14752
14753 2003-05-28  Karl Bongers(patches from Martin Helmling)
14754         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
14755           condition and ignore commands.
14756
14757 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14758
14759         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
14760           is in parts still quite out of date, I did changes as far as I felt makes sense
14761           for a non-native english speaker.
14762           Please feel free to add to the manual or to correct my changes.
14763         * doc/Makefile: undid touching the date of intermediate tex files.
14764
14765 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14766
14767         * doc/sdccman.lyx: Manual has an index now
14768
14769 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
14770
14771         Finalize muluint/mulsint and mululong/mulslong merging:
14772         * device/lib/_mulint.c
14773         * device/lib/_mullong.c
14774         * device/lib/gbz80/mul.s
14775         * device/lib/gbz80/stubs.s
14776         * device/lib/z80/mul.s
14777         * device/lib/z80/stubs.s
14778         * src/SDCCsymt.c (initCSupport)
14779
14780 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14781
14782         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
14783         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
14784           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
14785           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
14786           instead of /Zm500.
14787
14788 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14789
14790         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
14791           the regression tests I'm not brave enough to enable 245.b, 245.c
14792         * doc/sdccman.lyx: added latex preamble for hyperref package.
14793           Using pdflatex this will give you a hyperlinked pdf file with
14794           bookmarks. (prepend '%' before /usepackage if this breaks something)
14795
14796 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14797
14798          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
14799
14800 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
14801
14802         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
14803
14804 2003-05-21    <johan AT balder>
14805
14806         * src/SDCCglue.c (printIval): fixed bug #739934
14807
14808 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
14809
14810         Applied patch from bug 737905 (renamed yylineo to mylineno):
14811         * src/altlex.c
14812         * src/SDCCast.c
14813         * src/SDCglobl.h
14814         * src/SDCC.lex
14815         * src/SDCCsymt.c
14816         * src/SDCCval.c
14817         * src/pic16/pcode.c: Cleaned warnings
14818         * src/pic16/pcodeflow.c: Cleaned warnings
14819         * src/pic16/pcoderegs.c: Cleaned warnings
14820
14821 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
14822
14823         * src/pic16/pcode.c: Cleaned warnings
14824         * src/pic16/pcodepeep.c: Cleaned warnings
14825         * src/pic16/ralloc.c: Cleaned warnings
14826
14827 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
14828
14829         * doc/sdccman.lyx: fixed bug 739745
14830         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
14831
14832 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
14833
14834         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
14835         it can be defined with CFLAGS when running configure
14836         * src/SDCCmain.c: fixed compiling + linking with object files
14837
14838 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
14839
14840         * configure.in: configure for pic16 port,
14841             added --disable-pic16-port
14842         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
14843         * src/SDCCmain.c: linkOptions is changed to set *,
14844             added if/endif conditional macros to remove options help
14845             messages from optionsTable when a port is not configured, added
14846             support for the PIc16 port in the ports table, when executing
14847             the compiler with no port specified on command line, a default
14848             port is selected with the new macro DEFAULT_PORT which is
14849             defined in port.h, in setDefaultOptions() linkOptions is removed
14850             from initialization assignment, since now it is a set,
14851             parseCmdLine uses setParseWithComma for linkOptions, in
14852             linkEdit() linkOptions are accessed with new function indexSet()
14853             which returns the i'th item of a set variable. See SDCCset.c, in
14854             linkEdit() when calling buildCmdLine(), added linkOptions as
14855             last argument. Now users can pass arguments to gplink via the
14856             -Wl option, main() uses pic16glue() to glue up pic16 programs
14857         * src/SDCCpeeph.c: various changes to support pic16
14858         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
14859             return the i'th item of the set
14860         * src/SDCCset.h: added function prototype for indexSet()
14861         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
14862         * src/clean.mk: added pic16 in CLEANALLPORTS variable
14863         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
14864             added macro DEFAULT_PORT
14865         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
14866         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
14867             generated
14868         * src/pic16/glue.c: commented out some error producing lines
14869         * src/pic16/main.c: __config directives are commented out to stop
14870             gpasm complaining and test the linkage with gplink, _linkCmd and
14871             _asmCmd changed to be more gplink and gpasm friendly
14872         * src/pic16/peeph.def: peep rule 3 is commented out, since it
14873             produced an error when parsed, peep rule 12 is added to utilize
14874             movff, but it is commented out since the pCode does not support
14875             yet a command with 2 address arguments
14876
14877 2003-05-18    <johan AT balder>
14878
14879         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
14880         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
14881 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
14882
14883         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
14884   Added feature to script commands from file.
14885
14886 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
14887
14888         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
14889         * src/SDCCutil.c: include ctype.h for win32
14890
14891 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
14892
14893         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
14894
14895 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
14896
14897         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
14898   Fixed so you can set breakpoints prior to run, run does not stop
14899   on entry now.  Add tbreak.  Other enhancements and fixes for use
14900   with ddd.
14901
14902 2003-05-12  Borut Razem <borut.razem AT siol.net>
14903
14904         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
14905
14906 2003-05-11  Borut Razem <borut.razem AT siol.net>
14907
14908         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
14909         the path of bin directory, so that PATH is the only env. variable, which has to be set
14910         in case of standard installation.
14911         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
14912         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
14913         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
14914
14915 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
14916
14917         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
14918         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
14919         temp files are in the port dir; clean the gen/test directory when
14920         generating new test.c
14921         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
14922         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
14923         * support/regression/tests/zeropad.c: added
14924
14925 2003-05-09    <johan AT balder>
14926
14927         * src/SDCCglue.c: fixed bug #597940
14928
14929 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
14930
14931         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
14932   cache sfr, optimize next,step, fix off by one sourceline,
14933   support ddd list function.
14934         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
14935
14936 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
14937
14938         * support/regression/HTMLgen.py: added compare_s2f()
14939         * support/regression/Makefile: redo 1.27
14940         * support/regression/generate-cases.py: redo 1.5
14941
14942 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
14943
14944         * support/regression/tests/float.c: workaround 33 bit hex constant
14945         * support/regression/tests/simplefloat.c: fix division for host
14946
14947 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
14948
14949         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
14950         that tame's the PIC's over-aggressive optimizer.
14951
14952 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14953
14954          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
14955          support for MSVC.
14956
14957 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
14958
14959         Initial support for DS80C400. "Hello world" runs on TINIm400
14960         (with polled I/O).
14961
14962 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
14963
14964          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
14965          * Some notes on ddd usage added in debugger/README
14966          Martin Helmling adding more features and fixes for ddd GUI debugger.
14967          Code added for nexti, stepi, up, down, and other adjustments.
14968
14969 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
14970
14971         * src/pic/pCodepeep.c non-wildcard asmops are now handled
14972         * src/pic/peeph.def Added two rules to optimize carry manipulation
14973         * src/pic/* removed debug printfs
14974
14975 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
14976
14977         * debugger/mcs51/cmd.c: added header newalloc.h
14978
14979 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
14980
14981         * as/Makefile: new EXEEXT
14982         * as/z80/Makefile: remove trailing slash of BUILDIR
14983         * as/z80/clean.mk: new EXEEXT
14984         * Makefile.common.in: add to CFLAGS (and others), don't replace it
14985         * support/cpp2/Makefile.in: new EXEEXT
14986         * src/pic/glue.c (pic14emitRegularMap): fixed warning
14987
14988 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
14989
14990         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
14991         EXEEXT was introduced to fix all related problems with targets
14992         "clean", "install" and "uninstall"; a couple of further flaws
14993         especially with "clean" have been fixed too
14994         * as/mcs51/Makefile.in
14995         * as/mcs51/clean.mk
14996         * as/z80/Makefile
14997         * Makefile
14998         * clean.mk
14999         * debugger/mcs51/Makefile.in
15000         * debugger/mcs51/clean.mk
15001         * link/z80/Makefile
15002         * link/z80/Makefile.in
15003         * link/z80/clean.mk
15004         * link/Makefile
15005         * packihx/Makefile.in
15006         * packihx/clean.mk
15007         * sim/ucsim/Makefile
15008         * sim/ucsim/clean.mk
15009         * sim/ucsim/avr.src/Makefile.in
15010         * sim/ucsim/avr.src/clean.mk
15011         * sim/ucsim/s51.src/Makefile.in
15012         * sim/ucsim/s51.src/clean.mk
15013         * sim/ucsim/xa.src/Makefile.in
15014         * sim/ucsim/xa.src/clean.mk
15015         * sim/ucsim/z80.src/Makefile.in
15016         * sim/ucsim/z80.src/clean.mk
15017         * sim/ucsim/main_in.mk
15018         * sim/ucsim/packages_in.mk
15019         * sim/ucsim/gui.src/Makefile.in
15020         * sim/ucsim/gui.src/serio.src/Makefile.in
15021         * sim/ucsim/gui.src/serio.src/clean.mk
15022         * src/Makefile.in
15023         * src/clean.mk
15024         * support/cpp2/Makefile.in
15025         * support/cpp2/clean.mk
15026         * support/makebin/Makefile
15027         * support/makebin/clean.mk
15028         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
15029         * doc/sdccman.lyx: --program-suffix no longer needed
15030
15031 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
15032
15033          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
15034          Martin Helmling added support for ddd GUI debugger.
15035          Code added to display assembly, set variables, and other commands
15036          to interface to ddd.
15037
15038 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
15039
15040         * as/Makefile: fix target clean
15041         * as/clean.mk: fix target clean
15042         * as/z80/clean.mk: fix target clean
15043
15044 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
15045
15046         * Makefile.common.in: added  AT EXEEXT AT
15047         * configure.in: removed all mingw32 stuff
15048         * configure: rebuilt from configure.in
15049         * doc/sdccman.lyx: updated section "installation"
15050         * support/scripts/sdcc_mingw32: adapted to configure
15051         * support/scripts/sdcc_cygwin_mingw32: added
15052
15053 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
15054
15055         * src/pic Added object file support for the PIC port
15056         * src/pic Applied patch from Craig Franklin (this started the object file support)
15057         * src/regression Updated the PIC regression tests for object files
15058
15059 2003-04-20  Borut Razem <borut.razem AT siol.net>
15060
15061         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
15062           lklex.c: In function `getfid':
15063           lklex.c:203: warning: array subscript has type `char'
15064         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
15065           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
15066         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
15067           stack handling macros
15068
15069 2003-04-19  Borut Razem <borut.razem AT siol.net>
15070
15071         * "handling space characters in file path" task:
15072         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
15073         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
15074         * support/Util/MySystem.h: make it self-sufficient
15075         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
15076           src/z80/main.c, sdcc/as/mcs51/lklex.c:
15077           handling space characters in file path
15078         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
15079           (it will be used by assemblers, which have their own includes, e.g. gpasm)
15080         * support/Util/MySystem.c: handling space characters in executable's path
15081
15082 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
15083
15084         * as/z80/Makefile: fix permanent rebuild of z80
15085         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
15086         * support/regression/tests/bitfields.c: added Johan's bitfields.c
15087
15088 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
15089
15090         * src/SDCCopt.c: add special case optimization to replace modulo by
15091           a power of two with a bitwise AND.
15092
15093 2003-04-18    <johan AT balder>
15094
15095         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
15096
15097 2003-04-17    <johan AT balder>
15098
15099         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
15100         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
15101
15102 2003-04-13  Borut Razem <borut.razem AT siol.net>
15103
15104         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
15105         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
15106           fixed mingw problem in adl_NORMALIZE_PATH
15107
15108 2003-04-12  Borut Razem <borut.razem AT siol.net>
15109
15110         * fixed "#pragma SAVE/RESTORE can not be nested":
15111         * src/SDCC.lex: reworked pragma handling functions
15112         * sdcc/src/SDCCglobl.h: reworked stack handling macros
15113         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
15114
15115 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
15116
15117         * src/SDCCutil.c (pathEquivalent): defined but not used
15118         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
15119         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
15120         * configure: rebuilt from configure.in
15121         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
15122         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
15123         * device/include/Makefile.in: replace sdcc_datadir
15124         * device/lib/Makefile.in: replace sdcc_datadir
15125         * Makefile.common.in: add LDFLAGS from configure
15126         * packihx/Makefile.in: use LDFLAGS
15127         * src/Makefile.in: use LDFLAGS
15128         * support/cpp2/Makefile.in: add LDFLAGS from configure
15129         * support/makebin/Makefile: use LDFLAGS
15130         * .version: bumped version number to 2.3.5
15131
15132 2003-04-12  Borut Razem <borut.razem AT siol.net>
15133
15134         * completed "different paths" task:
15135         * src/SDCCmacro.c: fixed bug in handling quotes
15136         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
15137         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
15138
15139 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
15140
15141         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
15142
15143 2003-04-11 kevin Vigor <kevin AT vigor.nu>
15144
15145         * ds390/gen.c ds390/peeph.def: fix bug 706781
15146
15147 2003-04-11  Borut Razem <borut.razem AT siol.net>
15148
15149         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
15150
15151 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
15152
15153         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
15154         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
15155          set - this bit used to not be set...).
15156         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
15157           bad code in PIC Port
15158         * src/regression/and2.c added to test bug 609268
15159         * src/regression/Makefile added and2.c to regression test
15160
15161
15162 2003-04-08    <johan AT CP255758-A>
15163
15164         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
15165         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
15166         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
15167
15168 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
15169
15170         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
15171         fix bug #487815
15172         * support/cpp2/Makefile.in: fix bug #487815
15173         * configure: rebuilt from configure.in
15174         * Makefile.common.in: docdir changed, new path suffixes
15175         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
15176         * sdcc_vc_in.h: reflect changes from sdccconf.h
15177         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
15178         * src/SDCCutil.h: remove BINDIR hack
15179         * doc/sdccman.lyx: update new path hierarchy
15180
15181 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
15182
15183         * src/SDCCpeeph.c: added okToRemoveSLOC test
15184
15185 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
15186
15187         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
15188
15189 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
15190
15191         * src/SDCCpeeph.c: added labelIsReturnOnly test
15192         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
15193
15194 2003-04-05    <johan AT balder>
15195
15196         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
15197         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
15198         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
15199         * src/SDCCast.c: fixed a warning
15200         * src/SDCCast.h: fixed a warning
15201         * src/SDCCicode.c (operandFromAst): fixed a warning
15202
15203 2003-04-04    <johan AT balder>
15204
15205         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
15206         * src/SDCCast.c (decorateType): fixed bug #715076
15207         * src/SDCC.y: fixed bug #702907
15208
15209 2003-04-03    <johan AT balder>
15210
15211         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
15212         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
15213         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
15214         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
15215         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
15216
15217 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
15218
15219         * _decdptr.c: fix return values
15220         * _gptrget.c: fix return values
15221         * _gptrgetc.c: fix return values
15222         * _gptrput.c: fix return values
15223         * _mulint.c: fix return values
15224         * as/z80/Makefile: fix 'make -j' problem
15225
15226 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
15227
15228         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
15229         * configure.in: big cleanup, updated to autoconf 2.5x
15230         * configure: rebuilt from configure.in
15231         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
15232         * sdcc_vc_in.h: reflect changes from sdccconf.h
15233         * doc/Makefile: fixed a flaw in "make install"
15234
15235 2003-04-02    <johan AT balder>
15236
15237         * src/ds390/gen.c (genCmp): no comments
15238         * src/mcs51/gen.c (genCmp): no comments
15239         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
15240         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
15241
15242 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
15243
15244         * support/regression/generate-cases.py: place generated file in given sub directory
15245         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
15246         * support/regression/Makefile: improvements for 'make -j';
15247         side effect: it's simpler and faster now
15248
15249 2003-03-31  Borut Razem <borut.razem AT siol.net>
15250
15251         * src/z80/main.c: link-{port} and as-{port} defined without path
15252         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
15253
15254 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
15255
15256         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
15257
15258 2003-03-30  Borut Razem <borut.razem AT siol.net>
15259
15260         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
15261           changed type of list parameter to set
15262         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
15263         * src/port.h: changed type of do_assemble() parameter to set
15264         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
15265           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
15266           definition of "cppoutfilename" macro with NULL value in preProcess()
15267         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
15268         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
15269         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
15270           replaced with set *binPathSet
15271         * shash_add() deallocates the item, if allready exsists, before adding the new one
15272         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
15273
15274 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
15275
15276         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
15277           a nested for loop bug in the PIC port
15278         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
15279           for loops
15280
15281 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
15282
15283         * support/Util/dbuf.h: remove C++ stuff to make it portable
15284
15285 2003-03-28  Borut Razem <borut.razem AT siol.net>
15286
15287         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
15288           literal strings in stringLiteral()
15289         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
15290         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
15291           to the project
15292
15293 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
15294
15295         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
15296
15297 2003-03-26    <johan AT balder>
15298
15299         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
15300         * src/ds390/gen.c (saveRegisters): catched symbol abuse
15301         * src/SDCCast.c (decorateType): fixed " -v < 3"
15302
15303 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
15304
15305         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
15306         Added Lenny Story's debug infrastructure changes:
15307         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
15308         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
15309         * src/cdbFile.c: added
15310         * src/SDCCdebug.c: added
15311         * src/SDCCdebug.h: added
15312         * src/SDCCast.c (createFunction)
15313         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
15314         * src/SDCCmain.c (parseCmdLine, main)
15315         * src/SDCCmem.c (redoStackOffsets)
15316         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
15317         * src/SDCCsymt.h
15318         * src/common.h
15319         * src/avr/gen.c (genAVRCode)
15320         * src/ds390/gen.c (gen390Code)
15321         * src/mcs51/gen.c (gen51Code)
15322         * src/pic/gen.c (genpic14Code)
15323         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
15324         * src/xa51/gen.c (genXA51Code)
15325         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
15326
15327 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15328
15329         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
15330         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
15331
15332 2003-03-22    <johan AT balder>
15333
15334         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
15335
15336 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
15337
15338         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
15339         * doc/cdbfileformat.lyx: added, written by Lenny Story
15340         * doc/Makefile: added cdbfileformat.lyx
15341         * doc/clean.mk: added cdbfileformat.lyx
15342
15343 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
15344
15345         * src/mcs51/peeph.def: fix bug #705773
15346
15347 2003-03-20    <johan AT balder>
15348
15349         An sfr/sbit can have an "at #" AND an initializer
15350         * src/SDCCsymt.c (checkSClass):
15351         * src/SDCCmem.c (allocGlobal):
15352         * src/SDCCmem.c (allocLocal):
15353         * src/SDCCast.c (createBlock):
15354
15355 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
15356
15357         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
15358
15359 2003-03-16    <johan AT balder>
15360
15361         Undid the hackup of const and volatile, the problem is much bigger
15362         * src/SDCC.y:1.65
15363         * src/SDCCast.c:1.171
15364         * src/SDCCglue.c:1.138
15365         * src/SDCCicode.c:1.146
15366         * src/SDCCsymt.c:1.150
15367         * src/SDCCval.c:1.65
15368
15369 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
15370
15371         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
15372         * src/ds390/gen.c (genAddrOf): fixed bug #704087
15373
15374 2003-03-13    <johan AT balder>
15375
15376         Hackup const and volatile modifiers in type chains a bit:
15377         * src/SDCC.y:1.63
15378         * src/SDCCast.c:1.169
15379         * src/SDCCglue.c:1.136
15380         * src/SDCCicode.c:1.143
15381         * src/SDCCsymt.c1.146
15382         * src/SDCCsymt.h1.59
15383         * src/SDCCval.c:1.63
15384
15385 2003-03-12    <johan AT balder>
15386
15387         * src/SDCCBBlock.h: more LRH debugging junk
15388         * src/SDCCcflow.h: more LRH debugging junk
15389         * src/SDCCloop.c: more LRH debugging junk
15390         * src/SDCC.y (struct_declaration): fixed bug #697590
15391         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
15392         * src/ds390/gen.c (aopForRemat): fixed bug #700031
15393         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
15394
15395 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
15396         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
15397         test function names must now match exactly).
15398         * src/SDCCcse.c: added special case in findCheaperOp to allow
15399         extending a short integer. Makes less awful code for bug 700121 test case.
15400
15401 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15402
15403         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
15404         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
15405
15406 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
15407
15408         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
15409         actually called (operandsNotEqual() was called for all
15410         operandsNotEqualX tests).
15411
15412 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
15413
15414         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
15415         with shorter literals. Fixes bug 700121.
15416
15417 2003-03-11    <johan AT balder>
15418
15419         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
15420
15421 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
15422
15423         * src/SDCCloop.c (mergeRegions): an evil beast is dead
15424         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
15425
15426 2003-03-10  Borut Razem <borut.razem AT siol.net>
15427
15428         * src/SDCCmain.c: pipe preprocessor's output
15429         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
15430         * sdcc_vc_in.h: define pclose as _pclose for WIN32
15431         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
15432         which closes all pipes in pipeSet set
15433         * src/SDCCset.c: free deleted item in function deleteSetItem()
15434         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
15435         moved from z80 to src subproject
15436         * .version: increased version number to 2.3.4
15437
15438 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
15439
15440         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
15441         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
15442         * support/regression/ports/xa51/spec.mk: fix typo
15443
15444 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
15445
15446         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
15447
15448 2003-03-09  Borut Razem <borut.razem AT siol.net>
15449
15450         * src/SDCCmain.c: pipe preprocessor's output
15451         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
15452         * sdcc_vc_in.h: define pclose as _pclose for WIN32
15453         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
15454         which closes all pipes in pipeSet set
15455         * src/SDCCset.c: free deleted item in function deleteSetItem()
15456         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
15457         moved from z80 to src subproject
15458
15459 2003-03-09  Borut Razem <borut.razem AT siol.net>
15460
15461         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
15462         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
15463         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
15464         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
15465         * src/SDCCglobl.h: unification of WIN32 native definitions
15466
15467 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15468
15469         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
15470
15471 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
15472
15473         * src/configure.in:   check for endianess (even while cross-compiling)
15474         * src/configure:      check for endianess (even while cross-compiling)
15475         * src/configure_in.h: check for endianess (even while cross-compiling)
15476         * src/avr/gen.c:        remove old endianess stuff
15477         * src/mcs51/gen.c:      remove old endianess stuff
15478         * src/ds390/gen.c:      remove old endianess stuff
15479         * src/pic/gen.c:        remove old endianess stuff
15480         * src/pic/genarith.c:   remove old endianess stuff
15481         * src/pic/glue.c:       fix endianess check
15482         * src/pic16/gen.c:      remove old endianess stuff
15483         * src/pic16/genarith.c: remove old endianess stuff
15484         * src/pic16/glue.c:     fix endianess check
15485         * src/xa51/gen.c:       remove old endianess stuff
15486         * src/z80/gen.c:        fix endianess check
15487         * src/SDCCglue.c:       fix endianess check
15488         * src/ds390/peeph.def: fix bug 700036
15489
15490 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
15491
15492         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
15493         * src/configure: find appropriate data-types on host for SDCC's int and long
15494         * src/configure.in: find appropriate data-types on host for SDCC's int and long
15495         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
15496         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
15497
15498 2003-03-07    <johan AT balder>
15499
15500         Just a big NOOP:
15501                 some minor cleanups before the big shot
15502                 OP_DEFS and OP_USES now use Kevin's protection
15503                 new option --nolabelopt
15504
15505         * src/SDCCBBlock.c:
15506         * src/SDCCast.c,:
15507         * src/SDCCcflow.c:
15508         * src/SDCCcse.c:
15509         * src/SDCCicode.c:
15510         * src/SDCCicode.h:
15511         * src/SDCClabel.c:
15512         * src/SDCCloop.c:
15513         * src/SDCCmain.c:
15514         * src/ds390/ralloc.c:
15515         * src/mcs51/ralloc.c:
15516         * src/pic/ralloc.c:
15517         * src/xa51/ralloc.c:
15518         * src/z80/ralloc.c:
15519
15520 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
15521
15522         * src/pic/pcode.c (get_op): fix 64 bit warnings
15523         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
15524         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
15525         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
15526         * support/regression/tests/malloc.c: fix 64 bit warnings
15527
15528 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
15529
15530         * src/mcs51/gen.c (genMinus): fixed bug 696436
15531
15532 2003-03-02  Borut Razem <borut.razem AT siol.net>
15533
15534         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
15535
15536 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
15537
15538         * configure.in: test for mkstemp
15539         * sdccconf_in.h: add HAVE_MKSTEMP
15540
15541 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
15542
15543         * device/include/ctype.h: removed warning while using --stack-auto
15544         * device/include/malloc.h: removed warning while using --stack-auto
15545         * device/include/string.h: removed warning while using --stack-auto
15546
15547 2003-02-23  Borut Razem <borut.razem AT siol.net>
15548
15549         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
15550         because NDEBUG is defined (see man assert)
15551         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
15552
15553 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15554
15555         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
15556         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
15557
15558 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15559
15560         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
15561         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
15562
15563 2003-02-18    <johan AT balder>
15564
15565         * as/mcs51/asmain.c (asmbl): module can start with a digit
15566         * as/z80/asmain.c (asmbl): module can start with a digit
15567
15568 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
15569
15570         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
15571         * src/asm.c: fix pipe() for Mingw32
15572
15573 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
15574
15575         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
15576         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
15577         make -V work again; --c1mode reads now from stdin
15578         * doc/sdccman.lyx: added --c1mode
15579         * support/Util/SDCCerr.c: new messages for c1 mode
15580         * support/Util/SDCCerr.h: new messages for c1 mode
15581         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
15582
15583 2003-02-15    <johan AT balder>
15584
15585         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
15586
15587 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
15588
15589         * doc/sdccman.lyx: Environment variables, -o and other minor things
15590
15591 2003-02-14    <johan AT balder>
15592
15593         * src/xa51/main.c: before anyone really tries to use it :)
15594
15595         * Install doc's in share/sdcc/doc
15596         * removed some obsolete files
15597         * Do a proper make distclean and uninstall
15598         M Makefile.common.in
15599         R sdccbuild.sh
15600         M as/Makefile
15601         M device/include/Makefile.in
15602         M device/lib/Makefile.in
15603         M doc/sdccman.lyx
15604         M link/Makefile
15605         M sim/ucsim/doc/Makefile.in
15606         M src/clean.mk
15607         R src/avr/peeph.rul
15608         R src/xa51/peeph.rul
15609         M support/cpp2/Makefile.in
15610         M support/makebin/Makefile
15611
15612
15613 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
15614
15615         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
15616
15617 2003-02-10  Borut Razem <borut.razem AT siol.net>
15618
15619         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
15620         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
15621         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
15622         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
15623         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
15624         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
15625         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
15626         src/z80/Makefile.bcc: Borland Makefile cleanup
15627         * as/z80/Makefile.bcc: Added Borland Makefile
15628         * support/cpp2/borland.h: Removed
15629
15630 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
15631
15632         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
15633         * src/SDCC.lex: new pragma NOIV
15634         * src/SDCCglobl.h: new pragma NOIV
15635         * src/SDCCmem.c: new pragma NOIV
15636
15637 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
15638
15639         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
15640
15641 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
15642
15643         * src/SDCCmain.c: signal handling is switched off by --debug
15644         * doc/Makefile: small fix for install; use clean.mk again
15645         * doc/clean.mk: clean *.pdf and *.html too
15646
15647 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
15648
15649         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
15650         * device/lib/printfl.c: fix a ds390 bug by making it portable
15651         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
15652         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
15653         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
15654         * debugger/mcs51/cmd.c: converted multi-line string literals
15655         * sim/ucsim/globals.cc: converted multi-line string literals
15656         * src/SDCCmain.c: introduced signal handler to remove temp files
15657         * doc/Makefile: small tweaks, implement clean
15658         * doc: removed generated files
15659
15660 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15661
15662         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
15663         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
15664         Address Record is not correctly generated for DS390."
15665
15666 2003-02-02  Borut Razem <borut.razem AT siol.net>
15667
15668         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
15669         * as/mcs51/asm.h: fixed compilation with Borland C
15670         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
15671         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
15672         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
15673         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
15674         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
15675         src/z80/Makefile.bcc: delete $(LIB) only if exist
15676         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
15677
15678 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
15679
15680         * device/include/malloc.h: introduced NULL
15681         * device/include/string.h: introduced NULL
15682         * device/include/stdlib.h: introduced NULL
15683         * device/lib/_memcpy.c: removed NULL
15684         * device/lib/_strcat.c: removed NULL
15685         * device/lib/_strchr.c: removed NULL
15686         * device/lib/_strcmp.c: removed NULL
15687         * device/lib/_strcpy.c: removed NULL
15688         * device/lib/_strcspn.c: removed NULL
15689         * device/lib/_strlen.c: removed NULL
15690         * device/lib/_strncat.c: removed NULL
15691         * device/lib/_strncmp.c: removed NULL
15692         * device/lib/_strncpy.c: removed NULL
15693         * device/lib/_strpbrk.c: removed NULL
15694         * device/lib/_strrchr.c: removed NULL
15695         * device/lib/_strspn.c: removed NULL
15696         * device/lib/_strstr.c: removed NULL
15697         * device/lib/_strtok.c: removed NULL
15698         * device/lib/malloc.c: removed NULL, include own header
15699
15700 2003-02-02    <johan AT balder>
15701
15702         * 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
15703         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
15704         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
15705         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
15706         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
15707         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
15708
15709 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15710
15711         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
15712         area 'DATA'"
15713
15714 2003-02-01    <johan AT balder>
15715
15716         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
15717
15718 2003-01-31    <johan AT CP255758-A>
15719
15720         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
15721
15722 2003-01-30    <johan AT balder>
15723
15724         * src/SDCCBBlock.c: automatic bug detection
15725         * src/SDCCicode.c: automatic bug detection
15726
15727 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15728
15729         * src/SDCCglobl.h:   now --xram-size 0 works
15730         * src/SDCCmain.c:    now --xram-size 0 works
15731
15732 2003-01-29    <johan AT balder>
15733
15734         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
15735
15736 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15737
15738         * as/mcs51/aslink.h: Added options --xram-size and --code-size
15739         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
15740         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
15741         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
15742         * src/SDCCglobl.h:   Added options --xram-size and --code-size
15743         * src/SDCCmain.c:    Added options --xram-size and --code-size
15744
15745 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
15746
15747         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
15748         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
15749
15750 2003-01-27    <johan AT balder>
15751
15752         * src/SDCC.y: fixed bug #613764
15753
15754 2003-01-26    <johan AT balder>
15755
15756         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
15757         * src/SDCCsymt.h: fixed bug #673374
15758         * src/SDCCglue.c: fixed bug #661910
15759         * src/SDCCast.c: fixed bug #458099 and 673374
15760
15761 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
15762
15763         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
15764         * as/mcs51/strcmpi.h: added
15765         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
15766         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
15767         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
15768         * as/mcs51/assym.c: strcmpi -> as_strcmpi
15769         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
15770         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
15771         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
15772         * as/mcs51/Makefile.aslink: new module strcmpi
15773         * as/mcs51/Makefile.asx8051: new module strcmpi
15774         * as/mcs51/Makefil.bcc: new module strcmpi
15775         * as/mcs51/Makefile.in: new module strcmpi
15776         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
15777
15778 2003-01-26    <johan AT balder>
15779
15780         * src/SDCCglue.c: reverted back to 1.124
15781         * src/SDCCast.c: reverted back to 1.156
15782         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
15783
15784 2003-01-25    <johan AT balder>
15785
15786         * src/SDCCglue.c: A better fix for bug #661910
15787         * src/SDCCast.c: A better fix for bug #661910
15788         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
15789
15790 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
15791
15792         * src/Makefile.in: remove spawn.o
15793         * src/SDCCmain.c: remove spawn.h
15794         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
15795         * src/spawn.c: removed
15796         * src/spawn.h: removed
15797         * support/regression/ports/ds390/spec.mk: link with -r
15798
15799 2003-01-24    <johan AT CP255758-A>
15800
15801         * src/ds390/gen.c (aopOp): fixed bug #667458
15802         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
15803         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
15804         (createIvalCharPtr): an ival doesn't always have a storage class anymore
15805
15806 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
15807
15808         * src/mcs51/peeph.def: better assembler identation by Frieder
15809         * src/mcs51/gen.c: better assembler identation by Frieder
15810
15811 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
15812
15813         * as/z80/string.h: removed for gcc 3.2
15814         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
15815         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
15816
15817 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
15818
15819         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
15820         * src/SDCCpeeph.c (replaceRule): fix bug #663503
15821         * support/regression/Makefile: separate temp files for ports
15822         * support/regression/generate-cases.py: separate temp files for ports
15823         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
15824         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
15825
15826 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
15827
15828         * moved tinitalk to device/examples/ds390
15829
15830 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
15831
15832         * as/mcs51/lkmem.c: rflag is for DS390
15833         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
15834         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
15835                          (linkEdit): move mem- and map-files the same way as ihx-files
15836         * src/z80/main.c (_setDefaultOptions): removed --generic
15837         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
15838         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
15839         * src/pic/glue.c (picglue): --c1mode works again
15840         * src/pic16/glue.c (pic16glue): --c1mode works again
15841         * src/asm.c (printCLine): fix #660034
15842
15843 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
15844
15845         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
15846         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
15847         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
15848         * as/mcs51/lkmem (summary): better fix for sp problem
15849         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
15850         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
15851         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
15852                                               remove --stack-after-data
15853
15854 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
15855
15856         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
15857         * src/SDCCutil.c (join): ugly bug: missing '\0'
15858         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
15859
15860 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
15861
15862         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
15863         * src/port.h: typo
15864         * src/pic/main.c (_asmCmd): gpasm supports -o
15865         * src/z80/main.c: more general macros
15866         * device/lib/Makefile.in: remove intermediate files
15867
15868 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
15869
15870         * .version: Bumped version number to 2.3.3
15871         * src/SDCCBBlock.c: new option -o
15872         * src/SDCCglobl.h: new option -o
15873         * src/SDCCglue.c: new option -o
15874         * src/SDCCmain.c: new option -o
15875         * src/asm.c: new option -o
15876         * src/ds390/main.c: new option -o
15877         * src/pic/glue.c: new option -o
15878         * src/pic/pcode.c: new option -o
15879         * src/pic/ralloc.c: new option -o
15880         * src/pic16/glue.c: new option -o
15881         * src/pic16/pcode.c: new option -o
15882         * src/pic16/ralloc.c: new option -o
15883         * src/z80/main.c: new option -o
15884         * device/lib/Makefile.in: use -o
15885         * support/regression/ports/ds390/spec.mk: use -o
15886         * support/regression/ports/gbz80/spec.mk: use -o
15887         * support/regression/ports/mcs51/spec.mk: use -o
15888         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
15889         * support/regression/ports/z80/spec.mk: use -o
15890         * support/regression/ports/ucz80/spec.mk: use -o
15891         * support/regression/ports/xa51/spec.mk: use -o
15892         * support/regression/fwk/lib/timeout.c: fix usage string
15893
15894 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
15895         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
15896
15897 2003-01-07    <johan AT balder>
15898
15899         * src/SDCCast.c (decorateType): fixed bug #600035
15900
15901 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
15902         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
15903         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
15904         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
15905         * src/pic/pcode.c: outcommented unused variable to remove warnings
15906         * src/pic/ralloc.c: outcommented unused variable to remove warnings
15907
15908 2003-01-06    <karl AT turbobit.com>
15909         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
15910    regression tests.
15911
15912 2003-01-06    <johan AT balder>
15913
15914         * src/SDCCicode.c: fixed array add
15915
15916 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
15917         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
15918         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
15919
15920 2003-01-04    <johan AT balder>
15921
15922         * src/SDCCval.c (getNelements): fixed the initialized array of structures
15923
15924 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15925         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
15926
15927 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
15928         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
15929         * support/regression/tests/bug-524697.c: fit mem usage into 8032
15930
15931 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
15932         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
15933
15934 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
15935         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
15936
15937 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
15938         * src/mcs51/main.c: removed {bindir}{sep} from aslink
15939
15940 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15941
15942     * in /sdcc/as/mcs51/ changed these files in order to create an
15943     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
15944     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
15945     following files to include the previous two files: aslink.dsp,
15946     Makefile.aslink, Makefile.bcc, and Makefile.in.
15947
15948     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
15949     .adb instead of .cdb
15950
15951 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15952
15953         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
15954         value from option --iram-size.
15955
15956 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15957
15958         * /sdcc/as/mcs51/lklist.c: added boundary check before using
15959         dram[] array.
15960
15961 2002-09-18    <wiml AT hhhh.org>
15962
15963         * SDCClrange.h: exposed setFromRange() and setToRange()
15964         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
15965           packRegsForAccUse() (bug 542397)
15966         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
15967           multiple times and emitting the fetch operations more than once
15968           added aopGetUsesAcc() function to allow binary operators to
15969           fetch their operands in the correct order; made genMinus() emit
15970           compact code for X = LITERAL - Y
15971
15972 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15973         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
15974         sprintf() in line 1267.
15975
15976 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15977         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
15978         like ports.
15979
15980 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15981         Changes to aslink (All the changes are marked with 'JCF'):
15982
15983         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
15984         summary().
15985
15986         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
15987         area BSEG.  Also moves, if possible, the DATA area down into the internal
15988         ram so more space is available.
15989
15990         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
15991         sflag.
15992
15993         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
15994         not bytes.  Function summary() which creates a memory usage summary
15995         file with extension .mem.  Reports of overlaping stack and small stack
15996         size.  If the space for the stack is less than 16 bytes aslink trows a
15997         warning.
15998
15999         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
16000         the 8051.  Option 'y' for memory summary output file.
16001
16002         Changes to sdcc (All the changes are marked with 'JCF'):
16003
16004         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
16005
16006         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
16007         overlaying area for it (uses RegBankUsed[4]).
16008
16009         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
16010         bank zero as used by default.  By default aslink locates the stack
16011         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
16012         the creation of the .mem file.  Delegates the allocation of data area
16013         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
16014         the begining of the stack area to aslink.
16015
16016         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
16017         glue() in SDCCglue.c creates an area for it.
16018
16019 2002-09-03  Borut Razem <borut.razem AT siol.net>
16020         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
16021         sdcc/src/pic/glue.c:
16022         introduced atexit() handler for teporay files removal in case of
16023         errors, assertions, ...
16024
16025 2002-08-29  Borut Razem <borut.razem AT siol.net>
16026         * sdcc/support/cpp2/auto-host_vc_in.h:
16027         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
16028         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
16029         Maybe there is a similar problem with BORLANDC? It should be checked!
16030
16031         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
16032         corrected improper use of assert: the assignment to clr variable was done inside the assert.
16033         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
16034         was not executed, and the compiler (cl) launched a warning:
16035         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
16036
16037 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
16038         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
16039
16040 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
16041         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
16042
16043         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
16044           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
16045           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
16046           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
16047           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
16048           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
16049           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
16050         - added Release configuration in VS projects
16051         - review of compiler an linker options
16052         - VC .exe files are generated in bin_vc directory, not to interfere
16053           with binaries generated from other projects (cygwin, mingw, bcc ...)
16054
16055         * sdcc/src/yacc.dsp: added
16056
16057         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
16058         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
16059         and insert the version number definitions from .version
16060
16061         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
16062
16063         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
16064         added - genarate auto-host.h using auto-host_vc_in.h as template
16065
16066         * sdcc/sdcc_vc.h,
16067         removed from CVS, generated automatically
16068
16069 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
16070         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
16071
16072 2002-08-11  Borut Razem <borut.razem AT siol.net>
16073         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
16074
16075 2002-08-10  Borut Razem <borut.razem AT siol.net>
16076         * src/SDCCmain.c (main):
16077         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
16078         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
16079         The consequence was that some temporary files were not removed.
16080
16081         * src/SDCCglue.c:
16082         unification of code in functions tempfilename() and tempfile():
16083         function tempnam() is defined in Visual Studio 6.0 and .NET
16084
16085         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
16086
16087         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
16088           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
16089         - removed compiler command line option /WX: Treats all warnings as errors
16090         - update a list of source files, included into the project
16091
16092         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
16093           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
16094         changed project type to Generic Project so that can be correcly converted to VS.NET project
16095
16096         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
16097
16098         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
16099
16100         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
16101
16102         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
16103         added return 0 statements after assert() to make compiler happy
16104
16105         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
16106         added newline in the def file to keep MSC compiler satisfied
16107
16108         * sdcc/src/z80/gen.c:
16109         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
16110           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
16111         - solved MSC error in function aopDump()
16112
16113         * sdcc_vc.h: define PREFIX as "\\sdcc"
16114
16115 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
16116         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
16117
16118 2002-06-22  Scott Dattalo <scott AT dattalo.com>
16119         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
16120         - Rewrote the register banking algorithm.
16121         - Added pCode live-range analysis to registers (for now, only non-used and
16122         singly-used registers optimized away)
16123
16124         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
16125
16126         * 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.
16127
16128 2002-05-10  Scott Dattalo <scott AT dattalo.com>
16129         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
16130
16131 2002-04-22  Michael Hope  <michaelh AT vroom>
16132
16133         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
16134
16135         * configure.in (DD_COPT): Added include support required for gbdk.
16136
16137         * .version: Bumped version number just to increase it.
16138
16139         * src/SDCCmain.c: Added -nostdinc to the default options.
16140
16141 2002-04-15  Michael Hope  <michaelh AT vroom>
16142
16143         * device/lib/z80/printf.c (sprintf): Added.
16144
16145         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
16146
16147         * src/z80/peeph.def: Added transpose redundent load rule.
16148
16149         * src/z80/main.c: Added force callee saves for jaune.
16150
16151         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
16152
16153         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
16154
16155 2002-03-28  Johan Knol  <johan AT balder>
16156
16157         * src/SDCCval.c: fixed bug #532436
16158
16159 2002-03-14  Scott Dattalo <scott AT dattalo.com>
16160         * /src/port.h:
16161         Added "char *Processor" field to the port structure.
16162
16163         * /src/SDCCmain.c:
16164         Added -p option. Allows port dependent processor to be specified.
16165
16166         * all ports:
16167         Initialized the new field char *Processor field to NULL in all ports
16168
16169         * /src/pic/*:
16170         Compiler generated registers for interrupt context saving
16171         were not getting allocated.
16172
16173 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
16174
16175         * /src/SDCCast.c:
16176         Fixed left shift. Will promote the left side of a left shift
16177         if a) left shifting more than size of operand or b) when assigned
16178         to something size > size of left side
16179
16180 2002-03-14  Scott Dattalo <scott AT dattalo.com>
16181         * src/pic/*
16182         tons of changes. Register allocation has been
16183         rewritten. Added customization for the various PICs. Flow
16184         analysis is restructured. ...
16185
16186         * src/pic/device.h:
16187         Added
16188
16189         * src/pic/device.c:
16190         Added. device.c is a PIC port hack to accomodate variations
16191         in PIC devices.
16192
16193 2002-03-13  Michael Hope  <michaelh AT vroom>
16194
16195         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
16196
16197 2002-03-04  johanknol  <johanknol AT manik>
16198
16199         * /src/SDCCval.c: fixed
16200
16201         const unsigned char arr[][2] = { { 0, 1 } };
16202         t18.c:1: error: Initializer element is not constant
16203
16204 2002-03-04  bela  <bela AT manik>
16205
16206         * /device/include/mcs51reg.h:
16207         ds89c420 register definition update
16208
16209 2002-03-03    <johan AT FRIJA>
16210
16211         * support/Util/SDCCerr.c: did something, but don't no why anymore
16212
16213         * support/regression/tests/bug-524691.c: made it a little less shy
16214
16215         * src/SDCCast.c (decorateType): fixed bug #524697
16216
16217         * src/SDCCast.c: made some lineno improvements
16218
16219         * src/SDCCval.c (getNelements): changed warning to error
16220
16221         * src/SDCCglue.c (printIvalArray): changed warning to error
16222
16223         * src/SDCCicode.c: fixed a warning for mingw
16224
16225         * src/SDCCast.c (decorateType): fixed the << promotion for ops
16226
16227         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
16228
16229 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
16230
16231         * src/ds390/peeph.def:
16232         Added some more peephole rules
16233
16234         * src/ds390/gen.c: Various fixes & enhancements
16235
16236         * src/SDCClrange.c, src/SDCClrange.h:
16237         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
16238
16239         * src/ds390/ralloc.c:
16240         various fixes & enhancements (ds390) specific
16241
16242         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
16243         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
16244         from rallocs.
16245
16246         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
16247
16248 2002-03-02    <johan AT FRIJA>
16249
16250         * src/SDCCast.c (decorateType): fixed bug #524708
16251
16252         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
16253
16254         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
16255
16256 2002-03-01  Michael Hope  <michaelh AT vroom>
16257
16258         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
16259
16260         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
16261
16262 2002-03-01    <johan AT FRIJA>
16263
16264         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
16265
16266         * src/SDCCast.c (decorateType): fixed bug #524209
16267
16268         * src/SDCCval.c (valNot): fixed bug #524195
16269
16270 2002-02-26    <johan AT balder>
16271
16272         * src/xa51/gen.c: fixed a warning
16273
16274         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
16275
16276         * src/SDCCast.c (decorateType): fixed bug #522534
16277
16278 2002-02-23    <johan AT balder>
16279
16280         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
16281
16282 2002-02-22    <johan AT balder>
16283
16284         * src/SDCCast.c: fixed bug #514865
16285
16286         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
16287
16288 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
16289
16290         * sdcc/src/SDCCloop.c:
16291         Previous fix was not good. basic blocks that have "break" or "return" are
16292         not really partof a loop , but live ranges used in these blocks should
16293         be live thru the entire loop, so set partOfLoop but don't add them to
16294         loop region
16295
16296 2002-02-21    <johan AT FRIJA>
16297
16298         * src/SDCCcse.c: fixed bug #514308
16299
16300 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
16301
16302         * src/SDCCloop.c:
16303         Fixed BUG #519583. If a conditional block ended in a return/break
16304         statement inside a loop, it was not being considered part of the loop.
16305
16306         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
16307
16308 2002-02-10  Karl Bongers <karl AT turbobit.com>
16309
16310         * debugger/*:
16311         Fixed up SDCDB debugger somewhat.  Updated debugger/README
16312         with lots of comments and notes.
16313
16314         * device/examples/test2.c:
16315         Fix bug, "red" variable not being initialized(compiler complained).
16316
16317         * device/examples/Makefile, examples/test3.c:
16318         Add Makefile in device/examples folder, compiles test3.c
16319         for use as a multiple module SDCDB test case.
16320
16321         * sim/ucsim/cmd.src/cmdset.cc:
16322         Took out debug printfs in ucsim "next" command.
16323
16324         * sim/ucsim/xa.src:
16325         Karl and Johan start ucsim XA support.  Most dissassembly working,
16326         about 75% emulation done(plenty of work remaining).
16327
16328         * sim/ucsim/z80.src:
16329         Add Z80 support to ucsim, add test-ucz80 regression test,
16330         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
16331         Notice z80 compiler fails on examples/test3.c/crc code.
16332
16333 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
16334
16335         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
16336         Added support for --parms-in-bank1
16337
16338         * src/ds390/peeph.def:
16339         added a few more peephole optimzations
16340
16341         * src/ds390/main.c:
16342         1) added __builtin_inp & __builtin_outp used to read in data of given length
16343            from a memory mapped port
16344         2) added __builtin_memcmp
16345         3) added __builtin_swapw swap bytes of a short
16346
16347         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
16348         1) handle multiple send & receives from register bank1
16349         2) ralloc can now allocate DPTR1 to some liveRanges
16350
16351         * src/SDCCsymt.c, src/SDCCsymt.h:
16352         changes to handle multiple sends & receives
16353
16354         * src/SDCCptropt.h:
16355         added some pointer arithmetic optimization
16356
16357         * src/SDCCptropt.c:
16358         added some pointer arithmetic optimizations but not stable yet so not
16359         called from anywhere (will get this working shortly)
16360
16361         * src/SDCCopt.c: fixed for multiple sends & receives
16362
16363         * src/SDCCmain.c:
16364         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
16365         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
16366            set preprocessor defines (depending on options)
16367
16368         * src/SDCCicode.c, src/SDCCicode.h:
16369         changes made to handle multiple sends & receives
16370
16371         * src/SDCCglobl.h:
16372         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
16373
16374         * src/SDCCcse.c, src/SDCCcse.h:
16375         added function findbackward def (to be used in upcoming optimization)
16376
16377         * src/SDCCcflow.c, src/SDCCcflow.h:
16378         added function returnAtEnd - to determine if a basic block terminates with
16379         a RETURN iCode
16380
16381         * src/SDCCast.c, src/SDCCast.h:
16382         added option parms-in-bank1
16383
16384         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
16385         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
16386         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
16387         adjusted for --parms-in-bank1 option
16388
16389         * device/include/string.h:
16390         donot redefine "reentrant" keyword
16391
16392         * device/include/ds80c390.h: Added some more SFRs
16393
16394 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
16395
16396         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
16397
16398 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
16399
16400         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
16401
16402 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
16403
16404         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
16405
16406 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
16407
16408         * Added --xram-movc option
16409
16410 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
16411
16412         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
16413
16414 2002-01-11  Johan Knol
16415
16416         * Added math lib of Jesus Calvino-Fraga
16417
16418 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
16419
16420         * src/SDCCmain.c (processFile): fix processing of ../../src.c
16421         * support/regression/Makefile: new target test-mcs51-stack-auto
16422         * support/regression/ports/mcs51-stack-auto/spec.mk: added
16423
16424 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
16425
16426         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
16427
16428 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
16429
16430         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
16431
16432 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
16433
16434         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
16435
16436         * src/SDCCglue.h: add definition for printIvalChar()
16437
16438 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
16439
16440         * src/SDCCast.c: fix #498138 by Johan
16441
16442         * src/SDCCglue.c: fix #498138 by Johan
16443
16444 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
16445
16446         * support/regression/Makefile: fix clean
16447
16448         * support/regression/ports/ds390/support.c: fix transmission of last character
16449
16450 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
16451
16452         * /sdcc/src/ds390/gen.c:
16453         a) improved computing address of stack variable
16454         b) took out some #if 0 code
16455         c) improved parmBytes adjustment
16456         d) improved genPlusIncr & genMinusIncr
16457         e) genCmp could generate bad code (when left assigned to DPTR)
16458         f) Fixed bug in hasInc
16459
16460         * /sdcc/src/ds390/ralloc.c:
16461         a) packRegsForSupport could mess up live information (Fixed)
16462         b) packRegsDPTRuse could be incorrect for left & right shift
16463
16464         * /sdcc/src/mcs51/ralloc.c:
16465         packRegsForSupport could mess up the live information (Fixed)
16466
16467         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
16468
16469         * /sdcc/src/SDCCast.c:
16470         can reverse a loop even if function call is present as long
16471         as the loop control variable is local & is not passed as parameter
16472
16473 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16474
16475         * /sdcc/ChangeLog: *** empty log message ***
16476
16477         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
16478         More builtin function additions for TININative
16479
16480         * /sdcc/src/ds390/ralloc.c:
16481         Had broken the regression testsuite
16482
16483         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
16484
16485         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
16486         Added funcattr hasStackParms will be set for reentrant functions when there
16487         are paramteres on the stack, this helps in minimizing frame pointer generation
16488         typeFromStr can handle function pointers now
16489
16490         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
16491         *** empty log message ***
16492
16493 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16494
16495         * /src/ds390/gen.c, /src/ds390/main.c:
16496         More builtin function additions for TININative
16497
16498         * /src/ds390/ralloc.c:
16499         Had broken the regression testsuite
16500
16501         * /src/SDCCast.c: Fixed a bug in dumptree
16502
16503         * /src/SDCCsymt.c, /src/SDCCsymt.h:
16504         Added funcattr hasStackParms will be set for reentrant functions when there
16505         are paramteres on the stack, this helps in minimizing frame pointer generation
16506         typeFromStr can handle function pointers now
16507
16508         * /doc/builtins.txt, /doc/TININative.txt:
16509         *** empty log message ***
16510
16511
16512 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16513
16514         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
16515         ALPHA version for -mTININative
16516
16517         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
16518         updated to reflect changes in the port structure
16519
16520         * /src/port.h:
16521         added function do_assemble (similar to do_link) if non-null this function
16522         will be called to do assembly (-mTININative) requires a multi command
16523         assembly
16524         added function genAssemblerEnd will be called to generate assembler Epilogue
16525
16526         * /src/SDCCsymt.c:
16527         added _JavaNative to debug info printing
16528
16529         * /src/SDCCmain.c: added option --tini-libid
16530         added port->do_assemble function (-mTININative) has a multi command assemble
16531
16532         * /src/SDCCglue.c: Disabled "constExpr" check
16533         added port->genAssemblerEnd function
16534
16535         * /src/SDCCglobl.h: Added option --tini-libid value
16536
16537         * /src/SDCCast.h:
16538         tookout optimizeCompare from the header (has no external references)
16539
16540         * /src/SDCCast.c: made one more function "static"
16541
16542 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
16543
16544         * src/z80/mappings.i: Added z80asm support.
16545
16546         * src/z80/main.c: Added z80asm support on --asm=z80asm
16547
16548         * src/z80/gen.c: Fixed asm portability issues.
16549
16550         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
16551
16552         * src/SDCCglue.c (printExterns): Added global/extern split.
16553
16554 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
16555
16556         * support/regression/Makefile: added test for mcs51 model large
16557
16558         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
16559
16560         * support/regression/ports/gbz80/spec.mk: added -mgbz80
16561
16562 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
16563
16564         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
16565
16566 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
16567
16568         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
16569
16570         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
16571
16572 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
16573
16574         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
16575
16576         * support/regression/tests/simplefloat.c: Port to mcs51.
16577
16578 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
16579         * support/regression/tests/bug-485362.c: Added.
16580
16581         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
16582
16583         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
16584
16585         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
16586
16587         * src/z80/gen.c (aopDump): Added a dump function.
16588
16589 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
16590         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
16591
16592         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
16593
16594         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
16595
16596         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
16597
16598         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
16599
16600         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
16601
16602         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
16603
16604         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
16605
16606         * support/regression/ports/ds390/support.c: Use tinibios.
16607
16608         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
16609
16610 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
16611
16612         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
16613         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
16614
16615         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
16616
16617         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
16618
16619 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
16620
16621         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
16622
16623         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
16624         (packRegsForIYUse): Created and optimised.
16625
16626 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
16627
16628         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
16629 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
16630
16631         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
16632
16633         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
16634
16635         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
16636
16637 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16638
16639         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
16640
16641         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
16642
16643 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16644
16645         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
16646
16647         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
16648
16649         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
16650
16651 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
16652
16653         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
16654         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
16655         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
16656
16657         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
16658
16659         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
16660         (genNotFloat): Added.
16661         (genUminusFloat): Added.
16662
16663         * device/lib/z80/Makefile: Added floating pt stubs.
16664
16665         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
16666
16667         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
16668
16669         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
16670
16671 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16672
16673         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
16674
16675         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
16676
16677         * sdcc/support/regression/Makefile: Add port ds390.
16678
16679         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
16680
16681         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
16682
16683         * sdcc/support/regression/ports/ds390/spec.mk: Added.
16684
16685         * sdcc/support/regression/ports/ds390/support.c: Added.
16686
16687         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
16688
16689         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
16690
16691         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
16692
16693 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
16694
16695         * device/include/malloc.h: Added z80 and gbz80 support.
16696
16697         * device/lib/gbz80/heap.s: Added.
16698
16699         * device/lib/z80/heap.s: Added.
16700
16701         * device/lib/malloc.c: Added z80 and gbz80 support.
16702
16703         * support/regression/tests/malloc.c (testMalloc): Added.
16704
16705         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
16706
16707         * support/regression/tests/bug-478094.c: Added.
16708
16709         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
16710
16711 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
16712
16713         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
16714
16715         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
16716
16717         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
16718
16719         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
16720
16721         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
16722
16723 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
16724
16725         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
16726
16727 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
16728
16729         * support/regression/tests/bug-477927.c: Added.
16730
16731         * src/z80/peeph.def: Added minor rules.
16732
16733         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
16734
16735         * src/z80/peeph.def: Added jump optimisation modification.
16736
16737 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
16738
16739         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
16740
16741 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
16742
16743         * support/regression/tests/funptrs.c: Added.
16744
16745 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
16746
16747         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
16748
16749 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
16750
16751         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
16752
16753         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
16754
16755         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
16756         (movLeft2ResultLong): Created.
16757
16758         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
16759         (joinPushes): Added.  Joins two char pushes into a word push.
16760
16761 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
16762
16763         * support/cpp2/Makefile.in (install): Added creation of dest dir.
16764
16765         * support/makebin/Makefile (install): Added creation of dest dir.
16766
16767 2001-10-24 Karl Bongers <karl AT turbobit.com>
16768
16769         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
16770
16771 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
16772
16773         * src/z80/ralloc.c: Turned off faulty pack for one use.
16774
16775         * src/z80/peeph-gbz80.def: Removed redundent restart options.
16776
16777         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
16778
16779 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
16780
16781         * support/regression/Makefile: Improved clean
16782
16783         * support/regression/ports/gbz80/spec.mk: Added clean
16784
16785         * support/regression/ports/host/spec.mk: Added clean
16786
16787         * support/regression/ports/z80/spec.mk: Added clean
16788
16789         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
16790
16791         * support/regression/ports/mcs51/timeout.c: little improvements
16792
16793 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
16794
16795         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
16796
16797         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
16798
16799         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
16800
16801 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
16802
16803         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
16804
16805         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
16806
16807 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
16808         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
16809
16810         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
16811
16812         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
16813
16814         * src/mcs51/main.c (_linkCmd): Added bin path to command.
16815
16816         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
16817
16818         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
16819
16820         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
16821
16822         * support/regression/tests/longor.c: Added.
16823
16824 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
16825
16826         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
16827
16828         * as/mcs51/aslink.h: define PATH_MAX
16829
16830         * as/mcs51/asm.h: define PATH_MAX
16831
16832         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
16833
16834         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
16835
16836         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
16837
16838         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
16839
16840         * src/SDCCglobl.h: define PATH_MAX
16841
16842         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
16843
16844         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
16845
16846 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
16847
16848         * src/z80/gen.c (gencjneshort): Fixed
16849
16850         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
16851
16852 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
16853
16854         * support/regression/tests/bug-469671.c: Added.
16855
16856         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
16857
16858 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
16859
16860         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
16861
16862         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
16863
16864 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
16865
16866         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
16867
16868         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
16869
16870         * src/device/lib/_mullong.c : removed hint: nooverlay bug
16871
16872         * src/device/lib/_divuint.c : removed hint: nooverlay bug
16873
16874         * src/device/lib/_divulong.c: removed hint: nooverlay bug
16875
16876         * src/device/lib/_moduint.c : removed hint: nooverlay bug
16877
16878         * src/device/lib/_modulong.c: removed hint: nooverlay bug
16879
16880 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
16881
16882         * 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.
16883
16884         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
16885
16886         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
16887
16888 2001-10-07    <johan AT FRIJA>
16889
16890         * device/lib/gets.c (gets): fixed the return value.
16891
16892 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
16893         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
16894
16895         * 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.
16896
16897         * 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.
16898
16899         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
16900
16901         * src/pic/gen.c: Removed Safe_strdup.
16902
16903         * configure.in: Added option to enable libgc support.
16904
16905         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
16906         (bitVectUnion): Optimised.
16907         (bitVectIntersect): Optimised.
16908         (bitVectBitsInCommon): Optimised.
16909         (bitVectCplAnd): Optimised.
16910
16911         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
16912
16913 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16914
16915         * src/SDCCmain.c: distinguish between assembler debug and plain options
16916
16917         * src/avr/main.c:   remove standard assembler options
16918
16919         * src/ds390/main.c: remove standard assembler options
16920
16921         * src/mcs51/main.c: remove standard assembler options
16922
16923         * src/port.h: removed "PENDING" comment
16924
16925 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16926
16927         * src/device/lib/_mulint.c  : new, with assember functions
16928
16929         * src/device/lib/_mullong.c : new, with assember functions
16930
16931         * src/device/lib/_divuint.c : with assember functions
16932
16933         * src/device/lib/_divsint.c : with assember functions
16934
16935         * src/device/lib/_divulong.c: with assember functions
16936
16937         * src/device/lib/_divslong.c: with assember functions
16938
16939         * src/device/lib/_moduint.c : with assember functions
16940
16941         * src/device/lib/_modsint.c : with assember functions
16942
16943         * src/device/lib/_modulong.c: with assember functions
16944
16945         * src/device/lib/_modslong.c: with assember functions
16946
16947         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
16948
16949         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
16950
16951         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
16952                                       replaced _mululong.c and _mulslong.c by _mullong.c
16953
16954 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16955
16956         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
16957
16958 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
16959
16960         * src/SDCCglue.c: test, if win32api is available for MINGW
16961
16962 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
16963
16964         * src/SDCCsymt.c: no more _modifier in printTypeChain()
16965         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
16966         * support/regression/ports/gbz80/spec.mk: removed GENERIC
16967         * support/regression/ports/host/spec.mk: removed GENERIC
16968         * support/regression/ports/mcs51/spec.mk: removed GENERIC
16969         * support/regression/ports/z80/spec.mk: removed GENERIC
16970
16971 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
16972
16973         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
16974
16975         * support/regression/tests/bug-467035.c: Created.
16976
16977 2001-10-01    <johan AT FRIJA>
16978
16979         * src/SDCC.y: fixed bug #466586 part 1
16980
16981 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
16982
16983         * SDCCicode.c: z80 has no generic pointers
16984         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
16985
16986 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
16987
16988         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
16989
16990 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
16991
16992         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
16993
16994         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
16995
16996 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
16997
16998         * configure.in: Fixed up so that ucsim is only configured once.
16999
17000         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
17001
17002         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
17003         (getPathDifference): As above.
17004
17005         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
17006
17007         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
17008
17009 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
17010         * .version: Updated to 2.3.1
17011
17012         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
17013         Added copyright header.
17014
17015         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
17016         (assemble): Added support for macro based assembler commands.
17017         (linkEdit): Added support for macro based linker commands.
17018         (preProcess): Changed the pre-processor to use macros.
17019         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
17020         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
17021
17022         * device/lib/z80/crt0.s: Added module name for debugging.
17023
17024 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
17025
17026         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
17027
17028         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
17029
17030         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
17031
17032         * src/Makefile.in: Added SDCCmacro and SDCCutil
17033
17034 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
17035
17036         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
17037
17038 2001-09-16    <johan AT FRIJA>
17039
17040         * 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.
17041
17042 2001-09-15    <johan AT FRIJA>
17043
17044         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
17045         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
17046
17047 2001-09-11    <johan AT FRIJA>
17048
17049         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
17050
17051 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
17052
17053         * support/regression/tests/bug-460444.c: Added test case.
17054
17055         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
17056         (genCast): Added justification for all of the asserts.
17057
17058 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
17059
17060         * support/regression/support.c: _xdata replaced by xdata
17061
17062         * support/regression/spec.mk: removed _generic
17063
17064 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
17065
17066         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
17067
17068         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
17069         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
17070
17071         * src/z80/peeph.def: Added a rule to optimise shift then compare.
17072
17073         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
17074
17075         * support/regression/tests/bug-460010.c: Added test case.
17076
17077         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
17078
17079 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
17080
17081         * support/regression/Makefile: inter-port-clean adjusted for mcs51
17082
17083         * support/regression/testfwk.c: removed workaround for bug #436344
17084
17085         * support/regression/tests/bp.c: use less memory with mcs51
17086
17087         * support/regression/tests/bug-441448.c: use less memory
17088
17089         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
17090
17091         * support/regression/collate-results.py: typo
17092
17093 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
17094
17095         * support/regression/tests/fetchoverlap.c: Added new test case.
17096
17097         * support/regression/tests/bp.c: Added new test case.
17098
17099         * support/regression/tests/bug-448984.c: Added new test case.
17100
17101         * support/regression/tests/pow2shifts.c: Added new test case.
17102
17103         * src/z80/gen.c: Turned off the noise it normally generates for the release.
17104         (genlshTwo): Fixed right shift for count > 8.
17105
17106         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
17107
17108 2001-09-08    <johan AT FRIJA>
17109
17110         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
17111
17112 2001-09-07    <johan AT FRIJA>
17113
17114         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
17115
17116         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
17117
17118 2001-09-06    <johan AT FRIJA>
17119
17120         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
17121         * bernhard noted me at this: "() equals to (void)" (1.38)
17122
17123 2001-09-05    <johan AT FRIJA>
17124
17125         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
17126
17127 2001-09-04    <johan AT FRIJA>
17128
17129         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
17130
17131
17132 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
17133
17134         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
17135
17136 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
17137
17138         * link/z80/aslink.h: Fixed path for PATH_MAX
17139
17140 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
17141
17142         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
17143
17144         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
17145
17146         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
17147
17148         * 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.
17149
17150 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
17151
17152         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
17153         (genCmp): Fixed up genCmp for the GB with longs.
17154
17155         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
17156
17157         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
17158
17159         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
17160
17161         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
17162
17163 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
17164
17165         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
17166
17167 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
17168
17169         * 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.
17170
17171         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
17172
17173 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
17174
17175         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
17176
17177         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
17178
17179 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
17180
17181   * sim/ucsim/configure:    little improvement of Cygwin-detection
17182   * sim/ucsim/configure.in: little improvement of Cygwin-detection
17183   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
17184   * support/regression/tests/bug-221100.c: small changes for mcs51
17185   * support/regression/tests/bug-221168.c: small changes for mcs51
17186   * support/regression/tests/bug-227710.c: small changes for mcs51
17187   * support/regression/tests/staticinit.c: small changes for mcs51
17188   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
17189   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
17190   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
17191
17192 $Revision$