* support/regression/tests/bug1057979.c:
[fw/sdcc] / ChangeLog
1 2008-09-15 Borut Razem <borut.razem AT siol.net>
2
3         * device/include/pic16/stdio.h, device/lib/pic16/libc/stdio/streams.c,
4           device/lib/pic16/libc/stdio/printf.c,
5           device/lib/pic16/libc/stdio/strmusart.c,
6           device/lib/pic16/libc/stdio/printf_tiny.c,
7           device/lib/pic16/libc/stdio/sprintf.c,
8           device/lib/pic16/libc/stdio/strmgpsim.c,
9           device/lib/pic16/libc/stdio/putchar.c,
10           device/lib/pic16/libc/stdio/fprintf.c,
11           device/lib/pic16/libc/stdio/strmmssp.c,
12           device/device/lib/pic16/libc/stdio/vprintf.c,
13           device/lib/pic16/libc/stdio/printf_small.c,
14           device/lib/pic16/libc/stdio/vsprintf.c,
15           device/lib/pic16/libc/stdio/strmputchar.c,
16           device/lib/pic16/libc/Makefile.am,
17           device/lib/pic16/libc/Makefile.in:
18           *printf now returns int, puchar.c moved from stdlib to stdio,
19           *printf format parameter type changed from char * to const char *,
20           added GNU link excetion text to library source files,
21           applyed GNU coding style, removed useless svn ids,
22           added BINARY_SPECIFIER macro re-enables the use of the removed 'b'
23           binary specifier: "%b", "%hb" and "%lb"
24         * device/lib/pic16/libc/stdio/vfprintf.c:
25           applied patch #2044424: PIC16: vfprintf
26           thanks Mauro Giachero
27         * support/regression/tests/bug1057979.c:
28           removed old pic16 sprintf specifics
29         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.4
30         * doc/sdccman.lyx: documented 'b' binary format specifier removal
31
32 2008-09-15 Raphael Neider <rneider AT web.de>
33
34         * src/pic16/device.c (pic16_dump_usection): force udata sections
35           into the addressable range (0..0xFFF), workaround for a gpsim
36           bug preventing simulation of regtest bug1750318
37         * src/pic16/ralloc.c (deassignLRs): cosmetic changes,
38           (serialRegAssign): fixed regtest bug-971834,
39           (pic16_packRegisters): avoid null-pointer dereference
40
41 2008-09-14 Raphael Neider <rneider AT web.de>
42
43         * src/pic16/gen.c, src/pic16/ralloc.c: use
44           SYM_SPIL_LOC/SPIL_LOC macros, no functional changes
45         * src/pic16/ralloc.c (rematStr): reimplemented, fixes #1818857
46
47 2008-09-12 Borut Razem <borut.razem AT siol.net>
48
49         * support/regression/fwk/testfwk.h:
50           define pdata as data for pic16 target
51           thanks Mauro Giachero
52
53 2008-09-11 Borut Razem <borut.razem AT siol.net>
54
55         * support/regression/tests/bug-221100.c, support/regression/shifts.c,
56           support/regression/absolute.c:
57           applied patch #2105615: Some PIC16 testcase fixlets
58           thanks Mauro Giachero
59
60 2008-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
61
62         * src/z80/gen.c (genCmpGt, genCmpLt): fixed bug 2094505
63         * support/regression/tests/bug2094505.c: new, added
64
65 2008-09-07 Borut Razem <borut.razem AT siol.net>
66
67         * src/SDCCglue.c, src/SDCCast.c:
68           fixed throw of "excess elements" warning for char arrays
69
70 2008-09-07 Maarten Brock <sourceforge.brock AT dse.nl>
71
72         * as/z80/aslist.c (lstsym): changed old K&R to ANSI
73         * src/SDCCicode.c (geniCodeCritical): fixed bug for hc08
74         * src/z80/gen.c (genCritical, genEndCritical): fixed bug 2077267
75         * support/regression/tests/bug2077267.c: new, added
76
77 2008-09-05 Raphael Neider <rneider AT web.de>
78
79         * configure.in, Makefile.common.in: add support for ccache,
80           remove spurious $VERSION output, detect doc-tools even without
81           --enable-doc to facilitate later manual doc-builds, minor cleanup
82         * configure: regenerated
83
84         * doc/Makefile.in: quieten pdflatex, makeindex, and latex2html,
85           avoid races in parallel VPATH builds
86         * doc/clean.mk: remove .lyx files in the builddir for VPATH builds
87         * doc/sdccman.lyx: mention --without-ccache configure option
88
89 2008-09-01 Raphael Neider <rneider AT web.de>
90
91         * src/pic16/gen.c (pic16_derefPtr): handle CPOINTERs as well
92         * (genConstPointerGet): fix reading bitfields from __code space
93         * src/pic16/glue.c (pic16_printIvalBitFields): correctly mask
94           bitfield initializers (fix regression test bug1856409.c)
95         * (pic16_printIvalCharPtr,pic16_printIvalPtr): generalized to support
96           arbitrary sizes
97
98 2008-08-31 Raphael Neider <rneider AT web.de>
99
100         * src/pic16/gen.c (genAssign): removed useless compiler output
101         * (genPointerGet,genPointerSet,genCast),
102           src/pic16/glue.c (pic16_printGPointerType):
103           also handle PPOINTERs just to avoid spurious asserts
104         * (pic16_printIvalType,pic16_printIvalBitFields):
105           generalized to arbitrary type/bitfield sizes, allows compilation of
106           regression test bug-1981238.c
107         * (pic16_printIvalChar): fix regression test structflexarray.c
108         * (pic16_printIvalArray): avoid SIGSEGV on uninitialized strings
109           in initialized structs and fix #1843745
110         * (pic16_printIvalStruct): always output initializers for all fields,
111           even those not explicitly given, fixes zeropad.c regression test
112         * (pic16_printIvalUnion): fix union initializers (bug1426356.c,
113           #2073635, #1567098, and #1485812)
114         * src/pic16/main.c (_pic16_keywords): remove unsupported 'pdata'
115
116 2008-08-31 Borut Razem <borut.razem AT siol.net>
117
118         * support/regression/tests/bug-895992.c,
119           support/regression/tests/onebyte.c:
120           enabled pic16 regression testing since the bugs
121           1511794: pic16: regression test bug-895992.c fails
122           1444425: onebyte.c regression tes fails on pic16
123           are fixed, probably by fixing
124           2048464: PIC16: fix genUminus - addresses not.c regression test
125         * src/SDCCsymt.c, src/SDCCglue.c,
126           support/regression/tests/bug-1981238.c:
127           applied patch 2076664: fix #1981238 + SIGSEGV in SDCCGlue.c
128           thanks to RvS
129
130 2008-08-30 Borut Razem <borut.razem AT siol.net>
131
132         * support/cpp/libcpp/files.c: SDCPP synchronized with GCC CPP
133           release version 4.3.2
134
135 2008-08-24 Raphael Neider <rneider AT web.de>
136
137         * device/lib/pic16/configure, device/lib/pic16/configure.ac:
138           always use the sdcc from the current build tree (ignore $CC from
139           the environment, fixes compile farm builds)
140         * device/lib/Makefile.in: rename .a into .lib for compatibility,
141           remove more build products from install directory
142         * sdcc/src/pic16/main.c (_pic16_linkEdit,_pic16_finaliseOptions)
143         * sdcc/support/scripts/sdcc.nsi: revert to .lib extension for libs
144
145 2008-08-24 Borut Razem <borut.razem AT siol.net>
146
147         * src/SDCC.y: applied patch
148           2050245: Fix # 1963382
149           for bug
150           1963382: Listing File - C file comment is incorrect
151           thanks to RvS
152
153 2008-08-23 Borut Razem <borut.razem AT siol.net>
154
155         * src/pic16/gen.c: applied patch
156           2048464: PIC16: fix genUminus - addresses not.c regression test
157           thanks Mauro Giachero
158
159 2008-08-22 Borut Razem <borut.razem AT siol.net>
160
161         * device/lib/pic16/configure, device/lib/pic16/configure.ac,
162           src/pic16/main.c: allow spaces in gpasm and gplink paths
163
164 2008-08-15 Philipp Klaus Krause <pkk AT spth.de>
165
166         * src/z80/peep.c,
167         * src/z80/peeph-z80.def: minor peephole improvement
168
169 2008-08-15 Raphael Neider <rneider AT web.de>
170
171         * src/z80/gen.c (_vemit2): suppress compiler warning
172
173         * src/pic/*.[ch]: make proper use of header files and avoid
174           ad-hoc extern declarations, mark module-local helpers 'static',
175           removed dead/replaced code, no functional changes
176         * src/pic16/pcode.c: disentangled from pic14 backend
177
178 2008-08-14 Philipp Klaus Krause <pkk AT spth.de>
179
180         * src/z80/gen.c: fixed #2051348
181         * support/regression/tests/bug-2051348.c: regression test for #2051348
182
183 2008-08-10 Raphael Neider <rneider AT web.de>
184
185         * configure.in,
186         * Makefile.common.in: export PACKAGE for $docdir,
187           fixes #1957036, avoid some "underquoted definition" warnings
188         * configure: regenerated
189
190 2008-08-10 Raphael Neider <rneider AT web.de>
191
192         * device/lib/pic16/**: build pic16 library using autotools for
193           improved dependency tracking
194
195         * device/lib/Makefile.in,
196         * src/pic16/main.c,
197         * support/scripts/sdcc.nsi: adapt to changes in filenames (s/.lib/.a/)
198
199 2008-08-10 Raphael Neider <rneider AT web.de>
200
201         * src/pic/pcode.c (ReuseReg): do not overlay the registers used for
202           local variables if --nooverlay is given, workaround for #2023121
203
204 2008-08-08 Raphael Neider <rneider AT web.de>
205
206         * src/pic16/genarith.c (genAddLit): fix structure access (#1888004)
207
208 2008-08-08 Raphael Neider <rneider AT web.de>
209
210         * src/pic/pcoderegs.c,
211         * src/pic/pcode.c,
212         * src/pic16/pcode.c: replace own SAFE_snprintf with common SNPRINTF
213
214 2008-08-07 Borut Razem <borut.razem AT siol.net>
215
216         * src/SDCCval.c, src/SDCCmain.c, src/SDCC.lex,
217           device/lib/pic/Makefile.rules, device/lib/ds390/Makefile.in,
218           device/lib/ds400/Makefile.in, device/lib/hc08/Makefile.in,
219           support/cpp/libcpp/lex.c,  doc/sdccman.lyx:
220           applied modified patch 2038174: Add support for binary constants v2
221           thanks Mauro Giachero
222         * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.3
223
224 2008-08-04 Raphael Neider <rneider AT web.de>
225
226         * doc/sdccman.lyx,
227         * src/pic16/device.h,
228         * src/pic16/glue.c,
229         * src/pic16/main.c: enable --optimize-goto by default
230
231         * device/lib/pic16/Makefile.common.in: suppress removed option
232
233         * src/pic16/gen.c,
234         * src/pic16/genutils.c: avoid too long relative branches (#2031890)
235
236 2008-07-30 Borut Razem <borut.razem AT siol.net>
237
238         * src/pic16/device.c, src/pic16/glue.c, src/pic16/pcode.c:
239           applied patch 22032433: PIC16: fix constant strings,
240           thanks Mauro Giachero
241
242 2008-07-29 Borut Razem <borut.razem AT siol.net>
243
244         * src/pic16/gen.c: applied patches:
245           2030306: [1/3] PIC16: fix failing rotate.c tests on 16-bit variables,
246           2030307: [2/3] PIC16: fix failing rotate.c tests for 32-bit var (1),
247           2030310: [3/3] PIC16: fix failing rotate.c tests for 32-bit var (2),
248           thanks Mauro Giachero
249
250 2008-07-13 Philipp Klaus Krause <pkk AT spth.de>
251
252         * src/port.h: Fixed typo in comment
253
254 2008-07-12 Philipp Klaus Krause <pkk AT spth.de>
255
256         * src/z80/mappings.i: Implemented RFE #1919415
257         * src/z80/peeph-z80.def: Implemented RFE #1919415, #1861376,
258           #1880202, #1914434, prepared for RFE #1703943
259
260 2008-07-12 Philipp Klaus Krause <pkk AT spth.de>
261
262         * src/z80/peeph.def,
263         * src/z80/peeph-z80.def,
264         * src/z80/peeph-gbz80.def: separate Z80 from GBZ80 peepholes in
265           preparation for Z80 peephole improvements
266
267 2008-06-21 Raphael Neider <rneider AT web.de>
268
269         * device/include/pic16/pic18f66j60.h,
270         * device/include/pic16/pic18f66j65.h,
271         * device/include/pic16/pic18f67j60.h,
272         * device/include/pic16/pic18f86j60.h,
273         * device/include/pic16/pic18f86j65.h,
274         * device/include/pic16/pic18f87j60.h,
275         * device/include/pic16/pic18f96j60.h,
276         * device/include/pic16/pic18f96j65.h,
277         * device/include/pic16/pic18f97j60.h,
278         * device/lib/pic16/libdev/pic18f66j60.c,
279         * device/lib/pic16/libdev/pic18f66j65.c,
280         * device/lib/pic16/libdev/pic18f67j60.c,
281         * device/lib/pic16/libdev/pic18f86j60.c,
282         * device/lib/pic16/libdev/pic18f86j65.c,
283         * device/lib/pic16/libdev/pic18f87j60.c,
284         * device/lib/pic16/libdev/pic18f96j60.c,
285         * device/lib/pic16/libdev/pic18f96j65.c,
286         * device/lib/pic16/libdev/pic18f97j60.c,
287         * device/include/pic16/pic16devices.txt,
288         * device/include/pic16/pic18fregs.h,
289         * device/lib/pic16/pics.all: added new devices
290
291         * device/include/pic16/adc.h,
292         * device/lib/pic16/libio/adc/adcbusy.c,
293         * device/lib/pic16/libio/adc/adcopen.c,
294         * device/lib/pic16/libio/adc/adcsetch.c,
295         * device/lib/pic16/libio/i2c/i2copen.c,
296         * device/lib/pic16/libio/usart/uopen.c: adapted to new devices,
297           all changes from a patch by Anton Strobl
298
299 2008-06-12 Borut Razem <borut.razem AT siol.net>
300
301         * sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/bp.cc,
302           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
303           sim/ucsim/z80.src/z80cl.h, sim/ucsim/z80.src/z80.cc,
304           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
305           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
306           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/uc390.cc,
307           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/uc390cl.h,
308           sim/ucsim/avr.src/avrcl.h, sim/ucsim/avr.src/avr.cc:
309           fixed bug 1990586: s51 simulator, uc::disass() unimplemented
310           by applying the modified patch from Risto Huotari
311
312 2008-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
313
314         * .version,
315         * doc/sdccman.lyx: bumped sdcc version to 2.8.2
316         * src/ds390/gen.c (aopPutUsesAcc, genAddrOf): fixed bug 1015185
317         * src/mcs51/gen.c (genNearPointerGet, genNearPointerSet): fixed bug 1938300
318         * support/regression/tests/bug1938300.c: new, added
319
320 2008-06-03 Maarten Brock <sourceforge.brock AT dse.nl>
321
322         * device/include/asm/ds390/features.h,
323         * device/include/asm/mcs51/features.h,
324         * device/include/mcs51/regc515c.h: inserted LGPL notice
325
326 2008-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
327
328         * device/lib/gbz80/div.s,
329         * device/lib/z80/div.s: fixed bug 1904314 by applying a modified part of
330           patch 1597883, Thanks Robert Ramey
331
332 2008-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
333
334         * src/SDCCast.c (createIvalType, createIvalStruct, createIvalArray,
335           createIvalCharPtr, createIvalPtr, createIval),
336         * src/SDCCval.h
337         * src/SDCCval.c (convertIListToConstList, list2expr): handle incomplete
338           initializers for local auto variables
339         * support/regression/tests/zeropad.c: added testcase for auto initializers
340
341 2008-05-26 Raphael Neider <rneider AT web.de>
342
343         * device/lib/pic16/startup/crt0.c,
344         * device/lib/pic16/startup/crt0i.c,
345         * device/lib/pic16/startup/crt0iz.c: clean up, make use of access bank
346           explicit, fixed curr_entry loop for >= 256 initializer records,
347           removed debug code (write to 0xf7e)
348
349 2008-05-25 Raphael Neider <rneider AT web.de>
350
351         * device/include/pic/pic16f627a.h,
352         * device/include/pic/pic16f628a.h,
353         * device/include/pic/pic16f648a.h: added missing ports
354
355 2008-05-20 Maarten Brock <sourceforge.brock AT dse.nl>
356
357         * device/include/float.h: added __INFINITY
358         * device/lib/_fsadd.c: handle overflows
359         * device/lib/_fsmul.c,
360         * device/lib/_fsdiv.c: use __INFINITY
361         * device/lib/_fseq.c,
362         * device/lib/_fsneq.c: handle -0.0
363         * sim/ucsim/s51.src/uc89c51r.cc,
364         * sim/ucsim/s51.src/uc89c51rcl.h: fixed bug 1385430
365         * sim/ucsim/sim.src/hwcl.h: */* confuses VC
366         * src/mcs51/gen.c (genSend): fixed bug with --xstack
367         * support/regression/ports/mcs51-xstack-auto/spec.mk: print floats
368         * support/regression/tests/snprintf.c: test bug with --xstack
369
370 2008-05-19  Philipp Klaus Krause <pkk AT spth.de>
371
372         * src/SDCCpeeph.c (callFuncByName):
373           Support nested parenthesis in peephole function arguments (#1967300)
374
375 2008-05-19 Raphael Neider <rneider AT web.de>
376
377         * src/pic16/gen.c (pic16_emitpLabel,pic16_emitpLabelFORCE):
378           fixed duplicate labels (#1911325)
379
380 2008-05-19 Raphael Neider <rneider AT web.de>
381
382         * src/regression/empty.c: suppress warning
383         * src/regression/pointer1.c: enabled index_by_pointer()
384         * src/regression/inline.c: now works for pic16 as well
385
386         * src/pic16/device.c: include dbuf declarations
387         * src/pic16/device.h: removed obsolete prototypes
388
389         * src/pic16/gen.c, src/pic16/gen.h: moved generic pointer tags
390         * src/pic16/glue.c: made purely local functions static,
391           (pic16_printGPointerType, pic16_printIvalCharPtr,
392           pic16_printIvalFuncPtr, pic16_printIvalPtr): fixed initialized
393           generic pointers' tags (#1961866)
394
395         * src/pic16/pcode.c (assignValnums): optimize literal assignments
396
397 2008-05-19 Borut Razem <borut.razem AT siol.net>
398
399         * support/scripts/sdcc.nsi: remove uninstall.exe after uninstallation,
400           fixed typo, uninstall include/pic16/pic16devices.txt
401
402 2008-05-18 Borut Razem <borut.razem AT siol.net>
403
404         * support/Utils/dbuf_string.[ch]: added dbuf_chomp(),
405           the buffer is null terminated
406         * src/device/pic16.c:
407           applied modified patch 1965676: Patch for Win32 16 bit PIC
408         * sdcc_vc_in.h: defined YY_NO_UNISTD_H
409
410 2008-05-16 Maarten Brock <sourceforge.brock AT dse.nl>
411
412         * src/SDCC.lex (check_type),
413         * src/SDCC.y (type_specifier2 TYPE_NAME): fixed bug 1925942
414         * as/hc08/clean.mk,
415         * as/mcs51/clean.mk,
416         * as/z80/clean.mk: also clean *.dep
417         * device/lib/pic16/libsdcc/stack/Makefile,
418         * sim/ucsim/libtool: removed as they are rebuild by configure
419         * src/clean.mk: removed izt, so Makefile is not deleted for distclean
420
421 2008-05-13 Maarten Brock <sourceforge.brock AT dse.nl>
422
423         * src/SDCCast.c (fixupInline, createFunction): save currBlockno in
424           fixupInline instead of createFunction to fix bug 1864577
425           (inlineFindMaxBlockno): removed, use global blockNo
426         * src/SDCCglobl.h: added blockNo
427         * src/z80/peep.c,
428         * src/z80/peep.h: modified properties
429         * support/regression/tests/bug1864577.c: new, added
430
431 2008-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
432
433         * as/mcs51/asdata.c,
434         * as/mcs51/asm.h: added org_cnt
435         * as/mcs51/asmain.c (main, asmbl): fixed bug 1957716, changed old K&R to ANSI
436         * as/mcs51/asout.c: changed old K&R to ANSI
437         * as/mcs51/Makefile.in: use common identifiers
438         * as/hc08/asdata.c,
439         * as/hc08/asexpr.c,
440         * as/hc08/asm.h,
441         * as/hc08/asmain.c,
442         * as/hc08/asout.c,
443         * as/hc08/Makefile.bcc,
444         * as/hc08/Makefile.in: synchronized with as/mcs51/*
445         * sdcc_vc_in.h: added define __func__
446         * src/SDCCast.c (expandInlineFuncs): applied patch 1957148 to fix bug 1717305,
447           Thanks Ruud van Silfhout
448         * support/regression/tests/bug1717305.c: new, added
449
450 2008-05-05 Borut Razem <borut.razem AT siol.net>
451
452         * support/regression/Makefile.in,
453           support/regression/ports/ds390/spec.mk,
454           support/regression/ports/hc08/spec.mk,
455           support/regression/ports/mcs51-common/spec.mk,
456           support/regression/ports/pic14/spec.mk,
457           support/regression/ports/pic16/spec.mk,
458           support/regression/ports/ucz80/spec.mk,
459           support/regression/ports/z80/spec.mk:
460           added INC_DIR and LIBDIR paths
461         * src/ds390/gen.c: removed duplicated selicolon
462
463 2008-05-04 Borut Razem <borut.razem AT siol.net>
464
465         * support/regression/Makefile.in,
466           support/regression/fwk/lib/testfwk.c,
467           support/regression/ports/ds390/spec.mk,
468           support/regression/ports/hc08/spec.mk,
469           support/regression/ports/mcs51-common/spec.mk,
470           support/regression/ports/mcs51-large/spec.mk,
471           support/regression/ports/mcs51-medium/spec.mk,
472           support/regression/ports/mcs51-small/spec.mk,
473           support/regression/ports/mcs51-stack-auto/spec.mk,
474           support/regression/ports/mcs51-xstack-auto/spec.mk,
475           support/regression/ports/pic14/spec.mk,
476           support/regression/ports/pic16/spec.mk,
477           support/regression/ports/ucz80/spec.mk:
478           added possibility to define the sdcc binary directory SDCC_BIN_PATH
479           used to run regeression tests
480
481 2008-05-01 Raphael Neider <rneider AT web.de>
482
483         * doc/sdccman.lyx, support/scripts/inc2h-pic16.pl: updated list of
484           supported devices and instructions to add new ones
485
486 2008-05-01 Raphael Neider <rneider AT web.de>
487
488         * device/include/pic16/adc.h,
489           device/lib/pic16/libio/adc/adcbusy.c,
490           device/lib/pic16/libio/adc/adcopen.c,
491           device/lib/pic16/libio/adc/adcsetch.c: support old 18f242 and new
492           18f2455 style ADC devices, based on patch #1776197
493         * device/lib/pic16/libio/adc/adcclose.c,
494           device/lib/pic16/libio/adc/adcconv.c,
495           device/lib/pic16/libio/adc/adcread.c: cosmetic changes
496         * device/include/pic16/{pic18f2331.h,pic18f2431.h},
497           device/lib/pic16/libdev/{pic18f2331.c,pic18f2431.c}: reuse 18f4331
498         * device/include/pic16/pic18f4431.h,
499           device/lib/pic16/libdev/pic18f4431.c: remove outdated comments
500         * device/lib/pic16/libio/adc.ignore: forbid unhandled devices
501
502 2008-05-01 Raphael Neider <rneider AT web.de>
503
504         * src/pic16/device.h: removed unused field PIC16_device.sfrRange,
505           moved xinst flag into pic16_options_t
506         * src/pic16/device.c (default_device, pic16_list_devices,
507           pic16_find_device): removed references to sfrrange
508         * src/pic16/gen.c (genFunction),
509           src/pic16/glue.c (pic16initialComments),
510           src/pic16/main.c (pic16_optionsTable),
511           src/pic16/ralloc.c (newReg, pic16_writeUsedRegs): updated references
512           to xinst
513         * device/include/pic16/pic16devices.txt: removed sfrrange lines
514
515 2008-04-29 Raphael Neider <rneider AT web.de>
516
517         * src/pic16/devices.inc,
518           device/include/pic16/pic16devices.txt: replaced compiled-in list
519           of devices with a variant parsed at runtime
520         * src/pic16/device.c: added support for parsing pic16devices.txt,
521           clean up
522         * src/pic16/device.h: removed (now) unused fields from PIC_device
523         * src/pic16/main.c: removed #pragma maxram,
524           (_pic16_initPaths): removed bogus generation of search paths,
525           setup the port proper only after the search paths (for
526           pic16devices.txt) are set up,
527           (_pic16_finaliseOptions): moved processor dependant code here
528           from _pic16_initPaths(), clean up
529         * src/pic16/ralloc.c (pic16_init_stack),
530         * src/pic16/ralloc.h,
531         * src/pic16/pcode.c: clean up
532         * device/include/Makefile.in,
533           support/scripts/sdcc.nsi: also install/package pic16devices.txt
534         * support/scripts/inc2h-pic16.pl: updated instructions
535
536 2008-04-29 Raphael Neider <rneider AT web.de>
537
538         * device/include/pic16/{pic18f2480.h, pic18f2580.h, pic18f4423.h,
539           pic18f4480.h, pic18f4523.h, pic18f4580.h, pic18f6585.h, pic18f8585.h},
540           device/lib/pic16/libdev/{pic18f2480.c, pic18f2580.c, pic18f4423.c,
541           pic18f4480.c, pic18f4523.c, pic18f4580.c, pic18f6585.c, pic18f8585.c}:
542           added missing family members and 18f2480/2580/4480/4580 family
543         * device/include/pic16/{pic18f2423.h, pic18f2523.h}: use 18f4523.h
544         * device/include/pic16/pic18f2525.h: use 18f4620.h
545         * device/include/pic16/pic18f6680.h: use 18f8680.h
546         * device/include/pic16/pic18fregs.h,
547           device/lib/pic16/pics.all,
548           src/pic16/devices.inc: add new devices
549         * device/lib/pic16/libdev/{pic18f2423.c, pic18f2523.c}: use 18f4523.c
550         * device/lib/pic16/libdev/pic18f2525.c: use 18f4620.c
551         * device/lib/pic16/libdev/pic18f6680.c: uso 18f8680.c
552         * device/lib/pic16/libio/{adc.ignore, i2c.ignore, usart.ignore}:
553           prevent attempting to build the libio for some new devices
554
555 2008-04-29 Raphael Neider <rneider AT web.de>
556
557         * debugger/mcs51/Makefile.in: fixed paths to sources
558
559 2008-04-25 Borut Razem <borut.razem AT siol.net>
560
561         * as/link/lklibr.c: moved from as/link/z80/lklibr.c
562         * as/link/hc08/lklibr.c, as/link/mcs51/lklibr.c: deleted
563         * as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
564         * as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
565           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
566           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
567           as/link/z80/linkz80.dsp: lklibr.c moved
568         * doc/INSTALL.txt: binary archives in bz2 format
569         * support/cpp/auto-host_vc_in.h: CPP2 replaced with CPP
570
571 2008-04-23 Maarten Brock <sourceforge.brock AT dse.nl>
572
573         * src/SDCCglue.c (printIvalType, printIvalBitFields): fixed bug 1856409
574         * support/regression/tests/bug1856409.c: new, added
575
576 2008-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
577
578         * src/z80/peep.c,
579         * src/mcs51/peep.c: Use werror for error messages.
580         * src/SDCCicode.c (geniCodeConditional),
581         * src/SDCCsymt.c (structElemType): fixed bug 1839321
582         * src/z80/Makefile.bcc,
583         * src/z80/z80.dsp: added src/z80/peep.c/h
584         * support/regression/tests/bug1839321.c: new, added
585
586 2008-04-20 Raphael Neider <rneider AT web.de>
587
588         * device/include/pic16/pic18f2455.h: added bitfields for port C
589
590 2008-04-20 Philipp Klaus Krause <pkk AT spth.de>
591
592         * src/z80/peep.c: Use werror for error messages.
593
594 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
595
596         * src/z80/peep.h (declaration of notUsed()),
597         * src/z80/main.c (enabled notUsed() for z80 port, documented z80_port
598           struct),
599         * src/z80/z80.h (added dependency on peep.h),
600         * src/z80/peep.c (definition of notUsed()): Implemented RFE #1880202
601           for Z80.
602
603 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
604
605         * src/SDCCpeeph.c (added support for notUsed()),
606         * src/mcs51/main.c (added dependency on peep.h, documented mcs51_port
607           struct),
608         * src/port.h (removed dependency on mcs51/peep.h, added declaration
609           for notUsed()): Implemented generic (that is not port-specific) part
610           of RFE #1880202.
611
612 2008-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
613
614         * as/link/mcs51/lkmem.c (summary2): fixed bug 1796077
615         * device/lib/libsdcc.lib,
616         * device/lib/Makefile.in,
617         * support/regression/ports/mcs51-xstack-auto/spec.mk,
618         * device/lib/calloc.c: renamed to _calloc.c
619         * device/lib/free.c: renamed to _free.c
620         * device/lib/malloc.c: renamed to _malloc.c
621         * device/lib/realloc.c: renamed to _realloc.c
622         * src/ds390/gen.c (aopGet, aopPut, genPlusBits, genDataPointerSet,
623           genNearPointerSet, genPagedPointerSet): synchronized with mcs51/gen.c
624         * src/ds390/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq, ifxForOp,
625           genAnd, genOr, genXor, genIfx, gen390Code): fixed bug 1509084
626         * src/mcs51/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq,
627           ifxForOp, genAnd, genOr, genXor, genNearPointerGet,
628           genPagedPointerGet, genFarPointerGet, genCodePointerGet,
629           genGenPointerGet, genIfx, gen51Code): fixed bug 1509084
630         * src/ds390/gen.c,
631         * src/mcs51/gen.c: throughout cosmetic changes for syncing both
632         * src/SDCCsymt.h: updated IS_OP_RUONLY, IS_OP_ACCUSE
633         * support/regression/tests/bug1509084.c: new, added
634
635 2008-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
636
637         * device/include/mcs51/cc2510fx.h: added _XPAGE
638         * device/include/mcs51/compiler.h: cosmetic changes
639
640 2008-03-31 Maarten Brock <sourceforge.brock AT dse.nl>
641
642         * sdcc.dsw: adapted for moved cpp2, added dependency for as_z80 on
643           config
644
645 2008-03-31 Borut Razem <borut.razem AT siol.net>
646
647         * support/cpp2 renamed to support/cpp
648         * support/cpp2/libiberty/filenames.h, support/cpp2/libiberty/hex.c,
649           support/cpp2/libiberty/splay-tree.c,
650           support/cpp2/libiberty/splay-tree.h, support/cpp2/libcpp/macro.c,
651           support/cpp2/libcpp/directives.c,
652           support/cpp2/libcpp/include/cpplib.h,
653           support/cpp2/libcpp/include/symtab.h,
654           support/cpp2/libcpp/include/line-map.h,
655           support/cpp2/libcpp/line-map.c, support/cpp2/libcpp/files.c,
656           support/cpp2/libcpp/init.c, support/cpp2/libcpp/traditional.c,
657           support/cpp2/libcpp/expr.c, support/cpp2/libcpp/internal.h,
658           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/system.h,
659           support/cpp2/libcpp/charset.c: SDCPP synchronized with GCC CPP
660           release version 4.3.0
661         * configure.in, configure, Makefile.in, Makefile.bcc:
662           adapted for moved cpp2
663
664 2008-03-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
665
666         * device/include/hc08/mc68hc908jkjl.h: committed fix for bug #1929739,
667           thanks Alejandro Pustowka <alejo_pustowka AT yahoo.com.mx>
668
669 2008-03-30 Maarten Brock <sourceforge.brock AT dse.nl>
670
671         * src/SDCCloop.c (loopInvariants): applied fix for bug 1717943, thanks
672           Robert Larice
673         * support/regression/tests/bug1717943.c: new, added
674
675 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
676
677         * src/z80/gen.c (assignResultValue): Reverted reversal of order of
678           bytewise return value assignments introduced in last commit.
679
680 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
681
682         * src/z80/gen.c (emitDebug, assignResultValue, genPlus, genMinus,
683           genMult, genJumpTab):
684           Use 16-bit instructions for addition in some additional cases,
685           implemented RFEs #1914251, #1914245, #1922090, #1921382, #1918323.
686
687 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
688
689         * src/z80/ralloc.c (serialRegAssign, allocReg, tryAllocatingRegPair):
690           Implemented RFE #1921450, changed some debug messages.
691
692 2008-03-30 Borut Razem <borut.razem AT siol.net>
693
694         * Small Device C Compiler 2.8.0 released
695         * .version, doc/sdccman.lyx: changed sdcc version to 2.8.1
696         * support/scripts/sdcc.nsi: added finish page; this version
697           was used for 2.8.0 release
698         * doc/knownbugs.html: removed; magically generated by the build
699           process using gen_known_bugs.pl from now on
700
701 2008-03-23 Borut Razem <borut.razem AT siol.net>
702
703         * src/pic/gen.h: Q&D solution for the bug, found by Jim Paris
704           and reverted it, since it was already fixed by Raphael ;-)
705         * doc/knownbugs.html: updated for RC2
706
707 2008-03-22 Raphael Neider <rneider AT web.de>
708
709         * src/SDCCicode.c (getPtrType): avoid unnecessary extra assignments
710           for PIC16 targets
711
712 2008-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
713
714         * src/mcs51/gen.c (adjustArithmeticResult): fixed bug 1839299
715         * support/regression/tests/bug1839277.c: added related testBug1839299
716
717 2008-03-21 Maarten Brock <sourceforge.brock AT dse.nl>
718
719         * src/ds390/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign),
720         * src/mcs51/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign):
721           fixed bug 1839277
722         * src/mcs51/gen.c: throughout only output hex constants
723         * src/SDCCicode.c (getPtrType, geniCodeCast): fixed code size regression
724         * support/regression/tests/bug1839277.c: new, added
725
726 2008-03-21 Philipp Klaus Krause <pkk AT spth.de>
727
728         * src/z80/ralloc.c (callFuncByName): Used // instead of /**/ to fix
729           compilation warning about nested comments.
730
731 2008-03-20 Maarten Brock <sourceforge.brock AT dse.nl>
732
733         * src/SDCCsymt.c (comparePtrType): fixed bug 1921073
734         * support/regression/tests/bug1921073.c: new, added
735
736 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
737
738         * src/z80/SDCCpeeph.c.c (callFuncByName):
739           Commented function parameters.
740
741 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
742
743         * src/z80/ralloc.c (packRegsForAccUse2):
744           disabled a broken accumulator packing optimization (fixed #1292721).
745         * support/regression/tests/bug-1292721: Regression test for #1292721.
746
747 2008-03-16 Raphael Neider <rneider AT web.de>
748
749         * src/pic/gen.c (SetIrp,genNearPointerGet,genNearPointerSet):
750           fixed code bloat regression using a variant of patch #1915618
751
752 2008-03-16 Borut Razem <borut.razem AT siol.net>
753
754         * support/scripts/sdcc.nsi: added section debugging macros, added SDCC
755           icon, changed startup menu for release distribution, code cleaning,
756           create url files instead links in startup menu
757
758 2008-03-16 Maarten Brock <sourceforge.brock AT dse.nl>
759
760         * src/SDCCcse.c (algebraicOpts): fixed bug 1579949
761         * support/regression/tests/bug1579949.c: new, added
762
763 2008-03-14 Paul Stoffregen <paul AT pjrc.com>
764
765         * device/lib/printf_fast.c: fixed bug 1255403
766
767 2008-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
768
769         * doc/sdccman.lyx: enhanced paragraph about bankswitching for mcs51
770         * src/cdbFile.c (cdbWriteBasicSymbol): fixed bug 1909409 for locals
771
772 2008-03-14 Borut Razem <borut.razem AT siol.net>
773
774         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated link-xx and aslink
775           command line options
776         * as/link/hc08/lkmain.c: converted tabs to spaces so that the usage
777           is correctly displayed
778         * as/link/z80/lkmain.c: usage line commented out
779
780 2008-03-13 Borut Razem <borut.razem AT siol.net>
781
782         * doc/sdccman.lyx: corrected to be able to convert to PDF,
783           updated the list pf supported pic14 devices
784
785 2008-03-12 Maarten Brock <sourceforge.brock AT dse.nl>
786
787         * doc/sdccman.lyx: added paragraph about bankswitching for mcs51
788
789 2008-03-12 Borut Razem <borut.razem AT siol.net>
790
791         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated command line options,
792           fixed documentation request #1718191
793         * as/hc80/asmain.c, as/mcs51/asmain.c: added option -c to usage
794         * doc/sdccman.lyx: added description of --no-std-crt0 gbz80
795           command line option
796
797 2008-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
798
799         * src/SDCCast.c (isConformingBody): fixed bug 1505811, thanks Robert Larice
800         * support/regression/tests/bug1505811.c: new, added
801
802 2008-03-09 Raphael Neider <rneider AT web.de>
803
804         * device/include/pic16/pic18f2620.h,
805         * device/include/pic16/pic18f4620.h,
806         * device/lib/pic16/libdev/pic18f2620.c,
807         * device/lib/pic16/libdev/pic18f4525.c,
808         * device/lib/pic16/libdev/pic18f4620.c: merged 18f2525/2620/4525/4620
809           family to consistently use pic18f4620.[ch], fixes #1832562
810
811 2008-03-09 Borut Razem <borut.razem AT siol.net>
812
813         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
814           changed sdcc version to 2.8.0
815         * knownbugs.html: regenerated
816         * support/scripts/gen_known_bugs.pl: added number of open bugs
817
818 2008-03-09 Raphael Neider <rneider AT web.de>
819
820         * src/pic16/gen.c (pic16_mov2w_volatile): NEW, read volatile operands,
821           (genOr): read volatile operand even if the result is known,
822           closes #1511838
823           (genOr,genXor): removed unused legacy code,
824           (genDummyRead): use pic16_mov2w_volatile()
825
826 2008-03-08 Borut Razem <borut.razem AT siol.net>
827
828         * src/SDCCglue.c: fixed bug #1864582: multiple definition of char
829           cons w. --model-large
830         * support/regression/staticinit.c: added regression test for bug
831           #1864582
832
833 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
834
835         * src/ds390/gen.c (pushSide, genPcall),
836         * src/hc08/gen.c (pushSide, genPcall): synchronized with mcs51
837         * src/mcs51/gen.c: cosmetic changes
838         * support/regression/fwk/include/testfwk.h: added macro reentrant
839         * support/regression/tests/bug1908493.c: new, added
840
841 2008-03-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
842
843         * src/SDCCdebug.c:, as/link/lkaomf51.c: Fixed bug 1909409: Pdata in OMF file
844
845 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
846
847         * src/mcs51/gen.c (pushSide, genPcall): fixed bug 1908493
848         * src/SDCCmain.c (preProcess): removed -DSDCC_PARMS_IN_BANK1 because it is
849           already set in ds390/main.c and mcs51/main.c
850
851 2008-03-07 Raphael Neider <rneider AT web.de>
852
853         * src/regression/init0.c: new test for initialized arrays of function
854           pointers
855         * src/regression/Makefile: made a bit more flexible, added init0.c
856         * src/pic/glue.c (emitIvals): hacky fix for initializing from function
857           pointers, closes #1427663
858
859 2008-03-05 Borut Razem <borut.razem AT siol.net>
860
861         * dos/sdccman.lyx: docummented predefined macros SDCC_REVISION,
862           SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT
863
864 2008-03-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
865
866         * support/librarian/sdcclib.c:Added feature request 1908061:
867           Synchronise sdcclib commands with ar.
868
869 2008-03-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
870
871         * src/SDCCmain.c: added predefined macros SDCC_REVISION (RFE #1907229),
872           and (depending on corresponding compiler option) SDCC_PARMS_IN_BANK1,
873           SDCC_FLOAT_REENT, SDCC_INT_LONG_REENT
874         * device/include/mcs51/compiler.h: removed umlauts, added double
875           underscore
876
877 2008-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
878
879         * src/SDCCptropt.c (ptrPseudoSymConvert): fixed bug 1536762
880         * support/regression/tests/bug1536762.c: new, added
881         * src/SDCCutil.c,
882         * src/SDCCutil.h: added getBuildDate()
883         * src/SDCCmain.c (printVersionInfo),
884         * src/SDCCglue.c (initialComments): use getBuildDate() instead of
885           __DATE__
886         * src/*/ralloc.c: removed IS_OP_RUONLY macro
887         * src/ds390/ralloc.c (packRegisters),
888         * src/mcs51/ralloc.c (packRegisters),
889         * src/z80/ralloc.c (packRegisters): applied fix for bug 1618050, thanks
890           Robert Larice
891         * support/regression/tests/bug1618050.c: new, added
892         * src/SDCCsymt.h: fixed typo in DECLSPEC2TXT
893         * support/regression/fwk/include/testfwk.h,
894         * support/regression/tests/bug1838000.c: moved _AUTOMEM and _STATMEM to
895           testfwk.h
896
897 2008-03-04 Raphael Neider <rneider AT web.de>
898
899         * src/pic/gen.c: removed unused prototypes, prevent internal errors
900           on accessing OP_SYM_TYPE(op)
901         * src/pic/gen.h: removed unused prototype of genMinusDec()
902         * src/pic/genarith.c (genMinus): cosmetic changes, rewritten to
903           fix #1876953 (invalid subtraction code), removed unused code
904
905 2008-03-03 Raphael Neider <rneider AT web.de>
906
907         * src/pic/gen.c,
908         * src/pic/gen.h,
909         * src/pic/genarith.c,
910         * src/pic/ralloc.c,
911         * src/pic/ralloc.h: removed AOP_R0, AOP_R1, AOP_DPTR, AOP_DPTR2,
912           AOP_ACC, and *_IDX and adjusted code, removed unused legacy code
913
914 2008-03-03 Raphael Neider <rneider AT web.de>
915
916         * src/pic/device.c (find_device): search user-specified paths first
917           for pic14devices.txt, fixes #1900827
918
919 2008-03-02 Borut Razem <borut.razem AT siol.net>
920
921         * support/scripts/sdcc.nsi: fixed bug in IsNT, LogicLib-isation of
922           AddToPath and RemoveFromPath
923
924 2008-03-01 Borut Razem <borut.razem AT siol.net>
925
926         * support/scripts/sdcc.nsi: reverted MULTIUSER page since it didn't
927           work correctly, added debugging support if -DSDCC.DEBUG command line
928           option is defined
929
930 2008-02-28 Borut Razem <borut.razem AT siol.net>
931
932         * doc/sdccman.lyx: cosmetic changes
933
934 2008-02-28 Maarten Brock <sourceforge.brock AT dse.nl>
935
936         * src/mcs51/ralloc.c (fillGaps): fixed bug 1839671
937         * doc/sdccman.lyx: fixed unmeant removal of spaces
938
939 2008-02-27 Borut Razem <borut.razem AT siol.net>
940
941         * support/scripts/sdcc.nsi: corrected installation directory for
942           current user installation mode
943         * doc/README.txt: added Philipp Klaus Krause to the developers list
944
945 2008-02-27 Maarten Brock <sourceforge.brock AT dse.nl>
946
947         * src/mcs51/gen.c (genUnpackBits): don't generate ifxJump, instead
948           return ifx condition
949           (genNearPointerGet, genPagedPointerGet, genFarPointerGet,
950           genCodePointerGet, genGenPointerGet): cleanup aop before generating
951             ifxJump to fix bug 1838000
952         * src/SDCCsymt.c (aggregateToPointer): fix problem for xstack
953         * support/regression/tests/bug1838000.c: new, added
954         * device/include/mcs51/cc1110.h: new, added, thanks to Pravin Angolkar
955
956 2008-02-26 Borut Razem <borut.razem AT siol.net>
957
958         * src/SDCCast.c, doc/sdccman.lyx: fixed RFE #1901171: inerger promotion
959           of casted varargs
960         * support/scripts/sdcc.nsi: added MULTIUSER page,
961           NSIS upgraded to version 2.35
962
963 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
964
965         * src/mcs51/ralloc.c (isSpiltOnStack): fixed bug 1565152
966         * support/regression/tests/bug1565152.c: new, added
967
968 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
969
970         * src/mcs51/gen.c (genPagedPointerSet): fixed bug 1670148
971         * support/regression/ports/mcs51-xstack-auto/spec.mk: added expf.c
972         * support/regression/tests/bug1670148.c: new, added
973
974 2008-02-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
975
976         * device/include/mcs51/at89c51ed2.h: fixed bug 1901469.
977
978 2008-02-24 Borut Razem <borut.razem AT siol.net>
979
980         * src/SDCCast.c, src/SDCCast.h: fixed bug #1874922: explicit typecast
981           is ineffective for unsigned char parameter
982
983 2008-02-24 Maarten Brock <sourceforge.brock AT dse.nl>
984
985         * src/SDCCast.c (expandInlineFuncs): fixed bug 1875869
986         * src/SDCCglue.c (printIvalBitFields): fixed bug 1806631
987         * support/regression/tests/bitopcse.c: removed hc08 exception, see testfwk.h
988         * support/Util/MySystem.c (my_system): output errorcode when verbose
989
990 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
991
992         * src/z80/gen.c (genMult): Rewrote 8-bit multiplication by constant,
993           implements #1898231
994
995 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
996
997         * device/lib/z80/mul.s: Rewrote __muluchar_rrx_s, to improve 8-bit mult.,
998           implements #1896290
999
1000 2008-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
1001
1002         * src/SDCCast.c (createIvalStruct): fixed bug 1466761
1003
1004 2008-02-21 Borut Razem <borut.razem AT siol.net>
1005
1006         * support/regression/Makefile.in,
1007           support/regression/ports/ds390/spec.mk,
1008           support/regression/ports/hc08/spec.mk,
1009           support/regression/ports/mcs51-common/spec.mk,
1010           support/regression/ports/pic14/spec.mk,
1011           support/regression/ports/pic16/spec.mk,
1012           support/regression/ports/ucz80/spec.mk,
1013           support/regression/ports/xa51/spec.mk:
1014           added CFLAGS when compiling timeout
1015
1016 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1017
1018         * support/regression/tests/bugs-1596270-1736867.c: Regression test for
1019           #1596270, #1736867
1020
1021 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
1022
1023         * src/SDCClrange.c (findPrevUse): fixed bug 1888147
1024         * support/regression/tests/bug1888147.c: new, added
1025
1026 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1027
1028         * src/z80/gen.c: fixed bugs #1596270, #1736867
1029
1030 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1031
1032         * src/z80/gen.c: fixed bug in register pair loading when swapping register
1033           contents, mostly fixes #1596270
1034
1035 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
1036
1037         * src/z80/peeph.def,
1038         * src/z80/peeph-z80.def: moved peephole that breaks gbz80 to z80-specific
1039           peepholes, fixes #1806565
1040
1041 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
1042
1043         * src/SDCCpeeph.c (operandBaseName): added check for @Ri
1044         * src/mcs51/peeph.def (rule 177.c): added operandsNotRelated(%1 %3)
1045           fixes bug 1739475, thanks Robert Larice
1046           (rule 271): new, added
1047
1048 2008-02-18 Borut Razem <borut.razem AT siol.net>
1049
1050         * sim/ucsim/s51.src/Makefile.in: fixed error made in previous commit
1051
1052 2008-02-17 Maarten Brock <sourceforge.brock AT dse.nl>
1053
1054         * src/SDCCmain.c (linkEdit): emit -z when using --debug for z80
1055
1056 2008-02-17 Raphael Neider <rneider AT web.de>
1057
1058         * src/pic16/genarith.c,
1059         * src/pic16/gen.c,
1060         * src/pic16/gen.h,
1061         * src/pic16/genutils.c: removed unused legacy code,
1062           removed unused fields from struct asmop and struct _G
1063
1064 2008-02-17 Raphael Neider <rneider AT web.de>
1065
1066         * src/pic16/gen.c (AccRsh): cosmetic changes,
1067           (shiftR1Left2ResultSigned,shiftR1Left2Result,shiftL1Left2Result,
1068           genRightShiftLiteral): fixed to work with SFRs as result by
1069           assigning only once to result,
1070           removed a lot of unused/excluded code fragments
1071
1072 2008-02-17 Raphael Neider <rneider AT web.de>
1073
1074         * device/include/pic/pic16f88.h,
1075         * device/include/pic/pic16f886.h,
1076         * device/include/pic/pic16f887.h: added TRISA6 and TRISA7
1077
1078 2008-02-17 Borut Razem <borut.razem AT siol.net>
1079
1080         * src/z80/peeph.def: applied patch
1081           #1893626: Optimize tail calls on Z80, thanks to Philipp Krause
1082         * src/z80/gen.c, src/z80/peeph.def: applied patch
1083           #1893510: Improve logical left shift on Z80, thanks to Philipp Krause
1084         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1085           sim/ucsim/s51.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1086           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
1087           sim/ucsim/main_in.mk: renamed libutil.a to libucsimutil.a in order to
1088           enable compilation on Mac OS X 10.5 (Leopard) and XCode v3.0
1089
1090 2008-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
1091
1092         * as/link/mcs51/aslink.dsp: removed SDK define
1093         * as/link/z80/clean.mk: brought in sync with other ports
1094         * as/link/z80/lklibr.c (SdccLib, fndsym): handle the dflag here too
1095         * as/hc08/Makefile.bcc,
1096         * as/mcs51/Makefile.bcc,
1097         * as/z80/Makefile.bcc: noice.c was moved to as/asxxsrc/
1098         * src/z80/main.c (_setValues): use the now capitalized -Z,
1099           (z80_port, gbz80_port): generate debug information when asked
1100
1101 2008-02-16 Borut Razem <borut.razem AT siol.net>
1102
1103         * as/z80/asmain.c, as/z80/asm.h, as/z80/asdata.c,
1104           as/link/z80/lkmain.c, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
1105           as/z80/Makefile.in. as/z80/Makefile.bcc:
1106           applied patch #1893393: patch for as-z80 and link-z80 to generate
1107           cdb, thanks to Armin Diehl
1108         * as/*/asnoice.c, as/hc08/as_hc08.dsp, as/hc08/Makefile.in,
1109           as/mcs51/asx8051.dsp, as/mcs51/Makefile.in:
1110           asnoice.c moved to as/asxxsrc/asnoice.c
1111         * src/z80/peeph-gbz80.def: applied patch
1112           #1880235: Z80 return peephole, thanks to Philipp Krause
1113
1114 2008-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1115
1116         * .version,
1117         * doc/sdccman.lyx: bumped version to 2.7.5
1118         * src/SDCCsymt.c (compareType, comparePtrType): fixed bug 1281583
1119
1120 2008-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
1121
1122         * device/include/pic16/stdlib.h,
1123         * device/lib/pic16/libc/stdlib/ltoa.c,
1124         * device/lib/pic16/libc/stdio/vfprintf.c: ascii strings are char*
1125
1126 2008-02-13 Borut Razem <borut.razem AT siol.net>
1127
1128         * src/SDCCmain.c, src/SDCCglue.c: fixed --c1mode
1129         * src/pic16/glue.c, src/SDCCast.c, src/SDCCast.h, src/SDCCBBlock.c,
1130           src/SDCCcse.c, src/SDCCglue.c, src/SDCCicode.c, src/SDCCloop.c,
1131           src/SDCCopt.c,  src/SDCCval.c:
1132           fixed bug #1890273: SDCC Warning 154 shows wrong filename
1133
1134 2008-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1135
1136         * src/SDCCsymt.c (compareType): fixed bug 1309013
1137
1138 2008-02-09 Borut Razem <borut.razem AT siol.net>
1139
1140         * src/SDCCval.c, src/SDCCval.h:
1141           code cleaning, added function constChrVal()
1142         * src/SDCCglue.c, src/pic/glue.c, src/pic16/glue.c, src/SDCCast.c, src/SDCC.y:
1143           call constChrVal() instead constVal()
1144
1145 2008-02-01 Maarten Brock <sourceforge.brock AT dse.nl>
1146
1147         * src/SDCCast.c (resolveSymbols): added reentrancy check for parameters
1148           of function pointer
1149         * src/SDCCerr.h,
1150         * src/SDCCerr.c: changed warning W_NONRENT_ARGS to error E_NONRENT_ARGS
1151         * support/regression/tests/absolute.c: added TestStruct TestVar (see also
1152           bug 1859853)
1153
1154 2008-02-01 Raphael Neider <rneider AT web.de>
1155
1156         * device/include/pic/pic16f886.h,
1157         * device/include/pic/pic16f887.h: added RA6 and RA7
1158
1159 2008-01-24 Raphael Neider <rneider AT web.de>
1160
1161         * device/include/pic/pic16f88.h: added RA6 and RA7
1162         * device/lib/pic/libdev/disabled_pic16f886.c,
1163         * device/lib/pic/libdev/disabled_pic16f887.c: renamed and enabled
1164
1165         * src/pic16/devices.inc,
1166         * device/include/pic16/pic18f2423.h,
1167         * device/include/pic16/pic18f2523.h,
1168         * device/include/pic16/pic18fregs.h,
1169         * device/lib/pic16/pics.all
1170         * device/lib/pic16/libdev/pic18f2423.c,
1171         * device/lib/pic16/libdev/pic18f2523.c: added 18f2423 and 18f2523
1172         * device/lib/pic16/libio/i2c.ignore,
1173         * device/lib/pic16/libio/usart.ignore,
1174         * device/lib/pic16/libio/adc.ignore: ignore new devices
1175
1176 2008-01-23 Maarten Brock <sourceforge.brock AT dse.nl>
1177
1178         * src/SDCCast.c (createRMW): fixed bug 1582651
1179
1180 2008-01-20 Borut Razem <borut.razem AT siol.net>
1181
1182         * src/SDCCcse.c: partially fixed enhancement request
1183           #1793872 - multiply by -1 not collapsed
1184         * support/regression/tests/arithcsi.c: added regression test
1185
1186 2008-01-19 Maarten Brock <sourceforge.brock AT dse.nl>
1187
1188         * as/mcs51/asx8051.dsp: removed define SDK
1189         * as/mcs51/i51mch.c (machine): fixed bug 1865114
1190         * device/include/asm/ds390/features.h: fixed bug with ds390 & stack-auto
1191         * as/link/lklex.c,
1192         * as/link/mcs51/lkmain.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
1193           cosmetic changes, brought more in sync, changed old K&R to ANSI
1194
1195 2008-01-13 Borut Razem <borut.razem AT siol.net>
1196
1197         * support/scripts/sdcc.nsi: added Uninstall/reinstall page, ...
1198         * src/SDCCicode.c: fixed bug #1870216 - Error 122: dividing by zero
1199
1200 2007-12-30 Borut Razem <borut.razem AT siol.net>
1201
1202         * src/pic16/gen.c: fixed implementation of bitwise operations for
1203           pic16 target
1204         * support/regression/tests/bitwise.c: added test cases
1205
1206 2007-12-29 Borut Razem <borut.razem AT siol.net>
1207
1208         * src/SDCCasm.[ch]: renamed from asm[ch], use dbuf_getline(), ...
1209         * src/src.dsp, src/Makefile.bcc, src/Makefile.in, src/common.h,
1210           src/SDCCglue.c, src/xa51/main.c: asm.[ch] renamed to SDCCasm.[ch]
1211         * support/Util/dbuf_string.[ch]: added function dbuf_getline()
1212         * src/ds390/gen.c, src/hc08/gen.c, src/mcs51/gen.c, src/pic16/gen.c,
1213           src/pic/gen.c, src/z80/gen.c, src/xa51/gen.c, src/pic16/ralloc.c,
1214           src/pic16/pcode.[ch]: added const qualifier
1215         * as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
1216           as/mcs51/Makefile.bcc, as/mcs51/Makefile.in, as/mcs51/asx8051.dsp,
1217           as/z80/Makefile.bcc, as/z80/Makefile.in, as/z80/as_gbz80.dsp,
1218           as/z80/as_z80.dsp: added dbuf.[ch] and dbuf_string[ch] to project
1219         * as/asxxsrc/aslex.c: use dbuf_getline()
1220         * as/hc08/asdata.c, as/hc08/asexpr.c, as/hc08/asm.h, as/hc08/m08adr.c,
1221           as/mcs51/asdata.c, as/mcs51/asexpr.c, as/mcs51/asm.h,
1222           as/mcs51/i51adr.c, as/z80/asdata.c, as/z80/asexpr.c, as/z80/aslist.c,
1223           as/z80/asm.h, as/z80/z80adr.c:
1224           changed type of ib and ip to const char *
1225
1226 2007-12-28 Borut Razem <borut.razem AT siol.net>
1227
1228         * as/asxxsrc/aslex.c: moved from as/mcs51/aslex.c;
1229           introduced (readlin) - long lines are turuncated
1230         * as/hc08/as_hc08.dsp, as/mcs51/asx8051.dsp, as/z80/as_gbz80.dsp,
1231           as/z80/as_z80.dsp, as/hc08/Makefile.in, as/mcs51/Makefile.in,
1232           as/z80/Makefile.in: moved aslex.c to asxxsrc
1233         * as/hc08/aslex.c, as/z80/aslex.c: deleted
1234         * as/hc08/asmain.c, as/mcs51/asmain.c:
1235           added missing initialization of a_addr field
1236         * support/regression/tests/long_asm_line.c: added regtest for long
1237           assembler line
1238
1239 2007-12-22 Borut Razem <borut.razem AT siol.net>
1240
1241         * src/SDCC.lex: fixed bug #1852894: # character hangs the compiler
1242
1243 2007-12-20 Maarten Brock <sourceforge.brock AT dse.nl>
1244
1245         * src/SDCCsymt.c (computeType): fixed bug, thanks Fan Weiguang
1246
1247 2007-12-16 Borut Razem <borut.razem AT siol.net>
1248
1249         * device/include/pic16/stdbool.h: removed, since already exists in
1250          device/include/; this also fixes bitopcse.c regression test for pic16
1251          target
1252         * support/regression/fwk/inclusw/testfwk.h: added macro ASSERT_FAILED
1253         * src/pic16/glue.c: fixed bug #1851855: generic static pointer
1254           dereference doesn't work; covered by regression test bug1399290
1255
1256 2007-12-05 Borut Razem <borut.razem AT siol.net>
1257
1258         * doc/sdccman.lyx: fixed bug #1844509 - Correction to Manual 4.6.9
1259           Adding new PIC16
1260
1261 2007-12-01 Borut Razem <borut.razem AT siol.net>
1262
1263         * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc:
1264           corrected handling of the highest_valid_address
1265
1266 2007-11-17 Raphael Neider <rneider AT web.de>
1267
1268         * src/pic/main.c (_asmCmd): include debug arguments (-g as $3)
1269         * src/pic/glue.c (picglue): emit .file if --debug is given
1270
1271 2007-11-17 Raphael Neider <rneider AT web.de>
1272
1273         * src/pic16/genarith.c (pic16_genPlus, pic16_genMinus): take special
1274         care when left or right operand resides in result, fixes #1830220
1275
1276 2007-11-17 Borut Razem <borut.razem AT siol.net>
1277
1278         * src/SDCCglue.c, src/pic16/glue.c: reverted fix for bug
1279           #983491 - "Merge duplicate strings function is ineffective"
1280         * support/regression/tests/bug-983491.c: regtest disabled
1281         * as/asxxsrc: created
1282           as/asxxsrc/assym.c, as/asxxsrc/strcmpi.c: moved
1283           as/hc08/assym.c, as/mcs51/assym.c, as/strcmpi.c,
1284           as/z80/assym.c, as/hc08/asstore.c, as/mcs51/asstore.c: deleted
1285           as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
1286           as/hc08/asm.h, as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
1287           as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
1288           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
1289           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
1290           as/link/z80/linkz80.dsp, as/mcs51/Makefile.bcc, as/mcs51/Makefile.in,
1291           as/mcs51/asm.h, as/mcs51/asx8051.dsp, as/z80/Makefile.bcc,
1292           as/z80/Makefile.in, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
1293           as/z80/Makefile.as_hc08, as/mcs51/Makefile.asx8051: modified
1294           created as/asxxsrc directory, assym.c and strcpi.c moved into it
1295
1296 2007-11-15 Maarten Brock <sourceforge.brock AT dse.nl>
1297
1298         * device/include/stdarg.h: added and removed some casts
1299         * src/SDCCsymt.c (compareType): Fully check types between generic and
1300           non-generic pointers, also accept ptr-ptr to void-ptr assignments
1301
1302 2007-11-13 Borut Razem <borut.razem AT siol.net>
1303
1304         * support/regression/tests/bug-1817005.c:
1305           added regtest for bug #1817005 - as-z80 chokes on long labels
1306
1307 2007-11-12 Borut Razem <borut.razem AT siol.net>
1308
1309         * as/z80/asmain.c, as/z80/asm.h, as/z80/assym.c, as/z80/asdata.c,
1310           as/z80/asout.c, as/z80/aslist.c:
1311           fixed bug #1817005 - as-z80 chokes on long labels
1312
1313 2007-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
1314
1315         * as/hc08/asmain.c,
1316         * as/z80/asmain.c: cosmetic changes
1317         * as/hc08/alloc.h,
1318         * as/mcs51/alloc.h,
1319         * as/z80/alloc.h: removed
1320         * as/hc08/assym.c,
1321         * as/mcs51/assym.c: replaced alloc.h with stdlib.h
1322         * as/link/aslink.h: added LKDIRSEP and, LKDIRSEPSTR
1323         * as/link/hc08/Makefile.in,
1324         * as/link/mcs51/Makefile.in,
1325         * as/link/z80/Makefile.in: added -DUNIX to CFLAGS
1326         * as/link/lklex.c,
1327         * as/link/mcs51/lkarea.c,
1328         * as/link/mcs51/lkmain.c: cosmetic changes
1329         * as/link/hc08/lklibr.c,
1330         * as/link/z80/lklibr.c,
1331         * as/link/mcs51/lklibr.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
1332           used cygwin_conv_to_full_posix_path,
1333           added warnings, cosmetic changes, brought more in sync
1334           changed old K&R into ANSI function declarations
1335         * as/link/z80/lklibr.c (loadAdb): added
1336         * as/link/z80/lkmain.c: removed -- option from usage text
1337
1338 2007-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1339
1340         * src/mcs51/gen.c (outBitC): optimized for no result
1341
1342 2007-10-31 Borut Razem <borut.razem AT siol.net>
1343
1344         * src/SDCCsymt.c: fixed (hopeful properly) bug
1345           #1805702 - order of extern matters
1346         * support/regression/tests/bug-1805702.c: enabled regtest for bug
1347           #1805702
1348
1349 2007-10-29 Borut Razem <borut.razem AT siol.net>
1350
1351         * src/SDCCsymt.c: reverted bad fixed of bug #1805702
1352           - order of extern matters
1353         * support/regression/tests/bug-1805702.c: disabled regtest for bug
1354           #1805702
1355
1356 2007-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1357
1358         * src/ds390/peeph.def: replaced 24bitModeAndPortDS390 by
1359           24bitMode, portIsDS390
1360         * src/mcs51/gen.c (genOr): optimized for RFE 1750727
1361         * src/SDCCpeeph.c (flat24bitModeAndPortDS390): removed
1362           (notVolatileVariable): also check sloc names,
1363           (callFuncByName): moved ftab[] out of function and sorted it by use
1364
1365 2007-10-28 Maarten Brock <sourceforge.brock AT dse.nl>
1366
1367         * device/include/stdarg.h: fixed bug in va_start macro for --xstack
1368         * src/hc08/gen.c (aopForRemat): aop->aopu.aop_immd.from_cast_remat not set,
1369           aop->aopu.aop_immd.aop_immd2 not filled with (generic) pointer type
1370         * src/SDCCicode.c (geniCodeCast): fixed bug 880197
1371         * support/regression/tests/bug-880197.c: new, added
1372
1373 2007-10-28 Borut Razem <borut.razem AT siol.net>
1374
1375         * support/regression/Makefile.in,
1376           support/regression/ports/mcs51-large/spec.mk,
1377           support/regression/ports/mcs51-xstack-auto/spec.mk,
1378           support/regression/ports/mcs51-stack-auto/spec.mk,
1379           support/regression/ports/mcs51-medium/spec.mk,
1380           support/regression/ports/mcs51-common/spec.mk,
1381           support/regression/ports/mcs51-common/*,
1382           support/regression/ports/mcs51-small/*:
1383           mcs51 renamed to mcs51-common, created mcs51-small
1384         * src/SDCCsymt.c: fixed bug #1805702 - order of extern matters
1385         * support/regression/tests/bug-1805702.c: added regtest for bug
1386           #1805702
1387
1388 2007-10-26 Maarten Brock <sourceforge.brock AT dse.nl>
1389
1390         * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b,
1391           added new rules 265 - 270
1392         * support/regression/tests/bug1721024.c:new, added
1393         * support/regression/Makefile.in: renamed test-mcs51 to test-mcs51-small,
1394           introduced new test-mcs51 to run all mcs51 tests
1395
1396 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
1397
1398         * support/regression/tests/bug1816470.c: new, added
1399
1400 2007-10-21 Maarten Brock <sourceforge.brock AT dse.nl>
1401
1402         * src/SDCCast.c (resultTypePropagate): do propagate for LEFT_OP, do not
1403           propagate for *,+,- with float, fixed bug 1816470
1404           (decorateType): cast to resultTypeProp instead of resultType
1405
1406 2007-10-19 Borut Razem <borut.razem AT siol.net>
1407
1408         * src/pic16/glue.c: fixed bug #983491 - "Merge duplicate strings
1409           function is ineffective" for pic16 tareget
1410         * support/scripts/listerr.c: corrected include path
1411         * device/lib/_itoa.c: fixed bug #1806402 - _itoa and _uitoa leak to
1412           adjacent memory
1413
1414 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
1415
1416         * support/regression/tests/using.c: new, added
1417         * support/regression/tests/vaargs.c: fixed and enabled test
1418
1419 2007-10-18 Borut Razem <borut.razem AT siol.net>
1420
1421         * src/SDCCglue.c: fixed bug #983491 - Merge duplicate strings function
1422           is ineffective
1423         * support/regression/tests/bug-983491.c: added regtest for bug #983491
1424
1425 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
1426
1427         * doc/sdccman.lyx: documented option --Werror
1428         * src/SDCCsymt.c (checkFunction): fixed bug 1815418 by setting
1429           RegBankUsed[] earlier
1430
1431 2007-10-14 Maarten Brock <sourceforge.brock AT dse.nl>
1432
1433         * device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
1434         * src/pic/glue.c,
1435         * src/SDCCval.c,
1436         * src/SDCCast.c,
1437         * src/SDCCast.h: replaced AST_LIT_VALUE with AST_FLOAT_VALUE and
1438           AST_ULONG_VALUE
1439         * src/SDCCast.c (decorateType): improved optimization of tri-op
1440         * src/SDCCerr.c (vwerror, setWError),
1441         * src/SDCCerr.h,
1442         * src/SDCCmain.c (parseCmdLine): added option --Werror to treat all
1443           warnings as errors, thanks Stas Sergeev for PATCH 1813211
1444
1445 2007-10-13 Maarten Brock <sourceforge.brock AT dse.nl>
1446
1447         * src/mcs51/gen.c (leftRightUseAcc): use macro IS_OP_ACCUSE
1448         * src/SDCCast.c (decorateType): optimize bit=cond?1:0, RFE 1738430
1449         * support/regression/tests/bug-223113.c,
1450         * support/regression/tests/bug-426632.c,
1451         * support/regression/tests/bug-468811.c,
1452         * support/regression/tests/bug-477835.c,
1453         * support/regression/tests/bug-478094.c,
1454         * support/regression/tests/bug-499644.c,
1455         * support/regression/tests/bug-524209.c,
1456         * support/regression/tests/bug-524211.c,
1457         * support/regression/tests/packcast.c,
1458         * support/regression/tests/structidx.c: added empty tests
1459         * support/regression/tests/bug-607243.c: enabled test
1460
1461 2007-10-06 Borut Razem <borut.razem AT siol.net>
1462
1463         * .version, doc/sdccman.lyx: bumped version to 2.7.4 to indicate the full
1464            support of universal binaries on Mac OS X
1465
1466 2007-10-02 Borut Razem <borut.razem AT siol.net>
1467
1468         * src/SDCCval.h: unified double2ul macro for all platforms
1469         * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
1470         * support/regression/tests/bitwise.c: added regtest for bug #1777758
1471
1472 2007-09-30 Borut Razem <borut.razem AT siol.net>
1473
1474         * src/SDCCval.h: fixed bug #1739860 - sdcc does not work correctly on some
1475           platforms
1476         * sdcc_vc_in.h: enabled warnings
1477         * src/hc08/gen.c: fixed MSVC warning C4146: unary minus operator applied to
1478           unsigned type, result still unsigned
1479         * src/mcs51/peep.c: fixed gcc warning: suggest parentheses around && within ||
1480
1481 2007-09-28 Raphael Neider <rneider AT web.de>
1482
1483         * src/pic/device.c (find_device): prevent buffer underflow error
1484         * src/pic/pcoderegs.c (OptimizeRegUsage): avoid dereferencing
1485           the just destroyed list entry
1486
1487 2007-09-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1488
1489         * doc/sdccman.lyx: there's a dedicated wiki page for cmake and sdcc, thanks
1490           Alexander Neundorf
1491
1492 2007-09-18 Borut Razem <borut.razem AT siol.net>
1493
1494         * src/SDCCval.c: fixed MSVC warning C4146: unary minus operator
1495          applied to unsigned type, result still unsigned
1496
1497 2007-09-17 Borut Razem <borut.razem AT siol.net>
1498
1499         * src/SDCC.y, src/SDCCast.c, src/SDCCcse.c, src/SDCCglue.c,
1500           src/SDCCicode.c, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCval.c,
1501           src/SDCCval.h, src/hc08/gen.c, src/avr/gen.c, src/ds390/gen.c,
1502           src/mcs51/gen.c, src/pic/gen.c, src/pic/genarith.c, src/pic/glue.c,
1503           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/genarith.c,
1504           src/pic16/genutils.c, src/pic16/glue.c, src/pic16/main.c,
1505           src/z80/gen.c, src/z80/ralloc.c:
1506           fixed bug #1739860 - sdcc does not work correctly on some platforms
1507           (not finished)
1508           introduced and used ulFromVal(), double2ul(), used strtod() instead sscanf()
1509
1510 2007-09-17 Raphael Neider <rneider AT web.de>
1511
1512         * src/pic16/device.c: reverted to previous version
1513         * device/lib/pic16/Makefile.common.in: quieten gpasm via -Wa,-q
1514
1515 2007-09-16 Raphael Neider <rneider AT web.de>
1516
1517         * src/pic16/device.c (pic16_dump_usection): do not reserve 0 bytes,
1518           as this raises a ton of gpasm warnings, just emit a second label
1519         * src/pic16/devices.inc,
1520         * device/lib/pic16/pics.all,
1521         * device/lib/pic16/libdev/pic18f2585.c,
1522         * device/lib/pic16/libdev/pic18f2680.c,
1523         * device/lib/pic16/libdev/pic18f2682.c,
1524         * device/lib/pic16/libdev/pic18f2685.c,
1525         * device/lib/pic16/libdev/pic18f4585.c,
1526         * device/lib/pic16/libdev/pic18f4680.c,
1527         * device/lib/pic16/libdev/pic18f4682.c,
1528         * device/lib/pic16/libdev/pic18f4685.c,
1529         * device/include/pic16/pic18f2585.h,
1530         * device/include/pic16/pic18f2680.h,
1531         * device/include/pic16/pic18f2682.h,
1532         * device/include/pic16/pic18f2685.h,
1533         * device/include/pic16/pic18f4585.h,
1534         * device/include/pic16/pic18f4680.h,
1535         * device/include/pic16/pic18f4682.h,
1536         * device/include/pic16/pic18f4685.h,
1537         * device/include/pic16/pic18fregs.h: added 18f2585, 18f2680,
1538           18f2682, 18f2685, 18f4585, 18f4680, 18f4682, 18f4685,
1539           patch contributed by Anton Strobl, applied with changes
1540
1541 2007-09-16 Raphael Neider <rneider AT web.de>
1542
1543         * device/include/pic16/pic18f2431.h,
1544         * device/include/pic16/pic18f25j10.h,
1545         * device/include/pic16/pic18f4431.h,
1546         * device/include/pic16/pic18f45j10.h: adopted common include style
1547         * device/include/pic16/pic18f1320.h,
1548         * device/include/pic16/pic18f2320.h,
1549         * device/include/pic16/pic18f2525.h,
1550         * device/include/pic16/pic18f4320.h,
1551         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
1552         * device/include/pic16/pic18fregs.h: prepared for automatic include
1553           file selection by having DEVICE.h for every DEVICE
1554         * device/lib/pic16/libdev/pic18f2320.c,
1555         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
1556
1557         * device/lib/pic16/configure.in,
1558         * device/lib/pic16/configure: use rm -rf instead of rmdir
1559         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
1560         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
1561
1562 2007-09-09 Borut Razem <borut.razem AT siol.net>
1563
1564         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
1565           distingush between i386 and ppc Mac OS X versions
1566
1567 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
1568
1569         * src/mcs51/gen.c (genReceive): fixed bug 1788177
1570         * support/regression/tests/bug1788177.c: new, added
1571
1572 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1573
1574         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
1575         * device/include/mcs51/lint.h added keyword __naked
1576
1577 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
1578
1579         * src/pic16/glue.c,
1580         * src/pic/glue.c,
1581         * src/SDCCmem.h: removed maxRegBank
1582         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
1583           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
1584         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
1585         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
1586           name and behaviour to handle banked functions
1587           (scan4op): and use it to fix bug 1786213
1588
1589 2007-09-03 Raphael Neider <rneider AT web.de>
1590
1591         * device/include/pic16/pic18f248.h,
1592         * device/include/pic16/pic18f258.h,
1593         * device/include/pic16/pic18f448.h,
1594         * device/lib/pic16/libdev/pic18f248.c,
1595         * device/lib/pic16/libdev/pic18f258.c,
1596         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
1597           added T0CONbits, fixes #1786891
1598
1599 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
1600
1601         * src/ds390/gen.c (genFarPointerSet),
1602         * src/hc08/ralloc.c (packRegisters),
1603         * src/mcs51/ralloc.c (packRegisters),
1604         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
1605           bug 1750318
1606         * src/SDCCicode.h: POINTER_SET can be true for literals too
1607         * support/regression/tests/bug1750318.c: new, added
1608
1609 2007-08-23 Borut Razem <borut.razem AT siol.net>
1610
1611         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
1612           library versions without the completition functionality
1613
1614 2007-08-22 Raphael Neider <rneider AT web.de>
1615
1616         * device/include/pic16/pic18f1220.h,
1617         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
1618
1619 2007-08-12 Borut Razem <borut.razem AT siol.net>
1620
1621         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
1622
1623 2007-08-11 Borut Razem <borut.razem AT siol.net>
1624
1625         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
1626           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
1627           support/Util/SDCCerr.[ch] moved to src
1628         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
1629           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
1630           device/examples/ds390/tinitalk/tinitalk.dsp,
1631           device/examples/serialcomm/windows/serialcomm.dsp,
1632           support/librarian/librarian.dsp:
1633           removed linking of unused odbc32.lib and odbccp32.lib
1634         * support/scripts/winres.h:
1635           added for compilation with Visual C++ 2005 Express Edition
1636
1637 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1638
1639         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
1640           and CKCON1.
1641
1642 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1643
1644         * sdccconf_in.h: update the endian test so that SPARC Solaris
1645           does not throw syntax errors
1646
1647 2007-08-06 Borut Razem <borut.razem AT siol.net>
1648
1649         * doc/sdccman.lyx: removed two index entries which prevented the
1650           generation of sdcc doc archive
1651
1652 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1653
1654         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
1655           instead of lyx 1.5.0.
1656
1657 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1658
1659         * device/include/hc08/mc68hc908apxx.h: new header contributed by
1660           Lucas Loizaga, with minor modifications. Thanks!
1661
1662 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1663
1664         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
1665           in sdcclib.
1666
1667 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1668
1669         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
1670           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
1671           with acall/ajmp.
1672
1673 2007-07-22 Borut Razem <borut.razem AT siol.net>
1674
1675         * configure.in, configure: re-introduced .version
1676         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
1677           the version reverted to 2.7.0
1678
1679 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
1680
1681         * configure.in,
1682         * doc/sdccman.lyx: bumped version to 2.7.3
1683         * device/include/mcs51/compiler.h: fixed elif->else
1684         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
1685         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
1686           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
1687            enable accuse for bit operands
1688         * src/SDCCmain.c (printVersionInfo),
1689         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
1690           environment descriptor
1691         * src/SDCCutil.h: added getBuildEnvironment
1692         * src/SDCCglue.c (initialComments): use getBuildEnvironment
1693         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
1694         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
1695         * support/regression/tests/bug1348008.c,
1696         * support/regression/tests/bug1496419.c,
1697         * support/regression/tests/bug1503067.c,
1698         * support/regression/tests/preproc.c: added empty tests
1699
1700 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1701
1702         * support/regression/tests/bug1678803.c: new, added
1703
1704 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
1705
1706         * as/link/aslink.h,
1707         * as/link/hc08/lkihx.c,
1708         * as/link/hc08/lkrloc.c,
1709         * as/link/mcs51/lkihx.c,
1710         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
1711           ihxExtendedLinearAddress
1712         * as/link/mcs51/lkrloc.c (relr),
1713         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
1714           acall/ajmp, see bug 830513
1715
1716 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
1717
1718         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
1719           (cseBBlock): remember aggr2ptr has been used
1720         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
1721           (geniCodeAssign): fixed bug 868103
1722         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
1723           added operandSize prototype
1724         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
1725           (genDataPointerSet): use max of size of right and result,
1726           (gencjne): added parameter useCarry for optimization,
1727           (genCmpEq): use carry if appropriate,
1728           (genXor): check if operand already in carry
1729         * support/regression/tests/bug-868103.c: enabled test
1730
1731 2007-07-12 Raphael Neider <rneider AT web.de>
1732
1733         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
1734
1735 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
1736
1737         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
1738           from Robert Larice, thanks
1739         * support/regression/tests/bitopcse.c,
1740         * support/regression/tests/bitvars.c,
1741         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
1742         * support/regression/tests/bug-927659.c: enabled test for z80
1743         * support/regression/tests/bug1738367.c: added extra tests by Frieder
1744         * support/regression/tests/bug1745717.c: new, added
1745         * support/regression/tests/literalop.c,
1746         * support/regression/tests/nullstring.c: removed storage definitions that
1747           are now in testfwk.h
1748
1749 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
1750
1751         * device/include/stdbool.h: do not define __bool_true_false_are_defined
1752           and bool for targets that do not fully support it.
1753         * support/regression/tests/bug1546986.c,
1754         * support/regression/tests/bug1723128.c,
1755         * support/regression/tests/bug1734654.c,
1756         * support/regression/tests/bug1738367.c,
1757         * support/regression/tests/constantRange.c: only use bool if allowed
1758
1759 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
1760
1761         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
1762           Larice, also handle function pointers
1763         * support/regression/tests/bug1749275.c: new, added
1764
1765 2007-07-03 Borut Razem <borut.razem AT siol.net>
1766
1767         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
1768           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
1769           #1746528: SDCC should ignore ':' in inline assembler comments
1770         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
1771
1772 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
1773
1774         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
1775         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
1776
1777 2007-06-29 Borut Razem <borut.razem AT siol.net>
1778
1779         * src/SDCCmain.c: fixed bug
1780           #1744746: SDCC #4867: broken option --xram-size
1781
1782 2007-06-28 Borut Razem <borut.razem AT siol.net>
1783
1784         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
1785           find out the endianess of host machine for ucsim
1786
1787 2007-06-27 Borut Razem <borut.razem AT siol.net>
1788
1789         * support/regression/generate-cases.py: corrected the file name
1790           in warning
1791         * configure.in, configure, sdccconf_in.h: find out the endianess of
1792           host machine
1793         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
1794           negative size
1795
1796 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
1797
1798         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
1799
1800 2007-06-26 Borut Razem <borut.razem AT siol.net>
1801
1802         * support/regression/generate-cases.py: display warning if function
1803           list is empty; implemented more flexible rule for detection of
1804           testing functions, allowing return type 'void' in the same line as
1805           the function name in the function definition
1806         * support/regression/tests/bug-1654060.c: corrected test
1807         * support/librarian/sdcclib.c: fixed warning:
1808           format '%s' expects type 'char *', but argument 2 has type 'int'
1809
1810 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1811
1812         * support/librarian/sdcclib.c: Added feature Requests [1510635]
1813           Multiple infiles for sdcclib.
1814
1815 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1816
1817         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
1818           bug 1731741
1819
1820 2007-06-18 Borut Razem <borut.razem AT siol.net>
1821
1822         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
1823           how to handle comments, so they have to be removed by the
1824           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
1825         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
1826           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
1827           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
1828           table driven option hadling
1829
1830 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1831
1832         * src/SDCCast.c (decorateType),
1833         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
1834           iCode to ast level to fix bug 1738367
1835         * support/regression/tests/bug1738367.c: new, added
1836
1837 2007-06-15 Raphael Neider <rneider AT web.de>
1838
1839         * src/pic16/devices.inc,
1840         * device/lib/pic16/pics.all,
1841         * device/include/pic16/pic18fregs.h,
1842         * device/include/pic16/pic18f[24][45]20.h,
1843         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
1844           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
1845         * device/lib/pic16/Makefile.in: faster cleanup
1846
1847 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1848
1849         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
1850
1851 2007-06-13 Raphael Neider <rneider AT web.de>
1852
1853         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
1854
1855 2007-06-12 Raphael Neider <rneider AT web.de>
1856
1857         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
1858           suppress bit defines if NO_BIT_DEFINES is #define'd
1859         * device/include/pic/pic*.h: recreated all headers to include
1860           conditional bit defines
1861         * device/include/pic/pic16f886.h,
1862         * device/include/pic/pic16f887.h: fixed based on newer .inc file
1863         * device/include/pic/recreate.sh: script to recreate the complete
1864           device library files based on the currently supported devices
1865
1866 2007-06-12 Borut Razem <borut.razem AT siol.net>
1867
1868         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
1869           support/regression/Makefile.in, support/scripts/build.mak,
1870           support/scripts/Makefile.snapshot:
1871           use new svn URL scheme
1872         * doc/sdccman.lyx: SDCC Wiki moved to
1873           http://sdcc.wiki.sourceforge.net/
1874
1875 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1876
1877         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
1878         * support/regression/tests/bug1734654.c: added
1879
1880 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1881
1882         * src/SDCCast.c (decorateType): optimized '?' for equal operands
1883         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
1884           with literal operands
1885
1886 2007-06-10 Borut Razem <borut.razem AT siol.net>
1887
1888         * as/link/z80/lklibr.c: fixed mingw build warning
1889           lklibr.c:575: warning: implicit declaration of function 'tolower'
1890         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
1891           src/z80/main.c: move target specific options from src/SDCCmain.c
1892           to src/<target>/main.c
1893
1894 2007-06-09 Borut Razem <borut.razem AT siol.net>
1895
1896         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
1897           removed unused swap_sense; removed outBitCLong, replaced with outBitC
1898         * support/regression/tests/bug-1294691.c: added
1899
1900 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
1901
1902         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
1903           can also be static, fixes bug 1733438
1904         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
1905           have absolute address too
1906           (computeType): added optimization for 'cond ? true : false'
1907         * support/regression/tests/absolute.c: added test for static absolute var
1908
1909 2007-06-08 Raphael Neider <rneider AT web.de>
1910
1911         * src/regression/Makefile: suppress parallel builds, allow easy
1912           switching between pic14/pic16 ports
1913         * src/regression/picregs.h: added pic14/16 header file switch
1914         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
1915           inline.c,nestfor.c,string1.c}: include "picregs.h"
1916
1917 2007-06-07 Borut Razem <borut.razem AT siol.net>
1918
1919         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
1920           permanent solution to suppress GCC 4.2.0 c++ warning:
1921           deprecated conversion from string constant to `char *'
1922           use 'const char *' where ever required
1923         * support/regression/generate-cases.py: implemented more flexible rule
1924           for detection of testing functions, allowing white-spaces surrounding
1925           the function name and the 'void' parameter.
1926         * support/regression/tests/constantRange.c,
1927           support/regression/tests/scott-compare3.c: fixed failing regression
1928           tests, uncovered by implementation of more flexible rule for detection
1929           of testing functions
1930
1931 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
1932
1933         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
1934
1935 2007-06-04 Borut Razem <borut.razem AT siol.net>
1936
1937         * configure.in, configure, config_vc.awk: sdcc version number is now
1938           stored in configure.in; removed .version
1939         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
1940           doc/INSTALL.txt: version bumped to 2.7.2
1941         * sim/ucsim/configure.in, sim/ucsim/configure:
1942           use "read" to read from .version
1943
1944 2007-06-03 Borut Razem <borut.razem AT siol.net>
1945
1946         * */Makefile.in: removed annoying warning:
1947           Makefile:xx: Makefile.dep: No such file or directory
1948
1949 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1950
1951         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
1952           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
1953         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
1954         * src/SDCCast.c (resultTypePropagate): propagate for '!',
1955           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
1956           bugfix: only use newBoolLink for bit result type
1957         * src/SDCCicode.c (geniCodeLogic): added param tree,
1958           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
1959           (geniCodeLogicAndOr): use IS_BIT,
1960           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
1961           (ast2iCode): added tree param to geniCodeLogic for comparisons
1962         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
1963         * support/regression/tests/bug1723128.c: added test NotZero
1964
1965 2007-06-01 Borut Razem <borut.razem AT siol.net>
1966
1967         * SDCPP synchronized with GCC CPP release version 4.2.0,
1968           currently the latest release:
1969         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1970           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
1971           support/cpp2/cppdefault.h, support/cpp2/except.h,
1972           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
1973           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
1974           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1975           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
1976           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
1977           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
1978           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
1979           support/cpp2/opts.h, support/cpp2/output.h,
1980           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
1981           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
1982           support/cpp2/system.h, support/cpp2/version.c,
1983           support/cpp2/Makefile.in: modified
1984         * support/cpp2/opts-common.c: added
1985         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
1986         * device/lib/pic16/libdev/pic18f[24]5j10.c:
1987           search for included source file in local directory
1988         * sim/ucsim/configure, sim/ucsim/configure.in:
1989           temporary solution to suppress GCC 4.2.0 c++ warning:
1990           deprecated conversion from string constant to `char *'
1991
1992 2007-06-01 Raphael Neider <rneider AT web.de>
1993
1994         * device/lib/pic/libdev/pic12f683.c,
1995         * device/include/pic/pic12f683.h: added GPIO bits
1996
1997 2007-06-01 Raphael Neider <rneider AT web.de>
1998
1999         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
2000           quotation marks, clarified role of PIC14 vs. PIC16 ports
2001         * src/pic16/devices.inc,
2002         * device/include/pic16/pic18fregs.h,
2003         * device/include/pic16/pic18f[24][45]j10.h,
2004         * device/lib/pic16/pics.all,
2005         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
2006           18f24j10, 18f25j10, 18f44j10, and 18f45j10
2007         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
2008           for new devices as they are not yet supported by gputils
2009
2010 2007-05-31 Borut Razem <borut.razem AT siol.net>
2011
2012         * Small Device C Compiler 2.7.0 released
2013         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
2014           changed sdcc version to 2.7.1
2015         * support/scripts/sdcc.nsi: added How to create WIN32 release
2016           setup.exe package
2017
2018 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
2019
2020         * doc/sdccman.lyx: documented initialization and allocation of absolute
2021           variables, bit parameter passing, the need for function pointers to be
2022           reentrant and alpha quality support of inline and retrict
2023
2024 2007-05-26 Borut Razem <borut.razem AT siol.net>
2025
2026         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
2027           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
2028         * docs/knownbugs.html: updated
2029
2030 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
2031
2032         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
2033           thanks Jan Waclawek
2034         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
2035           AOP_CRY and ruonly
2036           (gencjneshort): optimized when left is AOP_DIR
2037         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
2038           initializing unions in a struct/array
2039         * support/regression/fwk/include/testfwk.h: added defines for data, near
2040           and far for host and z80
2041         * support/regression/tests/bug1723128.c: new, added
2042
2043 2007-05-22 Borut Razem <borut.razem AT siol.net>
2044
2045         * doc/knownbugs.html: updated
2046
2047 2007-05-21 Raphael Neider <rneider AT web.de>
2048
2049         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
2050           error message instead
2051         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
2052
2053 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2054
2055         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
2056
2057 2007-05-21 Raphael Neider <rneider AT web.de>
2058
2059         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
2060           closes #1722392
2061         * src/regression/gpsim_assert.h,
2062         * src/regression/Makefile,
2063         * src/regression/pcodeopt.c: regression test for the above fix
2064
2065 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
2066
2067         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
2068           jumps to self, fixed bug 1717281
2069
2070 2007-05-10 Borut Razem <borut.razem AT siol.net>
2071
2072         * support/scripts/gen_known_bugs.pl: cosmetic fix
2073         * doc/knownbugs.html: generated by gen_known_bugs.pl
2074
2075 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2076
2077         * src/SDCCast.c (createFunction): also generate non-inlined version of
2078           function for functions declared as "static inline"
2079         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
2080           function can be inlined after non-inlined version generated.
2081
2082 2007-05-10 Borut Razem <borut.razem AT siol.net>
2083
2084         * support/scripts/gen_known_bugs.pl: added script
2085           which generates knownbugs.html
2086
2087 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
2088
2089         * doc/knownbugs.html: updated for release 2.7.0
2090
2091 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2092
2093         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
2094
2095 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
2096
2097         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
2098           (throughout): updated generating comments
2099         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
2100           (throughout): updated generating comments
2101         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
2102           rule instead of at the second, or it might skip lines when removing the
2103           complete match
2104         * support/regression/tests/bug1714204.c: changed test to foo
2105
2106 2007-05-08 Borut Razem <borut.razem AT siol.net>
2107
2108         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
2109           thanks to SDCC Distributed Compile Farm members,
2110           added Z80 and GBZ80 command line options
2111         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
2112
2113 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
2114
2115         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
2116         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
2117         * support/regression/tests/longlit.c: modified to be tested at all and
2118           to pass the actual test
2119
2120 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2121
2122         * device/include/mcs51/uPSD33xx.h: Added.
2123
2124 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
2125
2126         * device/lib/_gptrput.c,
2127         * device/lib/_gptrget.c: removed old code,
2128          (_gptrgetWord),
2129         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
2130         * support/regression/tests/bug1714204.c: new, added
2131
2132 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2133
2134         * support/regression/tests/regtrack.c: test was never executed
2135           because of the regression test being picky about white spaces.
2136         * device/lib/mcs51/crtclear.asm: added comment
2137
2138 2007-05-06 Raphael Neider <rneider AT web.de>
2139
2140         * device/lib/pic/Makefile.rules,
2141         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
2142           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
2143
2144 2007-05-06 Raphael Neider <rneider AT web.de>
2145
2146         * src/pic16/device.h,
2147         * src/pic16/main.h,
2148         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
2149           _pic16_setDefaultOptions): removed/reordered command-line args
2150         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
2151           devices, regrouped command line args, environment variables),
2152           clarified sone points, added sections on how to add devices to the
2153           PIC14/PIC16 ports
2154
2155 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
2156
2157         * src/z80/peeph.def: fixed bug in rule 2
2158
2159 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
2160
2161         * src/port.h: added TARGET_MCS51_LIKE
2162         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
2163           take advantage of it too
2164         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
2165           (shiftR2Left2Result): Optimized: don't check shifting by 0
2166         * src/z80/peeph-z80.def,
2167         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
2168           modifications, see patch 1700823
2169         * src/mcs51/peep.c (): fixed bug 1712928
2170         * support/regression/tests/bug1712928.c: new, added
2171
2172 2007-05-05 Borut Razem <borut.razem AT siol.net>
2173
2174         * device/lib/pic16/Makefile.common.in,
2175           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
2176           removed bash dependencies
2177
2178 2007-05-01 Borut Razem <borut.razem AT siol.net>
2179
2180         * src/SDCCicode.c:
2181           fixed bug #1710507: --i-code-in-asm makes compile fail
2182           all iCode comments are now one liners
2183         * src/mcs51/gen.c: fixed memory leak
2184
2185 2007-05-01 Raphael Neider <rneider AT web.de>
2186
2187         * device/lib/pic/libdev/*.c
2188         * device/include/pic/*.h: regenerated all device libs from updated
2189           .inc files
2190         * support/scripts/inc2h.pl: documented usage, now uses strict to
2191           catch more bugs
2192
2193 2007-04-30 Borut Razem <borut.razem AT siol.net>
2194
2195         * doc/sdccman.lyx:
2196           fixed bug #1669175: Problem with space in output paths
2197           documented how to use paths with spaces for Windows users
2198
2199 2007-04-29 Borut Razem <borut.razem AT siol.net>
2200
2201         * Fixed svn:eol-style and svn:keywords properties
2202         * src/SDCCval.c: fixed bug
2203           #1592871: Segfault with "large" const arrays of characters
2204           replaced recursion with iteration
2205         * Removed svn:executable property from non-executable files
2206
2207 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
2208
2209         * src/mcs51/gen.c (genRet): fixed bug 1707003
2210
2211 2007-04-27 Raphael Neider <rneider AT web.de>
2212
2213         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
2214           createReachingDefinitions,assignValnums,pic16_destructDF,
2215           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
2216           prevent NULL pointer dereferences
2217         * device/lib/pic/libdev/pic16f886.c,
2218         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
2219           prevent building them, gputils do not really support them yet
2220
2221 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2222
2223         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
2224           helps printf_small. 32 bytes more __idata mem.
2225
2226 2007-04-27 Raphael Neider <rneider AT web.de>
2227
2228         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
2229           return early when pb or pb->pcHead is NULL (patch #1708427)
2230         * src/regression/empty.c,
2231         * src/regression/Makefile: added test with empty functions
2232         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
2233
2234 2007-04-27 Borut Razem <borut.razem AT siol.net>
2235
2236         * src/SDCCast.c: fixed feature request
2237           #1547512: Redundant strings linked when using sizeof("abc")
2238
2239 2007-04-23 Borut Razem <borut.razem AT siol.net>
2240
2241         * doc/sdccman.lyx, src/SDCCmain.c:
2242           peep-hole comments are generated only if --fverbose-asm option is
2243           specified and --no-peep-comments is not, as proposed by Frieder.
2244         * support/regression/Makefile.in: compile regression tests with
2245           --fverbose-asm option so one can "grep" whether a new (or an old)
2246           peephole is (still) applied; requested by Frieder.
2247
2248 2007-04-23 Kevin Buettner <kevin AT buettner.to>
2249
2250         * device/include/pic/pic16f886.h,
2251         * device/include/pic/pic16f887.h,
2252         * device/lib/pic/libdev/pic16f886.c,
2253         * device/lib/pic/libdev/pic16f887.c,
2254         * device/include/pic/pic14devices.txt,
2255         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
2256
2257 2007-04-23 Kevin Buettner <kevin AT buettner.to>
2258
2259         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
2260           fixes #1704666
2261
2262 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2263
2264         * device/lib/_memset.c: assembler version for mcs51
2265
2266 2007-04-22 Borut Razem <borut.razem AT siol.net>
2267
2268         * support/scripts/listerr.c: program to create the list of errors and
2269           warnings list from - added
2270         * doc/sdccman.lyx: removed the note
2271           "For list of warnings and corresponding codes, see err_warn.txt"
2272         * src/SDCCsymt.c: fixed bug #1699804:
2273           Bug with some uses of sizeof(static local array) (MCS51)
2274         * support/regression/tests/bug-1699804.c: added
2275
2276 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
2277
2278         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
2279           (main): added option -i,
2280           (asmbl, case S_INCL): use search_path_fopen,
2281           mostly from patch 1579668 by Peter Miller, thanks
2282         * src/z80/main.c: fixed typo --callee-saves-bc
2283         * device/include/mcs51/compiler.h: added sfrword for Tasking
2284
2285 2007-04-20 Borut Razem <borut.razem AT siol.net>
2286
2287         * src/z80/main.c: replaced reserved keyword asm with asmblr
2288
2289 2007-04-19 Borut Razem <borut.razem AT siol.net>
2290
2291         * src/port.h: use const pointers to strings
2292         * src/SDCCargs.h: declared getStringArg() and getIntArg()
2293         * src/pic16/main.c: include SDCCargs.h
2294         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
2295           const char, since the strings are dynamically allocated
2296         * src/SDCCmain.c: options.code_seg and options.const_seg are
2297           dynamically allocated; check port specific command line options
2298           before the general ones
2299         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
2300
2301 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
2302
2303         * device/include/ds400rom.h,
2304         * device/lib/ds390/lcd390.c,
2305         * device/lib/ds390/memcpyx.c,
2306         * device/lib/ds390/rtc390.c,
2307         * device/lib/ds400/ds400rom.c,
2308         * device/lib/ds400/memcpyx.c,
2309         * device/lib/hc08/_ret.c: more replacements of keywords with their
2310           double underscore equivalents
2311         * device/lib/ds390/Makefile.in,
2312         * device/lib/ds400/Makefile.in,
2313         * device/lib/gbz80/Makefile.in,
2314         * device/lib/hc08/Makefile.in,
2315         * device/lib/mcs51/Makefile.in,
2316         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
2317
2318 2007-04-17 Borut Razem <borut.razem AT siol.net>
2319
2320         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
2321           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
2322           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
2323           to --fverbose-asm, to be gcc'ish
2324
2325 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
2326
2327         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
2328
2329 2007-04-17 Borut Razem <borut.razem AT siol.net>
2330
2331         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
2332         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
2333           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
2334           with their double underscore equivalent
2335
2336 2007-04-14 Borut Razem <borut.razem AT siol.net>
2337
2338         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
2339           source"
2340
2341 2007-04-13 Borut Razem <borut.razem AT siol.net>
2342
2343         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
2344           C99 standard
2345         * device/examples/serialcomm/windows/serial.[ch],
2346           device/examples/serialcomm/windows/test_serialcomm.cpp:
2347           updated by Bela Torok
2348         * device/examples/serialcomm/windows/serialcomm.dsw,
2349           device/examples/serialcomm/windows/serialcomm.dsp: added
2350
2351 2007-04-13 Jan Waclawek <wek AT efton.sk>
2352
2353         * doc/sdccman.lyx: additions and changes at various places
2354           (submitted as #1697136).
2355           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
2356
2357 2007-04-10 Borut Razem <borut.razem AT siol.net>
2358
2359         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
2360           LyX file format changed to 245
2361         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
2362           "FreeWare" replaced with "free open source"
2363
2364 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
2365
2366         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
2367
2368 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
2369
2370         * device/include/pic16/pic18fregs.h,
2371         * device/lib/_bp.c,
2372         * device/lib/_decdptr.c,
2373         * device/lib/_divsint.c,
2374         * device/lib/_divslong.c,
2375         * device/lib/_divuint.c,
2376         * device/lib/_divulong.c,
2377         * device/lib/_fs2schar.c,
2378         * device/lib/_fs2sint.c,
2379         * device/lib/_fs2slong.c,
2380         * device/lib/_fs2uchar.c,
2381         * device/lib/_fs2uint.c,
2382         * device/lib/_fs2ulong.c,
2383         * device/lib/_fsadd.c,
2384         * device/lib/_fscmp.c,
2385         * device/lib/_fsdiv.c,
2386         * device/lib/_fseq.c,
2387         * device/lib/_fsget1arg.c,
2388         * device/lib/_fsget2args.c,
2389         * device/lib/_fsgt.c,
2390         * device/lib/_fslt.c,
2391         * device/lib/_fsmul.c,
2392         * device/lib/_fsneq.c,
2393         * device/lib/_fsnormalize.c,
2394         * device/lib/_fsreturnval.c,
2395         * device/lib/_fsrshift.c,
2396         * device/lib/_fssub.c,
2397         * device/lib/_fsswapargs.c,
2398         * device/lib/_gptrget.c,
2399         * device/lib/_gptrgetc.c,
2400         * device/lib/_gptrput.c,
2401         * device/lib/_logexpf.c,
2402         * device/lib/_modsint.c,
2403         * device/lib/_modslong.c,
2404         * device/lib/_moduint.c,
2405         * device/lib/_modulong.c,
2406         * device/lib/_mulint.c,
2407         * device/lib/_mullong.c,
2408         * device/lib/_schar2fs.c,
2409         * device/lib/_ser.c,
2410         * device/lib/_setjmp.c,
2411         * device/lib/_sint2fs.c,
2412         * device/lib/_slong2fs.c,
2413         * device/lib/_spx.c,
2414         * device/lib/_uchar2fs.c,
2415         * device/lib/_uint2fs.c,
2416         * device/lib/_ulong2fs.c,
2417         * device/lib/asincosf.c,
2418         * device/lib/atanf.c,
2419         * device/lib/calloc.c,
2420         * device/lib/ds390/tinibios.c,
2421         * device/lib/ds400/tinibios.c,
2422         * device/lib/expf.c,
2423         * device/lib/free.c,
2424         * device/lib/hc08/_mulint.c,
2425         * device/lib/logf.c,
2426         * device/lib/malloc.c,
2427         * device/lib/printf_fast.c,
2428         * device/lib/printf_tiny.c,
2429         * device/lib/printfl.c,
2430         * device/lib/realloc.c,
2431         * device/lib/ser_ir.c,
2432         * device/lib/serial.c,
2433         * support/regression/tests/libmullong.c: replaced all special keywords
2434           with their double underscore equivalent
2435         * support/regression/ports/mcs51-xstack-auto/spec.mk,
2436         * device/lib/Makefile.in: compile libs with --std-c99 instead of
2437           --std-sdcc99
2438         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
2439           (genRet): if the bit-symbol is ruonly it already is in the carry
2440         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
2441         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
2442         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
2443           type UCHAR if dest is not bit
2444
2445 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
2446
2447         * device/include/math.h,
2448         * device/lib/cotf.c,
2449         * device/lib/expf.c,
2450         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
2451
2452 2007-04-01 Borut Razem <borut.razem AT siol.net>
2453
2454         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
2455           fixed bug #1692042: input buffer overflow...scanner uses REJECT
2456         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
2457           gcc_unreachable() called internal_error()...
2458
2459 2007-03-30 Raphael Neider <rneider AT web.de>
2460
2461         * src/pic/ralloc.c (isData): suppress garbage debug output
2462
2463 2007-03-28 Borut Razem <borut.razem AT siol.net>
2464
2465         * doc/sdccman.lyx:
2466           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
2467           is developed, built and used worldwide, and the word "night" doesn't
2468           make any sense.
2469
2470 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
2471
2472         * device/include/mcs51/C8051F360.h: new, added
2473         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
2474
2475 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2476
2477         * src/SDCC.y (declaration_specifiers, function_specifier),
2478         * support/Util/SDCCerr.c,
2479         * support/Util/SDCCerr.h,
2480         * src/SDCCsymt.h,
2481         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
2482           inline keyword
2483         * src/SDCCmem.c (deallocParms),
2484         * src/SDCCast.c: support for function inlining, not quite complete
2485         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
2486           'restrict' qualifier
2487
2488 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2489
2490         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
2491           (saveRBank, unsaveRBank): don't save bits,
2492           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
2493         * support/regression/tests/bug1535242.c: new, added
2494         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
2495           thanks Alexey Shamrin <shamrin AT gmail.com>,
2496           made assert.h header ANSI compliant (added a check for NDEBUG macro,
2497           removed header guard)
2498         * .version,
2499         * sdcc.spec: bumped version to 2.6.5
2500         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
2501
2502 2007-03-22 Borut Razem <borut.razem AT siol.net>
2503
2504         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
2505           fixed bug #1653671: sdcdb integration into ddd is broken
2506
2507 2007-03-22 Raphael Neider <rneider AT web.de>
2508
2509         * src/pic/gen.c (popGetExternal): augmented to also create references
2510           to external variables (not only labels),
2511           (genCall): comment on plan to reduce PAGESEL overhead,
2512           (genFunction, genEndFunction): also save/restore FSR around interrupt
2513           handling code, removed lots of unused code
2514           (genDivOneByte): release acquired temp register
2515         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
2516           of popGetExternal
2517         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
2518           for registers that need to be saved during interrupts (FSR, STATUS,
2519           PCLATH; W needs special handling), currently only FSR is used
2520
2521 2007-03-22 Raphael Neider <rneider AT web.de>
2522
2523         * device/include/pic/pic14devices.txt: 16f688 has only one config word
2524
2525 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2526
2527         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
2528
2529 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2530
2531         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
2532
2533 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
2534
2535         * as/link/aslink.h: added LKOBJEXT
2536         * as/link/hc08/link_hc08.dsp,
2537         * as/link/hc08/Makefile.bcc,
2538         * as/link/hc08/Makefile.in,
2539         * as/link/mcs51/aslink.dsp,
2540         * as/link/mcs51/Makefile.bcc,
2541         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
2542         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
2543         * as/link/lkaomf51.c: merged and moved
2544         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
2545         * as/link/z80/lkdata.c,
2546         * as/link/lkdata.c: merged and moved
2547         * as/link/hc08/lkmain.c,
2548         * as/link/mcs51/lkmain.c: cosmetic changes
2549         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
2550         * as/link/lklex.c: use LKOBJEXT
2551         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
2552           ANSI-fied functions, removed bubble-sorts
2553         * as/link/z80/lksym.c           as/link/lksym.c: merged,
2554           ANSI-fied functions
2555         * as/link/z80/linkgbz80.dsp,
2556         * as/link/z80/linkz80.dsp,
2557         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
2558           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
2559         * as/link/z80/lkhead.c,
2560         * as/link/z80/lklex.c: deleted
2561         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
2562         * as/link/z80/lkmain.c: added copyfile()
2563
2564 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2565
2566         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
2567
2568 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2569
2570         * device/lib/_strlen.c: assembler version for mcs51
2571
2572 2007-03-13 Raphael Neider <rneider AT web.de>
2573
2574         * device/include/pic16/pic18f2221.h,
2575         * device/include/pic16/pic18f2321.h,
2576         * device/include/pic16/pic18f2331.h,
2577         * device/include/pic16/pic18f4221.h,
2578         * device/include/pic16/pic18f4321.h,
2579         * device/include/pic16/pic18f4331.h: fixed config byte location names
2580         * support/scripts/inc2h-pic16.pl: removed debug output, emit
2581           consistently named config byte locations
2582
2583 2007-03-13 Borut Razem <borut.razem AT siol.net>
2584
2585         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
2586           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
2587           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
2588           as/link/z80/Makefile.in, as/z80/Makefile.in:
2589           introduced LDFLAGS
2590
2591 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2592
2593         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
2594         * device/lib/printf_large.c: pointer was converted to generic
2595         pointer for mcs51 models other than model-small (Maarten noticed)
2596
2597 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2598
2599         * device/include/mcs51/ADuC84x.h: Added.
2600
2601 2007-03-10 Borut Razem <borut.razem AT siol.net>
2602
2603         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
2604           fixed RFE #1624219: double backslashes in filenames;
2605           functions hexEscape(), octalEscape() and copyStr() moved from
2606           SDCCval.c to SDCCutil.c and made them glovbally available
2607
2608 2007-03-09 Borut Razem <borut.razem AT siol.net>
2609
2610         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
2611           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
2612           1673361: Missaligned comments in output files
2613
2614 2007-03-09 Raphael Neider <rneider AT web.de>
2615
2616         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
2617
2618 2007-03-09 Raphael Neider <rneider AT web.de>
2619
2620         * src/pic/gen.c,
2621         * src/pic/glue.c,
2622         * src/pic/ralloc.c: suppress undesired debug output
2623         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
2624
2625 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2626
2627         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
2628
2629 2007-03-07 Borut Razem <borut.razem AT siol.net>
2630
2631         * device/lib/pic16/libdev/pic18f[24][34]31.c:
2632           search include files in the current directory
2633
2634 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
2635
2636         * src/SDCCglue.c (emitMaps, glue),
2637         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
2638           absolute xdata
2639         * support/regression/tests/absolute.c: added xdata test
2640
2641 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
2642
2643         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
2644           added condition to macro, fixes bug 1666080
2645
2646 2007-03-02 Raphael Neider <rneider AT web.de>
2647
2648         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
2649
2650 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2651
2652         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
2653         be cleared. Unconditionally set __XPAGE
2654         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
2655
2656 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2657
2658         * src/SDCCglobl.h,
2659         * src/SDCCmain.c,
2660         * src/mcs51/gen.c,
2661         * src/mcs51/rtrack.c,
2662         * src/ds390/gen.c,
2663         * doc/sdccman.lyx: added --no-gen-comments
2664         * src/mcs51/peeph.def: added 192.b, disabled 185
2665
2666 2007-02-25 Raphael Neider <rneider AT web.de>
2667
2668         * src/pic16/gen.c (genCast): fixed typo
2669         * device/lib/pic16/Makefile.subdir: only install existing files
2670         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
2671
2672 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
2673
2674         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
2675         * device/lib/mcs51/crtclear.asm,
2676         * device/lib/mcs51/crtxclear.asm: renumbered labels
2677         * device/lib/mcs51/Makefile.in: added crtcall.asm
2678         * doc/sdccman.lyx: documented mcs51 crt* library startup code
2679         * src/mcs51/gen.c (movc): removed,
2680           (aopGet, genPlusBits): clear a after loading the carry (possibly from
2681             acc.x or psw.x),
2682           (toCarry, genSend, genRet): added function toCarry,
2683           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
2684           (assignBit, genAssign, genCast): added function assignBit
2685         * src/mcs51/Makefile.bcc: added rtrack.c
2686         * src/mcs51/ralloc.h: made valueKnown a bitfield
2687         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
2688           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
2689           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
2690         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
2691         * src/z80/gen.c: added AOP_IS_PAIRPTR,
2692           (_pop): only pop valid pairs, see gencjneshort,
2693           (gencjneshort): return pair that still needs to be popped, restructured,
2694           (gencjne, genCmpEq): call _pop
2695
2696 2007-02-23 Raphael Neider <rneider AT web.de>
2697
2698         * device/include/pic/pic14devices.txt: 16f684 has only one config word
2699
2700 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2701
2702         * device/include/mcs51/P89LPC925.h: Added.
2703
2704 2007-02-18 Raphael Neider <rneider AT web.de>
2705
2706         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
2707
2708 2007-02-17 Borut Razem <borut.razem AT siol.net>
2709
2710         * support/cpp2/directives.c, support/cpp2/version.c:
2711           synchronized with GCC CPP 4.1.2
2712
2713 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2714
2715         * src/mcs51/rtrack.h,
2716         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
2717           by checking the strings passed by emitcode() to the assembler.
2718           Feel free to change. This in part addresses RFE #482179.
2719           Set environment variable SDCC_RTRACK to enable.
2720         * src/mcs51/gen.c: inserted hooks
2721         * src/mcs51/ralloc.h: added two members to struct regs
2722         * support/regression/tests/regtrack.c: added
2723
2724 2007-02-14 Borut Razem <borut.razem AT siol.net>
2725
2726         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
2727         * Makefile.in: applied patch from Makefile related part of
2728           #1469393: Compiler does not initialize static data
2729
2730 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2731
2732         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
2733           for better fix of bug 1273984, compiles pic16 rand.c
2734
2735 2007-02-12 Borut Razem <borut.razem AT siol.net>
2736
2737         * src/pic16/main.c: fixed pic16 standard library directory bug
2738
2739 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2740
2741         * src/hc08/gen.c (genSwap): fix swap regression test
2742
2743 2007-02-10 Borut Razem <borut.razem AT siol.net>
2744
2745         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
2746           with same scope
2747         * support/regression/tests/bug-1654060.c: added regression test for
2748           #1654060
2749
2750 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
2751
2752         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
2753         bit moves in return statement
2754
2755 2007-02-09 Borut Razem <borut.razem AT siol.net>
2756
2757         * src/SDCC.y: fixed bug #1654060 typedef within function causes
2758           syntax error
2759
2760 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
2761
2762         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
2763         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
2764
2765 2007-02-07 Raphael Neider <rneider AT web.de>
2766
2767         * src/pic16/devices.inc,
2768         * device/include/pic16/pic18fregs.h,
2769         * device/include/pic16/pic18f[24][34]31.h,
2770         * device/lib/pic16/libdev/pic18f[24][34]31.c,
2771         * device/lib/pic16/pics.all: added 18f[24][34]31 family
2772         * device/lib/pic16/libio/i2c.ignore: do not build i2c
2773
2774 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
2775
2776         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
2777           can this have lived here for so many years?
2778         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
2779           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
2780         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
2781
2782 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
2783
2784         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
2785         appended by loop induction must be at the very end of the eBBlock
2786
2787 2007-02-05 Kevin Vigor
2788
2789         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
2790
2791 2007-02-05 Borut Razem <borut.razem AT siol.net>
2792
2793         * support/regression/fwk/lib/timeout.c: native WIN32 port,
2794           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
2795
2796 2007-02-03 Borut Razem <borut.razem AT siol.net>
2797
2798         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
2799           applied patch #1646602 option to set default signedness of char to
2800           unsigned, added -funsigned-char command line option,
2801           thanks to Gunther Jehle
2802         * device/lib/Makefile.in: added the -f option to rm so it doesn't
2803           prompt for file deletion a few hundred times (especially the
2804           subversion files, which have ro permissions so it asks for
2805           confirmation), thanks to Simon McAuliffe;
2806           added {} + option to find in order to remove multiple files from a
2807           single rm commad
2808
2809 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2810
2811         * device/include/mcs51/SST89x5xRDx.h: Added.
2812
2813 2007-02-02 Raphael Neider <rneider AT web.de>
2814
2815         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
2816         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
2817
2818 2007-02-01 Raphael Neider <rneider AT web.de>
2819
2820         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
2821           config words again
2822
2823 2007-01-31 Borut Razem <borut.razem AT siol.net>
2824
2825         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
2826           if compiled with GCC. Thanks to Raphael Neider
2827
2828 2007-01-31 Raphael Neider <rneider AT web.de>
2829
2830         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
2831             operand names, handles name and (name + n) for all n,
2832           (sameBank): restructured, also check bank allocation policy,
2833         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
2834           (pic14_operandsAllocatedInSameBank): check whether to operands
2835             will be allocated into the same bank (i.e., section) to reduce
2836             BANKSEL overhead, queried from pcode.c:sameBank,
2837           (pic14printLocals): reintroduced clustering registers into a single
2838             section: all compiler generated symbols will now reside in one
2839             bank (per file), reducing BANKSEL overhead and code size,
2840           (showAllMemmaps): use local dbuf where possible
2841
2842 2007-01-29 Raphael Neider <rneider AT web.de>
2843
2844         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
2845           (call_libraryfunc): retrieve/create symbol and mark as used,
2846           (genFunction): mark defined functions as non-extern and add again
2847            to code memmap for later output
2848         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
2849           (pic14printLocals): reworked for new symbol emission,
2850           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
2851           showAllMemmaps): reworked symbol output using dbufs, added handling
2852             of string literals (still incomplete),
2853           (picglue): removed symbol emission, moved into showAllMemmaps,
2854           (emitSymbolSet): new workhorse for symbol output,
2855           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
2856
2857 2007-01-29 Borut Razem <borut.razem AT siol.net>
2858
2859         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
2860           component contains the extension separator.
2861
2862 2007-01-28 Borut Razem <borut.razem AT siol.net>
2863
2864         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
2865           on WIN32
2866         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
2867           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
2868           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
2869           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
2870           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
2871           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
2872           src/z80/gen.c, support/Util/MySystem.c:
2873           accept slash and backslash as directory separator on WIN32 and
2874           Cygwin ports
2875
2876 2007-01-28 Raphael Neider <rneider AT web.de>
2877
2878         * src/pic16/devices.inc,
2879         * device/include/pic16/pic18f[24][23]21.h,
2880         * device/include/pic16/pic18fregs.h,
2881         * device/lib/pic16/libdev/pic18f[24][23]21.c,
2882         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
2883         * device/lib/pic16/libio/adc.ignore,
2884         * device/lib/pic16/libio/i2c.ignore,
2885         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
2886           family, as gputils do not yet support the devices
2887         * device/lib/pic16/Makefile.subdir: ignore errors on install
2888         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
2889           headers and libraries from gputils .inc files
2890
2891 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2892
2893         * doc/sdccman.lyx: add printf_fast_f precision limitation note
2894
2895 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2896
2897         * doc/sdccman.lyx: add printf benchmarks
2898
2899 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
2900
2901         * device/lib/printf_fast.c: fix %c, char promoted to int
2902         * device/lib/printf_tiny.c: fix %c, char promoted to int
2903
2904 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
2905
2906         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
2907
2908 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2909
2910         * support/regression/tests/swap.c: 64 bit hosts failed
2911         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
2912
2913 2007-01-25 Raphael Neider <rneider AT web.de>
2914
2915         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
2916           based on absolute register address, patch by Alex Blond
2917
2918 2007-01-22 Raphael Neider <rneider AT web.de>
2919
2920         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
2921           emitted, do not emit them again...
2922
2923 2007-01-22 Raphael Neider <rneider AT web.de>
2924
2925         * src/regression/bank1.c, src/regression/compare6.c,
2926           src/regression/add.c: cosmetic changes
2927         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
2928         * src/pic/gen.c: fixed global zero and one,
2929           (aopForSym): removed unued code,
2930           (aopGet): assert aop is defined, check and use `index' of
2931             pCodeImmd operands (fixes #1630908),
2932         * src/pic/pcode.c (get_op): added output of generic pointer tag,
2933           (register_reassign): prevent accidental register unification,
2934           (ReuseReg): cosmetic changes (also above)
2935         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
2936           pic14emitStaticSeg): do not emit initialized data,
2937           (printIval*): replaced with working versions,
2938           (pic14createInterruptVect,picglue): use idata for initialized data,
2939             now init data should work in all modules (not only main()),
2940         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
2941
2942 2007-01-21 Borut Razem <borut.razem AT siol.net>
2943
2944         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
2945           use -fPIC or -fpic if they are supported and not ignored
2946         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
2947         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
2948
2949 2007-01-20 Borut Razem <borut.razem AT siol.net>
2950
2951         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
2952           implemented RFE #1470316: allow "$" in variable names
2953
2954 2007-01-20 Raphael Neider <rneider AT web.de>
2955
2956         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
2957
2958 2007-01-20 Raphael Neider <rneider AT web.de>
2959
2960         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
2961         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
2962         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
2963         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
2964           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
2965         * device/lib/pic/libdev/pic*.c,
2966         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
2967         * device/lib/pic/libdev/Makefile.in: show progress
2968
2969 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
2970
2971         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
2972         * support/scripts/sdcc_cygwin_mingw32,
2973         * support/scripts/sdcc_mingw32,
2974         * support/scripts/build.mak: replaced --datadir by --datarootdir for
2975         conformance with autoconf 2.6
2976
2977 2007-01-19 Raphael Neider <rneider AT web.de>
2978
2979         * src/pic/device.c (register_map): fixed list construction
2980         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
2981           (genMod): removed case for genModbits,
2982           (genModbits): removed as now unused/unimplemented
2983         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
2984
2985 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2986
2987         * support/regression/tests/swap.c: added in response to #1638622
2988         * doc/sdccman.lyx: synced version, minor changes
2989
2990 2007-01-18 Borut Razem <borut.razem AT siol.net>
2991
2992         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
2993           thanks to Gunther Jehle
2994         * src/asm.c: don't die if the file drfined in #line couldn't be opened
2995         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
2996           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
2997           use filename in lineno instead.
2998         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
2999           print the file name in ast_print()
3000
3001 2007-01-18 Borut Razem <borut.razem AT siol.net>
3002
3003         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
3004           defined in MSVC
3005         * src/SDCC.lex: stringLiteral() returns const char pointer,
3006           EOF detection in stringLiteral(), fixed asmbuf memory leak,
3007           fixed column counting
3008         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
3009           accept const char pointer as parameter
3010         * src/SDCCdwarf2.c: corrected buffer size
3011
3012 2007-01-17 Borut Razem <borut.razem AT siol.net>
3013
3014         * support/Util/dbuf_string.c: fixed for amd64
3015
3016 2007-01-15 Borut Razem <borut.razem AT siol.net>
3017
3018         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
3019           removed terminal symbol ELIPSIS, since it was never generated by the
3020           lexer and it was wrongly used in parameter_identifier_list rule
3021
3022 2007-01-15 Raphael Neider <rneider AT web.de>
3023
3024         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
3025             code page and data banking description
3026         * src/pic/genarith.c,
3027         * src/pic/gen.h: removed bit arithmetic functions,
3028             updated exit(1) to exit(EXIT_FAILURE)
3029         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
3030         * device/include/pic16/pic18f2455.h,
3031         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
3032             TRISD and TRISE, fixed/added some bit names
3033         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
3034         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
3035             updated pic18f2455.{c,h} instead of duplicating them
3036
3037 2007-01-14 Borut Razem <borut.razem AT siol.net>
3038
3039         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
3040           Cannot debug files that contain spaces in the path name
3041           by converting spaces in asm file name to underscores
3042
3043 2007-01-13 Borut Razem <borut.razem AT siol.net>
3044
3045         * doc/sdccman.lyx: fixed format errors
3046
3047 2007-01-10 Borut Razem <borut.razem AT siol.net>
3048
3049         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
3050           codeseg/constseg #pragma fail
3051         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
3052         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
3053           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
3054           suppoprt/cpp2/sdcpp.[ch]: house cleaning
3055
3056 2007-01-09 Borut Razem <borut.razem AT siol.net>
3057
3058         * get rid of diagnistic.[ch], pretty-print.[ch],
3059           c-pretty-print.[ch], ... used just for error, warning, ...
3060           message formatting
3061         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
3062           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
3063           suppoprt/cpp2/pretty-print.[ch]:
3064           removed
3065         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
3066           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
3067           suppoprt/cpp2/sdcpp.dsp:
3068           changed
3069
3070 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
3071
3072         * device/lib/printf_large.c (output_float): removed recursion,
3073           use smaller buffer on stack for mcs51,
3074           fixed bug printing 1.96
3075         * support/regression/tests/snprintf.c: added test
3076
3077 2007-01-07 Borut Razem <borut.razem AT siol.net>
3078
3079         * use dynamic memory buffers instead temporary files
3080         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
3081           added
3082         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
3083           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
3084           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
3085           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
3086           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
3087           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
3088           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
3089           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
3090           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
3091           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
3092           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
3093           support/Util/dbuf.c, support/Util/dbuf.h:
3094           modified
3095         * .version, sdcc.spec: bumped version to 2.6.4
3096
3097 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
3098
3099         * src/port.h: added TARGET_Z80_LIKE macro
3100         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
3101           output PSEG location if --xram-loc or --xstack-loc was used
3102         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
3103
3104 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
3105
3106         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
3107         * as/as_z80.dsp,   as/z80/as_z80.dsp,
3108         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
3109         * sdcc.dsw: moved project files into subdir
3110         * as/hc08/as_hc08.dsp,
3111         * as/hc08/Makefile.bcc,
3112         * as/hc08/Makefile.in,
3113         * as/mcs51/Makefile.bcc,
3114         * as/mcs51/Makefile.in,
3115         * as/z80/Makefile.bcc,
3116         * as/z80/Makefile.in,
3117         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
3118         * as/hc08/asm.h,
3119         * as/mcs51/asm.h,
3120         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
3121         * as/hc08/asmain.c,
3122         * as/hc08/assym.c,
3123         * as/mcs51/asmain.c,
3124         * as/mcs51/assym.c,
3125         * as/z80/assym.c: removed include "strcmpi.h"
3126         * as/hc08/strcmpi.c,
3127         * as/hc08/strcmpi.h,
3128         * as/mcs51/strcmpi.c,
3129         * as/mcs51/strcmpi.h,
3130         * support/Util/strcmpi.c,
3131         * support/Util/strcmpi.h: removed files
3132         * as/strcmpi.c: added as_strncmpi()
3133
3134 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3135
3136         * sdcc.dsw: Added some dependencies on project config.dsp
3137
3138 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
3139
3140         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
3141           with [di]ram_start to fix a regresion
3142
3143 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
3144
3145         * configure.in: added missing mcs51 in status output
3146         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
3147         directory
3148         * debugger/mcs51/clean.mk (distclean): remove config.h
3149         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
3150         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
3151         options.h, s-options-h and options.c
3152         * support/cpp2/clean.mk: unused, removed
3153         * Makefile.common.in,
3154         * main_in.mk,
3155         * as/Makefile.in,
3156         * as/hc08/Makefile.in,
3157         * as/hc08/clean.mk,
3158         * as/mcs51/Makefile.in,
3159         * as/mcs51/clean.mk,
3160         * as/z80/clean.mk,
3161         * as/z80/conf.mk,
3162         * as/z80/Makefile.in,
3163         * as/z80/clean.mk,
3164         * as/link/Makefile.in,
3165         * as/link/hc08/Makefile.in,
3166         * as/link/hc08/clean.mk,
3167         * as/link/mcs51/Makefile.in,
3168         * as/link/mcs51/clean.mk,
3169         * as/link/z80/Makefile.in,
3170         * as/link/z80/clean.mk,
3171         * as/link/z80/conf.mk,
3172         * debugger/mcs51/Makefile.in,
3173         * debugger/mcs51/clean.mk,
3174         * device/include/Makefile.in,
3175         * device/lib/Makefile.in,
3176         * device/lib/mcs51/Makefile.in,
3177         * device/lib/pic/Makefile.in,
3178         * device/lib/pic/Makefile.common.in,
3179         * device/lib/pic/Makefile.subdir,
3180         * device/lib/pic/Makefile.rules,
3181         * device/lib/pic16/libio/Makefile.in,
3182         * device/lib/pic16/Makefile.subdir,
3183         * device/lib/pic16/libdev/Makefile.in,
3184         * device/lib/pic16/Makefile.rules,
3185         * device/lib/pic16/Makefile.common.in,
3186         * sim/ucsim/avr.src/Makefile.in,
3187         * sim/ucsim/main_in.mk,
3188         * sim/ucsim/cmd.src/Makefile.in,
3189         * sim/ucsim/doc/Makefile.in,
3190         * sim/ucsim/gui.src/Makefile.in,
3191         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
3192         * sim/ucsim/gui.src/serio.src/Makefile.in,
3193         * sim/ucsim/hc08.src/Makefile.in,
3194         * sim/ucsim/libltdl/Makefile.in,
3195         * sim/ucsim/s51.src/Makefile.in,
3196         * sim/ucsim/sim.src/Makefile.in,
3197         * sim/ucsim/sim.src/conf.mk,
3198         * sim/ucsim/xa.src/Makefile.in,
3199         * sim/ucsim/z80.src/Makefile.in,
3200         * src/Makefile.in,
3201         * src/clean.mk,
3202         * src/port.mk,
3203         * support/cpp2/Makefile.in,
3204         * support/librarian/Makefile.in,
3205         * support/librarian/clean.mk,
3206         * support/makebin/Makefile.in,
3207         * support/makebin/clean.mk,
3208         * support/packihx/Makefile.in,
3209         * support/regression/Makefile.in,
3210         * support/regression/ports/ds390/spec.mk,
3211         * support/regression/ports/gbz80/spec.mk,
3212         * support/regression/ports/hc08/spec.mk,
3213         * support/regression/ports/mcs51/spec.mk,
3214         * support/regression/ports/mcs51-large/spec.mk,
3215         * support/regression/ports/mcs51-medium/spec.mk,
3216         * support/regression/ports/mcs51-xstack-auto/spec.mk,
3217         * support/regression/ports/pic14/spec.mk,
3218         * support/regression/ports/pic16/spec.mk,
3219         * support/regression/ports/mcs51-stack-auto/spec.mk,
3220         * support/regression/ports/ucz80/spec.mk,
3221         * support/regression/ports/xa51/spec.mk,
3222         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
3223         adding a slash after $(top_builddir) and/or adding @datarootdir@
3224         * configure.in,
3225         * debugger/mcs51/configure.in,
3226         * device/lib/pic/configure.in,
3227         * device/lib/pic16/configure.in,
3228         * sim/ucsim/configure.in,
3229         * support/cpp2/configure.in,
3230         * support/packihx/configure.in: changed AC_PREREQ to 2.60
3231         * configure,
3232         * debugger/mcs51/configure,
3233         * device/lib/pic/configure,
3234         * device/lib/pic16/configure,
3235         * sim/ucsim/configure,
3236         * support/cpp2/configure,
3237         * support/packihx/configure: generated with autoconf 2.60
3238
3239 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
3240
3241         * as/link/hc08/lkihx.c (newArea),
3242         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
3243
3244 2007-01-02 Borut Razem <borut.razem AT siol.net>
3245
3246         * doc/sdccman.lyx: documented #pragma sdcc_hash
3247         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
3248           initialized to 0
3249         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
3250
3251 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
3252
3253         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
3254         empty 'while'-loop to work correctly, see regression test 'while.c'
3255         * support/regression/tests/while.c: added
3256
3257 2007-01-01 Borut Razem <borut.razem AT siol.net>
3258
3259         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
3260           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
3261           support/cpp2/libcpp/sdcpp.c:
3262           sdcpp specific pragma/directive/option handling moved to sdcpp.c
3263         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
3264         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
3265
3266 2006-12-31 Borut Razem <borut.razem AT siol.net>
3267
3268         * SDCPP synchronized with GCC CPP release version 4.1.1,
3269           currently the latest release:
3270         * support/cpp2/libcpp, support/cpp2/libcpp/include,
3271           support/cpp2/libcpp/include/cpp-id-data.h
3272           support/cpp2/libiberty/fopen_unlocked.c
3273           support/cpp2/libiberty/md5.c
3274           support/cpp2/md5.h
3275           support/cpp2/opt-functions.awk
3276           support/cpp2/opt-gather.awk
3277           support/cpp2/optc-gen.awk
3278           support/cpp2/opth-gen.awk:
3279           added
3280         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
3281           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
3282           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
3283           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
3284           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
3285           support/cpp2/diagnostic.h, support/cpp2/except.h,
3286           support/cpp2/hwint.h, support/cpp2/input.h,
3287           support/cpp2/intl.h, support/cpp2/move-if-change,
3288           support/cpp2/opts.c, support/cpp2/opts.h,
3289           support/cpp2/output.h, support/cpp2/prefix.c,
3290           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
3291           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
3292           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
3293           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
3294           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
3295           support/cpp2/version.c:
3296           modified
3297         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
3298           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
3299           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
3300           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
3301           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
3302           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
3303           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
3304           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
3305           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
3306           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
3307           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
3308           moved
3309         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
3310           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
3311           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
3312           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
3313           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
3314           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
3315           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
3316           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
3317           support/cpp2/hashtable.h, support/cpp2/line-map.c,
3318           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
3319           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
3320           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
3321           support/cpp2/system.h:
3322           deleted / moved
3323
3324 2006-12-31 Borut Razem <borut.razem AT siol.net>
3325
3326         * configure.in, configure: fixed bug #1538756: configure dies if bison
3327           and flex are not installed, 2nd try
3328
3329 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
3330
3331         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
3332         400.x for better code in RFE 899102
3333
3334 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
3335
3336         * src/SDCCpeeph.c (deadMove),
3337         * src/port.h,
3338         * src/mcs51/peep.h: renamed 'op' by 'reg'
3339         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
3340         (scan4op): small change for removeDeadMove(), added support for
3341         'callee saves' and/or PACLL function calls,
3342         (removeDeadMove): added, removes superflous 'mov r%1,%2',
3343         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
3344         left in new dispatcher mcs51DeadMove()
3345         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
3346         removeDeadMove()
3347         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
3348
3349 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3350
3351         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
3352           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
3353
3354 2006-12-30 Borut Razem <borut.razem AT siol.net>
3355
3356         * support/cpp2/spacs.h: deleted from svn
3357         * configure.in, configure: fixed bug #1538756: configure dies if bison
3358           and flex are not installed
3359
3360 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
3361
3362         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
3363           with this z80 passes printf float test when enabled
3364         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
3365
3366 2006-12-28 Borut Razem <borut.razem AT siol.net>
3367
3368         * support/cpp2/config.in, support/cpp2/configure.in,
3369           support/cpp2/configure, support/cpp2/Makefile.in:
3370           fix for the solaris build
3371
3372 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3373
3374         * src/SDCC.y (type_specifier2, pointer),
3375         * src/SDCCsymt.h,
3376         * src/SDCCsymt.c (mergeSpec, checkSClass),
3377         * support/Util/SDCCerr.c,
3378         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
3379         * support/valdiag/valdiag.py: Allow test cases to specify
3380           required language standard
3381         * support/valdiag/tests/restrict.c: New file to test restrict keyword
3382         * support/valdiag/tests/tentdecl.c: Supress empty source file error
3383
3384 2006-12-27 Borut Razem <borut.razem AT siol.net>
3385
3386         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
3387         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
3388           mbchar removed
3389         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
3390           fixed for borland C
3391         * support/cpp2/libiberty/Makefile.bcc: updated
3392         * src/pic16/main.c: fixed #pragma udata handling
3393         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
3394
3395 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
3396
3397         * src/SDCCpeeph.c: made labelHashEntry global,
3398         made pcDistance, FBYNAME static,
3399         (pcDistance): made static, use isComment and isLabel,
3400         (deadMove): added,
3401         (getLabelRef): added, extracted from labelRefCount(),
3402         (labelRefCount): use new getLabelRef(),
3403         (callFuncByName): made static, added deadMove,
3404         use isComment and isLabel,
3405         (newPeepRule): made static, set isLabel,
3406         (isLabelDefinition): added parameter isPeepRule to allow '%' in
3407         labels from peephole rules,
3408         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
3409         when isComment or isLabel is set
3410         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
3411         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
3412         to make them global
3413         * src/mcs51/peep.h: added
3414         * src/mcs51/peep.c: added, implements mcs51DeadMove()
3415         * src/port.h: added peep->deadMove to port structure
3416         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
3417         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
3418         deadMove, finally removed no. 1 and 2
3419         * src/mcs51/gen.c,
3420         * src/pic/gen.c,
3421         * src/z80/gen.c,
3422         * src/z80/ralloc.c,
3423         * src/pic16/gen.c,
3424         * src/ds390/gen.c,
3425         * src/hc08/gen.c: mark lines with isComment or isLabel
3426         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
3427         * .version,
3428         * sdcc.spec: bumped version to 2.6.3
3429
3430 2006-12-26 Borut Razem <borut.razem AT siol.net>
3431
3432         * support/cpp2/Makefile.in: added dependency on options.h
3433         * configure: regenerated
3434         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
3435         * support/cpp2/Makefile.in: added vasprintf.c
3436
3437 2006-12-25 Borut Razem <borut.razem AT siol.net>
3438
3439         * SDCPP synchronized with GCC CPP release version 3.4.6,
3440           the latest release before 4.x:
3441         * support/cpp2/Makefile.in, support/cpp2/config.h,
3442           support/cpp2/configure, support/cpp2/configure.in,
3443           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
3444           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
3445           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
3446           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
3447           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
3448           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
3449           support/cpp2/cpptrad.c, support/cpp2/except.h,
3450           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
3451           support/cpp2/hwint.h, support/cpp2/intl.h,
3452           support/cpp2/line-map.c, support/cpp2/line-map.h,
3453           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
3454           support/cpp2/output.h, support/cpp2/prefix.c,
3455           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
3456           support/cpp2/system.h, support/cpp2/version.c:
3457           modified
3458         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
3459           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
3460           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
3461           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
3462           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
3463           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
3464           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
3465           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
3466           support/cpp2/move-if-change, support/cpp2/opts.c,
3467           support/cpp2/opts.h, support/cpp2/opts.sh,
3468           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
3469           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
3470           support/cpp2/win32, support/cpp2/win32/dirent.c,
3471           support/cpp2/win32/dirent.h:
3472           added
3473         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
3474         * support/cpp2/sdcpp.h: renamed from sdcc.h
3475         * sdcppinit.c: deleted
3476
3477 2006-12-23 Borut Razem <borut.razem AT siol.net>
3478
3479         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
3480           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
3481           preproc.c: an other try to fix bug #982435: introduced
3482           -pedantic-parse-number command line option and pedantic_parse_number
3483           pragma
3484
3485 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
3486
3487         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
3488            BSEG handling,
3489           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
3490            corrected overlayed areax addresses, warn about memory overlaps
3491         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
3492         * src/avr/main.c,
3493         * src/ds390/main.c,
3494         * src/hc08/main.c,
3495         * src/mcs51/main.c,
3496         * src/pic16/main.c,
3497         * src/pic/main.c,
3498         * src/xa51/main.c,
3499         * src/z80/main.c,
3500         * src/port.h: added xabs_name and iabs_name
3501         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
3502           (glue, emitMaps): create and emit maps d_abs and i_abs
3503         * src/SDCCglue.h: cosmetic changes
3504         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
3505         * src/SDCCmem.h,
3506         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
3507           (allocDefault): put absolute, initialized globals in them
3508         * support/regression/tests/absolute.c: added absolute bdata test
3509         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
3510
3511 2006-12-20 Borut Razem <borut.razem AT siol.net>
3512
3513         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
3514         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
3515           added regression test for bug #982435
3516
3517 2006-12-18 Borut Razem <borut.razem AT siol.net>
3518
3519         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
3520         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
3521           small cosmetic changes
3522         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
3523         * support/regression/tests/bug-1351710.c: added regression test
3524
3525 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3526
3527         * doc/sdccman.lyx: added the long missed iCode table
3528           "<where is figure II?>", added links to wiki
3529
3530 2006-12-17 Borut Razem <borut.razem AT siol.net>
3531
3532         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
3533           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
3534           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
3535           unified table driven pragma handling, pragma argument type checking
3536         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
3537           current one - version 1.1.3
3538         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
3539
3540 2006-12-13 Raphael Neider <rneider AT web.de>
3541
3542         * src/pic/device.h: removed AssignedMemory structure and macros
3543         * src/pic/device.c: removed global finalMapping (linker assigns
3544             memory locations),
3545           (register_map): add SFRs to remembered memRanges
3546           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
3547           assignFixedRegisters,assignRelocatableRegisters): removed,
3548           (setMaxRAM,validAddress): adapted accordingly,
3549           (pic14_hasSharebank,pic14_getSharedStack): only report and use
3550             reasonably sized sharebanks,
3551         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
3552           (allDefsOutOfRange): removed unused code,
3553         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
3554             handling
3555         * src/pic/pcode.c (register_reassign): removed recursion warning,
3556             fired far too often,
3557         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
3558             to use existing pic14_stringInSet() to avoid duplicate symbols,
3559             tidied up the code a bit,
3560           (pic14printLocals): added in symmetry to printExterns, replaces
3561             writeUsedRegs more or less,
3562           (picglue): call new pic14_printLocals(),
3563         * device/include/pic/pic*.h: removed #pragma memmap directives,
3564             information gathered from include/pic/pic14devices.txt
3565         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
3566
3567 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
3568
3569         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
3570
3571 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3572
3573         * device/include/mcs51/cc2430.h: fixed missing ';'
3574
3575 2006-12-10 Raphael Neider <rneider AT web.de>
3576
3577         * device/lib/pic16/libc/stdio/vfprintf.c,
3578         * device/lib/pic16/libc/stdio/printf_small.c,
3579         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
3580           char arguments, as char varargs are cast to int by the caller,
3581           hopefully fixes #1604915 (other device libraries are still affected)
3582
3583 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3584
3585         * src/mcs51/ralloc.c (packRegsForAssign),
3586         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
3587
3588 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
3589
3590         * device/include/malloc.h: removed init_dynamic_memory
3591         * device/lib/malloc.c: made init_dynamic_memory static and automatically
3592           call it once from malloc. Also use _sdcc_heap[] from _heap.c
3593         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
3594         * device/lib/libsdcc.lib,
3595         * device/lib/Makefile.in,
3596         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
3597         * doc/sdccman.lyx: documented use of new _heap.c
3598         * support/regression/tests/malloc.c: removed init_dynamic_memory
3599         * src/cdbFile.c(spacesToUnderscores): new function,
3600           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
3601           1068030
3602         * device/include/tinibios.h: removed defines for putchar and getchar
3603         * device/lib/ds390/Makefile.in: added putchar.c
3604         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
3605
3606 2006-12-09 Borut Razem <borut.razem AT siol.net>
3607
3608         * support/cpp2/sdcc.h: prevent multiple inclusion
3609         * support/cpp2/options.h: deleted
3610
3611 2006-12-08 Borut Razem <borut.razem AT siol.net>
3612
3613         * support/cpp2/sdcc.h: removed x*alloc() macros
3614         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
3615         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
3616           support/cpp2/sdcpp.sdc: x*alloc files added to the project
3617         * support/cpp2/system.h: moved #include "sdcc.h"
3618         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
3619           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
3620           added
3621         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
3622           -funsigned-char options
3623         * support/cpp2/sdcppmain.c: fixed bug 1611411
3624
3625 2006-12-07 Borut Razem <borut.razem AT siol.net>
3626
3627         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
3628           directive
3629
3630 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
3631
3632         * src/SDCCsymt.c (addDecl): fixed bug 1609244
3633         * src/SDCCmain.c (linkEdit): fixed bug 1609279
3634         * doc/sdccman.lyx,
3635         * .version: bumped to 2.6.2 because a) it's been a while
3636           b) the linker sources have moved c) the preprocessor is upgraded
3637
3638 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3639
3640         * support/regression/tests/snprintf.c: some checks
3641         * lib/src/printf_large.c: %bc: read char instead of int from stack
3642
3643 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
3644
3645         * device/include/mcs51/cc2430.h: inserted _XPAGE
3646
3647 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3648
3649         * device/include/mcs51/cc2430.h: added
3650
3651 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
3652
3653         * device/include/asm/default/features.h,
3654         * device/include/asm/ds390/features.h,
3655         * device/include/mcs51/at89s53.h,
3656         * device/include/ser.h,
3657         * device/include/ser_ir.h,
3658         * device/include/serial.h: changed keywords to double underscore variants,
3659           fixes bug 1590261 some more, thanks Steven Borley
3660
3661 2006-12-01 Raphael Neider <rneider AT web.de>
3662
3663         * src/pic/pcode.c (register_reassign): do not crash on recursive code
3664           but emit warning (recursion is not supported for pic14)
3665
3666 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3667
3668         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
3669         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
3670
3671 2006-11-30 Raphael Neider <rneider AT web.de>
3672
3673         * src/pic/device.c (dump_sfr): always emit symbols
3674         * src/pic/glue.c (pic14printPublics): fixed typo
3675
3676 2006-11-30 Raphael Neider <rneider AT web.de>
3677
3678         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
3679           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
3680           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
3681            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
3682            a sharebank, use a non-shared bank for the stack if none available
3683         * src/pic/device.h (struct memRange): added linked list next field,
3684           added prototypes for above functions
3685         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
3686           (typeRegWithIdx): accept fixed and unfixed stack registers
3687         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
3688           the stack, handle shared and banked stack (except for WSAVE),
3689           (insertBankSel): removed useless optimization (will never fire),
3690           (FixRegisterBanking): added optimization for devices with only one
3691           possibly aliased bank of memory, like 16f84
3692         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
3693           devices have no SHAREBANK in the linker script
3694         * device/include/pic/pic14devices.txt: documented memmap
3695         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
3696
3697 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3698
3699         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
3700           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
3701           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
3702           genhc08Code): switched most of the D (debug) macros to DD (detailed
3703           debug) macros to better control clutter in the generated .asm file.
3704         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
3705           genRightShift): fixed bug with non-constant bit shift stored to
3706           a volatile result (SF Open Discussion forum thread #1616749).
3707           Single byte case is not yet optimized.
3708
3709 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
3710
3711         * device/include/asm/mcs51/features.h,
3712         * device/include/malloc.h,
3713         * device/include/stdio.h: changed keywords to double underscore variants,
3714           fixes bug 1590261
3715
3716 2006-11-27 Borut Razem <borut.razem AT siol.net>
3717
3718         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
3719           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
3720           support/cpp2/output.h, support/cpp2/cppinit.c,
3721           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
3722           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
3723           support/cpp2/cppdefault.c, support/cpp2/system.h,
3724           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
3725           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
3726           support/cpp2/prefix.c, support/cpp2/except.h,
3727           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
3728           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
3729           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
3730           support/cpp2/version.c, support/cpp2/cppmain.c,
3731           support/cpp2/version.h, support/cpp2/hashtable.c,
3732           support/cpp2/cpperror.c:
3733           synchronized with GCC CPP release version 3.3.6,
3734           the latest where cppmain.c still exists.
3735         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
3736           support/cpp2/sdcppinit.c: added
3737
3738 2006-11-27 Borut Razem <borut.razem AT siol.net>
3739
3740         * support/cpp2/cpplex.c:
3741           fixed _asm ... _endasm handling bug, introduce with GCC CPP
3742           synchronization
3743         * support/cpp2/cpplib.c: removed definitions of unused variables
3744
3745 2006-11-26 Borut Razem <borut.razem AT siol.net>
3746
3747         * support/cpp2/libiberty.h: commented out x*alloc() declarations
3748           since they are redefined by macros in support/cpp2/sdcc.h
3749         * support/cpp2/sdcc.h: x*alloc macro redefinition
3750
3751 2006-11-25 Borut Razem <borut.razem AT siol.net>
3752
3753         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
3754           support/cpp2/configure, support/cpp2/Makefile.in,
3755           support/cpp2/cppfiles.c, support/cpp2/output.h,
3756           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
3757           support/cpp2/config.h, support/cpp2/cpplib.h,
3758           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
3759           support/cpp2/cppdefault.c, support/cpp2/config.in,
3760           support/cpp2/system.h, support/cpp2/cpplex.c,
3761           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
3762           support/cpp2/cppdefault.h, support/cpp2/prefix.c
3763           support/cpp2/hwint.h, support/cpp2/mbchar.h,
3764           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
3765           support/cpp2/configure.in, support/cpp2/intl.h,
3766           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
3767           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
3768           support/cpp2/version.c, support/cpp2/cppmain.c,
3769           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
3770           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
3771           support/cpp2/cpperror.c,
3772           support/cpp2/libiberty/safe-ctype.c,
3773           support/cpp2/libiberty/safe-ctype.h,
3774           support/cpp2/libiberty/splay-tree.c,
3775           support/cpp2/libiberty/obstack.c,
3776           support/cpp2/libiberty/lbasename.c,
3777           support/cpp2/libiberty/splay-tree.h,
3778           support/cpp2/libiberty/obstack.h:
3779           synchronized with GCC CPP release version 3.2.3,
3780           the latest before integration of cpp into gcc
3781         * support/cpp2/except.h, support/cpp2/line-map.c,
3782           support/cpp2/line-map.h,
3783           support/cpp2/libiberty/hex.c,
3784           support/cpp2/libiberty/concat.c,
3785           support/cpp2/libiberty/filenames.h: added
3786         * support/cpp2/intl.c: deleted
3787
3788 2006-11-24 Borut Razem <borut.razem AT siol.net>
3789
3790         * src/SDCC.y: enabled compilation of empty source file
3791         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
3792           "ISO C forbids an empty source file"
3793         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
3794           if all the code is ifdefed out.
3795
3796 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3797
3798         * src/hc08/gen.c (genPcall): fix for bug #1601032
3799
3800 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
3801
3802         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
3803         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
3804         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
3805         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
3806         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
3807         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
3808         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
3809         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
3810         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
3811         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
3812         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
3813         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
3814         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
3815         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
3816         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
3817           Renamed to all upper case as per the standard set by SiLabs
3818
3819 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
3820
3821         * device/include/mcs51/C8051F520.h: new, added
3822         * device/include/mcs51/compiler.h: added link about predefined macros
3823
3824 2006-11-23 Raphael Neider <rneider AT web.de>
3825
3826         * src/regression/Makefile: add -L path to fresh library
3827         * src/regression/simulate: emphasize FAILED output
3828         * src/regression/create_stc: output _failures from gpsim
3829         * src/regression/compare4.c,
3830         * src/regression/rotate6.c: fixed char literals,
3831           all compile, all run =8-D
3832
3833         * src/pic/pcode.h: added isPCASMDIR macro
3834         * src/pic/gen.c (genAnd): fixed bit offset
3835         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
3836           packBits): unified register numbering schemes,
3837           (newReg): do not insert stack registers into hash table,
3838           (initStack): unpinned pseudo stack, simplified,
3839           (typeRegWithIdx): fixed retrieval of stack registers,
3840         * src/pic/pcode.c (addpCodeComment,sameBank): added,
3841           (pCodeReplace): removed invalid assertion,
3842           (insertPCodeInstruction): fixed newly added labels,
3843           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
3844           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
3845           DumpFlow): removed unsed (broken?) code,
3846           (insertBankSel): prevent STATUS from being BANKSELed,
3847           (FixRegisterBanking): rewritten from scratch, implemented generic
3848             optimizations (suppress BANKSELs to same register and to registers
3849             present in all banks),
3850           (AnalyzeBanking): update flow after BANKSELection
3851
3852         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
3853             sharebank, let linker place it, mark STKxx symbols as emitted
3854
3855 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3856
3857         * src/regression/arrays.c,
3858         * src/regression/bank1.c,
3859         * src/regression/bool2.c,
3860         * src/regression/compare7.c,
3861         * src/regression/compare8.c,
3862         * src/regression/compare9.c,
3863         * src/regression/compare10.c,
3864         * src/regression/configword.c,
3865         * src/regression/for.c,
3866         * src/regression/mult1.c,
3867         * src/regression/pointer1.c,
3868         * src/regression/rotate6.c,
3869         * src/regression/string1.c,
3870         * src/regression/struct1.c,
3871         * src/regression/Makefile: make PIC14 regression tests run again
3872           (3 fail, 6 won't compile)
3873
3874 2006-11-21 Raphael Neider <rneider AT web.de>
3875
3876         * device/include/pic16/pic18f4550.h,
3877         * device/include/pic16/pic18f4455.h,
3878         * device/lib/pic16/libdev/pic18f4550.c,
3879         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
3880         * configure.in: removed superfluous closing bracket
3881
3882 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3883
3884         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
3885           always positive.
3886
3887 2006-11-21 Raphael Neider <rneider AT web.de>
3888
3889         * src/pic/device.{c,h}: added pic14_getPIC()
3890         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
3891           (genAnd): added PIC code for one case, fixes #1597044
3892         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
3893           SFRs that are present in all banks (e.g., STATUS)
3894
3895 2006-11-20 Raphael Neider <rneider AT web.de>
3896
3897         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
3898           INCFSZ/INCFSZW and declared them as changing Z bit,
3899           (insertPCodeInstruction): correctly invert the above instructions,
3900           fixes #1599333,
3901           (DoBankSelect): don't panic on po_immediates
3902
3903 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3904
3905         * as/link/aslink.h,
3906         * as/link/mcs51/lkihx.c (newArea),
3907         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
3908         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
3909
3910 2006-11-11 Raphael Neider <rneider AT web.de>
3911
3912         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
3913           bitfield symbols, fixes #1579535 (once more...).
3914
3915 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3916
3917         * support/regression/generate-cases.py,
3918         * support/regression/fwk/include/testfwk.h,
3919         * support/regression/fwk/lib/testfwk.c: used code pointers,
3920           (about 50kByte less code generated for mcs51)
3921
3922 2006-11-06 Borut Razem <borut.razem AT siol.net>
3923
3924         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3925           debugger/mcs51/configure: fixed failed check because the function
3926           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
3927           who submitted the patch for gpsim.
3928         * debugger/mcs51/configure.in: removed the result message
3929         * debugger/mcs51/Makefile.in: fixed the config.status warning
3930           "... seems to ignore the --datarootdir setting"
3931
3932 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
3933
3934         * device/include/mcs51/c8051f020.h,
3935         * device/include/mcs51/c8051f040.h,
3936         * device/include/mcs51/c8051f060.h,
3937         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
3938         * src/z80/gen.c (gencjneshort),
3939         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
3940
3941 2006-10-31 Borut Razem <borut.razem AT siol.net>
3942
3943         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3944           debugger/mcs51/configure: get readline version
3945
3946 2006-10-30 Borut Razem <borut.razem AT siol.net>
3947
3948         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
3949         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3950           debugger/mcs51/configure: locate readline even when cross compiling
3951         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
3952
3953 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3954
3955         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
3956           serial port.
3957
3958 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
3959
3960         * device/include/malloc.h,
3961         * device/lib/calloc.c,
3962         * device/lib/free.c,
3963         * device/lib/malloc.c,
3964         * device/lib/realloc.c: moved definition of struct into sources
3965         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
3966
3967 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
3968
3969         * as/asx8051.dsp: corrected output directories
3970         * as/link/hc08: new directory for hc08 linker
3971         * as/hc08/aslink.h,             as/link/aslink.h,
3972         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
3973         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
3974         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
3975         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
3976         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
3977         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
3978         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
3979         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
3980         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
3981         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
3982         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
3983         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
3984         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
3985         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
3986         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
3987         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
3988         * as/link/hc08/conf.mk,
3989         * configure,
3990         * configure.in,
3991         * Makefile.in,
3992         * sdcc.dsw: moved hc08 linker to as/link/hc08
3993         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
3994         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
3995         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
3996         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
3997         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
3998         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
3999         * as/link/mcs51/aslink.dsp,
4000         * as/link/mcs51/Makefile.in: factored out the common files
4001         * as/hc08/lkstore.c: deleted, use the one already in as/link/
4002         * as/clean.mk: extra cleaning common files
4003         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
4004         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
4005         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
4006
4007 2006-10-29 Raphael Neider <rneider AT web.de>
4008
4009         * src/pic/ralloc.c (newReg): create aliases for registers with
4010           multiple names to fix #1579535 and #1584001,
4011           (regWithIdx,dirregWithName): resolve aliases on lookup
4012         * src/pic/pcode.c (DoBankSelect): die with error message on failing
4013           bankselect
4014         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
4015           to prevent build errors on small devices
4016
4017 2006-10-28 Raphael Neider <rneider AT web.de>
4018
4019         * src/pic/gen.c (genFunction,genCall): drop "same code page"
4020           assumption within interrupt handlers, fixes #1584940
4021         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
4022           "emitted" to avoid emitting them again in udata
4023
4024 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4025
4026         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
4027         Removed.
4028
4029 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4030
4031         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
4032         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
4033         on/off CR to CRLF conversion.
4034
4035 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4036
4037         * doc/sdccman.lyx: updated IRQ section
4038
4039 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4040
4041         * device/lib/serial_io.c: removed
4042         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
4043         replacements for serial_io.c
4044
4045 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
4046
4047         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
4048
4049 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4050
4051         * device/lib/serial_io.c: Default putchar() and getchar() for
4052           mcs51 uses serial port.
4053
4054 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
4055
4056         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
4057
4058 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4059
4060         * support/regression/ports/mcs51/support.c: smaller
4061         _sdcc_external_startup()
4062         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
4063
4064 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
4065
4066         * device/lib/gbz80/crt0.s,
4067         * device/lib/gbz80/crt0_rle.s,
4068         * device/lib/gbz80/div.s,
4069         * device/lib/gbz80/fstubs.s,
4070         * device/lib/gbz80/heap.s,
4071         * device/lib/gbz80/mul.s,
4072         * device/lib/gbz80/putchar.s,
4073         * device/lib/gbz80/stubs.s,
4074         * device/lib/z80/crt0.s,
4075         * device/lib/z80/crt0_rle.s,
4076         * device/lib/z80/div.s,
4077         * device/lib/z80/fstubs.s,
4078         * device/lib/z80/heap.s,
4079         * device/lib/z80/mul.s,
4080         * device/lib/z80/putchar.s,
4081         * device/lib/z80/stubs.s: reverted, I was mistaken
4082
4083 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4084
4085         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
4086         * support/regression/ports/mcs51/support.c: removed race
4087         condition on TI in _putchar allowing to use serial port mode 0
4088
4089 2006-10-20 Borut Razem <borut.razem AT siol.net>
4090
4091         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
4092
4093 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
4094
4095         * device/lib/gbz80/crt0.s,
4096         * device/lib/gbz80/crt0_rle.s,
4097         * device/lib/gbz80/div.s,
4098         * device/lib/gbz80/fstubs.s,
4099         * device/lib/gbz80/heap.s,
4100         * device/lib/gbz80/mul.s,
4101         * device/lib/gbz80/putchar.s,
4102         * device/lib/gbz80/stubs.s,
4103         * device/lib/z80/crt0.s,
4104         * device/lib/z80/crt0_rle.s,
4105         * device/lib/z80/div.s,
4106         * device/lib/z80/fstubs.s,
4107         * device/lib/z80/heap.s,
4108         * device/lib/z80/mul.s,
4109         * device/lib/z80/putchar.s,
4110         * device/lib/z80/stubs.s: removed all leading underscores from area names
4111
4112 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
4113
4114         * support/regression/ports/mcs51/support.c: use highest baudrate so the
4115           regression tests are not waiting in the simulator for simulated
4116           transmission of debug output
4117
4118 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4119
4120         * device/lib/printf_large.c: slightly smaller
4121         * doc/sdccman.lyx: do not use spaces within html links
4122
4123 2006-10-16 Borut Razem <borut.razem AT siol.net>
4124
4125         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
4126           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
4127           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
4128           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
4129           debugger/mcs51/configure:
4130           [ 1185668 ] add gnu readline support to sdcdb - enabled
4131
4132 2006-10-16 Raphael Neider <rneider AT web.de>
4133
4134         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
4135           fixes #1577882, removes close to all banking optimizations
4136
4137 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
4138
4139         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
4140           variables in code memory
4141         * support/regression/tests/absolute.c: added test for this
4142
4143 2006-10-15 Raphael Neider <rneider AT web.de>
4144
4145         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
4146           devices,
4147           (BankSelect): emit BANKSEL before touching linker-placed regs,
4148           fixes #1570934
4149
4150 2006-10-10 Raphael Neider <rneider AT web.de>
4151
4152         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
4153         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
4154         * src/pic/main.c (_pic14_parseOptions),
4155         * src/pic/main.h: mostly reverted to previous state, now use results
4156             from SDCCmain.c's argument parsing
4157
4158 2006-10-10 Borut Razem <borut.razem AT siol.net>
4159
4160         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
4161           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
4162           [ 1185668 ] add gnu readline support to sdcdb -
4163           prepared for READLINE, not enabled yet,
4164           thanks to <tal.bav AT gmail.com>
4165
4166 2006-10-10 Raphael Neider <rneider AT web.de>
4167
4168         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
4169         * src/pic16/devices.inc,
4170         * device/include/pic16 (pic18f[24]620.h),
4171         * device/include/pic18fregs.h,
4172         * device/lib/pic16/pics.all,
4173         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
4174             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
4175             Gary Plumbridge and Anton Strobl
4176
4177 2006-10-10 Raphael Neider <rneider AT web.de>
4178
4179         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
4180           --stack-siz=NUM options to configure the argument passing stack
4181         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
4182         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
4183           (pic14_getSharebankSize): obey --stack-siz=NUM,
4184           (pic14_getSharebankAddress): obey --stack-loc=NUM
4185
4186 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4187
4188         * doc/sdccman.lyx: added to the manual
4189         * doc/figures/ddd_example.png: added (neither pdflatex nor
4190         most browsers seem to like the .eps file)
4191
4192 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
4193
4194         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
4195         to /tmp and /var/tmp acc. LSB
4196         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
4197         RESULT_TYPE_IFX
4198         * support/regression/tests/onebyte.c: added test
4199
4200 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4201
4202         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
4203
4204 2006-10-05 Borut Razem <borut.razem AT siol.net>
4205
4206         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
4207           thanks to dfulab:
4208           - sdcc.dsw: changed property eol-style to CRLF
4209           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
4210
4211 2006-10-04 Raphael Neider <rneider AT web.de>
4212
4213         * device/include/pic/{pic16f84.h,pic16f84a.h},
4214         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
4215           from patch #1522504, thanks to Robas Teodor
4216
4217 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
4218
4219         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
4220           fixes bug 1566015
4221
4222 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
4223
4224         * src/pic16/glue.c (pic16emitMaps),
4225         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
4226         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
4227         * device/lib/pic16/libc/string/memcpypgm2ram.c,
4228         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
4229           Philipp Krause
4230         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
4231         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
4232
4233 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4234
4235         * support/librarian/sdcclib.c: Added option -l.
4236         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
4237           usage totals.
4238         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
4239           using Windows command prompt.
4240
4241 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
4242
4243         * device/lib/libsdcc.lib: added module rand
4244         * src/ds390/ralloc.c (rematStr),
4245         * src/hc08/ralloc.c (rematStr),
4246         * src/mcs51/ralloc.c (rematStr),
4247         * src/z80/ralloc.c (rematStr): made output more consistent
4248         * src/mcs51/gen.c: cosmetic changes
4249
4250 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
4251
4252         * src/port.h: added mem.cabs_name to PORT
4253         * src/ds390/main.c,
4254         * src/hc08/main.c,
4255         * src/mcs51/main.c,
4256         * src/pic16/main.c,
4257         * src/pic/main.c,
4258         * src/xa51/main.c,
4259         * src/z80/main.c: added cabs_name initializers
4260         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
4261           constants
4262           (emitMaps): emit absolutes in code memory into cabs_name
4263         * src/SDCCmem.c,
4264         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
4265         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
4266         * support/regression/fwk/include/testfwk.h: added define for at
4267         * support/regression/tests/absolute.c: added, new
4268
4269 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
4270
4271         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
4272           optimizations, see also patch 887161 by Stas Sergeev
4273         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
4274           to be necessary anymore,
4275           (102, 103, 104, 127): renamed all occurances of bp to _bp
4276
4277 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
4278
4279         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
4280           thanks Weston T. Schmidt for patch 1555221
4281         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
4282         * src/SDCCicode.c(geniCodeMultiply): small optimization
4283
4284 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4285
4286         * device/include/stdlib.h: added rand prototypes
4287         * device/lib/rand.c: new, added
4288         * device/lib/Makefile.in: added rand.c
4289         * src/z80/peeph.def,
4290         * src/z80/peeph-gbz80.def,
4291         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
4292
4293 2006-09-20 Raphael Neider <rneider AT web.de>
4294
4295         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
4296
4297 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
4298
4299         * as/link/aslink.h: cosmetic changes
4300         * as/link/mcs51/Makefile.in,
4301         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
4302
4303 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
4304
4305         * as/link/aslink.h,
4306         * as/link/mcs51/aslink.h,
4307         * as/link/z80/aslink.h: merged and moved to as/link/
4308         * as/link/lkstore.c,
4309         * as/link/mcs51/lkstore.c: moved to as/link/
4310         * as/link/clean.mk: remove *.o
4311         * as/link/mcs51/alloc.h: deleted
4312         * as/link/mcs51/lkarea.c: added lnksect prototype
4313         * as/link/mcs51/lkdata.c,
4314         * as/link/mcs51/lklex.c,
4315         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
4316         * as/link/mcs51/lkmem.c,
4317         * as/link/mcs51/lknoice.c: removed include strcmpi.h
4318         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
4319         * as/link/mcs51/aslink.dsp,
4320         * as/link/mcs51/Makefile.aslink,
4321         * as/link/mcs51/Makefile.bcc,
4322         * as/link/mcs51/Makefile.in: updated for moved files
4323         * as/link/z80/lkarea.c,
4324         * as/link/z80/lkhead.c,
4325         * as/link/z80/lklex.c,
4326         * as/link/z80/lklibr.c,
4327         * as/link/z80/lklist.c,
4328         * as/link/z80/lkmain.c,
4329         * as/link/z80/lkrloc.c,
4330         * as/link/z80/lksym.c: synced with mcs51
4331         * as/link/z80/lkdata.c,
4332         * as/link/z80/lkeval.c,
4333         * as/link/z80/lkihx.c,
4334         * as/link/z80/lks19.c: cosmetic changes
4335         * as/link/z80/Makefile.in,
4336         * as/link/z80/linkgbz80.dsp,
4337         * as/link/z80/linkz80.dsp: updated for moved files
4338
4339 2006-09-16 Borut Razem <borut.razem AT siol.net>
4340
4341         * debugger/mcs51/sdcdb.c: partially fixed
4342           [ 1203664 ] sdcdb fails to open files w. two "." periods
4343         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
4344           debugger/mcs51/symtab.h: fixed indenting
4345         * configure.in, configure: up to date with latest Maarten's changes
4346
4347 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
4348
4349         as/link/mcs51
4350         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
4351         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
4352         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
4353         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
4354         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
4355         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
4356         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
4357         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
4358         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
4359         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
4360         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
4361         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
4362         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
4363         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
4364         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
4365         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
4366         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
4367         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
4368         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
4369         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
4370         as/link/mcs51/alloc.h,
4371         as/link/mcs51/clean.mk,
4372         as/link/mcs51/conf.mk,
4373         as/link/mcs51/Makefile.bcc,
4374         as/link/mcs51/Makefile.in,
4375         as/link/mcs51/readme.390,
4376         as/link/mcs51/strcmpi.c,
4377         as/link/mcs51/strcmpi.h,
4378         as/mcs51/clean.mk,
4379         as/mcs51/Makefile.bcc,
4380         as/mcs51/Makefile.in,
4381         configure,
4382         Makefile.in,
4383         sdcc.dsw: moved mcs51 linker to as/link/mcs51
4384
4385 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
4386
4387         * as/link,
4388         * as/link/Makefile.in,
4389         * as/link/z80/linkgbz80.dsp,
4390         * as/link/z80/linkz80.dsp,
4391         * configure,
4392         * link,
4393         * link/clean.mk,
4394         * link/Makefile.in,
4395         * link/README,
4396         * link/z80,
4397         * link/z80/aslink.h,
4398         * link/z80/clean.mk,
4399         * link/z80/conf.mk,
4400         * link/z80/linkgbz80.dsp,
4401         * link/z80/linkz80.dsp,
4402         * link/z80/lkarea.c,
4403         * link/z80/lkdata.c,
4404         * link/z80/lkeval.c,
4405         * link/z80/lkgb.c,
4406         * link/z80/lkgg.c,
4407         * link/z80/lkhead.c,
4408         * link/z80/lkihx.c,
4409         * link/z80/lklex.c,
4410         * link/z80/lklibr.c,
4411         * link/z80/lklist.c,
4412         * link/z80/lkmain.c,
4413         * link/z80/lkrloc.c,
4414         * link/z80/lks19.c,
4415         * link/z80/lksym.c,
4416         * link/z80/Makefile.in,
4417         * Makefile.in,
4418         * sdcc.dsw: moved link/ to as/link/
4419
4420 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
4421
4422         * as/mcs51/i51mch.c (machine): fixed warning
4423
4424 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4425
4426         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
4427
4428 2006-09-09 Borut Razem <borut.razem AT siol.net>
4429
4430         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
4431           sdcdb WIN32 native port
4432         * src/clean.mk: fixed
4433
4434 2006-09-08 Borut Razem <borut.razem AT siol.net>
4435
4436         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
4437
4438 2006-09-08 Raphael Neider <rneider AT web.de>
4439
4440         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
4441         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
4442             to gplink to disable processor mismatch warning and to allow
4443             the use of devices with only aliased (shared) memory banks,
4444           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
4445
4446 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4447
4448         * doc/sdccman.lyx: Some re-formating plus example on using
4449           #pragma preproc_asm +/-
4450
4451 2006-09-07 Borut Razem <borut.razem AT siol.net>
4452
4453         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
4454           section
4455
4456 2006-09-06 Borut Razem <borut.razem AT siol.net>
4457
4458         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
4459           line at sdcc.nsi:153
4460         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
4461
4462 2006-09-05 Borut Razem <borut.razem AT siol.net>
4463
4464         * configure.in, configure: support for winsock2
4465         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
4466           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
4467           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
4468           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
4469           debugger/mcs51/symtab.h: sdcdb WIN32 native port
4470
4471 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
4472
4473         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
4474           and OP_DEFS
4475         * support/regression/tests/bug1551947.c: new, added
4476         * src/SDCCsymt.h: strings are char* not byte*
4477
4478 2006-09-05 Raphael Neider <rneider AT web.de>
4479
4480         * device/lib/pic16/libdev/pic18f4550.c,
4481           device/include/pic16/pic18f4550.h: added PORTD/TRISD
4482             declarations/definitions from patch #1520949
4483
4484 2006-09-05 Raphael Neider <rneider AT web.de>
4485
4486         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
4487           byte-aligned bitfields, fixes #1539278
4488
4489 2006-09-05 Raphael Neider <rneider AT web.de>
4490
4491         * src/pic/gen.c (genReceive): skip unreferenced arguments,
4492           fixes #1544120
4493
4494 2006-09-04 Borut Razem <borut.razem AT siol.net>
4495
4496         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
4497         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
4498           -mno-cygwin is a part of the compiler name
4499         * support/scripts/sdcc_mingw32: don't disable ucsim
4500
4501 2006-09-03 Borut Razem <borut.razem AT siol.net>
4502
4503         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
4504         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
4505
4506 2006-09-03 Raphael Neider <rneider AT web.de>
4507
4508         * src/pic/ralloc.c,
4509         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
4510           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
4511           fixes #1550049
4512
4513 2006-09-01 Borut Razem <borut.razem AT siol.net>
4514
4515         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
4516           to make ppc-osx happy
4517
4518 2006-08-31 Borut Razem <borut.razem AT siol.net>
4519
4520         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
4521         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
4522         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
4523         * support/regression/ports/ds390/spec.mk,
4524           support/regression/ports/mcs51/spec.mk,
4525           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
4526           To run regression tests in mingw environment:
4527           make DEV_NULL=NUL CC=gcc
4528
4529 2006-08-30 Borut Razem <borut.razem AT siol.net>
4530
4531         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
4532           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
4533           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
4534           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
4535           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
4536           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
4537           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
4538           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
4539           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
4540           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
4541           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
4542           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
4543           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
4544           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
4545           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
4546           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
4547           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
4548           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
4549           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
4550           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
4551           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
4552           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
4553           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
4554           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
4555           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
4556           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
4557           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
4558           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
4559           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
4560           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
4561           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
4562           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
4563           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
4564           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
4565           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
4566           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
4567           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4568           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
4569           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
4570           ucsim WIN32 native port
4571
4572 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4573
4574         * doc/sdccman.lyx: added note on dynamic memory heap initialization
4575
4576 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4577
4578         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
4579         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
4580
4581 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
4582
4583         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
4584         * support/regression/tests/bug1546986.c: new, added
4585         * as/mcs51/.cvsignore,
4586         * debugger/mcs51/.cvsignore,
4587         * src/.cvsignore: deleted
4588
4589 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4590
4591         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
4592           definitions)
4593
4594 2006-08-20 Borut Razem <borut.razem AT siol.net>
4595
4596         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
4597           removed cl_listen_console::match(), cl_console::match(),
4598           restructured cl_commander::proc_input()
4599
4600 2006-08-16 Borut Razem <borut.razem AT siol.net>
4601
4602         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
4603           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
4604           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
4605
4606 2006-08-14 Borut Razem <borut.razem AT siol.net>
4607
4608         * support/regression/Makefile.in,
4609           support/regression/ports/pic14/gpsim.cmd,
4610           support/regression/ports/pic14/spec.mk,
4611           support/regression/ports/pic14/support.c:
4612           added pic14 regression test
4613
4614 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
4615
4616         * as/doc/asxhtm.html: documented changed ABS behaviour
4617         * as/doc/README: fixed some typos
4618
4619 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
4620
4621         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
4622           not defined on host
4623
4624 2006-08-12 Borut Razem <borut.razem AT siol.net>
4625
4626         * support/regression/fwk/include/testfwk.h,
4627           support/regression/fwk/lib/testfwk.c,
4628           support/regression/generate-cases.py,
4629           support/regression/Makefile.in:
4630           regression test framework does not depend on function pointers and
4631           variable arguments
4632
4633 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
4634
4635         * device/include/stddef.h: c temporary hack to fix bug 1518273
4636
4637 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4638
4639         * device/include/mcs51/cc2510fx.h: added
4640         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
4641           to projects.
4642
4643 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
4644
4645         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
4646         * as/z80/Makefile.in: added strcmpi.c
4647         * as/z80/z80adr.c: added upper case registers and lower case conditionals
4648         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
4649
4650 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
4651
4652         * device/lib/gbz80/asm_strings.s,
4653         * device/lib/gbz80/crt0_rle.s,
4654         * device/lib/gbz80/div.s,
4655         * device/lib/gbz80/mul.s,
4656         * device/lib/gbz80/shift.s,
4657         * device/lib/z80/asm_strings.s,
4658         * device/lib/z80/crt0_rle.s,
4659         * device/lib/z80/div.s,
4660         * device/lib/z80/mul.s,
4661         * device/lib/z80/shift.s: changed to all lower case menmonics except the
4662           flags which are all upper case
4663
4664 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
4665
4666         * as/z80/asm.h: made CASE_SENSITIVE 1
4667         * link/z80/aslink.h: made CASE_SENSITIVE 1
4668         * src/z80/gen.c (throughout): made all conditionals upper case
4669         * support/regression/tests/bug1503067.c: new
4670
4671 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
4672
4673         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
4674           (shiftIntoPair): added case 2 for PAIR_IY,
4675           (setupToPreserveCarry): replaced parameters with iCode and check if
4676            PAIR_DE is in use to fix bug 1399290,
4677           (genPlus, genMinus): updated call to setupToPreserveCarry
4678         * support/regression/tests/bug1399290.c: new
4679
4680 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
4681
4682         * device/lib/Makefile.in (Z80SOURCES): enabled float support
4683         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
4684         * src/ds390/gen.c (shiftRLong),
4685         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
4686         * src/mcs51/gen.c (sameReg): changed to sameByte,
4687           (xch_a_aopGet): new,
4688           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
4689            shiftRLong): fixed bug 1533966
4690         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
4691           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
4692         * support/regression/Makefile.in: disabled z80, enabled ucz80
4693         * support/regression/tests/float_trans.c: enabled test for z80 and host
4694         * support/regression/tests/shifts2.c: new, for testing bug 1533966
4695
4696 2006-08-01 Borut Razem <borut.razem AT siol.net>
4697
4698         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
4699           comparison is always false due to limited range of data type
4700           on PPC64 machine (openpower-linux1) where "char = unsigned char"
4701
4702 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
4703
4704         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
4705         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
4706         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
4707         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
4708
4709 2006-07-31 Borut Razem <borut.razem AT siol.net>
4710
4711         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
4712           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
4713           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
4714           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
4715           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
4716           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
4717           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
4718           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
4719           enable ucsim mingw compilation. Serial port is disabled,
4720           since it uses termios.h API, which is not available on native
4721           WIN32
4722
4723 2006-07-31 Borut Razem <borut.razem AT siol.net>
4724
4725         * Small Device C Compiler 2.6.0 released
4726         * support/scripts/sdcc.nsi: added FULL_DOC option
4727         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
4728
4729 2006-07-28 Borut Razem <borut.razem AT siol.net>
4730
4731         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
4732         * doc/INSTALL.txt: updated
4733
4734 2006-07-27 Borut Razem <borut.razem AT siol.net>
4735
4736         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
4737           device/lib/pic/libdev/Makefile.in: fixed bug
4738           [ 1438354 ] pic libsdcc: distclean doesn't work
4739         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
4740           device/lib/pic16/libio/Makefile.in: fixed bug
4741           [ 1438344 ] pic16 lib: clean doesn't work properly
4742         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
4743
4744 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
4745
4746         * device/lib/pic/libsdcc/fsdiv.c,
4747         * device/lib/pic/libsdcc/fsmul.c,
4748         * device/lib/pic16/libsdcc/float/fsdiv.c,
4749         * device/lib/pic16/libsdcc/float/fsmul.c,
4750         * device/lib/_fsdiv.c,
4751         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
4752         * support/regression/tests/bug1520966.c: added
4753         * doc/knownbugs.html: removed [ 1520966 ] from the list
4754
4755 2006-07-25 Borut Razem <borut.razem AT siol.net>
4756
4757         * configure.in, configure, sdccconf_in.h: fixed bug
4758           [ 1519095 ] regression test onebyte.c fails on ppc64 host
4759         * doc/knownbugs.html: removed [ 1519095 ] from the list
4760
4761 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
4762
4763         * doc/knownbugs.html: added, contains list of known bugs at release
4764         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
4765
4766 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
4767
4768         * device/include/mcs51/compiler.h: added SFRX for xdata based special
4769           function registers and corrected defaults with additional warning
4770         * device/lib/malloc.c: cosmetic changes
4771         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
4772         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
4773           (fillGaps): and used it
4774
4775 2006-07-20 Raphael Neider <rneider AT web.de>
4776
4777         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
4778           output unless SDCCPICDEBUG is set
4779         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
4780           output if SILENT is set
4781
4782 2006-07-11 Borut Razem <borut.razem AT siol.net>
4783
4784         * doc/README.txt: updated
4785
4786 2006-07-10 Borut Razem <borut.razem AT siol.net>
4787
4788         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
4789           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
4790           in WIN32 installation
4791         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
4792           release candidate 1
4793
4794 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
4795
4796         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
4797         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
4798
4799 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
4800
4801         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
4802
4803 2006-07-06 Borut Razem <borut.razem AT siol.net>
4804
4805         * support/regression/tests/bitfields.c:
4806           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
4807         * support/regression/tests/constantRange.c:
4808           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
4809
4810 2006-07-04 Borut Razem <borut.razem AT siol.net>
4811
4812         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
4813           src/port.mk,
4814           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
4815           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
4816           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
4817           reverted changes from 2006-07-03
4818         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
4819         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
4820           added CPPFLAGS, used by the host port
4821
4822 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
4823
4824         * support/regression/valdiag/tests/switch.c,
4825         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
4826         * support/regression/tests/libmullong.c: fixed for host
4827         * support/regression/ports/host/spec.mk: disable all warnings for host,
4828         SDCC runs with --less-pedantic too
4829
4830 2006-07-03 Borut Razem <borut.razem AT siol.net>
4831
4832         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
4833           defined CPPFLAGS
4834         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
4835         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
4836           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
4837           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
4838           include ../port.mk
4839         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
4840           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4841           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
4842           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
4843
4844 2006-07-02 Raphael Neider <rneider AT web.de>
4845
4846         * src/pic16/devices.inc,
4847         * device/include/pic16/pic18fregs.h,
4848         * device/include/pic16/pic18f4550.h,
4849         * device/lib/pic16/pics.all,
4850         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
4851
4852 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
4853
4854         * as/hc08/lkaomf51.c (OutputName),
4855         * as/mcs51/lkaomf51.c (OutputName),
4856         * as/z80/asmain.c (asmbl),
4857         * src/ds390/main.c (asmLineNodeFromLineNode),
4858         * src/hc08/ralloc.c (hc08_assignRegisters),
4859         * src/mcs51/main.c (asmLineNodeFromLineNode),
4860         * src/xa51/ralloc.c (checkRegMask),
4861         * src/xa51/gen.c (emitcode),
4862         * src/z80/gen.c (_emit2),
4863         * src/SDCCast.c (searchLitOp),
4864         * src/SDCCglobl.h,
4865         * support/packihx/packihx.c,
4866         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
4867         * src/ds390/gen.c (aopPutUsesAcc),
4868         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
4869         * support/regression/tests/libmullong.c (mullong_wrapper),
4870         * src/SDCCsymt.c (powof2),
4871         * src/SDCCast.c,
4872         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
4873         * src/SDCCsymt.h: added TYPE_TARGET_*
4874         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
4875         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
4876         SDCCast because 1) header problems 2) this is the right place
4877         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
4878         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
4879         prototype
4880
4881 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4882
4883         * src/SDCCicode.h: removed buggy semicolon in unused macro
4884         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
4885         search for previous definiton of auto symbols too,
4886         (findPrevUse): fixed logic of emitWarnings
4887
4888 2006-06-26 Raphael Neider <rneider AT web.de>
4889
4890         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
4891           PCLATH and PCLATU on interrupts, potentially fixes #1505141
4892
4893 2006-06-25 Raphael Neider <rneider AT web.de>
4894
4895         * device/lib/pic/libm: NEW, added math library functions
4896         * device/lib/pic/libsdcc: NEW; added float support functions
4897         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
4898         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
4899           NEW, added math related headers
4900         * device/include/asm/pic/features.h: NEW
4901         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
4902           (popGet): allow larger offsets for AOP_PCODE,
4903           (genDataPointerSet): handle literals explicitly, more debug output,
4904           (genAssign): fixed for float using aopLiteral ;-)
4905         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
4906           GOTO initialisation routine
4907         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
4908           flag on registers, fixes #1469043 (local variables do not work)
4909         * src/pic/main.c (_pic14_do_link),
4910         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
4911           available
4912
4913 2006-06-25 Borut Razem <borut.razem AT siol.net>
4914
4915         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
4916           characters printed (not including the trailing '\0' used to end
4917           output to strings). Problem detected in regression test bug-927659.c.
4918           NOTE: printf() family functions should return int instead
4919           unsigned int!
4920         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
4921           specifier are printed as themselves
4922         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
4923           support flags, width and precision specifiers
4924
4925 2006-06-24 Borut Razem <borut.razem AT siol.net>
4926
4927         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
4928           to the list of sdcc tagrets not supporting bit type
4929         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
4930           testfor pic16 due to bug:
4931           [ 1511794 ] pic16: regression test bug-895992.c fails
4932
4933 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
4934
4935         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
4936         * src/SDCCglue.c (initPointer), fixed bug 1496419
4937         * support/regression/tests/bug1496419.c: new, added
4938
4939 2006-06-22 Borut Razem <borut.razem AT siol.net>
4940
4941         * support/regression/ports/pic16/support.c: use gpsim usart module from
4942           libgpsim_modules library
4943
4944 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4945
4946         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
4947         IP0H to IPH0.
4948
4949 2006-06-19 Raphael Neider <rneider AT web.de>
4950
4951         * src/pic/glue.h,src/pic16/glue.h: added prototypes
4952         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
4953           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
4954           (pic14printExterns,pic14printPublics,pic16printPublics,
4955           pic16_printExterns): use new functions to emit symbols
4956           (picglue,pic16glue): emit publics before emitting externs
4957         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
4958           locally defined functions to avoid bug #1443651
4959         * support/regression/tests/bug-716242.c: removed pic16 workaround
4960         * support/regression/ports/pic16/spec.mk: ignore errors during build
4961
4962 2006-06-19 Raphael Neider <rneider AT web.de>
4963
4964         * src/pic/glue.h: added pic14aopLiteral prototype
4965         * src/pic/glue.c (pic14aopLiteral): return unsigned int
4966         * src/pic/gen.c: removed stdint.h dependency
4967           (aopGet): use Safe_strdup()
4968           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
4969           (genDataPointerSet): use pic14aopLiteral()
4970         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
4971           for pic16; thanks to Bernhard and Maarten
4972
4973 2006-06-18 Borut Razem <borut.razem AT siol.net>
4974
4975         * support/regression/tests/structflexarray.c: flexible array members
4976           not supported by gcc < 3
4977         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
4978           GUI tool by default
4979         * src/pic/gen.c: don't include [p]strdin.h on solaris
4980         * support/Util/pstdint.h: addad svn attributes
4981         * support/regression/tests/constantRange.c,
4982           support/regression/tests/rotate.c: include inttypes.h instead
4983           stdint.h on solaris, addad svn attributes
4984
4985 2006-06-18 Raphael Neider <rneider AT web.de>
4986
4987         * src/SDCCsymt.c (initCSupport): change return type of divschar to
4988           int for PIC16
4989         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
4990           (pic16_genMinusBits): simplified sign-extension
4991           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
4992             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
4993             adjusted to correctly handle mixed-signed operands, disabled
4994             now unused multiplciation routines
4995         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
4996           (assignResultValue): added argument denoting the size of the result
4997             as returned by the function (fixes upcasts in assigning from
4998             function calls: char foo(); int i = foo();)
4999           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
5000             function result to assignResultValue
5001           (genMult): disabled inlined multiplication code
5002           (genDiv): augmented to also handle the modulus operator, fixed to
5003             handle mixed-signed operands correctly
5004           (genMod): simply call genDiv, disabled unused code
5005           (genAssign): fixed missing (sign-)extension on result
5006         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
5007             valid char operands, allow signed operands for native code, added
5008             division and modulo operator handling
5009         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
5010
5011         As a consequence, onebyte.c (if split into two files) and muldiv.c
5012         pass regression tests.
5013
5014 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5015
5016         * doc/Makefile.in: two runs of makeindex seem needed to get
5017         correct page references in the index of sdccman.pdf
5018         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
5019
5020 2006-06-17 Borut Razem <borut.razem AT siol.net>
5021
5022         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
5023
5024 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5025
5026         * doc/sdccman.lyx: updated, added (porting source code, debugging),
5027         mentioned ec2drv and paulmon
5028
5029 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
5030
5031         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
5032           consecutive abs areas
5033           (find_empty_space, allocate_space): added map to handle codemap or
5034            xdatamap,
5035           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
5036            absolute idata and xdata
5037         * as/mcs51/lkmem.c (summary2): updated legend
5038
5039 2006-06-16 Raphael Neider <rneider AT web.de>
5040
5041         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
5042
5043 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
5044
5045         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
5046           1208515
5047         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
5048
5049 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
5050
5051         * src/port.h (struct PORT): added field gp_tags, to hold the tag
5052         value of generic pointers,
5053         * src/avr/main.c,
5054           src/ds390/main.c,
5055           src/hc08/main.c,
5056           src/izt/i186.c,
5057           src/izt/tlcs900h.c,
5058           src/mcs51/main.c,
5059           src/pic/main.c,
5060           src/pic16/main.c,
5061           src/xa51/main.c,
5062           src/z80/main.c: PORT structure, added elements for gp_tags field,
5063         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
5064         fields in the PORT structure of each port,
5065         * src/SDCCast.c (decorateType): allow processing of generic pointers
5066         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
5067         S_FIXED symbols
5068
5069 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
5070
5071         * link/z80/lkgb.c,
5072         * link/z80/lkgg.c,
5073         * src/pic16/gen.c,
5074         * src/pic16/main.c,
5075         * src/pic16/pcode.c,
5076         * src/pic/main.c,
5077         * src/pic/pcoderegs.c,
5078         * src/SDCCicode.c,
5079         * src/SDCCmain.c,
5080         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
5081           bug 1504689 on minGW
5082
5083 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5084
5085         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
5086
5087 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
5088
5089         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
5090
5091 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
5092
5093         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
5094           for optimization
5095
5096 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
5097
5098         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
5099         to a char variable. Fixed bug #1504211
5100         * device/include/pic16/adc.h,
5101         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
5102         and fixed bug #1364390
5103
5104 2006-06-10 Borut Razem <borut.razem AT siol.net>
5105
5106         * CVSROOT: removed the CVS left-over
5107
5108 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
5109
5110         * as/hc08/asmain.c (asexit),
5111         * as/hc08/lkmain.c (lkexit),
5112         * as/mcs51/asmain.c (asexit),
5113         * as/mcs51/lkmain.c (lkexit),
5114         * src/SDCCglue.c (DEFSETFUNC),
5115         * src/SDCCmain.c (linkEdit, assemble),
5116         * support/librarian/sdcclib.c (AddRel),
5117           replaced unlink() by standard C remove()
5118         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
5119         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
5120           gatherImplicitVariables): new, added to fix bug 608752,
5121           (createFunction): added gatherImplicitVariables()
5122         * src/SDCCast.h: added createRMW prototype
5123         * src/SDCCsymt.h (struct symbol): added infertype
5124         * support/regression/tests/bug608752.c: new, added
5125
5126 2006-06-10 Raphael Neider <rneider AT web.de>
5127
5128         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
5129           multibyte dummy reads (fixes #1503234)
5130
5131 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
5132
5133         * device/include/mcs51/compiler.h: new, added header file to enable
5134           creating common sfr definition header files for different compilers
5135
5136 2006-06-05 Raphael Neider <rneider AT web.de>
5137
5138         * src/pic16/{pcode.h,genarith.c}:
5139           introduced pCodeOp combining any two pCodeOps (previously only
5140           two register operands could be combined), removed pcop2 from
5141           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
5142         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
5143         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
5144           rewritten to use new PO_TWO_OPS
5145         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
5146         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
5147           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
5148           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
5149           (pic16_get_op): embraced return arg to allow #define return(x),
5150             added new case for combined opcodes
5151           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
5152           (pic16_pCode2str,pic16_getRegFrompCodeOp,
5153            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
5154
5155 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
5156
5157         * src/SDCCval.c (checkConstantRange): added
5158         * src/SDCCval.h: added checkConstantRange
5159         * support/Util/SDCCerr.c,
5160         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
5161         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
5162         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
5163         * src/SDCCast.c (decorateType): added checkConstantRange,
5164         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
5165         can be emitted with the correct always true/false warning,
5166         added optimization for double '!';
5167         result of decorateType() must be assigned back to the tree, because
5168         decorateType() can change the tree
5169         * src/SDCCicode.c (geniCodeLogic),
5170         (geniCodeAssign): replaced new checkConstantRange, added warnings,
5171         (checkConstantRange): removed, it was only a fragment which never
5172         emitted a warning
5173         * src/SDCCsymt.c (computeType): fixed promotion for
5174         "-1 < (unsigned bit) b"
5175         * src/pic/ralloc.c (packRegsForAssign),
5176         * src/pic16/ralloc.c (packRegsForAssign),
5177         * src/hc08/ralloc.c (packRegsForAssign),
5178         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
5179         from mcs51
5180         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
5181         * support/regression/tests/constantRange.c: added
5182         * support/valdiag/tests/constantRange.c: added
5183         * support/valdiag/valdiag.py: added -DPORT_HOST=1
5184
5185 2006-06-02 Borut Razem <borut.razem AT siol.net>
5186
5187         * support/regression/ports/pic16/support.c: increase stack size
5188           to 255 bytes
5189         * support/regression/Makefile.in: sort tests by name so that the
5190           resutlts can be compared on different machines / platforms
5191
5192 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5193
5194         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
5195         * src/ds390/gen.c (emitLabel): new, added,
5196           (genDjnz): fixed stack overflow bug,
5197           (throughout): cosmetic changes to sync with mcs51/gen.c,
5198           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
5199         * src/mcs51/gen.c (genEndFunction): small optimization,
5200           (throughout): cosmetic changes to sync with ds390/gen.c
5201
5202 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5203
5204         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
5205           (_print_format): fixed printing pointers
5206         * src/mcs51/gen.c (emitLabel, movb): new, added,
5207           (genAssign): small optimization,
5208           (genDjnz): fixed stack overflow bug,
5209           (throughout): replaced sprintf with SNPRINTF,
5210           replaced mcs51_regWithIdx with REG_WITH_INDEX,
5211           replaced emitcode("mov", "b,...") with MOVB(...),
5212           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
5213           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
5214         * src/mcs51/peeph.def: added rules 140 and 264
5215         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
5216           so they may get optimized into registers
5217
5218 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
5219
5220         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
5221           immediately when encountered,
5222           (printUsage): always use stderr even on windows
5223
5224 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
5225
5226         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
5227         (processParms): fixed bug #1247551
5228         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
5229         parseCmdLine, main): print '--version' to stdout,
5230         print 'help' to stdout if --help is given,
5231         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
5232         arguments are given; fixed --help
5233
5234 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
5235
5236         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
5237         * support/regression/tests/bug-1493710.c: added
5238
5239 2006-05-27 Borut Razem <borut.razem AT siol.net>
5240
5241         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
5242           static instead auto
5243         * support/regression/ports/pic16/support.c: increase stack size
5244           from default 64 bytes to 128 bytes
5245         * support/regression/tests/staticinit.c,
5246           support/regression/tests/float.c: regression tests fully enabled
5247           for pic16 port by putting the initialized data arrays into the code
5248           section
5249         * support/regression/ports/pic16/spec.mk: don't link default libraries.
5250           This was changed by mistake in the previous version.
5251
5252 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
5253
5254         * src/pic16/gen.c (genFunction, genEndFunction): some
5255         beautifications, fixed bug with falsely restoring FSR2 in large
5256         stack model, thanks to Beau E. Cox for reporting the bug
5257
5258 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5259
5260         * debugger/mcs51/break.c,
5261         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
5262           use %p to print pointers, made address variables unsigned
5263         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
5264         * debugger/mcs51/symtab.c (parseSymbol): must return something
5265         * src/mcs51/gen.c (aopForSym): small optimization,
5266            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
5267           (freeAsmop): added missing break,
5268           (aopPut): removed parameter bvolatile, determine it inside the function,
5269           (saveRegisters, unsaveRegisters): small optimization,
5270           (genIpush): removed pointless check,
5271           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
5272           replaced sprintf with SNPRINTF,
5273           replaced strcpy with strncpyz,
5274           updated aopPut calls,
5275           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
5276         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
5277
5278 2006-05-24 Borut Razem <borut.razem AT siol.net>
5279
5280         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
5281           modification of test for the pic16 port, put the array to the code
5282           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
5283
5284 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
5285
5286         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
5287         * support/Util/pstdint.h: added
5288
5289 2006-05-22 Borut Razem <borut.razem AT siol.net>
5290
5291         * src/regression/Makefile: removed bool2.c test, added -q linker option
5292         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
5293           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
5294           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
5295           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
5296           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
5297           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
5298           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
5299           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
5300           define SUPPORT_BIT_TYPES 0, removed unused bit variables
5301
5302 2006-05-22 Raphael Neider <rneider AT web.de>
5303
5304         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
5305           bug #1492360 (problematic due to generic pointers, see code)
5306
5307 2006-05-22 Borut Razem <borut.razem AT siol.net>
5308
5309         * support/regression/ports/pic16/specs.mk: removed stack size linker
5310           directive
5311         * support/regression/tests/array.c,
5312           support/regression/tests/bitopcse.c,
5313           support/regression/tests/bug-908454.c,
5314           support/regression/tests/malloc.c: modified for pic16 regression test
5315         * support/regression/tests/bitfields.c:
5316           pic16 - excluded bitfileds of size > 8
5317         * support/regression/tests/bp.c: pic16 - reduced data size
5318         * support/regression/tests/bug-221100.c: pic16 - reduced data size
5319         * support/regression/tests/bug-460010.c:
5320           pic16 - used the absolute address the fits in memory
5321         * support/regression/tests/bug-716242.c:
5322           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
5323         * support/regression/tests/float.c:
5324           pic16 - excluded - data size too big
5325         * support/regression/tests/onebyte.c:
5326           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
5327         * support/regression/tests/shifts.c:
5328           pic16 - function names probably have to differ in first X characters
5329           (gpasm limitation?)
5330         * support/regression/tests/staticinit.c:
5331           pic16 - excluded some tests due error: no target memory available for
5332           section ".idata"
5333
5334 2006-05-22 Borut Razem <borut.razem AT siol.net>
5335
5336         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
5337           second try. Thanks Stas Sergeev once more.
5338
5339 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5340
5341         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
5342           (genLeftShift, genRightShift): fixed bug 1491627
5343         * src/hc08/peeph.def (rules 7, 8.x): added
5344         * support/regression/tests/shifts.c (ShiftLeftByParam,
5345           ShiftRightByParam, testShiftByParam): added to test variable shifting
5346
5347 2006-05-20 Raphael Neider <rneider AT web.de>
5348
5349         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
5350         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
5351           (allocReg): add only new registers to dynAllocRegs,
5352           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
5353             #1489055, #1445850, and probably #1483693
5354
5355 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
5356
5357         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
5358         bug in for-loop that didn't emit the last of CONFIG and ID registers
5359
5360 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
5361
5362         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
5363           with offset
5364         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
5365           1489016, 1434401 and 1490124
5366         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
5367           1489016, 1434401 and 1490124
5368
5369 2006-05-17 Borut Razem <borut.razem AT siol.net>
5370
5371         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
5372           thanks Stas Sergeev
5373
5374 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5375
5376         * device/include/mcs51/P89c51RD2.h,
5377         * device/include/mcs51/P89LPC901.h,
5378         * device/include/mcs51/P89LPC922.h,
5379         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
5380
5381 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5382
5383         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
5384         to fix missing stack pragma in compiled binary object file,
5385
5386 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
5387
5388         * support/packihx/configure.in,
5389         * support/packihx/configure: removed warning, autoconf >= 2.5x can
5390         determine sizeof basic types even while cross compiling
5391
5392 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
5393
5394         * src/avr/gen.c (aopop),
5395         * src/ds390/gen.c (aopOp),
5396         * src/hc08/gen.c (aopOp),
5397         * src/mcs51/gen.c (aopop),
5398         * src/pic16/gen.c (pic16_aopOp),
5399         * src/pic/gen.c (aopOp),
5400         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
5401         if size of operand is smaller than spill location
5402
5403 2006-05-12 Borut Razem <borut.razem AT siol.net>
5404
5405         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
5406           have to have CR/LF line endings even if they are checked out on *nix
5407           or on WIN32 in cygwin binmode
5408
5409 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
5410
5411         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
5412         * device/include/ds80c390.h: added sfr16 definitions
5413         * src/ds390/gen.c,
5414         * src/ds390/gen.h,
5415         * src/ds390/main.c,
5416         * src/ds390/ralloc.c,
5417         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
5418           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
5419           bit returning functions
5420         * support/regression/tests/sfr16.c: enabled test on ds390
5421
5422 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5423
5424         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
5425         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
5426
5427 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
5428
5429         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
5430         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
5431           (cl_address_space constructor): removed expensive initialization,
5432           (cl_address_space::get_cell): extended for late initialization,
5433           (cl_address_space::*): use late initialization,
5434           (cl_address_decoder::activate): removed expensive initialization,
5435           This reduced regression test running time by 25%
5436
5437 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
5438
5439         * packihx/,
5440         * configure.in,
5441         * configure,
5442         * sdcc.dsw,
5443         * Makefile.bcc,
5444         * Makefile.in,
5445         * support/packihx/Makefile.in,
5446         * support/packihx/clean.mk,
5447         * support/packihx/Makefile.bcc,
5448         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
5449
5450 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5451
5452         * src/SDCCval.c (valNot): fix for regression test failure
5453           of not.c on big endian hosts
5454
5455 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
5456
5457         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
5458
5459 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5460
5461         * device/lib/mcs51/Makefile.in: changed string comparison operator
5462           to = for POSIX compliance; == is bash extension
5463
5464 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
5465
5466         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
5467           kosmonaut_pirx
5468
5469 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
5470
5471         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
5472         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
5473         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
5474         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
5475         bug report #1478657,
5476
5477 2006-05-05 Borut Razem <borut.razem AT siol.net>
5478
5479         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
5480           making the html
5481
5482 2006-05-02 Borut Razem <borut.razem AT siol.net>
5483
5484         * doc/Makefile.in: removed *.ind dependency since there is no rule to
5485           create *.ind, which made make to fail if invoked with -j 2
5486
5487 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
5488
5489         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
5490           Hubert Sack for patch 1479782
5491
5492 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
5493
5494         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
5495
5496 2006-05-01 Raphael Neider <rneider AT web.de>
5497
5498         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
5499           (create_pic): store only prefix-free device name,
5500           (init_pic): check for device names with "16" prefix,
5501           (list_valid_pics),
5502         * src/pic/device.h (struct PIC_device),
5503         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
5504             stored device name,
5505         * device/include/pic/pic12f{635,675,629,683}.h,
5506         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
5507         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
5508         * device/include/pic/pic16f505.h,
5509         * device/lib/pic/libdev/pic16f505.c: removed
5510         * device/include/pic/pic14devices.txt: added support for pic12f
5511             devices, removed unsupported non 16-bit devices
5512             [above changes provided by patch from Zik Saleeba]
5513         * src/pic/*, src/pic16/*, device/include/pic16/*,
5514           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
5515
5516 2006-05-01 Borut Razem <borut.razem AT siol.net>
5517
5518         * configure.in, configure, doc/Makefile.in:
5519           sync with nightly build makefile - latex, dvipdf and dvips
5520           not needed any more
5521
5522 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
5523
5524         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
5525         in the library source
5526
5527 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
5528
5529         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
5530
5531 2006-04-28 Raphael Neider <rneider AT web.de>
5532
5533         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
5534         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
5535           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
5536         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
5537
5538 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
5539
5540         * device/lib/pic/libdev/Makefile.in,
5541         * device/lib/hc08/Makefile.in,
5542         * device/lib/gbz80/Makefile.in,
5543         * device/lib/z80/Makefile.in,
5544         * device/lib/ds390/Makefile.in,
5545         * device/lib/ds400/Makefile.in: added srcdir to include search path,
5546         thanks to Borut for the bug report
5547         * configure.in,
5548         * configure: always create doc/Makefile independent from --enable-doc
5549         * Makefile.in: always install from directory doc independent from
5550         --enable-doc
5551         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
5552         removed
5553         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
5554         * doc/Makefile.in: install *.txt if present
5555         * device/include/Makefile.in (install): added installation of pic/*.inc
5556         and pic/*.txt files again, they were erroneously removed
5557
5558 2006-04-28 Raphael Neider <rneider AT web.de>
5559
5560         * src/pic/{gen.c,main.h,pcode.c},
5561         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
5562             concerning signedness with casts
5563
5564 2006-04-28 Raphael Neider <rneider AT web.de>
5565
5566         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
5567             definition of an interrupt handler,
5568         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
5569             interrupt handler stuff from picglue() to separate routine,
5570           (picglue): enabled definition of intr handlers in files w/o main()
5571
5572 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5573
5574         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
5575           compilation with MSVC 2005 Express Edition (VC8)
5576
5577 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
5578
5579         * device/lib/Makefile: fixed build of gbz80 lib
5580
5581 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5582
5583         * support/regression/tests/bug-460010.c,
5584         * support/regression/tests/bug-524691.c,
5585         * support/regression/tests/bug-716242.c: removed conditional defines
5586           that are already in testfwk.h
5587
5588 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5589
5590         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
5591           (AccAXRsh1): added, shift right by 1,
5592           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
5593            AccAXLrl1
5594         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
5595
5596 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
5597
5598         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
5599         remove cast to same type
5600         * src/SDCCast.c (decorateType): fix for RFE 1475742,
5601         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
5602         * as/z80/Makefile,
5603         * link/z80/Makefile: removed, they have moved to
5604         Makefile.in files
5605         * configure,
5606         * configure.in: replaced duplicate message about ucsim by missing sdcpp
5607         * install-sh: fix bug #1204398 by setting umask 0022
5608         * device/lib/Makefile: separate build of z80 and gbz80 lib
5609
5610 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
5611
5612         Enabled VPATH feature: changed nearly all Makefiles (149 files).
5613         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
5614
5615         One basic decision: e.g. src/clean.mk includes further files. In order
5616         to make this work there are two solutions:
5617         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
5618           run configure on them. This way they can use
5619           'include $(srcdir)/port-clean.mk'
5620         - always include clean.mk by the Makefile at the same level. To avoid
5621           that `make clean` tries to include and build Makefile.dep the
5622           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
5623           implemented, because now even `make uninstall` doesn't create
5624           Makefile.in. clean.mk could be eliminated by pasting it in
5625           Makefile.in.
5626
5627         * debugger/mcs51/Makefile.in: build own objects from library sources
5628         (SLIB, SDCC) in current directory
5629
5630         * configure, configure.in: renamed --disable-device-lib-build in
5631         --disable-device-lib; added --enable-doc, the required tools are
5632         searched by configure; added result message; the toolchain for the
5633         belonging ports are now only built, if the port is enabled.
5634
5635         * support/regression/*: all output is written in directory gen, because
5636         the fwk and ports directories don't livet in the build tree using vpath
5637
5638         * doc/sdccman.lyx: renamed --disable-device-lib-build to
5639         --disable-device-lib, added --enable-doc, added section VPATH
5640
5641         * sim/ucsim/configure.in,
5642         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
5643         z80 are enabled by default
5644
5645 2006-04-24 Raphael Neider <rneider AT web.de>
5646
5647         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
5648             to config word, "pic14_"-prefixed some extern functions
5649           (pic14_emitConfigWord): emit __config directive(s) if assignment to
5650             config word has been found
5651         * src/pic/device.h: added prototypes
5652         * src/pic/pcode.c: added "pic14_"-prefix where needed
5653         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
5654             fixup
5655         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
5656             words,
5657           (pic14emitRegularMap): ignore config words,
5658           (pic14createInterruptVect): moved generating __config directives away
5659           (picglue): have __config directives emitted
5660
5661 2006-04-24 Borut Razem <borut.razem AT siol.net>
5662
5663         * doc/Makefile: sync with nightly build makefile
5664
5665 2006-04-24 Raphael Neider <rneider AT web.de>
5666
5667         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
5668             registers that have not been assigned proper liveranges,
5669             fixes #1469504 and #1474602,
5670           (pCodeRegOptimizeRegUsage): fixed typo in comment
5671
5672 2006-04-24 Borut Razem <borut.razem AT siol.net>
5673
5674         * device/examples/main8051.c: deleted - it was removed from CVS
5675           24.mar.2000 and after that modified 18.feb.2001, so it reappered
5676           after the transition to Subversion
5677         * src/SDCCalloc.h: deleted - it was removed  from CVS
5678           3.feb.2001 and after that modified 18.feb.2001, so it reappered
5679           after the transition to Subversion
5680         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
5681           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
5682           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
5683           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
5684
5685 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
5686
5687         * as/asx8051.dsp: added mcs51/strcmpi.h
5688         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
5689         * as/hc08/aslink.h: updated lnksect prototype
5690         * as/hc08/asm.h,
5691         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
5692         * as/hc08/asmain.c,
5693         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
5694           (newdot): handle A_ABS
5695         * as/hc08/asout.c,
5696         * as/mcs51/asout.c (outarea): output address
5697         * as/hc08/lkaomf51.c,
5698         * as/mcs51/lkaomf51.c: disabled unused array UsageType
5699         * as/hc08/m08pst.c,
5700         * as/mcs51/i51pst.c,
5701         * as/z80/z80pst.c: "ABS" is not A_OVR
5702         * as/hc08/lkarea.c (newarea): read a_addr,
5703           (lnkarea): added codemap array, sort absolute areas to the front,
5704            combine all GSINITx/GSFINAL,
5705           (find_empty_space, allocate_space): new functions,
5706           (lnksect): return next address, handle absolute sections
5707         * as/mcs51/lkarea.c (newarea): read a_addr,
5708           lnksect2 prototype changed,
5709           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
5710           (find_empty_space, allocate_space): new, factored out of lnksect2,
5711           (lnksect2): return next address, handle absolute sections
5712         * as/hc08/lkhead.c,
5713         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
5714         * as/hc08/lklibr.c (addfile, fndsym),
5715         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
5716           index out of range and detect both '\' and '/'
5717         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
5718         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
5719           regression tests (ds390 cannot return bool yet)
5720         * doc/sdccman.lyx: changed version number, document changed --no-peep,
5721           document critical interrupts on z80, document changed SDCC define
5722         * src/asm.c (_asxxxx_mapping): fixed .org directive,
5723           (_a390_mapping): added .org directive
5724         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
5725           (genMultOneByte): fixed warnings
5726         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
5727           ones
5728         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
5729         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
5730           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
5731         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
5732         * src/pic16/main.c: removed newReg prototype
5733         * src/pic16/pcode.c,
5734         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
5735           warnings
5736         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
5737           ones
5738         * src/pic16/ralloc.c
5739         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
5740           to fix warnings
5741         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
5742           from short to PIC_OPTYPE
5743         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
5744         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
5745           optype from short to PIC_OPTYPE
5746         * src/port.h: made int_size unsigned to fix warnings
5747         * src/SDCC.y: fixed warning on MSVC
5748         * src/SDCCicode.c (getArraySizePtr): return unsigned int
5749         * src/SDCCopt.c (convertToFcall): fixed warnings
5750         * src/SDCCsymt.h: removed double prototype for genSymName
5751         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
5752           offset int to fix warnings
5753
5754 2006-04-22 Borut Razem <borut.razem AT siol.net>
5755
5756         * doc/sdccman.lyx, */Makefile, */Makefile.in:
5757           references to CVS replaced with Subversion
5758
5759 2006-04-21 Borut Razem <borut.razem AT siol.net>
5760
5761         * doc/sdccman.lyx, */Makefile, */Makefile.in:
5762           references to CVS replaced with Subversion
5763
5764 2006-04-19 Borut Razem <borut.razem AT siol.net>
5765
5766         * src/version.awk: adapted for svn
5767         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
5768           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
5769           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
5770           /binutils-avr/etc/*.vi, *.jin: removed all properties
5771           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
5772
5773 2006-04-19 Borut Razem <borut.razem AT siol.net>
5774
5775         * CVS to Subversion migration completed
5776
5777 2006-04-18 Borut Razem <borut.razem AT siol.net>
5778
5779         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}/lib/pic/*.o,
5780           ${DEV_ROOT}/lib/src/pic/libdev/*.S, ${DEV_ROOT}/lib/src/pic/libdev/*.inc
5781
5782 2006-04-17 Borut Razem <borut.razem AT siol.net>
5783
5784         * device/include/Makefile.in: added pic/*.inc to the installation
5785
5786 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
5787
5788         * support/regression/collate-results.py: fixed output in case of
5789         a valdiag error
5790         * support/regression/generate-cases.py: fixed splitting of pathnames
5791         with dots
5792         * as/hc08/lklibr.c (addfile),
5793         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
5794
5795 2006-04-11 Raphael Neider <rneider AT web.de>
5796
5797         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
5798         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
5799         * src/pic16/pcode.c (assignValnums): fixed #1460578
5800
5801 2006-04-11 Raphael Neider <rneider AT web.de>
5802
5803         * device/lib/pic/libdev/*.c,
5804         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
5805           fixes #1468739, enables compilation in --std-c99 mode
5806         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
5807
5808 2006-04-11 Raphael Neider <rneider AT web.de>
5809
5810         * src/pic/device.c (find_device): removed debug output
5811           (list_valid_pics): enabled verbose listing of supported devices
5812         * device/include/stdbool.h: define bool as char for pic14/16 as well
5813
5814 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5815
5816         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
5817
5818 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5819
5820         * .version: bumped version to 2.5.6
5821         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
5822
5823 2006-04-06 Raphael Neider <rneider AT web.de>
5824
5825         * .version: bumped version to 2.5.6 (pic14 ABI changed)
5826         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
5827         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
5828           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
5829             pic14_constructAbsMap
5830           (pic14printPublics): declare absolute global symbols as global
5831           (pic14createInterruptVect),
5832         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
5833           (newReg): assume new registers unused, use correct name in
5834             hashtable (reg->name instead of name), more debugLog output
5835         * src/pic/device.h (PIC_device): added fields for verbose output
5836         * src/pic/device.c: moved device definition to pic14devices.txt,
5837             added routines for runtime parsing of pic14devices.txt,
5838             added support for second config word
5839         * src/pic/main.c (_process_pragma): removed #pragma maxram,
5840           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
5841           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
5842           (_pic14_parseOptions): moved pCodeInitRegisters here
5843           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
5844         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
5845           (pCodeInitRegisters): rewrapped comments, perpared new approach to
5846             handling the pseudo stack
5847         * device/lib/Makefile.in: ignore failures in objects-pic16,
5848         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
5849         * device/lib/pic/NEWS: document new dependency on picXXX.lib
5850         * device/lib/pic/Makefile.subdir,
5851         * device/lib/pic16/Makefile.subdir: improved clean rules
5852         * device/lib/pic/libdev/: NEW, pic14 device libraries
5853         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
5854         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
5855         * device/include/Makefile.in: create subdir and install pic14 headers
5856         * device/include/pic/p16f_common.inc: removed unused declarations
5857         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
5858             PICs from inc2h.pl v1.6,
5859             replaced BIT_AT macros with struct declarations
5860         * device/include/pic/pic14devices.txt: definition of supported devices,
5861             all above improvements contributed by Zik Saleeba, thanks
5862         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
5863         * support/scripts/sdcc.nsi: also install pic14 device libraries and
5864             headers
5865
5866 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5867
5868         * device/include/mcs51/c8051f410.h: added interrupt numbers,
5869         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
5870           thanks to Charles Olds
5871
5872 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5873
5874         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
5875
5876 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5877
5878         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
5879         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
5880         * support/regression/bug1464657.c: added, new test
5881
5882 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5883
5884         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
5885           version number
5886
5887 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5888
5889         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
5890           --no-peep and --peep-file <file> are used don't use default rules but
5891           do use the <file>
5892
5893 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5894
5895         * src/mcs51/gen.c (genCall): fixed bug 1457608
5896
5897 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5898
5899         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
5900         changes seem to cause (trigger?) problems with the build system.
5901
5902 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
5903
5904         * src/SDCCpeeph.c (operandsLiteral): new, added,
5905           (callFuncByName): inserted operandsLiteral
5906         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
5907
5908 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5909
5910         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
5911         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
5912
5913 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5914
5915         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
5916           implemented patch 1120823 Thanks to Willy De la Court (normal
5917           interrupts need an interrupt number now if they are made critical),
5918           and enabled nesting of critical functions though not for gbz80
5919           (genCritical, genEndCritical): added functions
5920           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
5921         * src/z80/mappings.i: added "ei" to all mappings
5922
5923 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5924
5925         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
5926         submitted by the Debian SDCC maintainer Aurelien Jarno:
5927         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
5928         archive with gcc 4.1 on mips and wrote the patch"
5929
5930 2006-03-16 Raphael Neider <rneider AT web.de>
5931
5932         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
5933           the left operand is shorter than the result (c* = lit-c* + int),
5934           fixes bug #1450796
5935         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
5936           OP_SYMBOL
5937
5938 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5939
5940         * src/.version: increased version number to 2.5.5
5941         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
5942         linking is done manually in pic16 port's _linkEdit,
5943         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
5944         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
5945         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
5946         allocate asmop as AOP_ACC,
5947         (aopForRemat): added parameter 'bool result' in function declaration,
5948         (pic16_aopGet): return AOP_ACC when accessing WREG,
5949         (pic16_popGetTempReg): minor modification,
5950         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
5951         'pic16_allocWithIdx',
5952         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
5953         calling function in absolute addresses,
5954         (genAssign): take into account AOP_ACC asmop,
5955         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
5956         * src/pic16/pcoderegs.c: some debug functions and lines added,
5957         * src/pic16/ralloc.c (decodeRegType): added but commented out,
5958         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
5959         register too,
5960         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
5961         call to allocReg, not by manually allocating a new one,
5962         (pic16_assignRegisters): now before going through the register
5963         allocating functions mark all registers as free. This eliminates some
5964         side effects resulting from peephole parser done earlier in the backbone
5965
5966 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
5967
5968         * src/SDCCicode.c (geniCodeLogic),
5969         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
5970
5971 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
5972
5973         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
5974           (genSend): bugfix, do not allocate and free twice,
5975           (shiftRLong): handle partially overlapping aops
5976         * support/regression/tests/bitopcse.c: fixed warning redefined idata
5977
5978 2006-03-08 Borut Razem <borut.razem AT siol.net>
5979
5980         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
5981           for pic16
5982
5983 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
5984
5985         * support/regression/tests/bug1409955.c: new, added
5986         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
5987         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
5988           (aopForSym, aopOp): increment asmop.allocated if reused,
5989           (freeAsmop): decrement asmop.allocated and check for zero instead of
5990           using asmop.freed,
5991           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
5992           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
5993            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
5994            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
5995            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
5996            genSignedRightShift, genRightShift, genDataPointerGet,
5997            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
5998            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
5999             in reverse order from allocation,
6000           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
6001             added swappedLR to keep track
6002         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
6003           pdata & code for GCC, z80, gbz80 & hc08
6004         * support/regression/tests/zeropad.c: moved defines to testfwk.h
6005
6006 2006-03-08 Raphael Neider <rneider AT web.de>
6007
6008         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
6009
6010 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
6011
6012         * device/include/mcs51/c8051f410.h: new SiLabs mcu
6013         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
6014         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
6015
6016 2006-03-06 Borut Razem <borut.razem AT siol.net>
6017
6018         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
6019           made the linker quiet
6020
6021 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6022
6023         * src/pic16/gen.c (genPcall): fixed bug #1443644
6024         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
6025         which dumps before the function entry point a data byte which represents
6026         the number of the local variables used by the specified function, added
6027         'xinst' for initial support for Extended Instruction Support,
6028         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
6029         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
6030         port->fun_prefix anymore (may change later),
6031         (genFunction, genEndFunction): do not store/restore local registers for
6032         _main (this should take care the --main-return command line option in
6033         the future),
6034         (genOr): removed some legacy pic-port instructions,
6035         * src/pic16/genarith.c (genAddLit): re-enabled old code because
6036         performing operations with SFR's causes data to be written more than
6037         once to each SFR. Perhaps SFRs should be handled in special cases...
6038         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
6039         pcode.h
6040         * src/pic16/main.c (_process_pragma): stack bound checking did not take
6041         into account for stack starting position,
6042         (struct OPTIONS pic16_optionsTable): added command line argument
6043         --extended or -y for Extended Instruction Support,
6044         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
6045         (deassignLRs): *** perhaps the most important change, old 'for' code
6046         (commented out for reference), didn't account for some registers which
6047         were left marked 'not free' after a pointer operation. The change
6048         reduces register usage a lot in some cases
6049
6050 2006-03-04 Borut Razem <borut.razem AT siol.net>
6051
6052         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
6053           _clean
6054         * support/regression/tests/bug-524697.c: decreased array size for
6055           mcs51 to fit into the internal RAM
6056         * support/regression/Makefile.in: a little bit more verbose
6057
6058 2006-03-03 Borut Razem <borut.razem AT siol.net>
6059
6060         * support/regression/fwk/lib/testfwk.c,
6061           support/regression/fwk/include/testfwk.h: introduced function
6062           _prints(), nonrecursive _printn(), call _initEmu() from main()
6063         * support/regression/ports/gbz80/support.asm,
6064           support/regression/ports/ucz80/support.asm,
6065           support/regression/ports/z80/support.asm,
6066           support/regression/ports/ds390/support.c,
6067           support/regression/ports/hc08/support.c,
6068           support/regression/ports/host/support.c,
6069           support/regression/ports/mcs51/support.c,
6070           support/regression/ports/xa51/support.c: added empty _initEmu()
6071           function
6072         * support/regression/ports/pic16/gpsim.cmd,
6073           support/regression/ports/pic16/spec.mk,
6074           support/regression/ports/pic16/support.c,
6075           support/regression/Makefile.in: added pic16 regression test
6076
6077 2006-03-01 Raphael Neider <rneider AT web.de>
6078
6079         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
6080           genConstPointerGet): use safe way of generating MOVFF to cover
6081             literals as well as registers, fixes bug #1440527
6082         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
6083             dereference
6084           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
6085             more correctly, fixes bug #1232186
6086           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
6087         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
6088             gplink guess the correct processor in more cases, applied patch
6089             from Till Riedel attached to and fixing bug #1436552
6090
6091 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6092
6093         * support/regression/tests/array.c: added, contains check for #1434401
6094         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
6095
6096 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
6097
6098         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
6099         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
6100         * device/include/mcs51/c8051f326.h,
6101         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
6102         * device/include/mcs51/c8051f000.h,
6103         * device/include/mcs51/c8051f018.h,
6104         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
6105           PCON_IDLE,PCON_STOP and added sfr16 definitions
6106
6107 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
6108
6109         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
6110           genGetWord): fixed bug 1409955
6111
6112 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
6113
6114         * device/include/hc08/mc68hc908gp32.h,
6115         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
6116
6117 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
6118
6119         * src/SDCCast.c (constExprValue): return NULL if not a value
6120         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
6121         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
6122         * support/regression/tests/bitfields.c: enabled signed bitfield for all
6123
6124 2006-02-13 Borut Razem <borut.razem AT siol.net>
6125
6126         * src/regression/ptrarg.c: added, fails due to bug #1430967
6127         * src/regression/Makefile: ptrarg.c added, ...
6128
6129 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
6130
6131         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
6132         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
6133
6134 2006-02-11 Borut Razem <borut.razem AT siol.net>
6135
6136         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
6137           print "Processor: xxx" message to stdout only if --verbose
6138
6139 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6140
6141         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
6142         * support/regression/tests/bug1426356.c: added
6143         * support/regression/tests/bitfields.c: removed 2 tests
6144
6145 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6146
6147         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
6148         * device/include/mcs51/c8051f330.h,
6149         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
6150           PCON_IDLE,PCON_STOP and added sfr16 definitions
6151         * device/lib/_divsint.c,
6152         * device/lib/_divuint.c,
6153         * device/lib/_divulong.c,
6154         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
6155           register bank bug for small stackauto
6156
6157 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6158
6159         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
6160
6161 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
6162
6163         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
6164         * all.dsp: corrected several bin paths
6165         * device/include/mcs51/c8051f120.h,
6166         * device/include/mcs51/c8051f300.h,
6167         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
6168           to PCON_IDLE,PCON_STOP
6169         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
6170         * device/lib/printf_large.c (output_float): fixed bug 1388703
6171         * support/regression/tests/bug1057979.c: added test for bug 1388703
6172
6173 2006-02-08 Raphael Neider <rneider AT web.de>
6174
6175         * src/pic/pcode.c (pciTRIS): fixed typo,
6176           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
6177           (LinkFlow): fixed handling of flows that end in a call,
6178           (ReuseReg): perform safety check earlier
6179         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
6180             to work with flows at the beginning of a pBlock,
6181             fixes #1426557 (Symbol not previously defined),
6182           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
6183             usage information
6184           (RemoveUnusedRegisters): update register usage info
6185         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
6186             created, reuse existing ones instead
6187         * src/pic/gen.c (genPcall): fixed #1424719
6188
6189 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
6190
6191         * link/z80/lkmain.c,
6192         * link/z80/lklex.c,
6193         * link/z80/lkdata.c,
6194         * link/z80/aslink.h: fixed build on current cygwin:
6195         replaced getline() by lk_getline()
6196
6197 2006-02-01 Borut Razem <borut.razem AT siol.net>
6198
6199         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
6200           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
6201           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
6202           src/regression/bool1.c, src/regression/bool2.c,
6203           src/regression/bool3.c, src/regression/call1.c,
6204           src/regression/compare.c, src/regression/compare10.c,
6205           src/regression/compare2.c, src/regression/compare3.c,
6206           src/regression/compare4.c, src/regression/compare5.c,
6207           src/regression/compare6.c, src/regression/compare7.c,
6208           src/regression/compare8.c, src/regression/compare9.c,
6209           src/regression/configword.c, src/regression/for.c,
6210           src/regression/inline.c, src/regression/mult1.c,
6211           src/regression/nestfor.c, src/regression/or1.c,
6212           src/regression/pointer1.c, src/regression/ptrfunc.c,
6213           src/regression/rotate1.c, src/regression/rotate2.c,
6214           src/regression/rotate3.c, src/regression/rotate4.c,
6215           src/regression/rotate5.c, src/regression/rotate6.c,
6216           src/regression/rotate7.c, src/regression/string1.c,
6217           src/regression/struct1.c, src/regression/sub.c,
6218           src/regression/sub2.c, src/regression/switch1.c,
6219           src/regression/while.c, src/regression/xor.c,
6220           src/regression/create_stc, src/regression/simulate,
6221           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
6222           regression tests
6223         * src/regression/gpsim_assert.h: added
6224
6225 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
6226
6227         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
6228         ((void (code *) (void)) 0) ();
6229         * as/hc08/aslex.c,
6230         * as/hc08/aslink.h,
6231         * as/hc08/asm.h,
6232         * as/hc08/asmain.c,
6233         * as/hc08/lkdata.c,
6234         * as/hc08/lklex.c,
6235         * as/hc08/lkmain.c,
6236         * as/mcs51/aslex.c,
6237         * as/mcs51/aslink.h,
6238         * as/mcs51/asm.h,
6239         * as/mcs51/asmain.c,
6240         * as/mcs51/lkdata.c,
6241         * as/mcs51/lklex.c,
6242         * as/mcs51/lkmain.c,
6243         * as/z80/aslex.c,
6244         * as/z80/asm.h,
6245         * as/z80/asmain.c: fixed build on current cygwin:
6246         replaced getline() by as_getline()
6247
6248 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6249
6250         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
6251         declarator in the symbol chain
6252         * src/SDCCsymt.h,
6253         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
6254         parameter list for function pointers
6255         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
6256         * support/regression/tests/bug-716242.c: added
6257
6258 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
6259
6260         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
6261         offset if possible
6262         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
6263
6264 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
6265
6266         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
6267         inifinitely recurseable, added static
6268         * support/regression/tests/bug-1408066.c: added
6269
6270 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
6271
6272         * src/SDCCicode.h,
6273         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
6274         renamed, added possibility to create "postLoopLbl"-labels
6275         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
6276         newiTempLoopHeaderLabel
6277         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
6278         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
6279         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
6280         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
6281         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
6282         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
6283         (basicInduction): fixed bug #136564, made static,
6284         (loopInduction): changed parameter of basicInduction, made static,
6285         (addPostLoopBlock): added
6286         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
6287         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
6288         findLoopEndSeq
6289         * support/regression/tests/bug-136564.c: added
6290         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
6291         --std-sdcc99 to LIBSDCCFLAGS
6292
6293 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
6294
6295         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
6296         while loop
6297         * support/regression/tests/bug-1406131.c: added
6298
6299 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
6300
6301         * src/SDCCast.c (decorateType): fix promotion of unary minus
6302         * src/SDCCsymt.c (computeType): beautified
6303         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
6304         (valUnaryPM, valComplement): fix sign and promotion,
6305         (valNot): ANSI: result type is int (SDCC: unsigned char)
6306         * support/regression/tests/uminus.c: speedup by removing superflous
6307         test case 'int'
6308         * support/regression/tests/onebyte.c: added promotion and signedness
6309         tests for unary minus
6310         * support/regressions/tests/bug-477927.c: disable warning about
6311         uninitialized variables
6312         * support/regression/tests/not.c: added
6313
6314 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
6315
6316         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
6317         * src/mcs51/gen.c (gen51Code): show final register usage after
6318         fillGaps in asm with --i-code-in-asm
6319         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
6320         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
6321         incUsed, rliveClear, adjustIChain): made static,
6322         (setFromRange): excluded because it's unused,
6323         (findPrevUseSym, markWholeLoop): added,
6324         (findPrevUse): rewritten; fixes bug 895992; now a complete search
6325         through all branches of predecessors enables sdcc to emit the warning
6326         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
6327         (rlivePoint): made static, added parameter emitWarnings which is only
6328         true during the first run out of two,
6329         (findRecursiveSucc, findRecursivePred): removed,
6330         (computeLiveRanges): made static, added parameter emitWarnings,
6331         (dumpIcRlive): added for debugging only
6332         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
6333         removed prototype of setFromRange()
6334         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
6335         in call of computeLiveRanges()
6336         * support/regression/tests/bug-895992.c: added
6337         * support/regression/tests/bug-971834.c: added
6338         * support/valdiag/tests/bug-895992.c: added
6339         * support/valdiag/tests/bug-971834.c: added
6340
6341 2005-12-18 Raphael Neider <rneider AT web.de>
6342
6343         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
6344           (genUnpackBits): improved code for direct operands,
6345           (genPackBits): improved code for literal assignment to bitfields
6346             and for direct destination operands (no FSR indirection),
6347             prevented redundant AND, fixes #1362800,
6348           (AccLsh): added parameter to disable masking of the result
6349         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
6350           skip instructions with side-effects (like incfsz),
6351           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
6352         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
6353         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
6354           fixes #1375263
6355
6356 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
6357
6358         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
6359         volatile variables as spill location
6360
6361 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
6362
6363         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
6364         replacing literals
6365         * support/regression/tests/bug-1376320.c: added
6366
6367 2005-12-08 Raphael Neider <rneider AT web.de>
6368
6369         * src/pic/device.c: renamed is_shared to pic14_is_shared
6370         * src/pic/gen.c (genIfx): re-enabled handling of sbits
6371         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
6372           (is_valid_identifier): added for above workaround
6373
6374 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
6375
6376         * device/lib/Makefile.in: fixed to enable port-specific-objects
6377         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
6378           char, thanks Hubert Sack
6379         * doc/sdccman.lyx: documented --xstack-loc,
6380           elaborated a bit more on interrupts and pitfalls,
6381           removed "setjmp/longjmp unsupported",
6382           documented some unsupported C99 features
6383         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
6384         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
6385           if, thanks Hubert Sack
6386         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
6387         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
6388           make make_library
6389         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
6390           regression tests can report resource usage (rfe 700441)
6391         * support/regression/collate-results.py: report resource usage
6392         * support/regression/ports/ds390/spec.mk,
6393         * support/regression/ports/hc08/spec.mk,
6394         * support/regression/ports/mcs51/spec.mk,
6395         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
6396         * support/regression/ports/ds390/uCsim.cmd,
6397         * support/regression/ports/hc08/uCsim.cmd,
6398         * support/regression/ports/mcs51/uCsim.cmd,
6399         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
6400         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
6401           library, use the default one
6402         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
6403           building the library
6404
6405 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
6406
6407         * config.dsp: added dependency on .version and configure_vc.awk
6408         * device/include/setjmp.h: updated for --stack-auto and --xstack
6409         * device/include/mcs51/at89c51snd1c.h: corrected line endings
6410         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
6411         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
6412         * device/lib/libsdcc.lib: added _setjmp
6413         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
6414           (decorateType): fixed bug 1372851,
6415           (optimizeGetHbit): fixed warning
6416         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
6417           array initialisation
6418         * support/regression/tests/bug1057979.c: added test for bug 1358192
6419         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
6420
6421 2005-12-03 Borut Razem <borut.razem AT siol.net>
6422
6423         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
6424           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
6425
6426 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
6427
6428         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
6429         createIval): implement symbol independant "flexible array member",
6430         (createIvalCharPtr): implemented flexible array initialisation with a
6431         string
6432         * src/SDCCsymt.c (copyStruct): removed,
6433         (getSize): fixed misleading comment,
6434         (getAllocSize): removed, the additional allocation size is now in
6435         sym->flexArrayLength,
6436         (checkStructFlexArray): new, syntax checks for flexible array members,
6437         (compStructSize): added syntax checks for "flexible array members"
6438         (copyStruct): removed,
6439         (copyLinkChain): removed inefficient fix for bug 770487
6440         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
6441         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
6442         symbol->flexArrayLength
6443         * src/SDCCerr.c,
6444         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
6445         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
6446         * support/regression/tests/structflexarray.c: added
6447         * support/valdiag/tests/structflexiblearray.c: added
6448
6449 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
6450
6451         * src/SDCCast.c (decorateType): fixed bug 1368489
6452         * support/Util/SDCCerr.c,
6453         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
6454
6455 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6456
6457         * device/include/mcs51/at89c51snd1c.h: added file submitted by
6458           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
6459
6460 2005-11-27 Borut Razem <borut.razem AT siol.net>
6461
6462         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
6463           support/cpp2/mkdeps.h: added command line option
6464           -obj-ext=<extension> to SDCPP to define object file externion, used
6465           for generation of make dependencies (-M)
6466         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
6467
6468 2005-11-26 Borut Razem <borut.razem AT siol.net>
6469
6470         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
6471           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
6472           added pic and pic16 libraries
6473
6474 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6475
6476         * device/include/float.h: Corrected typo in prototype of __fsgt
6477
6478 2005-11-25 Borut Razem <borut.razem AT siol.net>
6479
6480         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
6481           added creation of model-mcs51-stack-auto libraries
6482
6483 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
6484
6485         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
6486         and fields-list too
6487         * src/SDCCast.c (createIvalArray): removed obsolete comment
6488
6489 2005-11-24 Borut Razem <borut.razem AT siol.net>
6490
6491         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
6492           added missing device/lib/mcs51/crt*.asm sources
6493
6494 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
6495
6496         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
6497
6498 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
6499
6500         * device/lib/_fs2schar.c,
6501         * device/lib/_fs2sint.c,
6502         * device/lib/_fs2slong.c: optimized inline asm
6503
6504 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6505
6506         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
6507           Better handling of floats between -1.0 and 0.0.
6508
6509 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6510
6511         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
6512           (the missing "if"s prohibited removal of redundant labels)
6513
6514 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6515
6516         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
6517           Properly convert floats between -1.0 and 0.0 to long, int, and char
6518           types (max integer value of negative floats tends to zero).
6519         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
6520           Removed changes made so to work properly with floats between
6521           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
6522           and _fs2char.c
6523
6524 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
6525
6526         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
6527         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
6528         (genCast) cosmetic change
6529         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
6530         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
6531         from mcs51
6532         * support/regression/tests/bitfields (testSignedBitfields): added
6533
6534 2005-11-18 Borut Razem <borut.razem AT siol.net>
6535
6536         * sdcc/device/lib/Makefile.in: remove all unnecessary files
6537         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
6538           introduced SILENT option to make building of pic16 libraries less
6539
6540 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6541
6542         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
6543           Now they work properly with floats between -1.0 and 0.0
6544         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
6545
6546 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6547
6548         * src/SDCCicode.c (printOperand): added missing else
6549
6550 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
6551
6552         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
6553         reformatted for better readability
6554         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
6555         signed bitfields
6556
6557 2005-11-17 Borut Razem <borut.razem AT siol.net>
6558
6559         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
6560           introduced SILENT option to make building of pic16 libraries less
6561           verbose - used for nightly snapshot build
6562         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
6563           available on Win32 platforms.
6564         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
6565           medium, large, pic and pic16
6566
6567 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6568
6569         * device/lib/printf_large.c: Temporary patch for bug 1358192:
6570           printf("%f"...) sets fraction to zero.
6571
6572 2005-11-16 Raphael Neider <rneider AT web.de>
6573
6574         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
6575           fixes #1357221
6576         * src/pic/gen.c (genIfx): implemented for CARRY bit
6577         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
6578           to generic pointers, fixes #1357332,
6579           (pic16_movLit2f): NEW,
6580           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
6581
6582 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
6583
6584         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
6585
6586 2005-11-11 Raphael Neider <rneider AT web.de>
6587
6588         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
6589         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
6590           compute pointer's type from operand,
6591           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
6592           improved single bit reads, fixes bug #1353379
6593
6594 2005-11-09 Borut Razem <borut.razem AT siol.net>
6595
6596         * support/scripts/sdcc.nsi: added lib/pic to the package
6597
6598 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
6599
6600         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
6601
6602 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
6603
6604         * support/regression/tests/bug1348008.c: added
6605         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
6606         * support/regression/tests/bug1337835.c: updated comment
6607
6608 2005-11-06 Borut Razem <borut.razem AT siol.net>
6609
6610         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
6611           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
6612           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
6613           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
6614           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
6615           dynamic construction of cl_error_class and derivates - 2.nd try
6616
6617 2005-11-05 Borut Razem <borut.razem AT siol.net>
6618
6619         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
6620           bug, which caused Bus Errors on sparc solaris
6621
6622 2005-11-04 Borut Razem <borut.razem AT siol.net>
6623
6624         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
6625           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
6626           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
6627           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
6628           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
6629           and derivates to resolve the initialization problem on OSX
6630
6631 2005-11-02 Borut Razem <borut.razem AT siol.net>
6632
6633         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
6634           corrected typo - #include <winsock2.h>
6635
6636 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
6637
6638         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
6639           (_asxxxx_mapping): added org directive for future enhancements
6640
6641 2005-11-01 Borut Razem <borut.razem AT siol.net>
6642
6643         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
6644           enabled sockets on WIN32
6645         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
6646
6647 2005-10-31 Borut Razem <borut.razem AT siol.net>
6648
6649         * support/regression/generate-cases.py: escape backslashes in {testcase}:
6650           WIN32 backslash path delimiters should be escaped when used in C strings
6651         * support/regression/tests/bitfields.c: exclude failing assertions for
6652           __CYGWIN32__ and __MINGW32__ hosts
6653
6654 2005-10-30 Borut Razem <borut.razem AT siol.net>
6655
6656         * src/SDCCutil.c: corrected double comparison typo
6657
6658 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
6659
6660         * device/lib/medium/Makefile: added for new memory model medium
6661         * device/include/asm/mcs51/features.h: updated for medium/pdata
6662         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
6663           added Multiply & Accumulate sbit's and MAC0_PAGE define
6664         * device/include/mcs51/c8051f300.h: added sfr16 definitions
6665         * device/include/mcs51/c8051f310.h: added sfr16 definitions
6666         * device/lib/_mullong.c: update for medium model
6667         * device/lib/incl.mk: added medium model
6668         * doc/sdccman.lyx: documented medium model
6669         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
6670         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
6671         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
6672         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
6673           (allocParms): set SCLS and OCLS to pdata for medium model
6674         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
6675           for pdata,
6676           (powof2): return <0 if not power of 2
6677         * src/avr/gen.c (genBitWise): use updated powof2
6678         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
6679           (shiftR2Left2Result): small optimization in setup, save acc when storing,
6680           (shiftLLeftOrResult): use B if necessary
6681         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
6682         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
6683         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
6684         * support/regression/Makefile.in: added test-mcs51-medium
6685         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
6686
6687 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
6688
6689         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
6690         specifier unsigned
6691         * device/lib/time.c (mktime): fixed bug 1334315
6692
6693 2005-10-28 Raphael Neider <rneider AT web.de>
6694
6695         * device/include/pic/p16f_common.inc: added common declarations
6696         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
6697
6698 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
6699
6700         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
6701           (aopPutUsesAcc): added to predict accumulator use,
6702           (assignResultValue): save acc if necessary,
6703           (genMinusDec): store result if indirectly addressed,
6704           (genDivOneByte):  save acc if necessary,
6705           (movLeft2Result): bugfix if left already in acc,
6706           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
6707             attention to accumulator use (esp. pdata),
6708           (genReceive): receive pdata correctly
6709         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
6710         * src/SDCCicode.h: added isOperandInPagedSpace prototype
6711
6712 2005-10-27 Raphael Neider <rneider AT web.de>
6713
6714         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
6715
6716 2005-10-27 Raphael Neider <rneider AT web.de>
6717
6718         * .version: changed version to 2.5.4
6719         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
6720         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
6721           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
6722             arithmetics support routines
6723         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
6724         * device/lib/Makefile.in: also create installdir for pic
6725
6726         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
6727           pic14 port as well
6728         * src/pic/device.c (dump_sfr): rewritten to delegate register
6729           placement to the linker (use `extern sym' rather than sym EQU addr),
6730           (validAddress): fixed to check last specified address
6731         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
6732           (popGetLit): truncate literal value to 8 bit,
6733           (popGet): moved assert to more appropriate place
6734           (popGetExternal): create pCode operand from and mark the according
6735             symbol as being `extern'
6736           (popGetAddr): added sanity check on immediate's offset, provide
6737             GPOINTER tag on demand
6738           (aopPut): fixed for immediates,
6739           (mov2w_op): move operand's address or contents to WREG (depending on
6740             operand type), safer variant of mov2w,
6741           (movwf,call_libraryfunc): NEW, handy abbreviations,
6742           (get_argument_pcop,get_return_val_pcop,pass_argument,
6743           get_returnvalue): interface for accessing function parameters and
6744             return values,
6745           (assignResultValuei,genRet): use new parameter/return value interface
6746           (pic14_getDataSize): back to old version handling generic pointers,
6747           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
6748             provided implementation and/or fixed old one,
6749           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
6750             calls, removed legacy 8051 reference code
6751           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
6752           (loadSignToC): NEW, move the operands sign bit to CARRY,
6753           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
6754             genRightShiftSigned, accepts negative shift counts,
6755           (setup_fsr): load FSR and adjust IRP (indirect memory access),
6756           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
6757             generic pointers, __data pointers and __code pointers,
6758           (genUnpackBits,genPackBits): rewritten to work with generic pointers
6759             and signed bitfields, limit bitfields to 8 bit,
6760           (genDataPointerGet): fixed number of bytes read,
6761           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
6762           (genPointerGet,genPointerSet): fixed handling of __code pointers,
6763             pointers to constant data are no longer assumed to point to __code
6764             space, removed invalid pointer types,
6765           (bitpatternFromVal): retrieve the PICs representation of an integer
6766             or float literal,
6767           (genDataPointerSet): fixed assigning to po_immediate operands,
6768           (genGenPointerSet): implemented as library call,
6769           (genIfx): fixed incorrect condition,
6770           (genAddrOf): limit generic pointers' addresses to 2 bytes,
6771             provide GPOINTER tag according to destination's storage class,
6772           (genCast): added code to handle casting to generic pointers, added
6773             sign-/zero extension of the result
6774           (aop_isLitLike,op_isLitLike): fixed handling of immediates
6775         * src/pic/gen.h: added macros to access IRP bit in STATUS register
6776         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
6777           extend the result
6778         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
6779           address/register resides in the shared banks
6780           (emitSymbolToFile): improved to handle global and `pinned' symbols,
6781             put all variables into separate sections (have the linker arrange
6782             them)
6783           (picglue): put init code and interrupt handlers in separate sections
6784         * src/pic/main.c: added port specific options table, modified to PORT
6785           structure to make GPOINTERs 3 byte, added pic14_options
6786           (_pic14_do_link): private linking routine (update paths to libraries,
6787             add libsdcc.lib by default)
6788         * src/pic/main.h: declare pic14_options
6789         * src/pic/pcode.c: fixed instructions i/o relations,
6790           (RegCond): reverted to correct version,
6791           (newpCodeOpLit): truncate literals to 8 bit,
6792           (genericPrint): added debug output,
6793           (getRegFromInstruction): fixed for various operand types, simplified
6794           (BuildFlow): fixed broken handling of isntructions with labels
6795           (LinkFlow): start at last instruction in flow (skip trailing comments),
6796             pass the flow on to the next instruction after CALL
6797           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
6798           (insertPCodeInstruction): fixed inserting after a skip instruction,
6799           (DoBankSelect): fixed for labeled instructions
6800           (OptimizepBlock): honor --nopeep switch
6801           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
6802         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
6803         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
6804           (pCodeOptime2pCodes): allow disabling this optimization via
6805             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
6806             but is still buggy), started implementation of a dataflow based
6807             pCode optimization (CSE + dead code elimination)
6808           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
6809         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
6810           names are independant of the stack location and therefore portable across
6811           devices
6812
6813 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
6814
6815         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
6816           (selectSpil): fixed bug 1337835 by not spilling bit variables
6817         * support/regression/tests/bug1337835.c: added test for this bug
6818         * src/mcs51/peeph.def: restart after rule 3.c,
6819           addded rules 263.x to optimize loading constants
6820
6821 2005-10-26 Raphael Neider <rneider AT web.de>
6822
6823         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
6824         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
6825           (genAssign): emit warning when casting literals to generic pointer
6826             type, also applies when taking the address of a fixed variable,
6827           (genCast): improved casting to generic pointers
6828         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
6829           extern variables, added verbose error message
6830         * device/include/pic16/{string.h,errno.h}: added #pragma library c
6831
6832 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
6833
6834         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
6835         carry must be complemented too
6836         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
6837         could be emitted by genMinus
6838         * src/SDCCval.c (constVal): fixed bug 1305065
6839
6840 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
6841
6842         * src/SDCCast.c (addCast): added promotion for bit variables
6843         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
6844         promotion casts + optimisation
6845         (optimizeGetWord): fix warning 'i' might be used uninitialized
6846         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
6847         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
6848
6849 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
6850
6851         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
6852         all chars are promoted to int; promotion should be handled in SDCCast.c
6853
6854 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6855
6856         * device/lib/_strcmp.c: Fixed bug 1326457
6857
6858 2005-10-11 Raphael Neider <rneider AT web.de>
6859
6860         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
6861         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
6862
6863 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6864
6865         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
6866         * support/regression/tests/sfr16.c: added test for the sfr32 bug
6867
6868 2005-10-04 Raphael Neider <rneider AT web.de>
6869
6870         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
6871           device/lib/pic16/pics.all: added pic18f1320
6872         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
6873
6874 2005-09-30 Raphael Neider <rneider AT web.de>
6875
6876         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
6877         * src/pic16/devices.inc: NEW, provides device descriptions
6878         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
6879
6880 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
6881
6882         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
6883           GETHBIT
6884
6885 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
6886
6887         * doc/sdccman.lyx: updated Highest Order Bit documentation,
6888           documented Any Order Bit, Higher Order Byte and Higher Order Word
6889         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
6890         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
6891           (optimizeGetAbit): new, to get any bit, not only the high bit,
6892           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
6893           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
6894           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
6895           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
6896             RIGHT_OP: also try GETBYTE, GETWORD optimization,
6897             GETABIT, GETBYTE, GETWORD: decorate them,
6898           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
6899           (ast_print): added GETABIT, GETBYTE, GETWORD
6900         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
6901         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
6902           (geniCodeBinary): new generic binary icode,
6903           (ast2iCode): added GETABIT, GETBYTE, GETWORD
6904         * src/port.h: updated comment for PORT.hasExtBitOp
6905         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
6906           (genGetByte): new, to get a single byte,
6907           (genGetWord): new, to get a word from a long,
6908           (gen51Code): added GETABIT, GETBYTE, GETWORD
6909         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
6910
6911 2005-09-23 Raphael Neider <rneider AT web.de>
6912
6913         * configure.in, configure: have device/lib/pic configured
6914         * device/lib/Makefile.in: added model-pic14
6915         * device/lib/clean.mk: added pic/ to clean rule
6916         * device/lib/pic: added rudimentary pic14 library providing support
6917           functions for multiplication/division/generic pointer access
6918         * src/SDCCopt.c (convilong): mark support functions as extern
6919           for pic14 port as well
6920         * src/pic/gen.c (genMult): added assertions,
6921           (genpic14Code): emit warning on unhandled iCodes
6922         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
6923         * src/pic/pcode.c (pCodeOpCopy),
6924         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
6925           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
6926           SFR_REGISTER}), made safe for future extensions
6927         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
6928           instructions even if preceeded by SKIP instructions (also remove
6929           them); removed unused code
6930         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
6931           prevents leaving parts of the structure uninitialized after copying
6932
6933 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
6934
6935         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
6936           ago by me
6937         * support/regression/tests/addsub.c: added test for the bug
6938
6939 2005-09-21 Raphael Neider <rneider AT web.de>
6940
6941         * device/include/pic16/pic18f1220.h,
6942           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
6943         * device/lib/pic16/Makefile.rules: added missing opening paren
6944         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
6945           are provided in genutils.c,
6946           (genUminusFloat,genUminus,genCmpEq): added asserts on different
6947           operand/result sizes,
6948           (genCmp): assert on NULL pointers first, then check deref'ed values
6949         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
6950           result size
6951
6952 2005-09-18 Raphael Neider <rneider AT web.de>
6953
6954         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
6955           as these are now unused,
6956           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
6957         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
6958           local, avoids uninitialized pointer dereference on r->name
6959         * src/pic16/ralloc.c (newReg): fixed indentation
6960
6961 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
6962
6963         * src/SDCCval.c (constVal): fixed bug 730366
6964         * support/Util/SDCCerr.c,
6965         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
6966
6967 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
6968
6969         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
6970
6971 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
6972
6973         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
6974
6975 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6976
6977         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
6978           (hex2dec): made hex_digit unsigned char, removed ascii dependance
6979         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
6980           (hex2dec): made hex_digit unsigned char, removed ascii dependance
6981         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
6982         * packihx/packihx.c (hexDigit): made c unsigned char
6983         * as/mcs51/lklibr.c (fndsym),
6984         * link/z80/lkgb.c (gb),
6985         * link/z80/lklibr.c (fndsym),
6986         * link/z80/lkrloc.c (relr),
6987         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
6988         * src/SDCC.lex (checkCurrFile, process_pragma),
6989         * src/SDCCglue.c (spacesToUnderscores),
6990         * src/SDCCmain.c (setParseWithComma, processFile),
6991         * src/asm.c (tvsprintf, printCLine),
6992         * src/avr/gen.c (emitcode, aopPut),
6993         * src/ds390/gen.c (emitcode),
6994         * src/hc08/gen.c (emitcode, emitinline),
6995         * src/mcs51/gen.c (emitcode, genInline),
6996         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
6997           tokenizeLineNode),
6998         * src/pic/ralloc.c (debugLog),
6999         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
7000           tokenizeLineNode),
7001         * src/pic16/ralloc.c (debugLog),
7002         * src/z80/main.c (_process_pragma):
7003            made all ctype.h function calls safe
7004         * src/SDCCopt.c: include math.h for fabs
7005         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
7006           and used them throughout the code to make ctype.h function calls safe
7007         * src/ds390/main.c (asmLineNodeFromLineNode),
7008         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
7009         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
7010            unsigned char*
7011         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
7012           (newpCodeAsmDir): made ctype.h function calls safe
7013         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
7014           pic16_emitcode):  made lbp unsigned char*
7015         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
7016           (pic16_newpCodeAsmDir): made ctype.h function calls safe
7017         * src/xa51/gen.c (emitcode),
7018         * src/z80/gen.c (_emit2): made lbp unsigned char*
7019         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
7020            char*
7021
7022 2005-09-05 Raphael Neider <rneider AT web.de>
7023
7024         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
7025           access bank splitpoint
7026
7027 2005-09-05 Raphael Neider <rneider AT web.de>
7028
7029         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
7030
7031 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
7032
7033         * .version: changed to version 2.5.3
7034         * doc/sdccman.lyx: changed version to 2.5.3,
7035           documented --codeseg and --constseg and pragma codeseg and constseg,
7036           documented bit parameters (reentrant) and bit returning
7037         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
7038            currFunc->recvSize, but is this ok for all ports?
7039           (ast2iCode): result of ~ on unsigned char must be cast to int for
7040            bool to work
7041         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
7042           function pointers in bit space
7043         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
7044           (processFuncArgs): call port.reg_parm() with reentrancy info
7045         * src/port.h,
7046         * src/avr/main.c,
7047         * src/ds390/main.c,
7048         * src/hc08/main.c,
7049         * src/pic/main.c,
7050         * src/pic16/main.c,
7051         * src/xa51/main.c,
7052         * src/z80/main.c: port.reg_parm prototype extended with
7053           "bool reentrant" parameter
7054         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
7055           options.stackAuto for allocating bit register parameters
7056         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
7057           (genSend): set BitBankUsed if it is,
7058           (selectRegBank): factored out of genCall for use in genPcall,
7059           (genCall): removed redundant dtype assignmen, use selectRegBank,
7060           (genPcall): handle returning in Carry properly, save in F0 if needed,
7061           (genReceive): handle bit register parameters
7062         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
7063           (mcs51_assignRegisters): enable bit registers for all reentrant
7064            functions and don't set BitBankUsed unconditionally
7065         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
7066         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
7067         * support/regression/tests/funptrs.c: added tests for BOOL and for return
7068
7069 2005-08-27 Borut Razem <borut.razem AT siol.net>
7070
7071         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
7072         ppc-osx (Darwin) does not support -u option. It seems that it is
7073         supported only on Linux - GNU cp
7074
7075 2005-08-25 Borut Razem <borut.razem AT siol.net>
7076
7077         * sim/ucsim/gui.src/serio.src/Makefile.in,
7078           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
7079           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
7080           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
7081           install and strip, since the strip at /usr/ccs/bin should be used
7082           on solaris
7083
7084 2005-08-24 Borut Razem <borut.razem AT siol.net>
7085
7086         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
7087
7088 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
7089
7090         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
7091         ffffffffu
7092
7093 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
7094
7095         * as/mcs51/aslink.h: completed lkrloc.c prototypes
7096         * as/mcs51/lkmain.c (link_main): fixed warning
7097         * device/include/stdbool.h: ds390 has no advanced bit support yet
7098         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
7099         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
7100         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
7101           and updated their macros
7102         * src/SDCCval.c (constVal): updated comment for renamed b_long
7103
7104 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
7105
7106         * as/mcs51/asdata.c: changed ctype['['] to BINOP
7107         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
7108           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
7109           (oprio): set priority for '['
7110         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
7111            and adb_24_bit
7112         * as/mcs51/asm.h: added defines R_BIT and S_BIT
7113         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
7114         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
7115         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
7116           added overlayable BIT_BANK area
7117         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
7118           (summary2): explain 'T' in legenda
7119         * as/mcs51/lkrloc.c: replaced old K&R style,
7120           (relr): added R_BIT processing,
7121           (errmsg): added "Bit-addressable relocation error",
7122           (adb_bit): added for converting from byte- to bit-addressable space,
7123           (adb_24_bit): added for converting from byte- to bit-addressable space
7124         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
7125            used in reentrant functions now even as return value
7126         * device/lib/_gptrput.c (_gptrput): removed obsolete code
7127         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
7128           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
7129         * src/SDCCglobl.h: added indicator BitBankUsed
7130         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
7131            the bit registers b0-b7
7132         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
7133           (geniCodeCast): fixed bug 1263853,
7134           (geniCodeLogicAndOr): put result in bool or char,
7135           (geniCodeReceive): added parameter func for accessing the return type,
7136           (geniCodeFunctionBody): pass func to geniCodeReceive
7137         * src/SDCCmain.c: added indicator BitBankUsed
7138         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
7139         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
7140           (checkSClass): don't put automatic bool/bit on stack,
7141           (checkFunction): removed check on function cannot return bit
7142         * src/SDCCsymt.h: added newBoolLink prototype
7143         * src/mcs51/gen.c (rb1regs): added bit registers,
7144           (movc): created for assigning to carry,
7145           (pushReg, popReg): created for pushing registers,
7146           (sameRegs): check both AOP_REG and AOP_CRY types,
7147           (aopOp): handle bit registers,
7148           (aopPut): optimization no self-assign,
7149           (saveRegisters): push reg->base (bits) only once for bit registers,
7150            and use pushReg,
7151           (unsaveRegisters): pop reg->base only once and use popReg,
7152           (assignResultValue): added parameter func and return in carry for bits,
7153           (genIpush): optimization no reload in A if not changed,
7154           (genSend): bit parameters in reentrant functions are passed in bit
7155            registers by first assigning to bits in B, then save registers and
7156            copy B to bits,
7157           (genCall): handle returning in Carry properly, save it in F0 if needed,
7158           (genPcall): updated assignResultValue call, this is not safe yet for bit
7159            returning function !!!
7160           (genFunction): don't generate equ's for bit registers and use pushReg,
7161           (genEndFunction): take care of bit returning functions and use popReg,
7162           (genRet): return bit in Carry,
7163           (genIfx): optimize bit registers and other directly addressable bits,
7164           (genReceive): updated assignResultValue call
7165         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
7166           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
7167            registers when using stack-auto
7168         * src/mcs51/ralloc.c (_G): added allBitregs,
7169           (regs8051): added the bit registers,
7170           (createStackSpil): use macro IS_BIT,
7171           (getRegBit): added to allocate a bit register, else spill,
7172           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
7173           (updateRegUsage): factored out to ease stepping while debugging,
7174           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
7175            also allocate bit registers,
7176           (fillGaps): handle bit registers,
7177           (findAllBitregs): added to create bit vector with all bit registers,
7178           (mcs51_allBitregs): returns this bit vector,
7179           (mcs51_assignRegisters): when using stack-auto use bit registers for
7180            passing parameters and creating local variables
7181         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
7182
7183 2005-08-22 Borut Razem <borut.razem AT siol.net>
7184
7185         * device/lib/Makefile.in: replaced find option -or with -o
7186           to make it run on solaris
7187
7188 2005-08-22 Raphael Neider <rneider AT web.de>
7189
7190         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
7191           fixes #1265442 (crash on Solaris)
7192
7193 2005-08-20 Borut Razem <borut.razem AT siol.net>
7194
7195         * configure, configure.in: added tests for libsocket and libnsl libraries,
7196           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
7197           from support/regression/Makefile.in
7198         * support/regression/Makefile.in: added
7199         * device/lib/pic16/Makefile.common.in: force make to use bash shell
7200         * sim/ucsim/libtool: regenerated on sparc-solaris
7201         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
7202           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
7203           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
7204           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
7205           sparc-solaris, which doesn't use GNU ld linker
7206         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
7207         * as/Makefile: find on sparc-solaris does not support -maxdepth option
7208
7209 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
7210
7211         * src/mcs51/peeph.def: updated comments
7212
7213 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7214
7215         * device/lib/_gptrget.c,
7216         * device/lib/_gptrput.c: slightly shorter
7217         * doc/sdccman.lyx: incremented version
7218         * src/mcs51/peeph.def: moved peephole comments to the line of first
7219           change to better keep line correlation, reanimated 186.e
7220         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
7221
7222 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7223
7224         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
7225           David Saxton with quotes around file name.
7226
7227 2005-08-15 Borut Razem <borut.razem AT siol.net>
7228
7229         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
7230           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
7231           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
7232           make tests run on x86_64 platform
7233
7234 2005-08-13 Raphael Neider <rneider AT web.de>
7235
7236         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
7237           as it might be executed DURING a build (parallel make is wonderful)
7238
7239 2005-08-13 Raphael Neider <rneider AT web.de>
7240
7241         * device/lib/Makefile.in (port-specific-objects-pic16):
7242           revert to cp $(PORT)/bin/*.* $(PORTDIR)
7243         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
7244           dependency
7245         * device/lib/pic16/Makefile.rules: build subdirs before creating
7246           the library, removed builddir rule, create $(builddir) early in
7247           recurse rule, use empty recurse rule for leaf directories
7248         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
7249           mkdir errors (race condition), removed duplicate suffix "hex"
7250           from clean rules
7251         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
7252         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
7253           prevents mkdir -p from aborting on Alpha
7254
7255 2005-08-12 Raphael Neider <rneider AT web.de>
7256
7257         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
7258           db-statements in order to allow for arrays of pointers in code
7259           sections to be placed without interspersed 0-padding, fixes
7260           bug #1256215
7261         * (emitStatistics): fixed division by zero for pic18f1220
7262         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
7263           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
7264         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
7265         * (pic16_pCodeConstString): keep track of already emitted string
7266           literals to prevent "duplicate definitions of symbol _str_NR"
7267         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
7268           debug message
7269         * device/lib/Makefile.in: ignore failing PIC16 library builds
7270         * device/lib/pic16/Makefile: do not build if gputils are missing
7271         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
7272
7273 2005-08-10 Raphael Neider <rneider AT web.de>
7274
7275         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
7276           my last commit)
7277
7278 2005-08-10 Raphael Neider <rneider AT web.de>
7279
7280         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
7281           Rokas' patch to add the new fixed point type "__fixed16x16"
7282         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
7283           functions for __fixed16x16 arithmetics
7284         * device/lib/pic16: reimplemented the build system to support
7285           a separate build directory, better handling of libio (create
7286           the library in a separate subdir for each architecture) and
7287           easier configuration (centralized in Makefile.common)
7288
7289 2005-08-07 Raphael Neider <rneider AT web.de>
7290
7291         * src/pic16/gen.c (genrshTwo): fixed sign extension
7292         * src/pic16/device.c: added pic18f2320, 4220 and 4320
7293         * device/include/pic16/pic18f2220.h: changed some bit definitions,
7294           added T0CONbits
7295         * device/include/pic16/pic18f4220.h: NEW, header for
7296           pic18f4220 and pic18f4320
7297         * device/include/pic16/pic18fregs.h: added new devices,
7298           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
7299         * device/include/pic16/signal.h: resolved name clashes
7300           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
7301           to also allow testing for interrupt enable bits, added
7302           comments on how to use the macros
7303         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
7304         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
7305           register definitions for the devices
7306         * device/lib/pic16/pics.all: added new devices
7307         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
7308           allocated memory
7309         * device/lib/pic16/libc/stdlib/memfree: do not count
7310           the block header as free memory
7311         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
7312           simplified and added missing end-of-blocklist-marker
7313           (reported by Peter Onion, fixes #1252814)
7314         * (_mergeHeapBlock): fixed loop condition
7315         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
7316           len==0, restructured code
7317         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
7318           up a bit, reduced bitfield accesses, prevent endless loops
7319           in case of heap corruption
7320         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
7321           "unreferenced arguments/must return a value" warnings
7322         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
7323           replaced BAUDREG with SPBRG
7324         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
7325           device/lib/pic16/debug/gstack/gstack.c: replaced
7326           _naked, _asm, _endasm with __naked, __asm, __endasm
7327
7328 2005-08-05 Raphael Neider <rneider AT web.de>
7329
7330         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
7331           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
7332
7333 2005-08-05 Borut Razem <borut.razem AT siol.net>
7334
7335         * device/lib/Makefile.in: added missing ';'
7336         * configure: removed ^M characters
7337
7338 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7339
7340         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
7341           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
7342           License
7343
7344 2005-08-04 Borut Razem <borut.razem AT siol.net>
7345
7346         * configure.in: pic16 libraries build 2nd try - enable running
7347           configure in device/lib/pic16
7348         * configure: regenerated from configure.in
7349         * device/lib/Makefile.in: create $(PORT)/bin directory
7350
7351 2005-08-03 Raphael Neider <rneider AT web.de>
7352
7353         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
7354           to get/set values via pointers
7355         * (genUnpackBits,genPackBits): changed detection of
7356           ptr->bitfield vs. sym.bitfield, fixed access via generic
7357           pointers, removed dead (wrong) code for multibyte bitfields
7358         * (genNearPointerGet, genGenPointerGet): removed useless code,
7359           fixed bitfield detection, fixes #1250594
7360         * (genNearPointerSet): removed useless code
7361         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
7362           and introduced macro pic16_emitpcode that conditionally emits
7363           the origin of the following pCode (useful for debugging SDCC)
7364         * src/pic16/pcode.c: changed (and disabled) some debug outputs
7365         * (createDefmap): fixed handling of LFSR for --optimize-df
7366
7367 2005-08-02 Borut Razem <borut.razem AT siol.net>
7368
7369         * device/lib/Makefile.in: pic16 libraries build enabled since
7370           gputils-0.13.2 are now localy installed at sourceforge's compile farm
7371
7372 2005-08-02 Raphael Neider <rneider AT web.de>
7373
7374         * src/pic16/gen.c (genPackBits): removed deprecated warning
7375         * (genGenPointerSet): fixed bitfield detection
7376
7377 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7378
7379         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
7380
7381 2005-07-31 Raphael Neider <rneider AT web.de>
7382
7383         * device/lib/pic16/libdev/pic18f458.c,
7384           device/include/pic16/pic18f458.h: added missing T0CONbits
7385
7386 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
7387
7388         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
7389
7390 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
7391
7392         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
7393
7394 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7395
7396         * device/include/mcs51/at89c51ed2.h: added.
7397
7398 2005-07-23 Raphael Neider <rneider AT web.de>
7399
7400         * src/pic/gen.h: added emitpcode macro for debugging
7401         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
7402           and replace by macro adding debug information on demand
7403         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
7404         * (gencjne): tried to fix; replaced with correct (slower) code
7405         * (gen{Unp,P}ackBits): fixed single bit access
7406         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
7407         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
7408           previous instruction
7409         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
7410           register has to be handled with care (forbidding movement
7411           of assignments/uses, removing assignments completely, ...)
7412         * (pCodeOptime2pCodes): make use of regIsSpecial
7413         * added lots of debugging output (commented out)
7414         * src/pic/rallloc.c (deassignLRs): prevent operand registers
7415           from being reused as result UNLESS it is known to work
7416
7417 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
7418
7419         * support/Util/dbuf.h: include <stddef.h> for size_t
7420         * .version: changed to version 2.5.2
7421
7422 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7423
7424         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
7425
7426 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7427
7428         * src/hc08/gen.c (genMinus): fixed bug #1241835,
7429           (genModOneByte): removed needless psha/pula
7430
7431 2005-07-22 Raphael Neider <rneider AT web.de>
7432
7433         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
7434           have PIC14 handled like PIC16, fixes broken pic14 linker calls
7435         * src/pic/gen.c (resolveIfx): do not "invent" labels
7436         * (genSkipc): changed to positive logic
7437         * (genSkipCond): removed as no longer needed
7438         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
7439           backport from PIC16
7440         * (genLeftShift): check operands are in different registers
7441         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
7442           INCF does not update CARRY...
7443         * src/pic/main.c: fixed _linkCmd
7444         * src/pic/pcode.c (unlinkpCode): added inactive code
7445         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
7446           alive (do not assign result and operand overlapping registers)
7447
7448 2005-07-22 Raphael Neider <rneider AT web.de>
7449
7450         * src/pic/device.c (dump_sfr): replaced register declaration with
7451           call to emitSymbolToFile() to avoid duplicate symbols
7452         * (assignRelocatableRegisters): do not declare external symbols
7453         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
7454           right (take size of type, not etype)
7455         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
7456         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
7457         * (packRegsForAccUse): disabled assignment of WREG as
7458           the result reg to prevent occurence of just fixed #1235003,
7459           fixes #1242954
7460         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
7461           symbols (avoids duplicate symbols in .asm file)
7462         * (pic14emitRegularMap): use emitSymbolToFile()
7463         * src/pic/gen.c (aopOp): fixed spillLocation handling
7464         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
7465         * (genDataPointerSet): removed unneccessary variables/output
7466
7467 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
7468
7469         * as/mcs51/lkarea.c: enlarged codemap for banked memory
7470         * device/lib/mcs51/crtbank.asm: added # to 0x0F
7471
7472 2005-07-21 Raphael Neider <rneider AT web.de>
7473
7474         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
7475           architecture cannot handle them efficiently, fixes bug #1235003
7476         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
7477           check for empty sets before using them (fixes bug #1232190)
7478
7479 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
7480
7481         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
7482           (lnksect2): generate warnings for memory overlap
7483         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
7484           constseg to set the name of these segments so you can instruct the linker
7485           to place them in banks
7486         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
7487         * src/SDCCglobl.h: added MODEL_HUGE to enum,
7488           added code_seg and const_seg to options
7489         * src/SDCCglue.c (emitMaps): use options.const_seg,
7490           (createInterruptVect): put interrupt vectors in segment HOME,
7491           (glue): put HOME before static segment and put the main glue in HOME,
7492           (glue): use options.code_seg
7493         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
7494         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
7495           these segments so you can instruct the linker to place them in banks
7496           (linkEdit): use code_loc for HOME segment which should be the first
7497           segment in code memory now
7498         * src/SDCCmem.c: fixed more stuff like bug 1238386
7499         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
7500           (changePointer): don't change function pointers to code pointers for
7501           banked functions,
7502           (compareType): added exceptional check for banked function pointers
7503         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
7504         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
7505           after static in code memory
7506         * src/mcs51/gen.c: added aopLiteralLong prototype,
7507           (aopForSym): use getSize for functions,
7508           (genCall): generate banked calls over one trampoline __sdcc_banked_call
7509           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
7510           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
7511           the segment,
7512           (genPcall): use call for literal function pointers and generate banked
7513           calls over the one trampoline so there's only one place for the user to
7514           modify according to his/hers hardware,
7515           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
7516           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
7517         * src/mcs51/main.c: added keyword banked,
7518           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
7519         * support/Util/SDCCerr.c,
7520         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
7521           needed for passing the bank and address to the trampoline
7522         * device/lib/mcs51/crtbank.asm: added for bankswitching
7523         * device/lib/mcs51/Makefile: added crtbank
7524
7525 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7526
7527         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
7528           for fields at offset 0 of a struct or union as reported
7529           on 2005-07-07 in the developer mailing list.
7530
7531 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
7532
7533         * src/SDCCmem.c: fixed bug 1238386
7534
7535 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7536
7537         * src/mcs51/peeph.def: added labelrefcounting for peepholes
7538           (patch #1144962), added peephole 300, enabled 259.x
7539         * doc/sdccman.lyx: removed screenshot and provided link instead
7540
7541 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7542
7543         * doc/sdccman.lyx: added section about debugging with ddd
7544         * doc/figures/ddd_example.eps: screenshot of debugging session
7545
7546 2005-07-04 Raphael Neider <rneider AT web.de>
7547
7548         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
7549           like CODE pointers, fixes #1115683
7550         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
7551           call, fixes bugs #1232211, #1228110,
7552           fixed wrong casts to pCodeFlow from pCodeInstructions
7553
7554 2005-07-04 Raphael Neider <rneider AT web.de>
7555
7556         * src/pic/gen.c (popGet): changed assert to allow for
7557           bit operands
7558         * (popGetAddr): changed signature to provide
7559           an additional index, patched all call sites
7560         * (genCmpEq): handle literal-like operands correctly
7561         * (genAddrOf): added sanity checks on __code/__data pointers
7562         * (genAssign): added handling of symbols from __code section
7563         * (gencjne): do not generate code for comparisons whose result
7564           is neither stored nor used, fixes bug #1171114
7565         * (AccLsh, AccRsh): operate on operand instead of WREG
7566         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
7567           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
7568           by known count
7569         * rewrote complete shift-by-literal logic, commented unused
7570           functions out
7571         * (genConstPointerGet): get multiple bytes (if result size > 1),
7572           fixed handling of non-immediate addresses
7573         * (genPointerGet): handle CODE pointers like CONST pointers
7574         * (genpic14Code): insert C-SRC lines as Cource-pCodes
7575         * ({aop,op}_isLitLike): NEW, single place to decide whether an
7576           operand is to be treated as a literal or not
7577         * (mov2w,genPcall,genCmpEq),
7578           src/pic/genarith.c: use aop_isLitLike() to decide between
7579           literal/register contents
7580         * (addSign): added missing offset
7581         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
7582           only emit comment in debug-mode,
7583           use {aop,op}_isLitLike throughout the file
7584         * src/pic/glue.c: fix initializers for pointers (work in progress)
7585         * src/pic/pcode.c (get_op): honor index on _const symbols
7586         * ({reset,dump}pCodeStatistics): NEW, estimate code size
7587         * (dumppBlock): added pCode size estimation
7588         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
7589           check for IS_SYMOP before OP_SYMBOL'ing
7590         * fixed indentation, compacted switch-statements
7591         * (allocReg): find free register and allocate it instead of
7592           allocating new registers all the time
7593         * (deassignLRs): prevent POINTER_GET's from being assigned the same
7594           registers as its operands (necessary only for multibyte GETs)
7595
7596 2005-07-01 Raphael Neider <rneider AT web.de>
7597
7598         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
7599           debugging .asm-output macros FENTRY + FEXIT
7600         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
7601           way... I wonder...
7602         * (emitpComment): NEW, printf to pCode
7603         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
7604           offset handling
7605         * (popGetAddr): NEW, variant of popGet to access an immediates
7606           high(er) bytes instead of the n'th byte of memory they reference,
7607           replaced popGet with popGetAddr where neccessary
7608         * (genDataPointerGet): reactivated and fixed implementation
7609         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
7610           accesses
7611         * (genDataPointerSet): fixed multibyte assignments
7612         * (genpic14Code): fixed --i-code-in-asm handling
7613         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
7614         * (genPlus): fixed index-out-of-bounds error
7615         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
7616         * src/pic/ralloc.c: added debugging output macro FENTRY2
7617         * (spillThis): fixed indentation, enbraced for-body for clarity
7618         * (rematStr): commented out as now unused
7619         * (regTypeNum): commented out special spill case (overwrites
7620           arbitrary values)
7621         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
7622
7623 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
7624
7625         * doc/sdccman.lyx: documented sfr16/sfr32,
7626           added example for using storage class with function pointers
7627         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
7628
7629 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
7630
7631         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
7632         * device/lib/_itoa.c,
7633         * device/lib/_ltoa.c: optimized codesize
7634         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
7635           but don't know how to suppress the double warning.
7636         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
7637         * support/Util/SDCCerr.c,
7638         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
7639
7640 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
7641
7642         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
7643           fixed old K&R prototypes
7644         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
7645         * device/lib/_gptrget.c,
7646         * device/lib/_gptrgetc.c,
7647         * device/lib/_gptrput.c: changed versions for new memory indicator values,
7648           also new versions for small generic pointers and banked generic pointers
7649         * src/port.h: added const_name
7650         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
7651         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
7652         * src/SDCCcse.c (findPrevIc): check all associative operators
7653         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
7654         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
7655         * src/SDCCmem.c: updated comments,
7656           set far-space to 0 for pdata, results in optimized code
7657         * src/SDCCmem.h: added macro CONST_NAME
7658         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
7659           moving the info into the highest bits, see also gptrget/gptrput
7660         * src/src.dsp: added sdcc.ico to project files
7661         * src/avr/gen.c (genCast): fixed bug 0x%d
7662         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
7663         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
7664           relation between ptr_type and DCL_TYPE,
7665           (genCast): fixed bug 0x%d
7666         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
7667           (CODE)" for const_name
7668         * src/hc08/gen.c (genCast): fixed bug 0x%d
7669         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
7670           (hc08_port): added "CONST (CODE)" for const_name
7671         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
7672           (aopForRemat, adjustArithmeticResult): disconnected direct relation
7673           between ptr_type and DCL_TYPE,
7674           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
7675           operand* and took AOP() inside function so sfr-ness can be checked,
7676           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
7677           new prototype,
7678           (genFunction, genEndFunction): optimized stack setup,
7679           (genMinus): optimized for literals with ending zeroes (in bytes),
7680           (genCast): fixed bug 0x%d
7681         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
7682           (mcs51_port): added "CONST (CODE)" for const_name
7683         * src/mcs51/peeph.def: made rule 226 more generic
7684         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
7685         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
7686         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
7687         * src/z80/main.c (z80_port): added NULL for const_name,
7688           (gbz80_port): added NULL for const_name
7689         * support/regression/tests/bug663539.c,
7690         * support/regression/tests/sfr16.c: new tests
7691
7692 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7693
7694         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
7695
7696 2005-06-24 Raphael Neider <rneider AT web.de>
7697
7698         * device/lib/pic16/libdev/pic18f[68][567]20.c:
7699           corrected typos...
7700         * device/include/pic16/signal.h: added USBIF
7701           and SIG_USB
7702
7703 2005-06-24 Raphael Neider <rneider AT web.de>
7704
7705         * device/lib/pic16/libdev/pic18f2455.c,
7706           device/include/pic16/pic18f2455.h: NEW
7707         * device/include/pic16/pic18fregs.h,
7708           device/lib/pic16/pics.all,
7709           src/pic16/device.c: added 18f2455
7710         * device/lib/pic16/libdev/pic18f[68][567]20.c,
7711           device/include/pic16/{pic18f[68][567].h,usart.h}:
7712           replaced MULTIPLE_USARTS define with more relaible
7713           compatibility sfrs (for USART access)
7714
7715 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
7716
7717         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
7718           and the output asm file line is printed on two lines.
7719
7720 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7721
7722         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
7723           BGT, BLE, BHI, and BLS instructions
7724         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
7725           genCmpEq): removed
7726         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
7727           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
7728           fixes bug #1216342
7729         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
7730
7731 2005-06-15 Raphael Neider <rneider AT web.de>
7732
7733         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
7734         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
7735         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
7736           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
7737           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
7738
7739 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7740
7741         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
7742           Marcel Telka in bug #1215704
7743
7744 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
7745
7746         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
7747           located in shared memory bank.
7748
7749 2005-05-31 Raphael Neider <rneider AT web.de>
7750
7751         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
7752           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
7753           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
7754
7755 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
7756
7757         * device/lib/_strncpy.c: fixed the fix
7758
7759 2005-05-26 Raphael Neider <rneider AT web.de>
7760
7761         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
7762           initializers with \0, bug #1208187
7763         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
7764           intializers with \0, bug #1208187
7765
7766 2005-05-26 Raphael Neider <rneider AT web.de>
7767
7768         * src/pic16/glue.c (pic16_printIvalChar): fixed string
7769           initializers with \0, bug #1208187
7770         * src/pic16/main.c (_process_pragma): added sanity checks
7771           for stack position and size, emit warnings when appropriate
7772
7773 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
7774
7775         * device/lib/_strncpy.c: fixed not filling with \0
7776
7777 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7778
7779         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
7780           createFunction),
7781         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
7782           compound_statement),
7783         * src/SDCCsymt.h,
7784         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
7785
7786 2005-05-24 Raphael Neider <rneider AT web.de>
7787
7788         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
7789
7790 2005-05-24 Raphael Neider <rneider AT web.de>
7791
7792         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
7793           TRISE definitions, closes bug #1162453
7794
7795 2005-05-22 Raphael Neider <rneider AT web.de>
7796
7797         * src/pic16/main.c (_process_pragma): check for missing
7798           arguments to pragmas code and udata
7799         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
7800           consistency fixes to match other headers (thanks to Jim Paris)
7801         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
7802
7803 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
7804
7805         * src/SDCCicode.c (isOperandEqual): fixed missing ;
7806
7807 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
7808
7809         * support/regression/tests/bug1198642.c: new test
7810         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
7811         * src/SDCCcse.c (findPrevIc): added comment, please have a look
7812         * support/scripts/resource.h,
7813         * support/scripts/resource.rc,
7814         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
7815         * support/scripts/sdcc.ico: added 32x32 icon
7816
7817 2005-05-18 Raphael Neider <rneider AT web.de>
7818
7819         * device/lib/pic16/libdev/pic18f*.c,
7820         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
7821           keywords to "__sfr" and "__at (X)"
7822         * device/include/pic16/pic18fregs.h: added pic18f4520
7823         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
7824           #1203088 (MPLAB compatibility)
7825
7826 2005-05-17 Raphael Neider <rneider AT web.de>
7827
7828         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
7829         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
7830         * device/lib/pic16/pics.all: added new devices
7831         * src/pic16/device.c: added support for pic18f4520
7832
7833 2005-05-16 Raphael Neider <rneider AT web.de>
7834         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
7835         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
7836         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
7837           convenience function for bit access
7838
7839 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7840
7841         * device/lib/printf_large.c: fixed bug 1193299
7842         * support/regression/tests/bug1057979.c: added test %3.3s
7843
7844 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7845
7846         * device/include/mcs51/8051.h,
7847         * device/include/mcs51/8052.h: made parseable with lint
7848         * device/include/mcs51/lint.h: added include file for (sp)lint
7849         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
7850         * doc/cdbfileformat.lyx,
7851         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
7852
7853 2005-05-14 Raphael Neider <rneider AT web.de>
7854
7855         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
7856         * device/lib/pic16/libc/stdlib/itoa.c (new)
7857         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
7858         * device/lib/pic16/libio/Makefile: exclude subdir according to
7859           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
7860         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
7861         * src/pic16/gen.c (genFunction): prevent annoying warning
7862         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
7863           nameclashes on BeOS
7864         * support/cpp2/cppmain.c (cpp_output_string): new
7865         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
7866           fixes bug 1116802
7867
7868 2005-05-13 Borut Razem <borut.razem AT siol.net>
7869
7870         * src/SDCCmain.c (linkEdit): fixed bug 1195202
7871
7872 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7873
7874         * .version: changed to version 2.5.1; back to bleeding edge development
7875
7876 2005-05-11 Borut Razem <borut.razem AT siol.net>
7877
7878         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
7879           generate PDF version 1.3 documents
7880
7881 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7882
7883         * .version: changed to version 2.5.0
7884
7885 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7886
7887         * doc/sdccman.lyx: updated weblinks, index and smaller updates
7888
7889 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7890
7891         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
7892         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
7893         well as many smaller updates.
7894         * .version: changed to version 2.5.0-pre1
7895
7896 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7897
7898         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
7899
7900 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
7901
7902         * support/regression/tests/bug1185672.c: added
7903         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
7904           bug 1185672
7905         * src/mcs51/gen.c (genCall): added comments, made it look safer
7906         * src/mcs51/gen.c (genEndFunction): simplified
7907
7908 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
7909
7910         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
7911
7912 2005-04-14 Borut Razem <borut.razem AT siol.net>
7913
7914         * fixed bug 1045046 - SIGSEGV with really simple code?:
7915           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
7916           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
7917
7918 2005-04-14 Borut Razem <borut.razem AT siol.net>
7919
7920         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
7921           src/pic16/device.h: temporarily disabled experimental #inline pragma
7922           for 2.5.0 release
7923
7924 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
7925
7926         * device/include/z80/stdio.h,
7927         * device/include/z80/string.h: removed these highly incomplete files so
7928           SDCC can use the default ones in device/include/
7929
7930 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7931
7932         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
7933         gcc warning.
7934         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
7935         fix sdcpp warnings.
7936
7937 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
7938
7939         * device/include/malloc.h: removed redundant __reentrant prototypes
7940         * device/lib/_mullong.c: added working xstack variant in asm (C version
7941           doesn't pass regression tests)
7942         * device/lib/bpx.c: used __data and made bpx char for mcs51
7943         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
7944           (createFunction): fixed bug with xstackPtr
7945         * src/SDCCcse.c: corrected comments
7946         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
7947           (killDeadCode, eBBlockFromiCode): removed unused code
7948         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
7949           corrected comments
7950         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
7951           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
7952           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
7953           (genModOneByte): fixed warning in MSVC
7954         * src/mcs51/main.c (): added comments
7955         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
7956
7957 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
7958
7959         * src/SDCCmain.c (linkEdit): oops, changed one line too many
7960
7961 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
7962
7963         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
7964
7965 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
7966
7967         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
7968         characters arrays of larger size than the declared one.
7969
7970 2005-04-10 Borut Razem <borut.razem AT siol.net>
7971
7972         * src/pic/gen.c (genInline),
7973           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
7974           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
7975           (findNextInstruction), (findPrevInstruction),
7976           (findInstructionUsingLabel),
7977           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
7978         * src/pic/pcode.c (findLabel): added missing '\n'
7979         * src/src.dsp: added SDCCdwarf2.c to the project
7980
7981 2005-04-09 Borut Razem <borut.razem AT siol.net>
7982
7983         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
7984
7985 2005-04-08 Raphael Neider <rneider AT web.de>
7986
7987         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
7988           into the chain after a given one) and mergeDefmapSymbols (combine
7989           defmap entries for each symbol per pcode)
7990         * (createDefmap): have defmap entries merged in the end
7991         * (defmapReplaceSymRef): split defmap entries covering two accesses to
7992           a symbol before replacing one access type's symbol, merge symbols in
7993           the end (replacement symbol might already have an entry)
7994         * (assignValnums): keep reference to written WREG intact
7995
7996 2005-04-08 Raphael Neider <rneider AT web.de>
7997
7998         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
7999           Alpha)
8000
8001 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
8002
8003         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
8004         bytes
8005
8006 2005-04-07 Raphael Neider <rneider AT web.de>
8007
8008         * device/include/pic16/usart.h: added compatibility defines for
8009           devices with more than one USART
8010         * device/include/pic16/pic18f[68][567]20.h: activated above defines
8011
8012 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8013
8014         * device/lib/Makefile.in: updated for port specific include
8015
8016 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8017
8018         * support/regression/ports/mcs51/spec.mk: added mcs51 include
8019
8020 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
8021
8022         * device/include/8051.h,
8023         * device/include/8052.h,
8024         * device/include/at89S8252.h,
8025         * device/include/at89c55.h,
8026         * device/include/at89x051.h,
8027         * device/include/at89x51.h,
8028         * device/include/at89x52.h,
8029         * device/include/mcs51reg.h,
8030         * device/include/reg51.h,
8031         * device/include/reg764.h,
8032         * device/include/regc515c.h,
8033         * device/include/sab80515.h: (re)moved these 12 files
8034         * device/include/mcs51/8051.h,
8035         * device/include/mcs51/8052.h,
8036         * device/include/mcs51/at89S8252.h,
8037         * device/include/mcs51/at89c55.h,
8038         * device/include/mcs51/at89x051.h,
8039         * device/include/mcs51/at89x51.h,
8040         * device/include/mcs51/at89x52.h,
8041         * device/include/mcs51/mcs51reg.h,
8042         * device/include/mcs51/reg51.h,
8043         * device/include/mcs51/reg764.h,
8044         * device/include/mcs51/regc515c.h,
8045         * device/include/mcs51/sab80515.h: and added them here
8046
8047 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
8048
8049         * device/include/stdarg.h: changed SDCC specific keywords to double
8050           underlined form.
8051         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
8052           mcs51 and ds390.
8053         * device/include/hc08/mc68hc908gp32.h,
8054         * device/include/hc08/mc68hc908jb8.h,
8055         * device/include/hc08/mc68hc908jkjl.h,
8056         * device/include/hc08/mc68hc908qy.h: fixed comments
8057         * device/include/mcs51/README: updated
8058         * device/include/mcs51/c8051f120.h: added PINRSF
8059         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
8060         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
8061           amidst code. Also inline is not supported.
8062
8063 2005-04-06 Raphael Neider <rneider AT web.de>
8064
8065         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
8066         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
8067           callers stack/frame pointers
8068
8069 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
8070
8071         * device/include/pic16/usart.h: added, missing in previous commit,
8072         * device/include/pic16/adc.h: fixed typo,
8073         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
8074         commit,
8075         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
8076         <p18fxxx.inc>
8077         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
8078         uninitialized because a bug appears with gplink
8079         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
8080         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
8081         complains for unrecognised option
8082
8083 2005-04-05 Raphael Neider <rneider AT web.de>
8084
8085         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
8086           structs as well (using memcpy)
8087         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
8088           on ISRs (GOTO has no label)
8089         * src/pic16/device.h: added OF_OPTIMIZE_DF
8090         * src/pic16/main.c: added compiler switch --optimize-df to enable the
8091           new data flow analysis/optimization
8092         * src/pic16/pcode.c: added (prototypes for and implementation of)
8093           dataflow analysis functions, fixed pCodeInstructions' inCond and
8094           outCond values, made RCALL a branch instruction
8095         * (pic16_unlinkpCode): keep C line if possible
8096         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
8097           C line moved if possible
8098         * (pic16_getRegFrompCodeOp): NEW, improved version of...
8099         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
8100           to use new pic16_getRegFrompCodeOp (works for more SFRs)
8101         * (pic16_BuildFlow): fixed skip instructions with label (did not start
8102           new flow)
8103         * (pic16_getJumptabpCode): NEW, needed in...
8104         * (LinkFlow): fixed handling of jumptables, calls and conditional
8105           branches
8106         * (pic16_InsertCommentAfter): NEW
8107         * (pic16_pCodeReplace): made verbose and flow preserving
8108         * (AnalyzeFlow): added call to data flow analysis
8109         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
8110         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
8111         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
8112
8113 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8114
8115         * src/SDCCast.c (decorateType): fixed bug #1105626
8116
8117 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
8118
8119         * device/include/asm/pic16/features.h,
8120         * pic18f*.h headers,
8121         * device/include/pic16/adc.h,
8122         * device/include/pic16/delay.h,
8123         * device/include/pic16/i2c.h,
8124         * device/include/pic16/malloc.h,
8125         * device/include/pic16/stdio.h,
8126         * device/include/pic16/stdlib.h,
8127         * device/include/pic16/string.h,
8128         * device/lib/pic16/libc/stdio/printf_tiny.c,
8129         * device/lib/pic16/libc/stdio/printf_small.c,
8130         * device/lib/pic16/libc/stdio/strmgpsim.c,
8131         * device/lib/pic16/libc/stdio/strmmssp.c,
8132         * device/lib/pic16/libc/stdio/strmusart.c,
8133         * device/lib/pic16/libc/stdio/vfprintf.c,
8134         * device/lib/pic16/libc/stdlib/ltoa.c,
8135         * device/lib/pic16/libc/stdlib/putchar.c,
8136         * device/lib/pic16/libc/stdlib/x_ftoa.c,
8137         * device/lib/pic16/libc/stdlib/memchrpgm.c,
8138         * device/lib/pic16/libc/stdlib/memchrram.c,
8139         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
8140         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
8141         * device/lib/pic16/libio/adc/adcbusy.c,
8142         * device/lib/pic16/libio/adc/adcread.c,
8143         * device/lib/pic16/libio/adc/adcsetch.c,
8144         * device/lib/pic16/libio/usart/ubaud.c,
8145         * device/lib/pic16/libio/usart/ubusy.c,
8146         * device/lib/pic16/libio/usart/udrdy.c,
8147         * device/lib/pic16/libio/usart/uopen.c,
8148         * device/lib/pic16/libio/usart/uputc.c,
8149         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
8150         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
8151         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
8152         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
8153         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
8154         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
8155         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
8156         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
8157         specific keywords to double underlined form,
8158         * device/lib/pic16/libc/Makefile.rules,
8159         * device/lib/pic16/libsdcc/Makefile.rules,
8160         * device/lib/pic16/libm/Makefile,
8161         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
8162         to compile with C standard set in Makefile.common
8163         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
8164         rand.c and crc.c in compilation process,
8165         * device/lib/pic16/libsdcc/int/divuint.c,
8166         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
8167         `c' from signed to unsigned,
8168         * device/lib/pic16/startup/crt0.c,
8169         * device/lib/pic16/startup/crt0i.c,
8170         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
8171         keywords to double underlined form, bug fixes in _do_cinit function
8172         which prevented the correct initialization of the .idata segment,
8173         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
8174         core to enter a infinite loop
8175         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
8176
8177 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8178
8179         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
8180
8181 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8182
8183         * device/include/Makefile.in: add support for hc08 subdirectory
8184         * device/include/hc08/: new subdirectory
8185         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
8186         Lucas Loizaga, thanks!
8187         * device/include/hc08/mc68hc908qy.h,
8188         * device/include/hc08/mc68hc908gp32.h,
8189         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
8190         their own directory. Changed internal macro names to use the compiler
8191         reserved namespace. Changed SDCC specific keywords to double
8192         underlined form.
8193         * device/include/math.h,
8194         * device/include/malloc.h,
8195         * device/include/stdarg.h,
8196         * device/include/stdbool.h
8197         * device/include/string.h,
8198         * device/include/tinibios.h,
8199         * device/include/ds400rom.h,
8200         * device/include/8051.h,
8201         * device/include/8052.h,
8202         * device/include/80c51xa.h,
8203         * device/include/at89c55.h,
8204         * device/include/at89S8252.h,
8205         * device/include/at89x51.h,
8206         * device/include/at89x52.h,
8207         * device/include/ds80c390.h,
8208         * device/include/reg764.h,
8209         * device/include/regc515c.h,
8210         * device/include/sab80515.h,
8211         * device/include/mcs51/c8051f000.h,
8212         * device/include/mcs51/c8051f018.h,
8213         * device/include/mcs51/c8051f020.h,
8214         * device/include/mcs51/c8051f040.h,
8215         * device/include/mcs51/c8051f060.h,
8216         * device/include/mcs51/c8051f120.h,
8217         * device/include/mcs51/c8051f300.h,
8218         * device/include/mcs51/c8051f310.h,
8219         * device/include/mcs51/c8051f320.h,
8220         * device/include/mcs51/c8051f330.h,
8221         * device/include/mcs51/c8051f350.h,
8222         * device/include/z180.h: Changed SDCC specific keywords to double
8223         underlined form.
8224
8225 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
8226
8227         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
8228         18F4455,
8229         * (pic16_assignConfigWordValue): disable testing of configuration
8230         register value with config mask,
8231         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
8232         function with port->fun_prefix,
8233         * (genFunction): when generating a naked interrupt function never
8234         create an absolute segment placed in interrupt vector address, place
8235         the actual interrupt function at IVA instead, when an interrupt
8236         function is generated with unspecified interrupt then do not create
8237         the absolute section,
8238         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
8239         code for generating a call to generic pointer get/put function with
8240         a call to function pic16_callGenericPointer(),
8241         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
8242         the call to the generic pointer get/put functions with prefixing the
8243         function name with port->fun_prefix,
8244         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
8245         * src/pic16/main.c (_process_pragma): prefix function with
8246         port->fun_prefix,
8247         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
8248         calling assembler, old 18Fxxxx macro is deprecated,
8249         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
8250         PC_ASMDIR in while condition,
8251         * (findInstruction): add PC_ASMDIR in while condition,
8252         * (buildCallTree): prefix main with port->fun_prefix,
8253         * (pic16_pCode2str): fixed bug that didn't emit the memory access
8254         identifier for variable with banked access in instructions BTFSS,
8255         BTFSC, BCF, BSF, BTG
8256         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
8257         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
8258         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
8259         perform optimization when enviroment variable NO_REG_OPT is set,
8260         * (insideLRBlock): NEW, return 1 if register is inside an
8261         INF_LOCALREGS block,
8262         * (RemoveRegFromLRBlock): remove a register that is completely
8263         eliminated by register optimization, but it is still left in local
8264         register store/restore in/from stack block,
8265         * (Remove2pcodes): after removing register, check to see if it
8266         should be removed from local register store/restore in/from stack
8267         block,
8268         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
8269         DUMMY_READ_VOLATILE,
8270
8271         * device/include/pic16/adc.h: minor prototype modifications and
8272         update,
8273         * device/include/pic16/malloc.h: added GPL notice various
8274         modifications,
8275         * device/include/pic16/stdint.h: NEW, standard header for ints
8276         * device/include/pic16/delay.h: NEW, header for delay functions,
8277         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
8278         delay1mtcy,
8279         * device/include/pic16/signal.h: NEW, header providing helper macros
8280         for implementing signal handlers,
8281         * device/include/pic16/stdio.h: added prototypes for functions,
8282         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
8283         prototypes for stdin and stdout, added macro PUTCHAR to
8284         automatically implement putchar function prototype,
8285         * device/include/pic16/usart.h: modified and updated USART library,
8286         * device/lib/pic16/libio/adc/,
8287         * device/lib/pic16/libio/i2c: some modifications to improve library
8288         performance,
8289         * device/lib/pic16/libc/stdio/: modifications for the new printf*
8290         family of functions,
8291         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
8292         family of functions and other sources,
8293         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
8294         of the PIC18Fxx[28] devices,
8295         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
8296         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
8297         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
8298         _do_cinit function, because the previous failed when local variables
8299         where not placed in the same memory bank,
8300         * device/lib/pic16/libsdcc/char/: various modifications to improve
8301         library performance,
8302         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
8303         information on the new functions of the c library and more...
8304
8305 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8306
8307         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
8308
8309 2005-03-26 Raphael Neider <rneider AT web.de>
8310
8311         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
8312           if condition == CARRY)
8313         * (genCmp): adapted to new genSkipc semantics
8314         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
8315           on rIfx (genCmp was broken)
8316
8317 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8318
8319         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
8320         * src/z80/main.c (_keywords[]),
8321         * src/SDCCglobal.h (struct options),
8322         * src/SDCC.y,
8323         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
8324         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
8325         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
8326         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
8327         always available in leading double underscore form. The C99 support is
8328         mostly missing, but it's a start.
8329         * support/regression/tests/bug-227710.c: fixed nonconforming use of
8330         reserved identifier "__data".
8331
8332 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
8333
8334         * src/mcs51/peeph.def: fixed bug 1170013
8335
8336 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
8337
8338         * device/include/mcs51reg.h: fixed bug 842007
8339
8340 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8341
8342         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
8343         last time.
8344
8345 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8346
8347         * src/port.h (struct PORT),
8348         * src/avr/ralloc.c (avr_assignRegisters),
8349         * src/avr/main.c,
8350         * src/ds390/ralloc.c (ds390_assignRegisters),
8351         * src/ds390/main.c,
8352         * src/hc08/ralloc.c (hc08_assignRegisters),
8353         * src/hc08/main.c,
8354         * src/mcs51/ralloc.c (mcs51_assignRegisters),
8355         * src/mcs51/main.c,
8356         * src/pic/ralloc.c (pic14_assignRegisters),
8357         * src/pic/main.c,
8358         * src/pic16/ralloc.c (pic16_assignRegisters),
8359         * src/pic16/main.c,
8360         * src/xa51/ralloc.c (xa51_assignRegisters),
8361         * src/xa51/main.c,
8362         * src/z80/ralloc.c (z80_assignRegisters),
8363         * src/z80/ralloc.h,
8364         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
8365         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
8366         * src/SDCCcse.h,
8367         * src/SDCCdflow.c (computeDataFlow),
8368         * src/SDCCdflow.h,
8369         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
8370         * src/SDCCloop.h,
8371         * src/SDCCcflow.c (*),
8372         * src/SDCCcflow.h,
8373         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
8374         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
8375         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
8376         immedDom() returning wrong block; probably fixes bug #1160833)
8377
8378 2005-03-20 Borut Razem <borut.razem AT siol.net>
8379
8380         * support/scripts/inc2h.pl: WIN32 port
8381
8382 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
8383
8384         * device/lib/makefile.in: added abs.c and labs.c
8385
8386 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
8387
8388         * device/include/stdint.h: added
8389         * device/lib/abs.c: added
8390         * device/lib/labs.c: added
8391         * device/include/stdlib.h: added abs() and labs() prototypes
8392         * device/lib/libsdcc.lib: added abs and labs
8393         * device/include/float.h,
8394         * device/lib/_fsmul.c,
8395         * device/lib/printf_fast.c,
8396         * device/lib/printf_tiny.c: updated comments
8397
8398 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8399
8400         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
8401         bug #1164313
8402
8403 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8404
8405         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
8406         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
8407
8408 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
8409
8410         * device/lib/printf_large.c: removed inline assembly for portability and
8411           readability. Use printf_fast if speed or size are more important.
8412         * src/pic16/gen.c: removed conditions around use of DEBUGpc
8413         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
8414
8415 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
8416
8417         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
8418         prevent compiler warning
8419
8420 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
8421
8422         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
8423         moved to level 0 and declared as static. Also they are explicit
8424         placed in access bank. This was necessery because some times they
8425         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
8426         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
8427         optimizations. Currently only compare to unsigned char is implemented,
8428         * src/pic16/gen.c: added fReturnIdx array,
8429         * (struct resolvedIfx) is moved to gen.h and made public,
8430         * (struct _G): added sregsAlloc and sregsAllocSet fields,
8431         * (aopForSym): added an optimization to directly store in stack of
8432         the operand of a SEND iCode,
8433         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
8434         but as registers instead (AOP_REG) using the fReturnIdx array,
8435         * (pic16_freeAsmop): remove the freed register from the
8436         _G.sregsAlloc field,
8437         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
8438         a compare of 'WREG',
8439         * (pic16_popGetTempRegCond): changed function prototype, now
8440         function takes also a bitVector argument v which holds the current
8441         set of registers that are allocated for stack access by aopForSym,
8442         registers allocated in aopForSym for accessing stack symbols are not
8443         any more part of the functions usedRegs field,
8444         * (genCall): some times aopOp is called for a stack variable to be
8445         send, aopForSym might perform the push, if this is true make sure
8446         that genCall doesn't push the variable twice by testing _G.resDirect,
8447         * (genFunction): changed testing for unspecified interrupt number
8448         from 256 to INTNO_UNSPEC,
8449         * modified selection scheme of frame pointer generation. Previously
8450         if function did use local registers a frame pointer was generated,
8451         now a frame pointer is generated only if function has arguments
8452         (that need PLUSW2 register access), or has stack arguments, or the
8453         compiler is not instructed to omit the frame pointer,
8454         * (genEndFunction): before restoring local registers that were saved
8455         in the function preamble, also restore the registers that *might*
8456         have been allocated for stack access,
8457         * (genRet): removed some old comments,
8458         * (genCmp, the active (RN's) version): added a call to the
8459         pic16_genCmp_special function to perform the compare with a more
8460         robust and optimized way,
8461         * (genInline): a feature has been added in inline code generation,
8462         which allows a wildcard variable substitution when writing inline
8463         assembly. Code is incomplete and experimental therefore undocumented,
8464         * (genCast): changed order of aopOp for result and right to allow
8465         aopForSym to directly load the result if possible,
8466         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
8467         perform an optimized compare on some selected special occasions,
8468         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
8469         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
8470         generate an IVT any more,
8471         * src/pic16/main.c (pic16_optionsTable): added command line option
8472         --optimize-cmp,
8473         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
8474         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
8475         macros,
8476         * src/pic16/NOTES: Raphael Neider added in list of active developers
8477         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
8478         jumptable_end to prevent bug #,
8479         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
8480         inCond and outCond fields,
8481         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
8482         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
8483         turn off register spilling,
8484         * (packRegsForOneUse): synced with other ports' versions although it
8485         is not used currently,
8486         * (pic16_packRegisters): added an optimization while reading
8487         structure bitfields, some registers may be saved (malloc code is
8488         decreased by 80 bytes)
8489
8490 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
8491
8492         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
8493         left is a bitfield, if yes, then don't optimize assignment. Perhaps
8494         this can be optimized more?
8495
8496 2005-03-10 Raphael Neider <rneider AT web.de>
8497
8498         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
8499           genNearPointerGet): (hopefully) fixed access to bitfields via
8500           pointers (p->bitN = x; and x = p->bitN; failed)
8501
8502 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
8503
8504         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
8505
8506 2005-03-09 Raphael Neider <rneider AT web.de>
8507
8508         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
8509
8510 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
8511
8512         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
8513         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
8514           (regTypeNum): set REG_BIT type if necessary
8515         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
8516         * support/regression/tests/critical.c: check bug 1144613
8517
8518 2005-03-02 Raphael Neider <rneider AT web.de>
8519
8520         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
8521
8522 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8523
8524         * src/avr/ralloc.c (serialRegAssign),
8525         * src/ds390/ralloc.c (serialRegAssign),
8526         * src/hc08/ralloc.c (serialRegAssign),
8527         * src/mcs51/ralloc.c (serialRegAssign),
8528         * src/pic/ralloc.c (serialRegAssign),
8529         * src/pic16/ralloc.c (serialRegAssign),
8530         * src/xa51/ralloc.c (serialRegAssign),
8531         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
8532
8533 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
8534
8535         * src/SDCCast.c (decorateType): fixed bug 1124787
8536
8537 2005-02-20 Hubert Sack <sack AT digiplan.de>
8538         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8539
8540         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
8541         patch #1121755
8542
8543 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8544
8545         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
8546         to keep the correct label reference count when adding/removing references
8547         to labels. A peephole file using this is appended to patch #1144962.
8548
8549 2005-02-14 Raphael Neider <rneider AT web.de>
8550
8551         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
8552         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
8553         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
8554           retrievals of result operand's value on assignment
8555
8556 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
8557
8558         * device/include/pic16/string.h: modified prototype for memccpy()
8559         to memccpy(void *, void *, char, size_t)
8560         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
8561         check whether to omit frame pointer or not,
8562         * (genInline): convert all occurences of "\n" to LF in inline
8563         assembler blocks, this helps formatting the inline text,
8564         * (pic16_loadFSR0): modified prototype,
8565         * (genNearPointerGet, genNearPointerSet): reorganization of code,
8566         removed some 8051 legacy code,
8567         * (genPackBits): enabled handling bitfields exceeding one byte in size,
8568         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
8569         before allocating temporary registers in functions,
8570
8571 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
8572
8573         * support/regression/tests/bitvars.c: corrected the "fix"
8574
8575 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
8576
8577         * support/regression/tests/bitvars.c,
8578         * support/regression/tests/bitwise.c,
8579         * support/regression/tests/rotate.c: "fixed" problems on Alpha
8580
8581 2005-02-10 Raphael Neider <rneider AT web.de>
8582
8583         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
8584           different size for Alpha
8585         * src/pic16/gen.c (genCmpEq) : improved compare with 0
8586
8587 2005-02-09 Raphael Neider <rneider AT web.de>
8588
8589         * src/SDCC.lex(doPragma) : save and restore warning options as well
8590           (also added new stack plus clone- and copyAndFreeSDCCERRG())
8591         * have #pragma less_pedantic set the errorlevel to WARNING
8592           (fixes #1117001)
8593         * (cloneOptimize) : fixed wrong malloc's size
8594         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
8595           facilitate correct handling of #pragma (save|restore)
8596
8597 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
8598
8599         * src/mcs51/gen.c: removed non-standard C nameless struct/union
8600
8601 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
8602
8603         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
8604
8605 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
8606
8607         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
8608
8609 2005-02-02 Raphael Neider <rneider AT web.de>
8610
8611         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
8612         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
8613         * (pic16_storeForReturn): fixed to allow returning function pointers
8614         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
8615         * device/include/pic16/{stddef.h,stdbool.h}: added
8616
8617 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
8618
8619         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
8620
8621 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
8622
8623         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
8624         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
8625          appeared to be required
8626
8627 2005-01-31 Borut Razem <borut.razem AT siol.net>
8628
8629         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
8630           include/mcs51 and include/z80 directories to the package
8631
8632 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8633
8634         * src/hc08/gen.c (genFunction): fixed bug #1112752
8635
8636 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8637
8638         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
8639
8640 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8641
8642         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
8643
8644 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
8645
8646         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
8647
8648 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
8649
8650         * device/include/c8051fxxx.h: removed these 6 files
8651         * device/include/mcs51/c8051fxxx.h: added these 11 new files
8652
8653 2005-01-26 Raphael Neider <rneider AT web.de>
8654
8655         * src/pic16/gen.c (genAssign): fixed assignment from longs
8656           in codespace (were cut to three bytes)
8657         * (genDummyRead): implemented (except for CODESPACE...),
8658           fixed bug #1108575
8659         * src/pic16/glue.c (emitStatistics): beautified
8660         * device/lib/pic16/libm/Makefile: added include path
8661
8662 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8663
8664         * src/z80/gen.c (aopPut): fixed bug #1103902
8665
8666 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8667
8668         * device/lib/expf.c: fixed bug #1095792
8669
8670 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
8671
8672         * device/lib/pic16/libm: added Math library sources
8673
8674 2005-01-24 Raphael Neider <rneider AT web.de>
8675
8676         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
8677           to enable upcast to pCodeOpReg2 (there is no type tag to
8678           differenciate the two and pic16_popGet2p cast into PCOR2)
8679         * src/pic16/main.c (_process_pragma): fixed another malloc bug
8680           (sizeof(sectNames) changed to sizeof(sectName))
8681           Both patches fix segfaults under MinGW.
8682
8683 2005-01-23 Raphael Neider <rneider AT web.de>
8684
8685         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
8686           Safe_[mc]?alloc()'ed variables
8687         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
8688           of (byte sized) temporaries (assign them to WREG for now)
8689         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
8690           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
8691           this might fix SIGSEGVs on MinGW...
8692         * src/SDCCopt.c (killDeadCode): restored original behaviour
8693           (volatile operands might get thrown away though)
8694
8695 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
8696
8697         * src/pic16/gen.c: fixed bug #1106975,
8698         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
8699         pointer update, INTCON is saved, global interrupts are disabled and
8700         restored after updateing TOS.
8701         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
8702         * added function attribute 'shadowregs' to take advantage of shadow
8703         registers,
8704         * added function attribute 'wparam' as an alternative to the wparam
8705         pragma,
8706         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
8707         user declares a non-ISR function as 'shadowregs',
8708         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
8709
8710 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
8711
8712         * .version: bumped version number to 2.4.8
8713         * device/lib/pic16/pics.all: list of PIC18F devices supported by
8714         pic16 port,
8715         * device/lib/pic16/libio/i2c/: I2C module support library,
8716         * device/include/pic16/i2c.h: I2C support library header,
8717         * device/lib/pic16/libc/stdio/: standard IO support sources,
8718         * (printf_small.c): printf_small() source, supports float print,
8719         * (printf_tiny.c): printf_tiny() source, does not support floats,
8720         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
8721         enable global optimizations for entire library source, other
8722         Makefiles in the source tree are also modified to reflect this,
8723         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
8724         function,
8725         * doc/sdccman.lyx: updated to reflect new changes,
8726         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
8727         sym->onStack if-case,
8728         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
8729         sbit, idata, _idata, xdata, _xdata,
8730         * added pragma library, to link an external library, (see doc),
8731         * removed command line options, --pomit-config-words, --pomit-ivt,
8732         --pleave-reset-vector,
8733         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
8734         when calling assembler to reflect memory model used, also define
8735         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
8736         reflect stack model used,
8737         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
8738         on stack return NULL,
8739
8740 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
8741
8742         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
8743           of the operands is volatile. Fixes #1020220
8744
8745 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
8746
8747         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
8748         * (OptimizeRegUsage): make sure that there is really no other flow where
8749           the first pCode is used
8750
8751 2005-01-22 Raphael Neider <rneider AT web.de>
8752
8753         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
8754           to fix #1106967 (pCode->seq are not set up correctly)
8755
8756 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8757
8758         * src/SDCCglue.c (glue): make sure code area is declared before the
8759         static initialization area.
8760
8761 2005-01-21 Raphael Neider <rneider AT web.de>
8762
8763         * device/lib/Makefile.in: fixed test for pic16 install dir
8764         * device/lib/pic16/*/Makefile*: modified compile flags to enable
8765           optimizations
8766         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
8767           added --optimize-goto compiler switch and pragma wparam documentation
8768         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
8769         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
8770           and PRODH closing bug #1071770 (peephole optimizer)
8771
8772 2005-01-19 Raphael Neider <rneider AT web.de>
8773
8774         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
8775           cmdLine buffers (used when calling sdcpp...) are large enough
8776           (MAX_PATH=256 truncates arguments leading to system halts when
8777           used in MinGW...)
8778         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
8779         * (genUminus): rewritten to for efficiency
8780         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
8781           used uninitialized in some cases)
8782         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
8783           copy the third byte from the int -- now assumes 0x80 (data memory)
8784         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
8785           operands (genAddLit expects the iCode's operands to swapped as
8786           well), fixed leftover bytes (crashed for short left operands)
8787         * (pic16_genMinusDec): performance improvements, removed false
8788           PIC14 emitSKPNCs
8789         * (pic16_genMinus): fixed to cope with differently sized operands
8790         * src/pic16/glue.c (pic16_glue): added new banksel optimization
8791           for --obanksel > 1
8792         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
8793         * src/pic16/graph.[ch]: implementation of directed graphs, used by
8794           new banksel optimization
8795         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
8796           analysis for temporary registers (segfaults...)
8797         * src/pic16/peeph.def: added rule
8798
8799 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
8800
8801         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
8802         which converts a float number to its ASCII representation
8803         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
8804         functions to convert the fractional and integer part of a float to ASCII,
8805         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
8806         realloc.c): added _MALLOC_SPEC to explicit place variables in data
8807         ram
8808         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
8809         _STATMEM macros,
8810         * device/include/pic16/adc.h: added GPL info,
8811         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
8812         a pCodeOp as tested operand,
8813         * (genNearPointerGet): optimized bit testing, does not use
8814         intermediate register for bit value, test directly instead with
8815         BTFSS, BTFSC, works only for single bits,
8816         * (genpic16Code): dump the name of the iCode in the asm,
8817         * src/pic16/ralloc.c (decodeOp): removed static declaration and
8818         renamed to pic16_decodeOp,
8819         * (serialRegAssign): do not allocate a temporary register for iCode
8820         sequences that test a single bit for 1/0
8821
8822 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
8823
8824         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
8825         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
8826         access stack and frame pointers. They are initially assigned to
8827         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
8828         accessing SFRs. Updated all occurences of modification of stack or
8829         frame pointer in gen.c and pcode.c,
8830         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
8831         assigning of a literal value to pointers,
8832         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
8833         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
8834         selected
8835
8836 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8837
8838         * doc/sdccman.lyx: update documentation about stack pragma, added
8839         some info for stack memory models
8840
8841 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8842
8843         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
8844
8845 2005-01-08 Raphael Neider <rneider AT web.de>
8846
8847         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
8848           udata sections to fix bug #1097823
8849
8850 2005-01-05 Raphael Neider <rneider AT web.de>
8851
8852         * src/pic16/gen.c (genGenericShift): added handling of differently
8853           sized left operand and result
8854
8855 2005-01-04 Raphael Neider <rneider AT web.de>
8856
8857         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
8858         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
8859           to hold the condition bit)
8860         * added new version of genCmp (old code available via #define)
8861         * added new version of genShiftLeft/genShiftRight in a generic
8862           way, now supports shifting by negative values
8863         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
8864           shiftCount (expected by genGenericShift)
8865         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
8866         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
8867           dump
8868         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
8869           is an invalid literal too...)
8870
8871 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
8872
8873         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
8874         from Raphael Neider,
8875         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
8876         for 8-bit literals. This fixes some literal operands which are sign
8877         extended to 16-bits ints when instruction needs only 8-bits.
8878
8879 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
8880
8881         * device/lib/logf.c: added mcs51 assembly version
8882         * device/lib/expf.c: added mcs51 assembly version
8883         * device/lib/_logexpf.c: new shared asm code for expf and logf
8884         * device/include/math.h: add defines for assembly math library
8885         * device/lib/Makefile.in: build new _logexpf.c
8886         * device/lib/libfloat.lib: use new _logexpf.c
8887
8888 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
8889
8890         * src/pic/device.c
8891         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
8892           device types which have less than 0x7f registers.
8893
8894 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
8895
8896         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
8897
8898 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
8899
8900         * device/lib/printf_fast.c: only build on supported arch.
8901         * device/lib/printf_tiny.c: only build on supported arch.
8902         * device/lib/printf_fast_f.c: only build if asm float lib
8903         * device/lib/_fsget1arg.c: only build if asm float lib
8904         * device/lib/_fsget2args.c: only build if asm float lib
8905         * device/lib/_fsnormalize.c: only build if asm float lib
8906         * device/lib/_fsreturnval.c: only build if asm float lib
8907         * device/lib/_fsrshift.c: only build if asm float lib
8908         * device/lib/_fsswapargs.c: only build if asm float lib
8909         * device/include/stdio.h: don't provide print_fast,
8910           print_fast_f, print_tiny prototypes if --xstack used
8911
8912 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
8913
8914         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
8915         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
8916           to the SOURCES
8917
8918 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
8919
8920         * device/lib/printf_fast_f.c: same as printf_fast, but
8921           with floating point enabled
8922         * device/lib/printf_fast.c: minor tweaks
8923         * device/include/stdio.h: add printf_fast_f
8924
8925 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
8926
8927         * src/SDCCmain.c: make --float-reent default for mcs51
8928         * device/lib/_fsadd.c: added mcs51 assembly version
8929         * device/lib/_fssub.c: added mcs51 assembly version
8930         * device/lib/_fsmul.c: added mcs51 assembly version
8931         * device/lib/_fsdiv.c: added mcs51 assembly version
8932         * device/lib/_fseq.c: added mcs51 assembly version
8933         * device/lib/_fsneq.c: added mcs51 assembly version
8934         * device/lib/_fsgt.c: added mcs51 assembly version
8935         * device/lib/_fslt.c: added mcs51 assembly version
8936         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
8937         * device/lib/Makefile.in: add _fscmp to build
8938         * device/lib/libfloat.lib: add _fscmp to build
8939
8940 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
8941
8942         * device/lib/_fs2slong.c: added mcs51 assembly version
8943         * device/lib/_fs2sint.c: added mcs51 assembly version
8944         * device/lib/_fs2schar.c: added mcs51 assembly version
8945         * device/lib/_fs2ulong.c: added mcs51 assembly version
8946         * device/lib/_fs2uint.c: added mcs51 assembly version
8947         * device/lib/_fs2uchar.c: added mcs51 assembly version
8948         * device/lib/_slong2fs.c: added mcs51 assembly version
8949         * device/lib/_sint2fs.c: added mcs51 assembly version
8950         * device/lib/_schar2fs.c: added mcs51 assembly version
8951         * device/lib/_ulong2fs.c: added mcs51 assembly version
8952         * device/lib/_uint2fs.c: added mcs51 assembly version
8953         * device/lib/_uchar2fs.c: added mcs51 assembly version
8954         * device/include/float.h: added #define to select asm vs c
8955
8956 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
8957
8958         * device/lib/printf_fast.c: improvements to float output
8959         * device/include/float.h: add defines for assembly float library
8960         * device/lib/_fsget1arg.c: receive 1 float arg
8961         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
8962         * device/lib/_fsnormalize.c: normalize a float
8963         * device/lib/_fsreturnval.c: return float, various helper routines
8964         * device/lib/_fsrshift.c: right shift a float's mantissa
8965         * device/lib/_fsswapargs.c: swap 2 floats
8966         * device/lib/Makefile.in: build these 6 new files for mcs51
8967         * device/lib/libfloat.lib: add these 6 files to the library
8968
8969 2004-12-26 Borut Razem <borut.razem AT siol.net>
8970
8971         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
8972           built by gcc 3.4.2
8973
8974 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
8975
8976         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
8977           and fully reentrant and register bank neutral.
8978         * device/lib/printf_fast.c: added float (not enabled by default),
8979           added compact/slower integer (also not enabled by default),
8980           improved size/speed of fast integer code, other minor changes
8981         * device/include/stdio.h, device/lib/Makefile.in,
8982           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
8983
8984 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
8985
8986         * src/pic16/pcode.c: declaring variables other than at the start of a
8987           block is not supported in C by VC6.
8988
8989 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
8990
8991         * applied a previous patch from Raphael Neider that wasn't included
8992         in the previous commits, which fixes infinite loops within jumptable
8993         improvements,
8994         * made some fixes that previous patches introduced
8995
8996 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
8997
8998         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
8999         that fixes an issue with AOP_PCODE asmop's offset,
9000         * (pic16_popCopyReg): update instance field too,
9001         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
9002         function of pic port,
9003         * (genCmp, genAnd, genAssign),
9004         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
9005
9006 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
9007
9008         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
9009         variables initial values to idata section,
9010         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
9011         variables in some functions. This utilizes parmBytes field of iCode
9012         structure to hold the offset of the variable in stack. (might be
9013         able to use the stack field too?)
9014         * applied patch from Raphael Neider # ### , # ###
9015         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
9016         variable initial values in idata section,
9017         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
9018         for static variables with initial value
9019         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
9020         applied fix in while loop from Raphael Neider.
9021
9022 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
9023
9024         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
9025         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
9026         * src/ds390/ralloc.c (serialRegAssign): spill bits
9027         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
9028         * support/Util/SDCCerr.c,
9029         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
9030         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
9031         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
9032
9033 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
9034
9035         * device/include/sdcc-lib.h: inserted LGPL, added includes
9036           asm/ds390/features.h and asm/mcs51/features.h
9037         * device/include/asm/default/features.h,
9038         * device/include/asm/gbz80/features.h,
9039         * device/include/asm/z80/features.h: added empty _AUTOMEM
9040           and _STATMEM
9041         * device/include/asm/ds390/features.h,
9042         * device/include/asm/mcs51/features.h: added files with defines for
9043           _AUTOMEM and _STATMEM indicating automatic and static storage class
9044         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
9045         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
9046         * src/SDCCicode.c (geniCodeCast),
9047         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
9048         * src/SDCCloop.c (loopInduction): removed unused variable lr
9049         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
9050           to convertToFcall to include char modulo (RFE 1065037), added check
9051           if left operand is unsigned and use abs of literal value
9052         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
9053           as it doesn't work after conversion from peephole.def to peephole.rul
9054         * src/mcs51/gen.c (toBoolean): added check for size,
9055           (genModOneByte): optimized code for signed char modulo a literal
9056           power of 2 (thanks to Hubert Sack),
9057           (genRRC): removed unnecessary "clr c",
9058           (genRLC): replaced "add a,acc" with cheaper "rlc a"
9059         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
9060           jump optimization,
9061           swapped rules 256.c and 256.d,
9062           extended 256.d by using new multiple checks (thanks Erik),
9063           added rules 256.e and 256.f,
9064           updated rule 261.a and 261.b to new generated code
9065         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
9066
9067 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9068
9069         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
9070           induction related bugs, including first part of bug #1074377
9071
9072 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
9073
9074         * applied patch from bug-report #1076292,
9075         * applied patches for genAnd and Goto-optimizations for Raphael
9076         Neider,
9077         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
9078         dump a less iCode information,
9079         * src/pic16/device.h (pic16_options_t): added field debgen,
9080         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
9081         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
9082         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
9083         puclic,
9084         * (various functions): added macros FENTRY and FENTRY2 to functions,
9085         to emit function prologue,
9086         * (various functions): fixed indentation,
9087         * (genNearPointerGet): fixed loading of FSR0,
9088         * (genPackBits): applied patch from Raphael Neider to fix updating
9089         of FSR0 and touching only the modified bits,
9090         * src/pic16/genarith.c (various functions): added macros FENTRY to
9091         emit function prologue in comments,
9092         * src/pic16/pcode.h: added functions debugf2, debugf3,
9093         * src/pic16/ralloc.c: partial fix for packForPush caused
9094         segmentation fault,
9095
9096 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9097
9098         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
9099           <stsp AT users.sourceforge.net> with reversed byte order
9100         * support/regression/tests/rotate.c: added (ds390 skips some tests)
9101
9102 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9103
9104         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
9105           bug #1074377
9106         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
9107         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
9108
9109 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
9110
9111         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
9112
9113 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9114
9115         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
9116           conditions,
9117           (setFromConditionArgs): friendly operand parser for peephole rules,
9118           (operandBaseName, operandsNotRelated): new peephole condition
9119           "operandsNotRelated" -- similar to "operandsNotSame", but takes
9120           architecture specific register naming into account, handles n-way
9121           comparisons, and supports quoted literals
9122         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
9123
9124 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9125
9126         * src/mcs51/peeph.def: fixed bug #1076940
9127
9128 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
9129
9130         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
9131
9132 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9133
9134         Adding support for replacing ljmps with sjmps in jumptables
9135         generated for switch statements. For now you need to set the
9136         environment variable SDCC_SJMP_JUMPTABLE to enable this.
9137         Now 4 algorithms for mcs51 jumptable generation are used:
9138         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
9139         addresses loaded pc-relative for up to 112 cases and stack-pushing
9140         target addresses loaded with offset from dptr for up to 256 cases.
9141
9142         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
9143         * src/mcs51/main.c: adapted constants for switch table generation
9144         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
9145
9146 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
9147
9148         * device/lib/printf_large.c (_print_format): fixed bug 1073386
9149         * support/regression/tests/bug1057979.c: added test for bug 1073386
9150
9151 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
9152
9153         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
9154         compilers
9155
9156 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
9157
9158         * src/pic16/device.h,
9159         * src/pic16/genarith.c,
9160         * src/pic16/glue.c,
9161         * src/pic16/main.c,
9162         * src/pic16/pcode.c: applied patches #1068154 and #1070213
9163
9164 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
9165
9166         Large cummulative patch for pic16 port.
9167         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
9168         to call when a stack overflow occurs,
9169         * (malloc.h): added CVS Id tag,
9170         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
9171         variable,
9172         * added libc directory. The current version of LibC contains string
9173         functions, ctype functions and macros and some functions of the
9174         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
9175         be extensively tested in the future. Standard disclaimer here.
9176         Library is not automatically build yet. But one can build it by
9177         invoking 'make' inside the libc directory.
9178         * added ADC library under libio. Preliminary version yet.
9179
9180         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
9181         * src/pic16/gen.c (aopForRemat): asmop size is filled by
9182         aopForRemat() now and not by pic16_aopOp(),
9183         * (pic16_popGetTempReg): removed warning messgae when allocating
9184         temporary registers, its a buggy feature and will be removed,
9185         * (pic16_popGet): set register instance field in AOP_CRY,
9186         * (pic16_outBitC): fixed for results in size greater than 1,
9187         * (genUminusFloat): fixed for pic16, ported code from mcs51,
9188         * (pic16_storeForReturn): optimized return of 0,
9189         * (genCmp): experimental code for new genCmp which uses PIC18's
9190         special compare&skip instructions. Initial tests fail some times
9191         with variables grater than 1 byte in size, so new code is disabled,
9192         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
9193         a single bit,
9194         * (genCast): began a fix to optimize the casting of a bit to another
9195         bit, now assigning a bitfield to another bitfield will fail, sorry,
9196         * src/pic16/main.c: disabled the use of lr-support feature,
9197         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
9198         * added some function prototypes, added function _debugf prototype,
9199         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
9200         bits with offset (case PO_GPR_BIT),
9201         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
9202         command line,
9203         * (isBankInstruction): modified to return 0 for no banking instruction,
9204         and 1 for banking instruction,
9205         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
9206         caused stop processing pCodes after a inline assembly block,
9207         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
9208         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
9209         registers when it shouldn't,
9210         * src/pic16/ralloc.c (allocReg): add preliminary support for
9211         supporting a limited set of temporary registers,
9212
9213 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9214
9215         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
9216           genDataPointerSet): ensure assignments always copy in MSB to LSB
9217           order,
9218           (loadRegFromAop): recognize CLRH optimization,
9219           (genFunction): optimize RECEIVE iCodes in reentrant functions
9220
9221 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9222
9223         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
9224           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
9225           selected.
9226         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
9227         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
9228           contiguous with data
9229
9230 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9231
9232         * device/lib/_gptrget.c (_gptrget),
9233         * device/lib/_gptrgetc.c (_gptrgetc),
9234         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
9235           instead of sjmp to ret
9236         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
9237           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
9238
9239 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
9240
9241         * .version: bumped version to 2.4.7
9242         * device/lib/_gptrget.c (_gptrget): is now _naked
9243         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
9244         * device/lib/_gptrput.c (_gptrput): is now _naked
9245         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
9246           (createFunction): fixed xstack
9247         * src/SDCCglue.c (emitMaps): set allocation required for bit area
9248         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
9249           or bit either,
9250           (geniCodeCritical): store original interrupt state in an iTemp bit
9251           var unless stack-auto
9252         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
9253         * src/SDCCmain.c (setIncludePath): added include/target to search path
9254         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
9255         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
9256           prototype,
9257           (processFuncArgs): put bit vars in bit area
9258         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
9259           unsaveRBank): fixed xstack,
9260           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
9261           (genFunction, genEndFunction): fixed xstack,
9262           (genAssign): optimization don't walk backwards through mem
9263         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
9264         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
9265         * support/regression/Makefile: also make library (for stack-auto) when
9266           making "all" and added "test-mcs51-xstack-auto"
9267         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
9268         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
9269         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
9270         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
9271         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
9272           make-library by MAKE_LIBRARY
9273         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
9274           regression tests for xstack
9275         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
9276         * support/regression/tests/critical.c: test for critical on mcs51
9277
9278 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9279
9280         * support/regression/ports/ucz80/spec.mk: use include and lib files from
9281           built version of sdcc instead of installed version
9282
9283 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
9284
9285         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
9286         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
9287           vprintf.c now
9288         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
9289         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
9290           WARNING: remove device/lib/build/z80/printf.o by hand when
9291           updating from previous build!
9292         * device/lib/z80/printf.c: updated comment
9293         * support/regression/tests/bug1057979.c: test all ports now
9294         * support/regression/tests/bug1065458.c: file added
9295
9296 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9297
9298         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
9299           *_start and *_end symbols for static functions
9300
9301 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
9302
9303         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
9304           and search crt0.o in all library paths,
9305           (setIncludePath): proper handling of --nostdinc,
9306           (setLibPath): proper handling of --nostdlib
9307         * support/regression/Makefile,
9308         * support/regression/ports/ds390/spec.mk,
9309         * support/regression/ports/gbz80/spec.mk,
9310         * support/regression/ports/hc08/spec.mk,
9311         * support/regression/ports/mcs51/spec.mk,
9312         * support/regression/ports/mcs51-large/spec.mk,
9313         * support/regression/ports/mcs51-stack-auto/spec.mk,
9314         * support/regression/ports/z80/spec.mk: use include and lib files from
9315           built version of sdcc instead of installed version
9316         * doc/sdccman.lyx: fixed typo in --nostdinc
9317
9318 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
9319
9320         * src/pic/pcode.c,
9321         * src/pic/device.c,
9322         * src/pic/ralloc.c,
9323         * src/pic/gen.c : added support to generate code for struct bit fields.
9324
9325 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
9326
9327         * as/xa51/xa_version.h,
9328         * device/include/errno.h,
9329         * device/include/regc515c.h,
9330         * device/lib/_itoa.c,
9331         * device/lib/_ltoa.c,
9332         * device/lib/ser_ir_cts_rts.c,
9333         * sim/ucsim/xa.src/glob.cc,
9334         * sim/ucsim/xa.src/inst_gen.cc,
9335         * sim/ucsim/xa.src/xa_bit.cc,
9336         * sim/ucsim/xa.src/xa_sfr.cc,
9337         * sim/ucsim/z80.src/inst_dd.cc,
9338         * sim/ucsim/z80.src/inst_fdcb.cc,
9339         * support/scripts/keil2sdcc.pl,
9340         * src/pic16/pic16.dsp,
9341         * src/pic16/pic16a.dsp: corrected cvs line endings
9342         * device/lib/printf_large.c: fixed bug 1057979
9343         * src/pic16/gen.c: fixed non-C standard code
9344         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
9345         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
9346         * support/regression/ports/mcs51/support.c: reload T1 asap
9347         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
9348           pdata use and clear idata startup behaviour
9349         * support/regression/tests/bug1057979.c: added
9350
9351 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
9352
9353         * device/examples/ds390/ow390/ad26.h,
9354         * device/examples/ds390/ow390/cnt1d.h,
9355         * device/examples/ds390/ow390/crcutil.c,
9356         * device/examples/ds390/ow390/ownet.h,
9357         * device/examples/ds390/ow390/owsesu.c,
9358         * device/examples/ds390/ow390/swt12.h,
9359         * device/examples/ds390/ow390/swtoper.c,
9360         * device/examples/ds390/ow390/temp10.h,
9361         * device/examples/ds390/ow390/thermodl.c,
9362         * device/examples/ds390/tinitalk/tinitalk.dsp,
9363         * device/examples/ds390/tinitalk/tinitalk.dsw,
9364         * device/examples/mcs51/clock/hw.h,
9365         * device/examples/mcs51/simple2/go.bat,
9366         * device/examples/serialcomm/windows/serial.h,
9367         * device/examples/xa51/dummy.c,
9368         * device/examples/xa51/hello.c,
9369         * device/include/80c51xa.h,
9370         * device/include/at89x051.h: corrected cvs line endings
9371
9372 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
9373
9374         * src/pic16/main.c (options): added command line --gstack, to trace
9375         stack over/under flows,
9376         * added pragma 'wparam' to allow passing first byte of function
9377         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
9378         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
9379         call to __gstack_test function and sets up the symbol as extern,
9380         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
9381         * popaop): added call to pic16_testStackOverflow,
9382         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
9383         wparamList list,
9384         * (genCall, genPcall): now all parameters are passed via stack
9385         except in functions that are pass to wparam pragma in which WREG is
9386         used too,
9387         * (genPcall): REENTRANT flag is checked to see if variable prototype
9388         contains reentrant keyword, don't call a non-reentrant function, via
9389         a reentrant function pointer or vice versa, functions are never
9390         passed via WREG,
9391         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
9392         D.Winkler,
9393         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
9394         SIGSEGV when accessing a NULL register stucture,
9395         * (pic16_printGPointerType): modified to handle UPPER modifier for
9396         function initializers, changed prototype of function to simpler one,
9397         * (pic16_printIvalFuncPtr): check to see if function is already
9398         added in externs list,
9399         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
9400         optimized a move from W to SFR with a move to the same register
9401         later after a CALL,
9402         * device/lib/pic16/debug: NEW directory, contains debug features
9403         which are enabled when linking with libdebug.lib, currently command
9404         line option --gstack enables stack pointer tracing for over/under
9405         flow, corresponding sources are in debug/gstack
9406
9407 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
9408
9409         * doc/sdccman.lyx: updated SDCC version,
9410         * (PIC16 port): update list of command line options,
9411         * src/pic16/device.h (structure pic16_options_t): added field gstack
9412         to enable stack overflow tracing on push/pops,
9413         * src/pic16/device.c (statistics structure): added statistics
9414         structure,
9415         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
9416         pic16_dump_int_registers): increase statistics counters for each
9417         * variable which is encountered
9418         * (pic16_dump_usection): emit each .udata variable to its own udata
9419         section,
9420         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
9421         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
9422         parameters via stack, otherwise use old scheme,
9423         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
9424         assembler output file,
9425         * src/pic16/main.c: added command line options --gstack to enable
9426         push/pop tracing for stack overflow,
9427         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
9428         instructions): added size of each instruction,
9429         * (pic16_countInstruction): estimate size of instructions in
9430         the_pFile list, inline assembly blocks are not counted,
9431         * (pic16_FixRegisterBanking): trace previous register usage, when
9432         banksel optimizations is greater than 0, don't emit a redudant
9433         banksel directive,
9434
9435 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
9436
9437         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
9438         * src/pic16/ralloc.c : applied same fix for pic16.
9439         * src/pic/gen.c : tidied it up a little.
9440
9441 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9442
9443         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
9444         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
9445
9446 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9447
9448         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
9449
9450 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9451
9452         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
9453         non-reentrant function __modsint in the interrupt function (thus
9454         corrupting math operations during serial I/O)
9455         * device/lib/ser_ir.c: as above, changed buffersize
9456         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
9457         256.c,d for zeroing
9458         * doc/Makefile: added option -t for rsync
9459
9460 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9461
9462         * src/SDCCast.h (struct ast),
9463         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
9464
9465 2004-10-20 Borut Razem <borut.razem AT siol.net>
9466
9467         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
9468         package
9469
9470 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
9471
9472         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
9473         makefile targets,
9474         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
9475         support functions to replace long sequences of MOVFF's from access
9476         bank registers to stack and vice versa,
9477         * src/pic16/device.h: added new field opt_flags, where optimization
9478         flags can be set to enable certain features,
9479         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
9480         * pBlock, (genFunction, genEndFunction): surroung loop for
9481         saving/loading used registers in stack with PC_INFO pCodes,
9482         INF_LREGS. Code in between can then be optimized by pCode optimizer
9483         to support function calls,
9484         * (genDataPointerSet): fixed bug which loaded float fields in
9485         structures with corrupt data,
9486         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
9487         in a standard way debug info on stderr. Feature used for developing
9488         and debugging only,
9489         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
9490         obsolete chunks of code,
9491         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
9492         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
9493         * pic16/src/pcode.c (pic16_newpCodeInfo,
9494         * (pic16_newpCodeOpLocalRegs),
9495         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
9496         feature,
9497         * (pic16_pCodeConstString): printing of the initial value of a
9498         symbol as a comment is inhibited since parsing was already done by
9499         copyStr and output is corrupt,
9500         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
9501
9502 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9503
9504         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
9505
9506 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
9507
9508         * as/mcs51/lkarea.c: removed old K&R style,
9509           (lnksect): changed check on boundary error,
9510           (lnksect2): changed check on boundary error,
9511           (lnksect2): extend XSTK to end of page if size = 1
9512         * as/mcs51/lkmain.c: removed old K&R style,
9513           (Areas51): create l_IRAM symbol
9514         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
9515         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
9516           model-mcs51-stack-auto, added model-mcs51-xstack-auto
9517         * device/lib/_mullong.c: added version to be compiled with xstack
9518         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
9519         * device/lib/mcs51/crtxclear.asm: clear pdata as well
9520         * device/lib/mcs51/crtxstack.asm: fixed comment
9521         * src/SDCCglue.c: maxInterrupts defaults to 0,
9522           (emitMaps): added pdata,
9523           (createInterruptVect): (re)moved default,
9524           (glue): added pdata,
9525           (glue): moved __start__xstack to XSTK with default size 1
9526         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
9527           and options.float_rent when options.stackAuto is set,
9528           (linkEdit): only write XDATA_NAME if provided on command line
9529         * src/SDCCmem.h,
9530         * src/SDCCmem.c: added pdata
9531         * src/port.h: added pdata_name to PORT
9532         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
9533           (saveRegisters, unsaveRegisters): removed usage of B,
9534           (genMinus): fixed accumulator clash,
9535           (genJumpTab): added comment, this needs another look
9536         * src/mcs51/gen.c: added check for "B in use" paranoia,
9537           added pushB() and popB()
9538         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
9539           chance
9540         * src/avr/main.c,
9541         * src/ds390/main.c,
9542         * src/hc08/main.c,
9543         * src/mcs51/main.c,
9544         * src/pic/main.c,
9545         * src/pic16/main.c,
9546         * src/xa51/main.c,
9547         * src/z80/main.c: (reset_regparms) made void parameter explicit and
9548           added PSEG (PAG,XDATA) or NULL to port specifier
9549         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
9550         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
9551           (_mcs51_genInitStartup): removed __start__xstack equ,
9552           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
9553         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
9554         * src/z80/gen.c (_rleAppend): fixed warnings
9555         * support/regression/tests/zeropad.c: added pdata test
9556         * .version: bumped to 2.4.6
9557
9558 2004-10-17 Borut Razem <borut.razem AT siol.net>
9559
9560         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
9561         as a part of nightly build
9562
9563 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
9564
9565         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
9566         WREG holds the first byte function parameters,
9567         * (aopForSym): take special case for symbols which are in FARSPACE
9568         but in CODESPACE too,
9569         * (assignResultValue): modified to take into account _G.useWreg,
9570         * (genCall): don't use wreg for parameter passing when function is
9571         declared as reentrant, too, added optimization INCF to stack
9572         pointer when stack parameter count is 1,
9573         * (genFunction, genEndFunction): refurnished and fixed to not using
9574         wreg for passing parameters when function has varargs or is
9575         reentrant, fixed bug with symbol name compare for generating
9576         functions in absolute address,
9577         * (pic16_storeForReturn): refurnished,
9578         * (genCmp): began writing a new version of the function, not ready
9579         yet, therefore it is disabled,
9580         * (genAssign): do not read code memory when assigning a function to
9581         a pointer function,
9582         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
9583         array of characters, not pointer,
9584         * (pic16initialComments): in debug mode emit an .ident directive for
9585         the assembler,
9586         * (_process_pragma): emit a new warning type (internal to pic16)
9587         when setting stack to default length, emit a similar warning when
9588         placing a function at absolute address and address is not word aligned
9589         * (_pic16_parseOptions): added 'return TRUE' statement,
9590         * (_pic16_linkEdit): if compiling a source, then add the source's
9591         file object, first in the list of objects to link,
9592
9593 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
9594
9595         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
9596         * src/pic/main.c : removed VC warning.
9597         * src/pic/gen.c : changed comment.
9598
9599 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
9600
9601         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
9602         reference to a deprecated symbol _GPTRREG was causing failure to
9603         link. Thanks G. M. Gallant for the info.
9604
9605 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
9606
9607         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
9608         comments for Bugs item #954788.
9609
9610 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
9611
9612         * src/pic16/device.c (pic16_dump_gsection,
9613         * pic16_groupRegistersInSection): handle symbols declared to be in
9614         access bank differently,
9615         * src/pic16/gen.c (struct _G): added field resDirect,
9616         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
9617         send values read from stack directly to result and don't allocate
9618         temporary values,
9619         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
9620         same registers,
9621         * (pic16_sameRegsOfs): NEW,
9622         * (freeAsmop): if _G.resDirect is set then do not mark registers as
9623         free because they were not allocated from temporary pool,
9624         * pic16_popRegFromString): workaround to fix a problem with
9625         allocating variables twice or never,
9626         * (genGenPointerGet): using PRODL instead of FSR0H,
9627         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
9628         instead of FSR0H,
9629         * (genAssign): take advantage of the _G.resDirect flag,
9630         * (genCast): around line 11844, use mov2f instead of directly
9631         MOVFF'ing between operands to account for literal values,
9632         * src/pic16/genutils.c: some new debug functions for gpsim have been
9633         added,
9634         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
9635         float with integer part only,
9636         * src/pic16/main.c (_process_pragma): handle pragma udata access to
9637         place variables in access bank
9638         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
9639         updated sources to reflect recent changes in gen.c
9640
9641 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
9642
9643         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
9644         sources that searched for headers in installation path, now the
9645         device/include/pic16 is used,
9646         * src/pic16/glue.c (pic16glue),
9647         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
9648         .line directives if not in debug mode, this suppresses assembler's
9649         warnings for ignored directives
9650
9651 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
9652
9653         * src/port.h: made reset_regparms prototype void parameter explicit.
9654         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
9655         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
9656         * doc/sdccman.lyx: documented warning disabling and how to use
9657           printf_large to make it print floats.
9658         * device/include/stdbool.h: NEW
9659         * device/lib/_atof.c,
9660         * device/lib/_divuint.c,
9661         * device/lib/_divulong.c,
9662         * device/lib/expf.c,
9663         * device/lib/printf_large.c,
9664         * device/lib/sincosf.c,
9665         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
9666         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
9667           a completely reentrant lib.
9668
9669 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
9670
9671         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
9672         * device/include/pic16/stdio.h: fixed bug with colon
9673
9674 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
9675
9676         * device/include/pic16/stdio.h,
9677         * device/include/pic16/stdlib.h,
9678         * device/include/pic16/math.h: NEW
9679         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
9680         declared as _naked to reduce overhead
9681         * device/lib/Makefile.in (target port-specific-objects-pic16):
9682         changed * to *.* so to ignore the CVS directory,
9683         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
9684         stacked variables back in stack,
9685         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
9686         corruption
9687
9688 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
9689
9690         * .version: bumped version number to 2.4.5
9691         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
9692         * support/Util/SDCCerr.c (messages structure): added entry for
9693         W_POSSBUG2
9694
9695         Large cumulative patch for pic16 port and libraries.
9696         * device/include/pic16/sdcc-lib.h,
9697         * device/include/pic16/stdarg.h,
9698         * device/include/asm/pic16/features.h,
9699         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
9700         * device/include/pic16/float.h: changes reentrant keyword with
9701         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
9702         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
9703         updated target build-libraries to include objects from gptr,
9704         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
9705         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
9706         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
9707         all function headings,
9708         * src/SDCCmain.c: added global parameter userIncDirsSet,
9709         * (parseCmdLine): when option -I is encountered add directory to
9710         userIncDirsSet too,
9711         * src/version.awk: added space between control and long,
9712         * src/pic16/NOTES: added some notes for the port,
9713         * src/pic16/gen.c: added prototype for mov2fp function,
9714         * (fReturnpic16[]): properly named return value registers,
9715         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
9716         * (aopForSym): added code to handle symbols with onStack flag set,
9717         symbols onStack are allocated PTRSIZE bytes,
9718         * (aopFreeAsmop): handles special case where asmops are stack objects,
9719         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
9720         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
9721         added argument lock to trace flaws in allocating temporary registers
9722         when developing port,
9723         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
9724         * (pic16_popRegFromString): reenabled allocating a direct register
9725         from string,
9726         * (assignResultValue): various beautifications,
9727         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
9728         referenced function argument,
9729         * (genIpush): reenabled to allow stacked arguments, handles only
9730         ic->parmPush iCodes,
9731         * (genCall, genPcall): major changes to allow for variable argument
9732         functions, fixed a bug with falsely restoring stack pointer after
9733         returning from call,
9734         * (genFunction): pending code for critical function,
9735         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
9736         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
9737         * (genNearPointerGet): fixed bug with indirect reading, was always
9738         reading from INDF0
9739         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
9740         pointers,
9741         * (genAddrOf): rewrote code to take address of a stacked function parameter
9742         * (genCast): fixed casting to generic pointer type,
9743         * src/pic16/gen.h: added AOP_STA,
9744         * (struct asmop): added field stk,
9745         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
9746         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
9747         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
9748         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
9749         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
9750         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
9751         generic pointers,
9752         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
9753         and library paths,
9754         * (pic16_port structure): generic pointer size is set to 3,
9755         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
9756         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
9757         compiler warning,
9758         * src/pic16/ralloc.c (allocReg): prevent allocating register when
9759         operand is an iTemp,
9760
9761 2004-09-24 Martin Helmling <mh AT octo-soft.de>
9762
9763         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
9764         * debugger/mcs51/simi.c: addapt new syntax of s51
9765
9766 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
9767
9768         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
9769         * src/pic16/pcode.c: commented out some calls to free() in order to
9770         fix bug #989576,
9771
9772 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9773
9774         * src/SDCCicode.h,
9775         * src/SDCCicode.c (isiCodeInFunctionCall),
9776         * src/avr/ralloc.c (selectSpil),
9777         * src/pic/ralloc.c (selectSpil),
9778         * src/pic16/ralloc.c (selectSpil),
9779         * src/ds390/ralloc.c (selectSpil),
9780         * src/hc08/ralloc.c (selectSpil),
9781         * src/xa51/ralloc.c (selectSpil),
9782         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
9783         stack in the middle of a function call sequence (fixes bug #1020268)
9784         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
9785         costs associated with the minimum switch case.
9786
9787 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9788
9789         * src/SDCC.lex: fixed bug #1030549
9790
9791 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9792
9793         * src/SDCCcse.h (struct cseDef),
9794         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
9795         over a function call if the CSE is derived from a symbol whose
9796         address has been taken (fixes bug #1029883)
9797         * support/regression/tests/bug-1029883: a new regression test for
9798         this bug
9799
9800 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9801
9802         * src/hc08/gen.c (emitinline): fixed bug #1029778
9803         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
9804         to a cast object is no longer a syntax error ("fixes" bug #1030006,
9805         and starts toward RFE #905167)
9806
9807 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
9808
9809         * src/pic16/gen.c (mov2f): New function to move an operand to
9810         another without considering if it is a literal or a register,
9811         * (pic16_sameRegs): don't check if they are both AOP_REG,
9812         * (AccRsh): removed andmask=0 lines,
9813         * (genLeftShift): duplicated to be improved in future versions,
9814         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
9815         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
9816         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
9817         * (pic16initMnemonics): added initialization for POC_INFSNZW,
9818         * (insertBankSwitch): fixed inserting banksel directives algorithm
9819         for instructions that follow a skip instruction, this fixes a report
9820         for broken subtraction code generation,
9821         * src/pic16/ralloc.c (deassignLRs): do not free register if current
9822         iCode is a left op, just in case result and right share the same
9823         registers
9824
9825 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9826
9827         * src/hc08/main.c,
9828         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
9829         preservation of HX
9830         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
9831         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
9832         on 2004-09-12; it was buggy
9833
9834 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
9835
9836         * src/SDCCsymt.h: removed RESULT_CHECK
9837         * src/SDCCast.c,
9838         * src/SDCCglue.c,
9839         * src/SDCCval.c,
9840         * src/pic/glue.c,
9841         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
9842
9843 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
9844
9845         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
9846         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
9847         configuration values no more rejected by compiler, they are assigned
9848         to configuration registers with a warning message instead,
9849         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
9850         the for-loop so last conf register is emitted too,
9851         * (_pic16_initPaths): link library libsdcc.lib by default,
9852         * (_hasNativeMulFor): modified test for multiplication according to
9853         Raphael Neider's remarks. Integer multiplication is also done with
9854         support functions,
9855         * device/include/pic16/pic18fregs.h: corrected type error in while
9856         testing and including 18f6720 header file
9857
9858 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
9859
9860         * src/pic16/device.h (pic16_options): removed field use_crt,
9861         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
9862         until an optimization to handle single bits is added,
9863         * (pic16_loadFSR0): moved before genUnpackBits,
9864         * (genAnd): some white lines removed,
9865         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
9866         leave_reset flags in pic16_options when using crt modules,
9867
9868 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
9869
9870         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
9871           for bugs 898889 & 979599. Also used some safer print instructions.
9872
9873 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
9874
9875         * src/pic16/device.h (pic16_options_t): added field use_crt,
9876         crt_name, no_crt,
9877         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
9878         catch a probable future bug,
9879         * src/pic16/gen.c: aopIdx function commented out,
9880         * (genAssign): commented out old code which used aopIdx,
9881         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
9882         code, added if conditionals to take into account the --use-crt
9883         command line options,
9884         * src/pic16/main.c (pic16_optionsTable): added new command line
9885         options, --use-crt= and --no-crt,
9886         * (_pic16_linkEdit): now the proper crt object is added in the
9887         linker command line except than when --no-crt is specified,
9888         * src/pic16/pcode.c,
9889         * src/pic16/pcode.h: added some structures and functions for a new
9890         optimization scheme to compansate for instruction overhead between
9891         same iCodes, this scheme is currently under development and is not
9892         working in any way,
9893         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
9894         to && operator,
9895         * device/lib/pic16/startup/crt0i.c,
9896         * device/lib/pic16/startup/crt0iz.c: added global char variable
9897         __uflags to force the generation of an idata section
9898
9899 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
9900
9901         * doc/Makefile,
9902         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
9903         * doc/sdccman.lyx: updated sdcc version to 2.4.4
9904
9905 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9906
9907         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
9908         Frieder) and clarified the default code optimization mode
9909
9910 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9911
9912         * src/SDCC.lex (doPragma, process_pragma),
9913         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
9914         "opt_code_size", and "opt_code_balanced"
9915         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
9916         regrouped options by category, added support for category headers
9917         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
9918         and "--opt-code-size"
9919         * doc/sdccman.lyx: documented these new options and pragmas
9920         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
9921         preference into account
9922
9923 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
9924
9925         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
9926           geniCodePreDec): Fixed bug 904237 by generating a warning
9927         * src/SDCCerr.h,
9928         * src/SDCCerr.c: added warning W_SIZEOF_VOID
9929
9930 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
9931
9932         * src/pic/device.c : When no max ram set validate full memory range.
9933         * src/pic/pcode.c,
9934         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
9935
9936 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
9937
9938         * device/lib/_gptrget.c,
9939         * device/lib/_gptrput.c: updated comment
9940         * device/lib/calloc.c,
9941         * device/lib/free.c,
9942         * device/lib/malloc.c,
9943         * device/lib/realloc.c: added LGPL, made them reentrant-safe
9944         * src/SDCCcse.c (cseBBlock),
9945         * src/SDCCicode.c (printOperand, geniCodeArray),
9946         * src/SDCCicode.h (struct operand): fixed bug 868103
9947         * support/regression/tests/bug-868103.c: added
9948         * src/SDCCast.c (searchLitOp),
9949         * src/SDCCcse.h (struct cseDef),
9950         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
9951         * src/SDCCicode.h (struct operand),
9952         * src/SDCCsymt.h (struct sym_link),
9953         * src/avr/gen.c (hasInc),
9954         * src/ds390/gen.c (hasInc),
9955         * src/hc08/gen.c (genPlusIncr, hasInc),
9956         * src/mcs51/gen.c (hasInc),
9957         * src/pic16/glue.c (pic16_printIvalChar),
9958         * src/pic16/ralloc.c (regWithIdx),
9959         * src/xa51/gen.c (hasInc) : removed warnings
9960         * src/SDCCast.c (createBlock): added comment ???
9961         * src/hc08/ralloc.c: updated comments
9962
9963 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9964
9965         * doc/sdccman.lyx: updated section on switch statements, added
9966         section about semaphore locking
9967         * doc/Makefile: added option -info for latex2html
9968         * device/lib/_gptrget.c,
9969         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
9970
9971 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
9972
9973         * src/pic/device.h,
9974         * src/pic/device.c,
9975         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
9976          maxram is less than 0x100.
9977
9978 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
9979
9980         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
9981
9982 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9983
9984         * src/port.h,
9985         * src/mcs51/main.c,
9986         * src/ds390/main.c,
9987         * src/z80/main.c,
9988         * src/hc08/main.c,
9989         * src/pic/main.c,
9990         * src/pic16/main.c,
9991         * src/avr/main.c,
9992         * src/xa51/main.c
9993         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
9994         a jump table is the best form for a switch statement, including
9995         automatic insertion of missing cases to make the case range
9996         continuous. Developed in collaboration with Frieder Ferlemann.
9997
9998 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9999
10000         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
10001         accumulator result if it needs sign extension
10002
10003 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10004
10005         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
10006
10007 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10008
10009         * device/lib/gbz80/printf.c,
10010         * device/lib/z80/printf.c: removed define for NULL
10011
10012 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
10013
10014         * as/xa51/xa_link.c,
10015         * device/examples/ds390/ow390/ad26.c,
10016         * device/examples/ds390/ow390/cnt1d.c,
10017         * device/examples/ds390/ow390/counter.c,
10018         * device/examples/ds390/ow390/ds2480.h,
10019         * device/examples/ds390/ow390/ds2480ut.c,
10020         * device/examples/ds390/ow390/findtype.c,
10021         * device/examples/ds390/ow390/gethumd.c,
10022         * device/examples/ds390/ow390/owllu.c,
10023         * device/examples/ds390/ow390/ownetu.c,
10024         * device/examples/ds390/ow390/swt12.c,
10025         * device/examples/ds390/ow390/swtloop.c,
10026         * device/examples/ds390/ow390/temp.c,
10027         * device/examples/ds390/ow390/temp10.c,
10028         * device/examples/ds390/ow390/thermo21.c,
10029         * device/examples/ds390/ow390/tinilnk.c,
10030         * device/examples/ds390/ow390/tstfind.c,
10031         * device/examples/serialcomm/windows/serial.cpp,
10032         * device/examples/serialcomm/windows/test_serialcomm.cpp,
10033         * device/include/reg51.h: fixed line endings for cvs
10034
10035 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10036
10037         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
10038         packRegsForAccUse, packRegisters): new accumulator register
10039         packing algorithm
10040         * support/regression/ports/hc08/support.c (_putchar): suppress
10041         warning of unused variable
10042         * src/SDCCicode.c: added SWAP entry to codeTable
10043
10044 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
10045
10046         * device/lib/sprintf.c: forgot to add this file before previous commit
10047
10048 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
10049
10050         * src/pic16/gen.c (genPackBits): added operand right in function
10051         parameters, load result directly if p_type is POINTER (that is
10052         called by genNearPointerSet)
10053         * (genUnPackBits): added operand left in function parameters,
10054         * (genNearPointerGet, genNearPointerSet): prevent the loading of
10055         FSR0 if accessing bitfields,
10056
10057 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
10058
10059         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
10060           _print_format; updated printf, sprintf, vsprintf
10061         * device/include/asm/default/features.h: corrected comment/define
10062         * device/lib/Makefile.in: added sprintf.c
10063         * device/lib/libsdcc.lib: added sprintf module
10064         * device/lib/printf_large.c,
10065         * device/lib/vprintf.c,
10066         * device/lib/sprintf.c: totally refactored printf_large and vprintf
10067           into these 3 files
10068         * support/regression/Makefile: changed ALL_PORTS into a usefull default
10069         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
10070         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
10071           hc08 test
10072         * support/regression/tests/zeropad.c: define idata as data for hc08
10073
10074 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10075
10076         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
10077         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
10078         labels are referenced at least once (even if a reference is not found)
10079         * src/hc08/gen.c (emitcode): set isComment flag for comments
10080         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
10081         loads), rules 6a..6b (optimize jumps to return)
10082
10083 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10084
10085         * device/lib/acosf.c (acosf),
10086         * device/lib/asinf.c (asinf),
10087         * device/lib/atanf.c (atanf),
10088         * device/lib/ceilf.c (ceilf),
10089         * device/lib/cosf.c (cosf),
10090         * device/lib/coshf.c (coshf),
10091         * device/lib/cotf.c (cotf),
10092         * device/lib/fabsf.c (fabsf),
10093         * device/lib/floorf.c (floorf),
10094         * device/lib/log10f.c (log10f),
10095         * device/lib/logf.c (logf),
10096         * device/lib/sinf.c (sinf),
10097         * device/lib/sinhf.c (sinhf),
10098         * device/lib/sqrtf.c (sqrtf),
10099         * device/lib/tanf.c (tanf),
10100         * device/lib/tanhf.c (tanhf),
10101         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
10102         replaced all instances of "reentrant" in the library functions
10103         defined in math.h with this macro.
10104         * support/regression/tests/float_trans.c: reenabled test for hc08
10105
10106 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
10107
10108         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
10109         erroneously deleted
10110
10111 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10112
10113         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
10114         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
10115         multi-byte volatile operands are used
10116         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
10117         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
10118         initialization to area GSINIT0 so that it would always precede
10119         any static initializers in GSINIT
10120         * support/regression/tests/zeropad.c: fixed idata define for hc08
10121         * support/regression/tests/bug-927659.c,
10122         * support/regression/tests/float_trans.c: disabled tests for hc08
10123         pending missing library routines
10124         * .version: increased version number to 2.4.4 - hc08 port now passes
10125         regression tests
10126
10127
10128 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
10129
10130         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
10131         * Makefile.common.in,
10132         * as/Makefile,
10133         * as/hc08/Makefile.in,
10134         * as/mcs51/Makefile.in,
10135         * as/z80/Makefile.in,
10136         * debugger/mcs51/Makefile.in,
10137         * device/include/Makefile.in,
10138         * device/lib/Makefile.in,
10139         * doc/Makefile,
10140         * link/Makefile,
10141         * link/z80/Makefile.in,
10142         * packihx/Makefile.in,
10143         * sim/ucsim/main_in.mk,
10144         * sim/ucsim/avr.src/Makefile.in,
10145         * sim/ucsim/doc/Makefile.in,
10146         * sim/ucsim/gui.src/serio.src/Makefile.in,
10147         * sim/ucsim/hc08.src/Makefile.in,
10148         * sim/ucsim/s51.src/Makefile.in,
10149         * sim/ucsim/xa.src/Makefile.in,
10150         * sim/ucsim/z80.src/Makefile.in,
10151         * src/Makefile.in,
10152         * support/cpp2/Makefile.in,
10153         * support/librarian/Makefile,
10154         * support/makebin/Makefile: added DESTDIR to the install path proposed
10155         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
10156         * doc/sdccman.lyx: added DESTDIR documentation
10157
10158 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
10159
10160         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
10161         instruction for interrupt handlers, use fast returns when returning
10162         from high priority interrupts
10163
10164 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10165
10166         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
10167         code generation
10168         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
10169         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
10170         bugs, ported much of Bernhard's code from mcs51
10171         * src/mcs51/gen.c (genSend),
10172         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
10173         than one when calling a reentrant function
10174         * device/lib/_mullong.c: defined an alternate struct layout for big
10175         endian ports (hc08)
10176
10177 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10178
10179         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
10180         test
10181
10182 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10183
10184         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
10185         are sane and complete before asking the port its prefered parameter
10186         passing method (fixes bug #1017633)
10187         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
10188         and _ret3
10189
10190 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10191
10192         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
10193         problem in bitfields >= 8 bits.
10194
10195 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10196
10197         * src/SDCCsymt.c: undid changes that were not meant to be committed
10198
10199 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10200
10201         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
10202
10203 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10204
10205         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
10206           copied and wrong bit got inverted
10207
10208 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10209
10210         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
10211         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
10212         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
10213         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
10214         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
10215         assignments to bitfields at known addresses
10216         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
10217         reads from bitfields at known addresses
10218         * src/hc08/ralloc.c (packRegisters),
10219         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
10220         genhc08Code): optimize pointer get values used as conditionals
10221         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
10222         and branch
10223
10224 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10225
10226         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
10227         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
10228         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
10229         as conditionals
10230
10231 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10232
10233         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
10234
10235 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10236
10237         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
10238         related problems
10239
10240 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
10241
10242         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
10243
10244 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10245
10246         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
10247         mcs51 port
10248
10249 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
10250
10251         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
10252
10253 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10254
10255         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
10256         cases use more compact code.
10257
10258 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
10259
10260         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
10261
10262 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10263
10264         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
10265
10266 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10267
10268         * src/SDCCsymt.h,
10269         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
10270         parameter of changePointer() from symbol* to sym_link*
10271         * src/SDCCast.c (decorateType): call changePointer() for CAST op
10272         * src/SDCCsymt.c (compareType): void* type is castable to other
10273         pointers, but not necesarily an exact match.
10274         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
10275         is no longer blindly treated as an exact match.
10276         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
10277
10278 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
10279
10280         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
10281
10282 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
10283
10284         * src/pic/gen.c,
10285         * src/pic/pcode.c,
10286         * src/pic/ralloc.h,
10287         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
10288
10289 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
10290
10291         * src/pic/device.c,
10292         * src/pic/device.h,
10293         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
10294
10295 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10296
10297         * src/mcs51/gen.c (emitcode): fixed bug #992819
10298
10299 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
10300
10301         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
10302           there's no need to make it worse
10303
10304 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10305
10306         * src/mcs51/ralloc.c (deassignLR),
10307         * src/ds390/ralloc.c (deassignLR),
10308         * src/hc08/ralloc.c (deassignLR),
10309         * src/z80/ralloc.c (deassignLR),
10310         * src/pic/ralloc.c (deassignLR),
10311         * src/pic16/ralloc.c (deassignLR),
10312         * src/avr/ralloc.c (deassignLR),
10313         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
10314         rlivePoint): fixed another part of bug #971834
10315
10316 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10317
10318         * src/z80/main.c: enabled "critical" keyword
10319         * src/z80/mappings.i,
10320         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
10321         functions (fixes bug #979646)
10322         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
10323
10324 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10325
10326         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
10327           such as c:\mydir.
10328
10329 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
10330
10331         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
10332           doesn't disable too much optimizations
10333
10334 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
10335
10336         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
10337
10338 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
10339
10340         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
10341
10342 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
10343
10344         * src/pic/gen.c tidied up tabs
10345         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
10346         * src/pic/main.c tidied up tabs
10347         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
10348         * src/pic/pcoderegs.c tidied up tabs
10349         * src/pic/ralloc.c tidied up tabs
10350
10351 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
10352
10353         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
10354         to S_FIXED for pic16 port and when symbol is not in level 0,
10355         allocate for S_REGISTER storage class and pic16 port, too,
10356         * src/pic16/device.h: prototype for checkSym,
10357         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
10358         * (pic16_assignConfigWordValue): test the value and the mask to
10359         validate that the value is suitable for the configuration word,
10360         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
10361         collect extern declared symbols, don't emit symbol twice, check
10362         first if symbol is in publics set first,
10363         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
10364         * added command line '--fstack' which enables an experimental
10365         feature for stack access, too buggy to be used yet...
10366         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
10367         * (pic16_allocDirReg): when register has storage class S_REGISTER
10368         allocate in pic16_dynAccessRegs,
10369         * device/include/pic16/pic18f????.h: modified configuration word
10370         naming convention, words started as CONFIG0H but should be CONFIG1H
10371
10372 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
10373
10374         * device/include/mcs51reg.h: fixed bug 970993
10375
10376 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
10377
10378         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
10379         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
10380         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
10381         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
10382         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
10383         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
10384           error/warning numbers,
10385           added function setWarningDisabled()
10386         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
10387         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
10388           _memcmp.c _memmove.c calloc.c realloc.c free.c
10389         * support/regression/tests/malloc.c: added tests for new functionality
10390         * support/regression/tests/zeropad.c: added tests for truncated initializers
10391           and initialized char arrays starting with '\x0'
10392         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
10393
10394 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
10395
10396         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
10397
10398 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10399
10400         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
10401         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
10402         peephole 177.e. Thanks to anonymous
10403
10404 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
10405
10406         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
10407         function isn't used in the source but referenced as a
10408         variable initializer then declare it as extern in .asm file
10409
10410 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
10411
10412         * .version: increased version number to 2.4.3
10413
10414         Adding version extension according to ChangeLog CVS revision
10415         * src/Makefile.in (target all): added dependency 'version.h'
10416         * (rule version.h): added rule to create version.h from ChangeLog,
10417         * (rule dep): added dependency version.h,
10418         * src/version.awk: AWK script to create version.h
10419         * src/SDCCdwarf2.c (dwWriteModule),
10420         * src/SDCCglue.c (initialComments),
10421         * src/SDCCmain.c (printVersionInfo): modified to write after
10422         version string the version extension number,
10423         * src/SDCCutil.c: included "version.h"
10424         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
10425         number,
10426         * src/SDCCutil.h: added prototype for getBuildNumber
10427
10428         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
10429         includeDirsSet, too,
10430         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
10431         const char [] is found in function prototype...
10432
10433         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
10434         moving to WREG with source is already in WREG,
10435         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
10436         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
10437         * (aopForSym): stack'ed symbols are partially supported, added
10438         if-clause to support symbols in FARSPACE,
10439         * (sameRegs): added test for AOP_ACC to see if registers are same,
10440         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
10441         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
10442         * (pic16_popRegFromString): will not allocate a new register if it
10443         doesn't find one by name, bug may have introduced...
10444         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
10445         * (genIpush): revived to use pic16 port's stack,
10446         * (genAddrOf): added incomplete case for stack'ed operand,
10447         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
10448         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
10449         can handle multibyte operands,
10450         * src/pic16/glue.c (pic16_printIval*): some debug info added,
10451         * (pic16initialComments): added message for MPLAB compatibility
10452         mode enabled,
10453         * src/pic16/main.h: prototype for pic16_mplab_comp,
10454         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
10455         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
10456         * (_pic16_linkEdit): NEW, handles link stage, transferred here
10457         because of increased complexity of procedure,
10458         * (_process_pragma): stack pragma changed to format 'stack pos len',
10459         emit symbol '_stack_end' to conform with gplink,
10460         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
10461         to search for register,
10462         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
10463         PO_GPR_REGISTER,
10464         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
10465         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
10466         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10467         case for PO_GPR_REGISTER,
10468         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
10469         dies, the new era is ahead !...
10470         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
10471         pic16_dynInternalRegs,
10472         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
10473         * (pic16_allocDirReg): minor optimizations and bug fixes,
10474         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
10475
10476         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
10477         load stack and frame pointer with address of 'stack_end' symbol
10478
10479 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
10480
10481         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
10482         without source code but only variable initializers
10483
10484 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
10485
10486         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
10487         external are not declared as extern to reduce overhead while linking
10488
10489 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
10490
10491         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
10492
10493 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
10494
10495         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
10496           Yee Keat for the patch
10497         * src/SDCCast.c (decorateType): fixed bug #979599
10498         * src/ds390/gen.h: removed local fReturnSizeDS390
10499         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
10500         * src/ds390/gen.c (genAnd, genOr, genXor),
10501         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
10502
10503 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
10504
10505         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
10506         add relFilesSet to $3, manipulate $2 to handle linking of object
10507         files without source files in command line,
10508         * device/include/pic16 (all headers): added ID location macros,
10509         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
10510         entries for ID location bytes,
10511         * (pic16_assignIdByteValue): NEW,
10512         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
10513         added field dumpcalltree to pic16_options_t,
10514         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
10515         is used instead of pic16_Gstack_base_addr, check if (ifx) before
10516         emitting rFalseIfx label after check_carry label,
10517         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
10518         pic16_emitDIRegs), NEW
10519         * (pic16glue): dump .calltree file when option --calltree found,
10520         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
10521         * (_pic16_genAssemblerPreamble): emit ID locations after
10522         configuration registers,
10523         * (pic16_linkCmd): modifications of the link command,
10524         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
10525         * (pic16_pCodeInitRegisters): don't init stack registers,
10526         * (pic16_findPrevInstruction): fixed bug,
10527         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
10528         bug with immediate registers,
10529         * (buildCallTree): traces stack push and pop,
10530         * (pct2): dump also stack usage for each function,
10531         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
10532         * (pic16_allocDirReg): various modifications,
10533         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
10534         fixed to 1,
10535
10536 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
10537
10538         * src/pic16/pcode.c: removed buggy double colon
10539
10540 2004-07-01 Borut Razem <borut.razem AT siol.net>
10541
10542         * support/scripts/sdcc.nsi: added include/pic16 to setup
10543
10544 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
10545
10546         * device/lib/Makefile.in: fixed bug in target objects-pic16,
10547         * device/lib/pic16/Makefile: prefixed with dash (-) command under
10548         target 'clean',
10549         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
10550         specific command line arguments. Also added sample lkr script
10551         for placing a variable at a specific memory bank.
10552         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
10553         at a specific memory bank,
10554         * (pic16_dump_isection): fixed bug which caused string literals to
10555         be omitted when dumping idata section,
10556         * (pic16_groupRegistersInSection): added code to handle registers
10557         in specific memory banks,
10558         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
10559         public, all references are renamed too,
10560         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
10561         AOP_DPTR2,
10562         * (pic16_storeForReturn): added case to handle when dest is WREG,
10563         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
10564         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
10565         pic16_rel_udata, check to see if that register is marked as being
10566         a member of a specific memory bank,
10567         * (pic16_printIvalCharPtr): added code to add string literals either
10568         to code or the idata sections,
10569         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
10570         also accept the 'udata' pragma,
10571         * src/pic16/main.h: new structure types sectName and sectSym
10572         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
10573         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
10574         * (pic16_findPrevInstruction): fixed, it returned nothing,
10575         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
10576         instruction combinations,
10577         * (pic16_FixRegisterBanking): heavily reorganised,
10578         * (pic16_AnalyzeBanking): if generating banksel directives is
10579         disabled, then don't call FixRegisterBanking at all,
10580         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
10581         completely removed,
10582         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
10583
10584 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
10585
10586         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
10587         Phuah Yee Keat <yk.phuah AT nestac.com>
10588
10589 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
10590
10591         * src/pic16/glue.c (pic16createInterruptVect): function now emits
10592         correctly the IVT even if it is relocated to some other location
10593
10594 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
10595
10596         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
10597         * device/include/pic16/pic18f2220.h: NEW,
10598         * device/lib/pic16/libdev/pic18f2220.c: NEW,
10599         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
10600         * src/pic16/device.c (struct Pics16): added info for 18f2220,
10601         * src/pic16/device.h (struct pic16_options): added ivt_loc and
10602         nodefaultlibs, ivt_loc is the location of the interrupt vector
10603         table, and nodefaultlibs signs that default libraries should not be
10604         linked in link stage,
10605         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
10606         according to --ivt-loc argument,
10607         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
10608         when pragma stack is found,
10609
10610 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10611
10612         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
10613         256 (range check), 257 (do while), 258.a-f (bit banging
10614         f.e. on 3-wire SPI bus)
10615
10616 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10617
10618         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
10619         variables used exclusively within a loop
10620
10621 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
10622
10623         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
10624
10625 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10626
10627         * src/SDCClrange.c (computeClash): fixed bug #971834
10628
10629 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10630
10631         * src/mcs51/gen.c (genCmp): fixed bug #975903
10632         * src/hc08/gen.c (operandsEqu),
10633         * src/ds390/gen.c (operandsEqu),
10634         * src/z80/gen.c (operandsEqu),
10635         * src/pic/gen.c (operandsEqu),
10636         * src/pic16/gen.c (operandsEqu),
10637         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
10638         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
10639
10640 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10641
10642         * src/SDCCcse.c (cseBBlock): fixed bug #966963
10643
10644 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
10645
10646         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
10647         default case in switch statement,
10648         * glue.c (pic16_initPointer): expr is initialised via decoarteType
10649         to eliminate problem with initialisation of pointers, but problem
10650         still exists,
10651         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
10652         * (emitStaticSegment): removed various lines emitting debug info,
10653         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
10654         added processor registers for utilizing EEPROM,
10655         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
10656         configurable and set 8
10657
10658 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
10659
10660         * .version: increased version number to 2.4.2,
10661
10662         Cumulative patch for pic16 port
10663         * src/pic16/device.c: changed scheme to dump initial values for
10664         variables in idata segment, all print_idata* functions were removed,
10665         now the pic16_printIval* will be called,
10666         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
10667         * _pic16_printPointerType, pic16_printPointerType,
10668         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
10669         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
10670         NEW, similar to the respective functions in SDCCglue.c,
10671         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
10672         way, emitting hex bytes,
10673         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
10674
10675 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10676
10677         * src/avr/ralloc.c (serialRegAssign),
10678         * src/xa51/ralloc.c (serialRegAssign),
10679         * src/pic/ralloc.c (serialRegAssign),
10680         * src/pic16/ralloc.c (serialRegAssign),
10681         * src/hc08/ralloc.c (serialRegAssign),
10682         * src/z80/ralloc.c (serialRegAssign),
10683         * src/ds390/ralloc.c (serialRegAssign),
10684         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
10685
10686 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10687
10688         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
10689         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
10690
10691 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
10692
10693         Cumulative patch for pic16 port:
10694         * src/pic16/device.h (typedef PIC16_device) modified fields for
10695         defining microcontrollers,
10696         * src/pic16/device.c: added new info for all devices in Pics16 array,
10697         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
10698         to be optimised out by the pCode optimiser,
10699         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
10700         specially, bug reported by G.M. Gallant,
10701         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
10702         as force'd so that cannot be optimised out by pCode optimiser,
10703         * src/pic16/pcode.c,
10704         * src/pic16/pcodepeeph.c,
10705         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
10706         they are disabled by default, but can be enabled explicit with
10707         command argument --denable-peeps, for testing,
10708         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
10709         --pomit-ivt in COMPILE_FLAGS
10710
10711 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
10712
10713         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
10714           compilation on MSVC
10715
10716 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
10717
10718         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
10719
10720 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10721
10722         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
10723         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
10724
10725 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
10726
10727         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
10728         would only assign 0x300001 register.
10729
10730 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
10731
10732         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
10733         in COMPILE_FLAGS. Thanks to G. Gallant for report.
10734
10735 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10736
10737         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
10738         for ds80c400
10739         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
10740         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
10741         added peephole 254 (left shift), 255 (jump table)
10742
10743 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
10744
10745         * device/lib/Makefile.in: removed comment line with model-pic16,
10746         * (target port-specific-objects-pic16): the libraries and objects
10747         are copied to the build directory form the device/lib/pic16/bin
10748         directory
10749
10750         Cumulative patch concerning pic16 port:
10751         * library directory has been re-organized,
10752         * added support for PIC18F1220,
10753         * added headers and library sources for chips 18f1220,18f6520,
10754         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
10755
10756         * configuration registers setting has changed, now each supported
10757         device has a complete description of the registers it uses,
10758         * all initialisations are moved to idata sections, these section
10759         can be absolute or relocatable,
10760         * fixed initialisation of codespace variables,
10761         * fixed warning about PCLATU and gpsim,
10762         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
10763         * (genAssign): use table reads when assigning from variables in codespace,
10764         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
10765         char/int variables placed in codespace,
10766         * (pic16_emitConfigRegs): NEW, emits a list with configuration
10767         registers set in .asm file, no need for --pomit-config-words anymore,
10768         * (pic16glue): some 8051 legacy segments are commented out
10769         (to be removed completely),
10770         * added support for alternative assembler and linker with --asm=
10771         and --link= command line arguments,
10772         * peepholes are disabled automatically in the port, no need to
10773         specify on command line,
10774         * port supports natively char/int/long multiplication, but converts
10775         all divisions to support functions,
10776         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
10777         to the file set in variable $2,
10778         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
10779         strings in ASCII format and not in hex,
10780         * ralloc.c (serialRegAssign): added a triplet of conditional calls
10781         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
10782         allocate proper register if iCodes aren't temporary,
10783
10784 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
10785
10786         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
10787
10788 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
10789
10790         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
10791         is commented out
10792
10793 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10794
10795         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
10796         computed address is reused
10797         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
10798         multi-byte bitfields
10799
10800 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
10801
10802         * src/z80/gen.c: (genArrayInit): must check for pointers too
10803
10804 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
10805
10806         * support/regression/tests/zeropad.c: never meant to commit the
10807           nestedstruct test: removed, added check for GCC version
10808
10809 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
10810
10811         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
10812         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
10813         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
10814           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
10815           bugs 928906 and 954082 half-empty initializers
10816         * src/SDCCsymt.h,
10817         * src/SDCCsymt.c (getAllocSize): added for above fix
10818         * src/z80/gen.c (genArrayInit): fixed bug 741044
10819         * support/regression/tests/zeropad.c: added tests
10820
10821 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
10822
10823         * src/pic16/device.c (pic16_dump_section): corrected bug which
10824         caused some symbols of the libraries to be misplaced
10825
10826 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
10827
10828         * src/pic16/glue.c,
10829         * src/pic16/ralloc.h,
10830         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
10831         to fix conflict with pic port
10832
10833 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
10834
10835         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
10836         externs configuration variables,
10837         * src/pic16/ralloc.h,
10838         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
10839         prototype in header, commented out some debug messages
10840
10841 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
10842
10843         * src/pic16/glue.c,
10844         * src/pic16/main.c,
10845         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
10846         for gpasm COFF object generation. Thanks to D. Hawkins for
10847         his patch info
10848
10849 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10850
10851         * src/ds390/main.c,
10852         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
10853         Brock for spotting this)
10854         * src/ds390/gen.c (genEndFunction),
10855         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
10856         interrupt handler and critical. Disable push/pop optimizations when
10857         peephole optimizations disabled.
10858
10859 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
10860
10861         Updated pic16 library sources and headers.
10862         * device/lib/pic16/pic18f*/ ,
10863         * device/include/pic16/*.h: modified to handle structured SFR
10864         definitions
10865
10866 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
10867
10868         * src/port.h (PORT structure): added hook initPaths, now each
10869         port can declare its own default search paths,
10870         which can been seen with the --print-search-dirs option,
10871         see pic16 port for example,
10872         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
10873         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
10874         * (doPrintSearchDirs): NEW, replaces in a central manner the
10875         printing of search dirs which was split in set*Paths functions,
10876         * (main): added call to port->initPaths and doPrintSearchDirs,
10877         * src/avr/main.c,
10878         * src/ds390/main.c,
10879         * src/hc08/main.c,
10880         * src/izt/i186.c,
10881         * src/izt/tlcs900h.c,
10882         * src/mcs51/main.c,
10883         * src/pic/main.c,
10884         * src/pic16/main.c: modified port structures to reflect addition of
10885         initPaths hook,
10886
10887         * src/pic16/device.c (regCompare): registers are finally sorted by name,
10888         * (pic16_dump_section): for registers in same address reserve memory once,
10889         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
10890         to no_banksel,
10891         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
10892         result is greater in size than right or left,
10893         * (pic16_genUMult8X8_8): there are some cases where the result can
10894         be 16 bits size, so handle these,
10895         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
10896         * (pic16_outBitC): modified to emit pcodes,
10897         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
10898         or not,
10899         * (genDivOneByte): implemented algorithm to divide 8-bits,
10900         * (genCmp): uncommented goto, but issues still exist,
10901         * (genAnd): fixed a bug with variables >8bits,
10902         * (genPackBits): optimization added that uses BCF/BSF to change a
10903         single bit,
10904         * (genAssign): fixed bug when assigning floating point literals,
10905         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
10906         __sdcc_gsinit_startup label,
10907         * src/pic16/main.c (_pic16_init): removed search directory
10908         initialisations,
10909         * (_pic16_initPaths): NEW, used to initialise search directories,
10910         * (_hasNativeMulFor): support functions for all except char/int
10911         multiplication, and char division,
10912         * (PIC16_port struct): modified entry for native mul support,
10913         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
10914         no_banksel option,
10915         * (buildCallTree): call to register_usage is ifdef'ed out,
10916
10917 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10918
10919         * device/include/string.h: applied Stas Sergeev's patch to make this
10920         header file compatible with the preprocessor -Wundef option
10921         * src/SDCCmain.c (main): abort compilation if preprocessor reports
10922         failure (fixes bug #941458)
10923
10924 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10925
10926         * src/SDCCopt.c (killDeadCode): fixed bug #907733
10927         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
10928         that the variable, not the function, should be static
10929         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
10930         to be consistent with non-literal case
10931
10932 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10933
10934         * src/SDCCast.c (isConformingBody): fixed bug #949967
10935         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
10936         convilong): fixed bug #952086
10937
10938 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10939
10940         * src/SDCCmem.c (allocVariables): fixed bug #955321
10941
10942 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10943
10944         * src/hc08/main.c (_hc08_genAssemblerEnd),
10945         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
10946         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
10947         completely eliminated the use of a temporary file
10948         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
10949         when more than one file linked
10950         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
10951
10952 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10953
10954         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
10955         which fixes bug #543481
10956         * support/regression/tests/bug-751703.c: fixed comments left from a
10957         cut and paste error
10958         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
10959         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
10960         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
10961         scopes
10962         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
10963         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
10964         are now changed to underscores in moduleName
10965
10966 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10967
10968         * as/mcs51/lkmem.c: better fix for bug #954173
10969
10970 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
10971         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10972
10973         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
10974         * device/include/c8051f000.h,
10975         * device/include/c8051f120.h,
10976         * device/include/c8051f300.h,
10977         * device/include/c8051f310.h,
10978         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
10979         PWM16) and detab'ed
10980
10981 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10982
10983         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
10984         and mailing lists, doc'ed --no-peep-comments, removed reference
10985         to knoppix (newest version has no LyX/LaTeX), other minor changes
10986         * src/SDCCglue.c (glue): save 2 bytes stack space with
10987         option --main-return. The ljmp could probably be avoided too
10988
10989 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10990
10991         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
10992
10993 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10994
10995         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
10996         * src/SDCCopt.c (isLocalWithoutDef),
10997         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
10998         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
10999         (credit to Maarten Brock for patch #949363, on which this is based)
11000         * support/regression/tests/bug-751703.c: some test cases of extern used
11001         within inner scopes.
11002
11003 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11004
11005         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
11006         SPEC_STRUCT
11007         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
11008         struct definitions
11009         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
11010         dwWriteLabel): fix to create valid debugger symbols even when
11011         the module name has non-alphanumeric symbols in it
11012         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
11013         when a variable's allocation has been optimized away
11014
11015
11016 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11017
11018         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
11019         * src/hc08/main.c,
11020         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
11021         * src/mcs51/main.c,
11022         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
11023         * src/ds390/main.c,
11024         * src/z80/gen.c (z80_emitDebuggerSymbol),
11025         * src/z80/main.c,
11026         * src/pic/gen.c (pic14_emitDebuggerSymbol),
11027         * src/pic/main.c,
11028         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
11029         * src/pic16/main.c,
11030         * src/avr/gen.c (avr_emitDebuggerSymbol),
11031         * src/avr/main.c,
11032         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
11033         * src/xa51/main.c,
11034         * src/SDCCdebug.c (emitDebuggerSymbol),
11035         * src/SDCCdebug.h,
11036         * src/port.h: added a debugger struct to the port struct. Added a
11037         callback for defining debugger symbols
11038
11039         * src/SDCCast.c (createLabel),
11040         * src/SDCC.y (labeled_statement): mark all compiler generated labels
11041         with isitmp = 1
11042         * src/SDCCicode.h,
11043         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
11044         iCode back to the ast for the function
11045
11046         * src/hc08/ralloc.c (hc08_assignRegisters),
11047         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
11048         unneeded fields from the regs struct.
11049         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
11050         pushReg() & pullReg() functions instead of emitcode()
11051
11052         * src/hc08/gen.c (genLabel, genhc08Code),
11053         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
11054
11055         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
11056         debugger hooks
11057
11058         * src/hc08/gen.c (genEndFunction, genhc08Code),
11059         * src/hc08/gen.h,
11060         * src/mcs51/gen.c (genEndFunction, gen51Code),
11061         * src/mcs51/gen.h,
11062         * src/ds390/gen.c (genEndFunction, gen390Code),
11063         * src/ds390/gen.h,
11064         * src/z80/gen.c (genEndFunction, genZ80Code),
11065         * src/z80/gen.h,
11066         * src/z80/z80.h,
11067         * src/pic/gen.c (genEndFunction, genpic14Code),
11068         * src/pic/gen.h,
11069         * src/pic16/gen.c (genEndFunction, genpic16Code),
11070         * src/pic16/gen.h,
11071         * src/avr/gen.c (genEndFunction, genAVRCode),
11072         * src/avr/gen.h,
11073         * src/xa51/gen.c (genEndFunction, genXA51Code),
11074         * src/xa51/gen.h,
11075         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
11076         specific code to cdbFile.c and out of the backend code generators
11077
11078         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
11079         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
11080         starting address is now 0
11081
11082         * as/hc08/asm.h,
11083         * as/hc08/m08pst.c,
11084         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
11085         assembler directive for DWARF support
11086         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
11087
11088         * src/src.dsp,
11089         * src/Makefile.in,
11090         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
11091
11092 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11093
11094         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
11095         and inappropriate peephole optimization in jump tables
11096
11097 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11098
11099         * as/hc08/m08pst.c,
11100         * src/SDCCglue.c: sdccopt works for the hc08 port now
11101
11102 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
11103
11104         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
11105
11106 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11107
11108         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
11109
11110 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11111
11112         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
11113         rules
11114         * src/SDCCmain.c,
11115         * src/SDCCglobl.h,
11116         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
11117         comments from the peephole optimizer replacement rules
11118         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
11119         symbols
11120         * src/SDCCcse.c (updateSpillLocation),
11121         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
11122         equivalents
11123         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
11124         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
11125         objects far pointers
11126
11127 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11128
11129         * src/SDCCsymt.h: a missing part of my last change
11130         * src/pic/ralloc.c (regTypeNum),
11131         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
11132
11133 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11134
11135         * src/SDCCicode.h,
11136         * src/SDCCicode.c (aggrToPtrDclType),
11137         * src/SDCCptropt.h,
11138         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
11139         ptrPseudoSymConvert),
11140         * src/pic/ralloc.c (regTypeNum),
11141         * src/pic16/ralloc.c (regTypeNum),
11142         * src/hc08/ralloc.c (regTypeNum),
11143         * src/ds390/ralloc.c (regTypeNum),
11144         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
11145         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
11146
11147 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11148
11149         * link/z80/lkmain.c (afile),
11150         * as/hc08/lkmain.c (afile),
11151         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
11152         prevent a pointer problem when a filename has no directory and
11153         no extension specified.
11154
11155 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11156
11157         * link/z80/lkmain.c (afile): allow periods in directory names
11158         * link/z80/lkmain.c (afile),
11159         * as/mcs51/lkmain.c (afile),
11160         * as/hc08/lkmain.c (afile): allow linker script file to have an
11161         extension other than ".lnk"
11162         * link/z80/lklex.c (getfid),
11163         * link/z80/lkmain.c (parse),
11164         * as/mcs51/lklex.c (getfid),
11165         * as/mcs51/lkmain.c (parse),
11166         * as/hc08/lklex.c (getfid),
11167         * as/hc08/lkmain.c (parse): Support comments in the linker script
11168         file on lines by themselves and after filenames
11169
11170 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11171
11172         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
11173
11174 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11175
11176         * src/z80/peeph-z80.def: removed some peephole rules that don't
11177         work with multibyte arithmetic (fixed bug #937126)
11178         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
11179         to registers and not global variables
11180         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
11181         geniCodePreInc, geniCodePostDec, geniCodePreDec,
11182         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
11183         checking for assignments not internally generated (fixed bug #931895)
11184         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
11185         structure member (fixed bug #930072)
11186
11187 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11188
11189         * src/SDCCmain.c (linkEdit),
11190         * src/hc08/main.c (_hc08_parseOptions),
11191         * as/hc08/Makefile.in,
11192         * as/hc08/aslink.h,
11193         * as/hc08/asm.h,
11194         * as/hc08/m08pst.c,
11195         * as/hc08/lkrloc.c (relr, rele),
11196         * as/hc08/lkarea.c (lnkarea)
11197         * as/hc08/lkmain.c (afile, parse),
11198         * as/hc08/lkelf.c: support for ELF output
11199         * as/hc08/lks19.c (s19),
11200         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
11201
11202 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11203
11204         * as/mcs51/lkihx.c: Fixed bug #899105.
11205
11206 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11207
11208         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
11209         .dsp files from Unix to DOS.
11210
11211 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11212
11213         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
11214         function pointers; we have been compliant for several months now.
11215         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
11216         change that was accidently commented out
11217         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
11218         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
11219         bug #922319
11220
11221 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11222
11223         * src/hc08/gen.c: output of all of the internal debugging information
11224         is now controlled by the D() macro; it is disabled by default
11225
11226 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11227
11228         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
11229         harder to keep the same registers during a CAST iCode
11230         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
11231         long via int can be done in a single cast, if the signedness is
11232         correct.
11233         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
11234         putchar() in tinibios.c in ds390's library
11235
11236 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
11237
11238         * src/SDCCast.c (decorateType): fixed bug #898889,
11239         cast result of a literal complement too
11240         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
11241         fixed check for bitfields
11242
11243 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
11244
11245         * src/SDCCicode.c (geniCodeLogic): made it static,
11246         (geniCodeLogicAndOr): added in order to fix bug #905492,
11247         (ast2iCode): fixed bug #905492
11248         * support/regression/tests/bug-905492.c: added
11249         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
11250         (processParms): fixed bug #927659: don't copy parms, this will clear
11251         decorated flag
11252         * support/regression/tests/bug-927659.c: added
11253
11254 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
11255
11256         * src/SDCCast.c (addCast): don't cast float to char
11257         * device/lib/libsdcc.lib: added _memmove
11258
11259 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
11260
11261         * device/lib/large/Makefile: fixed parallel execution by
11262         replacing `make` by `$(MAKE)`
11263
11264 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11265
11266         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
11267         offsets (fixes bug #923936)
11268
11269 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
11270
11271         * device/lib/small/Makefile: fixed parallel execution by
11272         replacing `make` by `$(MAKE)`
11273
11274 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
11275
11276         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
11277
11278 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
11279
11280         * src/pic/gen.c (genCpl): multi-byte complements were not working.
11281         * src/regression/Makefile: Regression test was not running.
11282
11283 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
11284
11285         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
11286         complement if possible
11287         * src/SDCCval.c (valComplement),
11288         * src/SDCCicode.c (operandOperation): fixed complement of literal
11289         * support/regression/tests/onebyte.c (testComplement): added
11290
11291 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
11292
11293         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
11294         return an optimized tree; actually replace actParm with the new tree
11295         * src/SDCCast.h: added some parantheses to remove side effects
11296         * support/regression/tests/bug-920866.c
11297
11298 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
11299         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
11300         Bit operands were not being handled properly in the pic14 port.
11301         (now src/regression/add.c passes again).
11302
11303 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11304
11305         * src/SDCC.y (labeled_statement): case and default no longer require
11306         a following statement (RFE #893037)
11307
11308 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11309
11310         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
11311         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
11312         disabled (fixes bug #916294)
11313         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
11314         "mov a,acc"; patch provided by Lenny Story
11315         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
11316
11317 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11318
11319         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
11320         functions
11321         * src/ds390/gen.c (genFunction, genEndFunction),
11322         * src/ds390/ralloc.c (ds390_assignRegisters),
11323         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
11324         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
11325         pushed if there are parameters passed on the stack. Also, a cleaner
11326         way to decide if r0/r1 should be pushed/popped. (Together they fix
11327         bug #918693)
11328
11329 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11330
11331         * doc/sdccman.lyx,
11332         * device/lib/mcs51/crtpagesfr.asm,
11333         * device/lib/mcs51/crtxinit.asm,
11334         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
11335         to avoid confusion with Si Lab's SFRPAGE register.
11336
11337 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11338
11339         * src/SDCCglue.c (emitMaps): allow public sfr variables
11340         * src/SDCCglue.c (initialComments): include compiler build date
11341         with compiler version and put the timestamp of the generated
11342         assembly file on a serperate line to be less confusing.
11343         * src/port.h: added genInitStartup hook
11344         * src/avr/main.c,
11345         * src/ds390/main.c,
11346         * src/hc08/main.c,
11347         * src/pic/main.c,
11348         * src/pic16/main.c,
11349         * src/xa51/main.c,
11350         * src/z80/main.c: genInitStartup initialize as NULL (default to
11351         historical behaviour)
11352         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
11353         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
11354         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
11355         library instead of hard coding it into the compiler.
11356         * support/regression/ports/mcs51-stack-auto/spec.mk,
11357         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
11358         * device/lib/mcs51/Makefile,
11359         * device/lib/small/Makefile,
11360         * device/lib/large/Makefile,
11361         * device/lib/mcs51/crtpagesfr.asm,
11362         * device/lib/mcs51/crtstart.asm,
11363         * device/lib/mcs51/crtxclear.asm,
11364         * device/lib/mcs51/crtxinit.asm,
11365         * device/lib/mcs51/crtclear.asm,
11366         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
11367         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
11368         and into user configurable files.
11369         * device/lib/clean.mk: clean mcs51 directory too
11370         * support/regression/tests/longlit.c: added static to T1 declaration
11371         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
11372         accesses in the initialization code
11373
11374 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11375
11376         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
11377         OSCTRIMVAL as noted in bug #916008
11378
11379 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11380
11381         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
11382         in loops with multiple exits (reported as incorrect registers
11383         used by Martin Helmling in Sdcc-user list)
11384
11385 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11386
11387         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
11388         made ds390 register extensions look less like error messages
11389
11390 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11391
11392         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
11393         reported by Adam Wozniak in Sdcc-user list
11394
11395 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
11396
11397         * src/SDCCast.c (decorateType): fixed with bug and promotion in
11398         arithmetic optimizations, added debug output
11399
11400 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
11401
11402         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
11403         * sdcc.spec: updated and split sdcc into 3 rpms
11404         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
11405         needed for literals of LEFT_OP and '+'
11406         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
11407         introduced RESULT_TYPE_NOPROM
11408         (geniCodeMultiply): fixed logic for decision if mul is optimized to
11409         left shift
11410         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
11411         limited promotion to int only for '*'
11412         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
11413
11414 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
11415
11416         * src/pic16/gen.c (genSkip),
11417         (genc16bit2lit), (gencjneshort): commented out
11418         (is_LitOp): new helper function, checks operand type
11419         (genCmpEq): rewritten
11420
11421 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
11422
11423         * support/regression/tests/bug-908454.c: added
11424
11425 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
11426
11427         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
11428         * src/SDCCicode.c (usualBinaryConversions): op needs int type
11429         (geniCodeCast): cosmetic, don't preserve bit storage class
11430         (geniCodeLeftShift): added promotion
11431         (geniCodeLogic): fixed regression
11432         * src/SDCCsymt.c (computeTypeOr): accept bits too
11433         (compareType): 2nd part of fix for bug #908454, needed for bitfields
11434
11435 2004-03-07  Borut Razem <borut.razem AT siol.net>
11436
11437         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
11438
11439 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
11440
11441         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
11442         version of pic16_genPackRegisters which does not check if ic is a
11443         CAST operator,
11444         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
11445         function cause string1.c regression test fails
11446
11447 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
11448
11449         * sim/ucsim/configure.in,
11450         * sim/ucsim/configure,
11451         * sim/ucsim/doc/Makefile.in: use docdir
11452         * src/SDCC.y: fixed sbit atrributes
11453         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
11454         * src/SDCCast.c (decorateType): |^& need special promotion handling
11455         * src/SDCCast.h,
11456         * src/SDCCsymt.h: moved definition of RESULT_TYPE
11457         * src/SDCCsymt.h (computeType),
11458         * src/SDCCicode.c: computeType() needs op
11459         * src/SDCCsymt.c (checkTypeSanity),
11460         * doc/sddman.lyx: "plain" bitfields are unsigned
11461         * src/SDCCsymt.c (computeTypeOr): added
11462         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
11463         |^& ops
11464         * src/SDCCval.c (val*): computeType() needs op
11465         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
11466         * support/regression/tests/onebyte.c: added tests for |^&
11467
11468 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
11469
11470         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
11471         for writing icode into asm output.
11472
11473 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
11474
11475         * src/pic16/device.c: added some debug lines enabled
11476         with macro DEBUG_CHECK,
11477         * src/pic16/genarith.c: more debug in genPlus,
11478         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
11479         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
11480         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
11481         * (aopForSym): onStack symbols are re-placed in data memspace,
11482         and onStack flag is cleared,
11483         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
11484         copy temporary pcodeop,
11485         * (genPcall): added warning for not updating PCLATU,
11486         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
11487         always true for pic16 port,
11488         * (genMultOneWord): NEW, supports integer multiplication,
11489         * (genMult): modified to call genMultOneWord,
11490         * (ifxForOp): added warning when return NULL,
11491         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
11492         flag is set before call to operandFromSymbol for implicit
11493         added structures,
11494         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
11495         options.intlong_rent are set by default,
11496         * (_hasNativeMulFor): modified to allow port generation of integer
11497         multiplication,
11498         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
11499         set regtype to REG_SFR for all registers, restricting seting the
11500         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
11501
11502 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11503
11504         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
11505         more than 500 times in the regression tests
11506
11507 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11508
11509         * support/Util/SDCCerr.h,
11510         * support/Util/SDCCerr.c,
11511         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
11512         enumerator_list),
11513         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
11514         for symbol conflicts.
11515         * support/valdiags/tests/enum.c,
11516         * support/valdiags/tests/tentdecl.c,
11517         * support/valdiags/tests/struct.c: expect possible error messages
11518         referring to original symbol definitions.
11519         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
11520         * src/SDCCsymt.h,
11521         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
11522
11523 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
11524
11525         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
11526
11527 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
11528
11529         * src/pic16/ralloc.c (newReg): fixed bug #908929
11530
11531 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11532
11533         * src/ds390/gen.c: added missing #include "main.h"
11534
11535 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
11536
11537         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
11538         checking if symbol is already in set,
11539         * src/pic16/device.h: prototype for checkAddSym,
11540         * src/pic16/gen.c: (_G): added entry interruptvector,
11541         * (assignResultValue): removed some commented out lines,
11542         * (genFunction): check for ISR via sym->type, absolute section for
11543         interrupt code is created via a new pBlock, the goto instruction is
11544         placed now correctly at the interrupt vector position, changed all
11545         references from ivec to _G.interruptvector,
11546         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
11547         is the interrupt is a high priority one, same for return from ISR,
11548         * src/pic16/glue.c: changed all calls of addSetHead for publics and
11549         externs to calls of checkAddSym,
11550         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
11551         pic16_pcode_verbose flag is set,
11552         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
11553         * src/pic16/pcoderegs.c: message about how many registers are saved
11554         will only be emitted if pic16_pcode_verbose flag is set,
11555
11556 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11557
11558         * src/ds390/ralloc.h,
11559         * src/ds390/ralloc.c (ds390_regWithIdx),
11560         * src/ds390/gen.c (emitcode),
11561         * src/ds390/main.h,
11562         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
11563         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
11564         ds390operandCompare, getRegsRead, getRegsWritten,
11565         initializeAsmLineNode): customized instruction size calculation for
11566         ds390, started basis for some register optimizations
11567         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
11568         corresponding assembly output
11569         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
11570         missing push/pop of r0/r1. Optimized push/pops
11571
11572 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11573
11574         * src/mcs51/main.c (instructionSize): fixed ACALL size
11575         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
11576
11577 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
11578
11579         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
11580         the sorting of rlist with NULL elements
11581         * (print_idataType, print_idata): NEW to create idata sections
11582         * src/pic16/device.h: idataSymSet new variable
11583         * src/pic16/gen.c (genFunction): fixed some bugs in string
11584         comparing, improved the absolute section creation for ISRs,
11585         added FSR0L/FSR0H in registers that are saved in an ISR,
11586         * (genInline): fixed the processing of inline snippets,
11587         now they undergo no process by the peephole optimizer
11588         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
11589         are placed in idataSymSet,
11590         * (pic16emitStaticSeg): extern symbols are added in externs,
11591         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
11592         switching when aboslute variables are placed in access bank memory
11593         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
11594         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
11595         commented out with #if,
11596         * (pic16_packRegisters): reintroduce the check for CAST because some
11597         symbols are not correctly handled,
11598         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
11599         pCodeInstruction instead of pCode,
11600         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
11601         pCodeAsmDir definition,
11602         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
11603         directive, then the argument directive is emitted without the leading
11604         tab, hack for inline labels which must be in the first column,
11605         * (compareLabel,pic16_findNextInstruction),
11606         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
11607         * (insertBankSwitch): modified for the new pCodeAsmDir,
11608
11609 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11610         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
11611
11612         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
11613         instance,
11614         * (pushSide): commented out with #if,
11615         * (assignResultValue): fixed some typos in saving
11616         registers,
11617         * (genPcall): FIXED and sync'ed with genCall,
11618         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
11619         * (genNearPointerGet): fixed to handle some more cases,
11620         implementation scheme via table reads,
11621         * (genConstPointerGet): modified to access code memory correct,
11622         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
11623         and improved to handle some cases
11624         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
11625         instead of "RETLW" for init data
11626         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
11627         not IN_DIRSPACE, work around to reduce bank switching when aboslute
11628         variables are placed in access bank memory (<0x80 and >=0xf80),
11629         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
11630         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
11631         TBLWT_POSTDEC,TBLWT_PREINC
11632         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
11633         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
11634         directives
11635         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
11636         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
11637         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
11638         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
11639
11640 2004-02-29  Borut Razem <borut.razem AT siol.net>
11641
11642         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
11643         support/Util/findme.h, support/Util/system.h: enhance binary relative
11644         search for lib and include by using findProgramPath()
11645
11646 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11647
11648         * src/SDCCpeeph.h,
11649         * src/SDCCpeeph.c (pcDistance),
11650         * src/port.h,
11651         * src/mcs51/ralloc.h,
11652         * src/mcs51/ralloc.c (mcs51_regWithIdx),
11653         * src/mcs51/main.h,
11654         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
11655         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
11656         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
11657         size calculation port specific, started basis for some register
11658         optimizations
11659         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
11660         missing push/pop of r0/r1. Optimized push/pops
11661         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
11662         * device/lib/_modsint.c (_modsint),
11663         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
11664         and stack version so regression tests pass
11665
11666 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
11667
11668         * src/Makefile.in (dep): include SLIBOBJS in dependency check
11669         * src/SDCCast.c (decorateType): catch another small optimization
11670         with '?' operator
11671         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
11672         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
11673         modified to finally use computeType() all over SDCC,
11674         see Feature Request #877103
11675         * src/SDCCval.h: cosmetic
11676         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
11677         valCompare(); regression tested in muldiv.c
11678         * support/regression/tests/muldiv.c (testMod): mod sign follows
11679         dividend only
11680
11681 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
11682
11683         * src/SDCCast.c (decorateType): fixed bug #902362
11684         * doc/INSTALL.txt: fixed install instructions for win32
11685
11686 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
11687
11688         * device/include/Makefile.in (install): fixed by replacing spaces
11689         by tabs
11690         * doc/README.txt,
11691         * doc/INSTALL.txt: updated for release
11692         * doc/sdccman.lyx: added warning for --xstack being buggy
11693
11694 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
11695
11696         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
11697         to eliminate build warnings.
11698         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
11699
11700 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
11701            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11702
11703         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
11704         removed -penable-stack, added comment for stack pragma, added
11705         warning for not initializing the stack/frame registers, removed
11706         comment at interrupts section
11707
11708         Stack is made permanent, there is no ability to disable stack usage.
11709         * src/pic16/device.h,
11710         * src/pic16/device.c: removed all references to USE_STACK macro,
11711         * src/pic16/device.c (pic16_dump_section): when no elements in
11712         rlist, free rlist before return,
11713         * (pic16_dump_int_registers): NEW, internal registers are a new set
11714         of general purpose registers reused by each function,
11715         * (checkAddReg): returns 1 if registers is added to set,
11716         * (pic16_groupRegistersInSection): when a registers is of type
11717         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
11718         * src/pic16/device.h: memRange and Assigned Memory are deleted,
11719         SRCASECMP macro is moved here from device.c
11720         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
11721         PO_PCLATU, PO_PRODL, PO_PRODH,
11722         * (pic16_pCodeOpType, genMinus,
11723         changed compares to "a" register, with AOP_ACC,
11724         * (pic16_genPlus): fixed some bugs and indented properly,
11725         * (pic16_addSign): changed size to size+offset in the MOVWF
11726         instruction,
11727         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
11728         multiply 8-bit operand by literal, result is 8-bit,
11729         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
11730         multiply 2 8-bit operand, result is 8-bit,
11731         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
11732         genUMult8X*_16,
11733         * src/pic16/gen.c: changed accUse to contain WREG only,
11734         * (pic16_emitcomment): renamed to pic16_emitpcomment,
11735         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
11736         true, do not use immediate addressing any more unless sym is a
11737         pointer in codespace,
11738         * (aopForRemat): do not use immediate addressing when symbol not in
11739         codespace and when symbol's address is requested,
11740         * (aopOp): for-loop in if(sym->accUse) is modified for the new
11741         accUse size (= 1),
11742         * (aopGet): added case for AOP_ACC and don't return "accumulator
11743         bug" but WREG instead,
11744         * (popGetTempReg): pushes contents of temporary register in stack,
11745         * (popReleaseTempReg): pops contents of temporary register from
11746         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
11747         * (pic16_popGet): separated case AOP_ACC to return register WREG
11748         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
11749         or PO_IMMEDIATE and initializes their instance/offset appropriately,
11750         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
11751         the use of immediate pointers to certain cases only.
11752
11753         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
11754         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
11755         * (assignResultValue, genCall, genRet): modified to use the new
11756         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
11757         genPcall is still broken,
11758         * (genFunction): added code to create 'A' type pBlocks when
11759         interrupt functions are generated, code not extensively tested yet,
11760         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
11761         * (genEndFunction): modified so ISRs pop stored registers from stack,
11762         * (genMultOneByte): cleanup,
11763         * (AccRsh): added flag andmask, to and result with appropriate mask,
11764         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
11765         * (genDataPointerGet): fixed and reenabled its use,
11766         * (genNearDataPointerGet): bugs fixed,
11767         * (genDataPointerSet): bugs fixed,
11768         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
11769         pic16_DumpSymbol, pic16_DumpOp,
11770         * src/pic16/genutils.h: function prototypes for the above functions,
11771         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
11772         pointers,
11773         * (pic16emitRegularMap): many many many improvements, but needs a
11774         major cleanup,
11775         * src/pic16/main.c: enable_stack in pic16_options is removed,
11776         * (_pic16_parseOptions): removed command line options -penable-stack,
11777         * (_process_pragma): emit stack symbol only when stack pragma is
11778         processed,
11779         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
11780         redirected to FSR0L/FSR0H pair,
11781         * (pic16_get_op, pic16_get_op2): modifications and improvements,
11782         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
11783         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
11784         for immediates,
11785         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
11786         * (dumpPicOptype): NEW,
11787         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
11788         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
11789         with movff instruction,
11790         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
11791         added pic16_int_regs, some packRegsFor* functions are commented out,
11792         because produce errors,
11793         * src/pic16/NOTES: minor modifications
11794
11795 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11796
11797         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
11798         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
11799         --pack-iram.
11800         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
11801         * as/mcs51/lkaomf51.c: fixed bug #895763
11802
11803 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
11804
11805         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
11806
11807 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11808
11809         * doc/sdccman.lyx: added details about the HC08 storage classes and
11810         interrupts, fixed the register usage info for z80 & gbz80
11811
11812 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
11813
11814         * doc/sdccman.lyx: added more pic16 port documentation
11815         * device/include/pic16/: added header pic18fregs.h
11816
11817 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
11818
11819         * doc/sdccman.lyx: added Vangelis' contribution
11820
11821 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11822
11823         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
11824         extend to the next CALL or PCALL, not just to the next CALL.
11825
11826 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
11827
11828         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
11829
11830 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11831
11832         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
11833         bug #895752 and a better fix for bug #716790
11834
11835 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11836
11837         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
11838
11839 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11840
11841         * doc/sdccman.lyx: minor changes, minor changed
11842
11843 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
11844
11845         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
11846         which can't handle SDCC_NEWONEBYTEOPS,
11847         (geniCodeMultiply): removed conversion from mult to shift for pic14
11848         and pic16
11849
11850 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11851
11852         * src/hc08/gen.h,
11853         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
11854         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
11855         thus fixing bug #895406
11856
11857 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
11858
11859         * device/lib/_modsint.c,
11860         * device/lib/_modslong.c: sign follows divisor only
11861         * src/hc08/gen.c (genMultOneByte): if result size is 1,
11862         signs or signedness can be ignored
11863         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
11864         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
11865         added optimization for IFX,
11866         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
11867         arguments;
11868         reenabled optimization for IFX, which was removed on 2004-01-11
11869         * src/SDCCast.h: added return type IFX
11870         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
11871         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
11872         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
11873         SDCC_OLDONEBYTEOPS selects the old behaviour
11874         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
11875         changed again and commented promotion rule
11876         * src/SDCCval.c (valDiv): promotion no longer necessary
11877         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
11878         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
11879         rewritten
11880         * support/regression/tests/onebyte.c: added
11881
11882 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
11883
11884         * gen.c (genInline): reverted to old code for assemnling inline
11885         code because of bug reported James Chadd
11886
11887 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
11888
11889         * ralloc.h: missing declarations from previous patch,
11890         seems that patch for ralloc.h was never applied, fixed
11891
11892 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11893            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
11894
11895         * pcode.c,
11896         * pcode.h,
11897         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
11898         indirect addressing. Marked FSR0 as deprecated
11899         * gen.c (pointerCode): commented out, not needed now
11900         (pic16_popGet2p): new MOVFF helper function
11901         (genGenPointerGet),
11902         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
11903         (shiftRLong): removed duplicate debugging info
11904
11905 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11906
11907         * src/ds390/gen.c (genNearPointerGet),
11908         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
11909         optimization with bits, but not bitfields.
11910         * src/ds390/ralloc.c (packRegisters),
11911         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
11912
11913 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
11914
11915         * src/SDCCcse.c (algebraicOpts): copy operands before modification
11916
11917 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11918
11919         * src/SDCCsymt.h,
11920         * src/SDCCicode.c (operandFromSymbol),
11921         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
11922         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
11923         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
11924         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
11925         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
11926         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
11927         bug #892038
11928         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
11929         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
11930         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
11931         * src/SDCCsymt.c (newSymbol),
11932         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
11933         enumerator_list),
11934         * src/SDCCval.h,
11935         * src/SDCCval.c (newiList): fixed bug #885705
11936
11937 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11938
11939         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
11940         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
11941
11942 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11943
11944         * device/include/c8051f120.h,
11945         * device/include/c8051f300.h,
11946         * device/include/c8051f310.h: added/updated header files for Silicon
11947         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
11948         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
11949         in new section Submitting patches
11950
11951 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11952
11953         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
11954         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11955         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11956         genGenPointerSet),
11957         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
11958         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11959         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11960         genGenPointerSet),
11961         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
11962         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11963         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11964         genGenPointerSet),
11965         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
11966         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11967         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11968         genGenPointerSet): fixed bug #892400
11969         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
11970         to eliminate build warnings.
11971         * src/SDCCast.c (processParms),
11972         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
11973         fixed bug 751859
11974         * support/valdiag/valdiag.py: added GCC to the list of defines active
11975         when compiling with gcc
11976
11977 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11978
11979         * support/Util/SDCCerr.h,
11980         * support/Util/SDCCerr.c,
11981         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
11982         with an incomplete type (fixed bug #883734)
11983         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
11984
11985 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11986
11987         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
11988
11989 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11990
11991         * src/SDCCast.c (decorateType),
11992         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
11993         function pointer implementation
11994         * support/regression/tests/funptrs.c: added tests to verify both forms
11995         of function pointers work correctly. Added tests to verify parameters
11996         are passed in the correct order.
11997
11998 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
11999
12000         * device.c (regCompare): registers are sorted by ascending
12001         address and increasing size,
12002         * main.c (_pic16_finaliseOptions): removed the declaration
12003         of compiler macro MCU. Now a macro of the format pic18fxxxx
12004         will be defined from the command line
12005
12006 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
12007             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
12008
12009         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
12010         PCOP_RLCF was overwritten!
12011         * gen.c (genSkip): commented out calls to pic16_emitcode,
12012         * (genCmpEQ): fixed "long" compares, only high word did get compared,
12013         * (genlshTwo),
12014         * (genRRC): added debugging info,
12015         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
12016         overwritten while shifting,
12017         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
12018         overwritten while shifting,
12019         * (AccLsh),
12020         * (AccRsh),
12021         * (shiftLLeftOrResult),
12022         * (shiftRLeftOrResult),
12023         * (shiftRLong),
12024         * (shiftLLong): Implemented with pic16_emitpcode
12025         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
12026         * (genLeftShift): Fixed bug, operand for shift by variable always
12027         was "and"ed with 0x0f,
12028         * (genLeftShiftLiteral),
12029         * (genrshTwo),
12030         * (genRightShiftLiteral): added debugging info,
12031         * (genrshFour): added comment,
12032         * (genRightShift): determined signedness from operand "left"
12033         instead of "result"
12034
12035 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12036
12037         * src/SDCCicode.c (geniCodeParms),
12038         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
12039         function pointers, fixed function pointer bugs #861242 and #861896
12040
12041 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12042
12043         * device/include/c8051f000.h,
12044         * device/include/c8051f120.h,
12045         * device/include/c8051f300.h: added header files for Silicon
12046         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
12047
12048 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
12049
12050         * src/SDCCast.c (processParams): added new type flow and restructured
12051         (gatherAutoInit): added new type flow
12052         (addCast): cosmetic changes
12053         (getLeftResultType): added new type flow for array indices, patch
12054         provided by Stas, see FR #877103
12055         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
12056         array index patch by Stas
12057         * src/SDCCast.h: added prototype getResultTypeFromType()
12058         * src/SDCCval.h,
12059         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
12060         * src/pic/glue.c (pic14emitStaticSeg),
12061         * src/pic16/glue.c (pic16emitStaticSeg),
12062         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
12063         for initialization of symbols
12064         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
12065         * support/Util/SDCCerr.h:
12066         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
12067         * .version: bumped version number to 2.3.8
12068         * device/include/Makefile.in (install),
12069         * doc/Makefile (install): changed to 'rm `find ...`' construct to
12070         avoid warnings
12071
12072 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
12073
12074         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
12075         Slade Rich fixed an optimization bug
12076         * src/pic/pcodepeep.c,
12077         * src/pic/pcoderegs.c
12078         * doc/Makefile (install): added test for directory
12079
12080 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12081
12082         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
12083         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
12084         * src/pic/ralloc.c (getRegPtr, getRegGpr),
12085         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
12086         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
12087         * as/mcs51/asexpr.c (term),
12088         * as/hc08/asexpr.c (term): fixed bug #887146
12089
12090 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12091
12092         * src/z80/gen.c (genMult): handle single byte result product
12093         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
12094         DUMMY_READ_VOLATILE (fixed bug #886367)
12095
12096 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
12097
12098         * support/regression/tests/libmullong.c: fixed logic, on little endian
12099         hosts we ended without a mullong_wrapper()
12100
12101 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12102
12103         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
12104         virus/worm forged address usage.
12105
12106 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
12107
12108         Fixed promotion, it should be done on AST level:
12109         * src/SDCCast.c (addCast): added promotion to int
12110         (decorateType): updated call to upCast()
12111         * src/SDCCicode.c (geniCodeLeftShift): removed call to
12112         usualUnaryConversions()
12113
12114 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
12115
12116         * support/regression/tests/literalop.c (mulWrapper): Added a
12117         wrapper to remove integer overflow warnings.
12118
12119         * support/regression/tests/float_trans.c: Made work on host.
12120
12121         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
12122         location of sz80.
12123
12124         * support/regression/generate-cases.py (main): Changed from inline
12125         to a main method.
12126
12127         * doc/Makefile (install): Changed to depth first to get rid of
12128         missing directory install warning.
12129
12130         * as/Makefile (install-doc): Made work on Mac.
12131
12132 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
12133
12134         * src/SDCCast.c: added an additional type flow in decorateType() of
12135         opposite direction, see feature request #860006; it's enabled at runtime
12136         by setting the environment variable SDCC_NEWTYPEFLOW
12137         * src/SDCCast.h: changed prototype of decorateType()
12138         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
12139         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
12140         'char' to 'int' can be omitted, if both operands are 'unsigned char';
12141         see feature request #877103
12142         * src/SDCCval.c: updated call of decorateType()
12143         (valBitwise): fixed bug #882876
12144         (valMinus): added promotion
12145         (valLogicAndOr): result is unsigned
12146         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
12147         * src/SDCCsymt.c (computeType),
12148         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
12149         must not cause an unsigned operation
12150         * src/pic/glue (pic14emitRegularMap),
12151         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
12152
12153 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
12154
12155         * src/pic/pcode.c (PCodeID): commented out left over debug code
12156
12157 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
12158
12159         * support/valdiag/tests/overflow.c: added shift tests
12160         * src/pic/device.c,
12161         * src/pic/gen.c,
12162         * src/pic/gen.h,
12163         * src/pic/glue.c,
12164         * src/pic/main.c,
12165         * src/pic/pcode.c,
12166         * src/pic/pcode.h,
12167         * src/pic/pcodepeep.c,
12168         * src/pic/pcoderegs.c,
12169         * src/pic/ralloc.c,
12170         * src/pic/ralloc.h: applied patch from Slade Rich;
12171         added support for multiple code pages and multiple RAM banks on the
12172         PIC 14 port. The ASM files now no longer simply assume all the
12173         code / RAM are in the same page / bank. This means the linker can
12174         safely allocate code/RAM of separate ASM files to different pages/banks.
12175         * doc/sdccman.lyx: added Slade's tips
12176         * src/mcs51/peeph.def: fixed bug #880768
12177
12178 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12179
12180         * src/hc08/ralloc.c (rematStr): fixed bug #879282
12181         * src/SDCCast.c (decorateType): fixed bug #880197
12182
12183 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
12184
12185         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
12186         getopt.h.
12187
12188         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
12189         strtof is not part of C89 and isn't included with Mac OS X.
12190
12191 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12192
12193         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
12194         shiftL2Left2Result): fixed bug #879326
12195         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
12196         (genMultOneByte): fixed bug in signed vs unsigned multiplication
12197         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
12198         address fetch for clr instruction
12199         * device/lib/hc08/_mulint.c: created optimized assembly version
12200         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
12201
12202 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
12203
12204         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
12205         proposed in FR #877103
12206
12207 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
12208
12209         * src/SDCCval.c (cheapestVal): added missing checks
12210         * src/SDCCicode.c (usualBinaryConversions): fixed condition
12211         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
12212
12213 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
12214
12215         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
12216         equal operands
12217
12218 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
12219
12220         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
12221         loaded with the linker search paths (-L arguments) and the libraries
12222         to be linked with the current source (-l arguments). Changes
12223         currently will affect only the pic16 port.
12224         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
12225         include path the port specific paths and port specific libraries,
12226         * gplink command now contains the $3 argument,
12227         * src/pic16/device.h,
12228         * src/pic16/device.c,: structure PIC_device is made public and
12229         renamed to PIC16_device, the same for variable Pics which is renamed
12230         to Pics16. Updated all references to them.
12231         * src/pic16/glue.c (pic16glue): corrected bug with code
12232         initialization which bypassed the variable initializations block.
12233
12234         * device/lib/pic16/Makefile.rules: removed --penable-stack from
12235         COMPILE_FLAGS and added the --nostdinc option
12236
12237 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12238
12239         * device/include/mc68hc908jb8.h: Register defs for another member
12240         of the hc08 family. Contributed by Bjorn Bringert - thanks!
12241
12242 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
12243
12244         Documenting changes from previous commits.
12245         * configure.in (version 1.56),
12246         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
12247         when generating output files to configure the pic16 library,
12248         but now I've commented it out, since gputils aren't installed in the
12249         SF compile farm, so library won't compile
12250
12251         * device/lib/Makefile.in (version 1.56): initially I've added in
12252         target 'all' the prerequestive 'model-pic16' so it compiled the
12253         pic16 library, but now I've commented it out for the same reasons
12254         above,
12255         * added targets 'model-pic16' and 'objects-pic16' to compile the
12256         library
12257         * added target 'port-specific-objects-pic16' to handle the
12258         generated libraries and copy them into the build/ directory
12259         * added target 'clean-intermediate-pic16' to clean intermediate
12260         files into pic16 directory
12261         * in target 'installdirs' added line to create directory pic16 in
12262         the installation path
12263
12264         * device/include/Makefile.in (version 1.11): in target 'install'
12265         added lines to copy all header files to installation path,
12266         * in target 'installdirs' added line create directory for pic16
12267         headers in the installation path
12268
12269 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
12270
12271         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
12272          a function call
12273
12274 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
12275
12276         * configure,
12277         * device/lib/configure.in,
12278         * device/lib/configure: fixed for autoconf 2.57
12279
12280 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12281
12282         * src/z80/main.c (_parseOptions): fixed the portmode= command line
12283         option so that it actually works. Made it specific to the z80, since
12284         the gbz80 doesn't have these kinds of I/O ports.
12285
12286 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12287
12288         * device/include/z180.h,
12289         * device/lib/_memcpy.c,
12290         * device/lib/_memmove.c,
12291         * device/lib/_mulint.c,
12292         * device/lib/ser_ir.c,
12293         * device/lib/ser_ir_cts_rts.c,
12294         * device/lib/_strcmp.c,
12295         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
12296         * src/z80/main.c (_process_pragma): add support for pragmas bank and
12297         portmode; added deprecation warning for bank= and protmode= forms.
12298         Also, guard against buffer overflow.
12299         * src/z80/gen.c (aopGet): generate better code for sfr banked read
12300
12301 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12302
12303         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
12304         changed interrupt vector table generation to only emit declared vectors.
12305         * device/include/Makefile.in: added missing backslash
12306         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
12307
12308 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
12309
12310         Mainly changes to support compilation of the device libraries
12311         * src/pic16/device.c: stack is allocated via symbol and not
12312         via literal number. The symbol is placed in the corresponding
12313         position of the data ram
12314         * (pic16_dump_section): relocatable and absolute uninitialized
12315         data are now emitted in sorted order to reduce section naming,
12316         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
12317         weren't marked as being in the access bank,
12318
12319 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
12320
12321         Added portion of GNU PIC Library under the directory
12322         device/include/pic16 and device/lib/pic16. These files
12323         contain the declarations of SFRs for the PIC18Fxx2 devices.
12324         The directory is initialized via configure from toplevel.
12325
12326 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
12327
12328         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
12329         the spilllocations to be compared correctly
12330
12331 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
12332
12333         * src/SDCCast.c (decorateType): fixed bug introduced today
12334
12335 2004-01-12  Borut Razem <borut.razem AT siol.net>
12336
12337         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
12338         doc/sdccman.lyx: upper case pragmas are deprecated
12339
12340 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
12341
12342         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
12343         in simpler and even better code
12344
12345 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
12346
12347         * src/SDCCicode.c (operandOperation): fixed bug #874819
12348         * src/SDCCast.c (decorateType): fixed
12349         char foo (unsigned long ul) { return ul > 0; }
12350
12351 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12352
12353         * doc/sdccman.lyx: Moved and added some sections, small changes
12354         all over. Telling LaTeX to be less strict with word spacing
12355         to better keep the right margin. Changed some notes about
12356         maintainance of the ports in section 3.2.1 - is it OK like this?
12357
12358 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
12359
12360         SDCC source changes:
12361         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
12362         convilong): modified to inform the pic16 port that builtin functions
12363         are external
12364
12365         PIC16 PORT specific changes:
12366         * src/pic16/device.c pic16_dump_equates() added,
12367         processor registers declared internally by the port are emitted in
12368         the translation as equates,
12369         * src/pic16/gen.c: inline code is passed unprocessed to the
12370         translation,
12371         * (pic16_popGetLit2): fnuction modified to take second operand as
12372         pCodeOp pointer and not as literal,
12373         * (popRegFromIdx): prefixed with pic16_,
12374         * (pic16_popCombine2): modified to receive already allocated pCode
12375         operands,
12376         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
12377         * (genFunction): initializes local stack frame and pushes on stack
12378         all the registers used by this function,
12379         * (genEndFunction): restores all registers from stack and restores
12380         stack frame,
12381         * src/pic16/glue.c (pic16emitRegularMap): various changes and
12382         improvements,
12383         * (pic16glue): changed the program startup sequence,
12384         * added new dbName code 'A' for functions placed in absolute section
12385         * src/pic16/main.c: added function attribute _naked,
12386         * added pragma 'code' to place a fnuction at an absolute address,
12387         * added command line arguments --debug-ralloc and --pcode-verbose,
12388         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
12389         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
12390         * (pic16_newpCodeOpLit2): modified to take the second operand as
12391         pCodeOp pointer,
12392         * (pic16_printpBlock): modified to emit each function in a separate
12393         section,
12394         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
12395         UPPER for immediate operands,
12396         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
12397         instruction,
12398         * src/pic16/peeph.def: all peepholes with movff are commented out,
12399         because there is a problem in the pcode peep optimizer,
12400         * src/pic16/ralloc.c: the register allocator can now reuse local
12401         function symbols for another function. This saves register usage.
12402         * src/pic16/ralloc.h: added flag isLocal in structure regs,
12403
12404         Added file src/pic16/NOTES with information about program writing on
12405         the current port version.
12406
12407 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12408
12409         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
12410         and peephole 252 (array access)
12411
12412 2004-01-09  Borut Razem <borut.razem AT siol.net>
12413
12414         * src/SDCCmain.c : fixed #872250: -l command line defined library
12415           files are scanned before standard library files
12416
12417 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12418
12419         * src/SDCCast.c (decorateType): fixed bug #874046
12420
12421 2004-01-09  Borut Razem <borut.razem AT siol.net>
12422
12423         * support/scripts/sdcc.nsi: remove previous installation
12424
12425 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12426
12427         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
12428         bytes for last interrupt vector (mcs51)
12429         * sdcc.spec: fixed typo
12430
12431 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12432
12433         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
12434         gen51Code): more efficient parameter receive for --model-large
12435         ("bug" #845294)
12436
12437 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12438
12439         * src/ds390/main.c,
12440         * src/z80/main.c: added missed needLinkerScript flags (more than
12441         one port structure defined in these file)
12442         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
12443         bug #795325
12444
12445 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
12446
12447         * src/SDCCmain.c: removed various references to DEFAULT_PORT
12448         * src/port.h: added flag needLinkerScript in port->linker
12449         structure to inform whether to create a .lnk file or not,
12450         * src/avr/main.c,
12451         * src/ds390/main.c,
12452         * src/hc08/main.c,
12453         * src/mcs51/main.c,
12454         * src/pic/main.c,
12455         * src/pic16/main.c,
12456         * src/xa51/main.c,
12457         * src/z80/main.c: changed appropriately to configure
12458         needLinkerScript flag
12459         * src/pic/gen.c,
12460         * src/pic16/gen.c (genAddrOf): fixed bug #863624
12461         * src/pic/glue.c: added variable udata_section_name to
12462         override default uninitialized data segment definition for
12463         devices only with SHAREBANK memory (reported from Erik Epetrich)
12464         * (pic14emitOverlay): modified to emit a commented overlay segment
12465         directive when no overlay data exist
12466         * (picglue): modified to emit uninitialized data segment
12467         according to udata_section_name
12468         * src/pic/main.c (_pic14_parseOptions): added command line
12469         options --udata-section-name=[name] to override default
12470         udata definition name
12471         * modified _linkCmd and _asmCmd to include compiler passed
12472         arguments via -W option
12473         * src/pic16/main.c: added $l in _asmCmd, changed extension for
12474         object file from '.rel' to '.o' in port->linker structure,
12475         changed size of fptr from 2 to 3 in port structure
12476
12477 2004-01-07  Borut Razem <borut.razem AT siol.net>
12478
12479         * support/scripts/sdcc.nsi: update PATH
12480         * support/scripts/sdcc.ico: craeted
12481
12482 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
12483
12484         * device/include/Makefile.in: fix install
12485         * doc/Makefile: fix install
12486
12487 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12488
12489         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
12490         in bug #860505
12491         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
12492         how the function variable allocation summary is displayed; also
12493         include information about variables allocated to the overlay
12494         segment
12495
12496 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12497
12498         * as/mcs51/lkmain.c: Help about -Y option
12499         * as/mcs51/lkarea.c: Fixed gcc warnings
12500
12501 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
12502
12503         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
12504         fixed warning
12505         * support/valdiag/tests/overflow.c: added
12506         * src/SDCCast.c (decorateType),
12507         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
12508         LEFT_OP (left shift)
12509
12510 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12511
12512         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
12513         (default behaviour).
12514
12515 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12516
12517         A python script to validate compiler diagnostic messages. It can be
12518         used to verify that sdcc complains about bad c source code and
12519         gives a good location of the error.
12520         * support/valdiag/Makefile,
12521         * support/valdiag/valdiag.py,
12522         * support/valdiag/tests/*
12523
12524 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12525
12526         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
12527         * src/SDCCsymt.c (newEnumType),
12528         * src/SDCCsymt.h
12529         * support/Util/SDCCerr.c,
12530         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
12531         enum related bugs.
12532         * support/regression/tests/enum.c: added test for enum values that
12533         require at least 2 bytes of storage.
12534
12535 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
12536
12537         * src/common.h: added ifndef/define/endif macros
12538         around the header file.
12539         Bug reported from Jesus Calvino-Fraga
12540
12541 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
12542
12543         * sdcc.spec: updated
12544         * device/include/Makefile.in: don't install CVS directories
12545         * device/lib/Makefile.in: added removal of CVS directories after install
12546         * doc/Makefile: fixed install, added local_icons
12547         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
12548         * src/mcs51/gen.c (genRightShift): fixed bug #870788
12549         * src/ds390/gen.c (genRightShift): fixed bug #870788
12550         * src/SDCCast.c (decorateType): fixed bug #870781
12551
12552 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
12553
12554         PIC16 port related changes:
12555         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
12556         added variable stackPos,
12557
12558         * gen.c: genCall, assignResultValue: added support for
12559         pushing/retrieving function parameters to/from stack,
12560         genFunction,genEndFunction: setup stack frame for the
12561         generated function,
12562         genAddrOf: will be changed according to bug 863624
12563
12564         * added files genutils.c and genutils.h which contain gen*
12565         debugged and optimised functions extracted from gen.c
12566
12567         * glue.c: added variable 'externs' which holds extern symbols,
12568         pic16emitRegularMap: is modified to properly handle relocatable
12569          symbols under the new scheme,
12570         pic16createInterruptVect: is modified
12571         pic16printPublics: is modified to emit 'global' assembler directives,
12572         added pic16_printExterns to print extern symbols,
12573         pic16glue: initializes stack/frame pointer in the beginning of
12574         the assembly output. Temporary hack, will be corrected later,
12575         because gplink yet does not support stack and SDCC does not
12576         yet support a type of crt0.o object to create the final binary.
12577
12578         * Removed many lines that contain 8051 legacy code.
12579         * The code is finally placed under a 'code' directive.
12580         * Added port specific options.
12581
12582         * _process_pragma: simplified since now we do not need *special*
12583         include file to define SFR registers. But a separate header
12584         will be needed. This will be developed later.
12585         * _pic16_parseOptions: added, parses port specific options:
12586         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
12587         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
12588         --preplace-udata-with=
12589
12590         * _pic16_setDefaultOptions: modified to initialize section names,
12591         but hack is temporarly out of order since it needs improvement.
12592         * _pic16_genAssemblerPreamble: configuration words are emitted by
12593         their address instead of their name. This part is incomplete and
12594         supports only the 18Fxx2 devices. Other devices will emit an error
12595         during assembly since they do not contain the same set of config
12596         registers
12597         * _pic16_genIVT: is modified,
12598
12599         * pcode.c: added definitions for some hardware registers that are needed
12600         for stack support
12601         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
12602         All PCI entries are updated. Now LFSR is supported.
12603         * Removed pic16_pciTRIS is mentioned by mdubuc in source
12604         * added pic16_newpCodeOpLit2 to support instructions with
12605         two literal arguments
12606         * pic16_pCode2str: corrected code that emits assembler instructions
12607         with two literal operands and those that have an access bit modifier
12608         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
12609         this fixes a bug which caused some labels to be lost, when an
12610         assembler directive was added, i.e. banksel,
12611         * pic16_FixRegisterBanking: improved logic that causes the insertion
12612         of bank switching,
12613         * InlineFunction: functions that are called once, are not any more
12614         inlined. This can be a port option in the future,
12615
12616         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
12617
12618         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
12619         hold the corresponding uninitialized symbols,
12620         * pic16_allocProcessorRegister: registers have explicit marked the
12621         accessBank field,
12622         * pic16_allocInternalRegister: registers are explicit marked as
12623         not used,
12624         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
12625         processing list, so bit registers were lost,
12626         *
12627
12628         * ralloc.h: added field 'accessBank' and original symbol operand
12629         in register definition,
12630         * removed the field isMapped from register definition,
12631
12632         ** Several functions have been removed from various sources:
12633         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
12634         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
12635         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
12636         pic16_assignRelocatableRegisters
12637
12638         ** others have been introduced:
12639         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
12640         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
12641
12642 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
12643
12644         * support/scripts/inc2h.pl: changed definition of BIT_AT
12645         to emit 'sbit at' instead of 'bit at'. This was a request.
12646
12647         PIC16 port related preliminary changes:
12648         * gen.c: prefixed function popRegFromString with
12649         pic16_ and all references to it corrected
12650         * pcode.c: all pic16_pc_* hardware registers prefixed
12651         with underscore (_),
12652         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
12653         * ralloc.c: newReg(): when register is REG_SFR then
12654         set address to rIdx,
12655         pic16_allocProcessorRegister(): marks register wasUsed=0
12656         pic16_writeUsedRegs(): added a call to assign processor
12657         registers via pic16_assignFixedRegisters
12658
12659 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12660
12661         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
12662         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
12663         variables in unused register banks.  Also the SSEG is placed
12664         wherever there is enough space for it, and IDATA can be anywhere
12665         in internal RAM.  For now compile using -Wl-Y[stack_size].
12666         The mem file is different for this option as well, since it
12667         makes no sense of talking about DSEG lenght.
12668
12669 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
12670
12671         * src/SDCClrange.c: fixed bug 869095 that caused segfault
12672         in certain cases, e.g. when ROM assignment, patch provided
12673         from Albert den Haan.
12674
12675 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
12676
12677         Many signedness and type propagation fixes:
12678         * src/SDCCicode.c: made geniCodeCast() static
12679         replaced SPEC_ by IS_ (cosmetic)
12680         (operandOperation): fixed div and mod operation
12681         (usualBinaryConversions): added support for promotion of char
12682         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
12683         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
12684         (geniCodeAdd): an array index will stay unsigned, even if promoted
12685         from char to int
12686         (geniCodeArray): ditto
12687         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
12688         * src/SDCCsymt.c (computeType): added more support for char;
12689         promotion of char is selectable by promoteCharToInt, fixed signedness
12690         for all cases
12691         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
12692         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
12693         * src/SDCCval (val*): replaced signedness calculation by
12694         computeType()
12695         rearranged if-branches (cosmetic)
12696         (valShift): added warning W_SHIFT_CHANGED
12697         (valCompare): fixed problem with different types
12698         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
12699         * support/regression/tests/literalop.c: added many cases
12700         * support/regression/tests/ast_constant_folding.c: changed finally to
12701         'unsigned int'
12702         * .version: new year, new version: 2.3.7
12703         * src/SDCCmain.c (main): applied patch #866468
12704         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
12705         provided by Scott Bronson
12706         * doc/sdccman.lyx: updated documentation for sdcdb
12707         updated and added chapter tips
12708
12709 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12710
12711         * src/SDCCsymt.h: missing from yesterday's commits
12712
12713 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12714
12715         * src/SDCC.y (struct_or_union_specifier),
12716         * support/Util/SDCCerr.c,
12717         * support/Util/SDCCerr.h: verify that struct & union tags are used
12718         as declared.
12719
12720 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12721
12722         * src/SDCCglobl.h: missing from yesterday's commits
12723
12724 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12725
12726         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
12727         sft_attributes, struct_declaration, parameter_declaration,
12728         type_name, start_block, declaration_list),
12729         * src/SDCC.lex (check_type): support redefinition of typedef names
12730
12731 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12732
12733         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
12734         aligned xdata arrays. Erik helped me with the if clause.
12735
12736 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12737
12738         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
12739         warning
12740
12741 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12742
12743         * src/SDCCast.h,
12744         * src/SDCCast.c (newAst_),
12745         * src/SDCCicode.h,
12746         * src/SDCCicode.c (ast2iCode, newiCode),
12747         * src/SDCCglobl.h,
12748         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
12749         expr, statement, expression_statement, selection_statement,
12750         iteration_statement, expr_opt, jump_statement): foundation for tracking
12751         sequence points
12752         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
12753         point code too)
12754
12755 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12756
12757         * support/Util/SDCCerr.c,
12758         * src/SDCCast.h,
12759         * src/SDCCast.c (createCase, createDefault, decorateType),
12760         * src/SDCClabel.c (labelUnreach),
12761         * src/SDCC.y (labeled_statement, jump_statement): More improvements
12762         to error messages.
12763         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
12764         (with thanks to Stas Sergeev)
12765         * device/include/time.h,
12766         * device/lib/time.c (CheckTime): suppress unreachable code warning
12767
12768 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12769
12770         * src/SDCCast.c (createIvalCharPtr),
12771         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
12772         bug #753752)
12773         * support/regression/tests/nullstring.c: tests for these two bugs
12774
12775 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12776
12777         * support/Util/SDCCerr.h,
12778         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
12779         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
12780         about storage class and 'at' used inside struct or union
12781         * src/SDCCBBlock.c (iCodeFromeBBlock),
12782         * src/SDCCcse.c (ifxOptimize),
12783         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
12784         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
12785         printIval, emitStaticSeg, emitOverlay),
12786         * src/SDCClabel.c (deleteIfx),
12787         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
12788         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
12789         gatherAutoInit, processParms),
12790         * support/Util/SDCCerr.h,
12791         * support/Util/SDCCerr.c (werrorfl): Support for better error location
12792         reporting for post-parse errors.
12793
12794 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12795
12796         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
12797         implicit casts via union; they don't work on big endian systems
12798         (possible fix for bug #861138)
12799
12800 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12801
12802         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
12803         * src/mcs51/main.c: fixed the fix for bug #737001
12804
12805 2003-12-15  Borut Razem <borut.razem AT siol.net>
12806
12807         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
12808
12809 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12810
12811         * support/makebin/makebin.c: put output in binary mode
12812
12813 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12814
12815         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
12816         xdata and data memory on startup. Set the environment variable
12817         SDCC_NOGENRAMCLEAR to disable this.
12818         * src/mcs51/peephole.def,
12819         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
12820         (allows non-interrupt and interrupt code to safely compete for a resource
12821         without the non-interrupt code having to disable interrupts)
12822
12823 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12824
12825         * src/SDCCicode.c (geniCodeAdd),
12826         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
12827         with valFromType if type might be a pointer and host is big endian).
12828         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
12829         types, not just integer types.
12830         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
12831         multiply defined with mismatching "at" address.
12832
12833 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12834
12835         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
12836         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
12837         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
12838         with embedded nulls (fixed bug #753752)
12839
12840 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12841
12842         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
12843         Apparently this did not see much testing (endless loop)
12844
12845 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12846
12847         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
12848
12849 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12850
12851         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
12852         gracefully handle NULL memmap pointers
12853
12854 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12855
12856         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
12857         instead of deleting the iCode when an operand is volatile
12858         * src/z80/gen.c (genDummyRead),
12859         * src/mcs51/gen.c (genDummyRead),
12860         * src/ds390/gen.c (genDummyRead),
12861         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
12862         not just IC_RIGHT
12863         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
12864         * src/SDCC.y: fixed bug #850420
12865
12866 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12867
12868         Applied z80 i/o port patch from Peter Townson and fixed some operators
12869         to better handle operands in A register.
12870         * device/include/z180.h
12871         * src/SDCC.y
12872         * src/SDCCglue.c
12873         * src/z80/gen.c
12874         * src/z80/gen.h
12875         * src/z80/main.c
12876         * src/z80/peeph-z80.def
12877         * src/z80/peeph.def
12878         * src/z80/z80.h
12879
12880 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12881
12882         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
12883
12884 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12885
12886         * device/lib/hc08/_mullong.c: Removed extra #endif
12887
12888 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12889
12890         * sim/ucsim/hc08.src/inst.cc,
12891         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
12892         carries from x to h
12893         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
12894         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
12895         * device/include/stdarg.h: fixed varargs for hc08
12896         * device/lib/Makefile.in,
12897         * device/lib/hc08/Makefile,
12898         * device/lib/hc08/_mulint.c,
12899         * device/lib/hc08/_mullong.c: fixed some endian problems
12900
12901 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12902
12903         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
12904         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
12905         * device/lib/_gptrget.c,
12906         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
12907
12908 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12909
12910         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
12911         * src/SDCCast.c (astErrors): fixed bug #846007
12912         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
12913
12914 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12915
12916         * src/SDCCast.c (decorateType): disabled a transformation I added in
12917         revision 1.188 (access to fields of a structure at an absolute address);
12918         it breaks with bitfields, extern declarations, and gcse analysis.
12919         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
12920         could be assigned through a pointer, so don't complain.
12921         * src/SDCCast.c (astErrors),
12922         * src/SDCCast.h,
12923         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
12924
12925 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
12926
12927         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
12928         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
12929         output of __config directives, since gpasm now supports them
12930         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
12931         pre-processor macro, i.e. -DMCU=p18f452
12932         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
12933         and modified to handle 'cast' icode similarly to '=' icode
12934         * src/pic16/device.h (typedef struct PIC_device): added field
12935         'extMIface' to indicate that chip has external memory interface
12936         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
12937         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
12938         18F8720
12939
12940 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12941
12942         * src/SDCC.y (pointer): fixed bug #846006
12943         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
12944         * src/SDCCast.c (decorateType): fixed bug #846009
12945         * src/ds390/peeph.def,
12946         * src/ds390/gen.c (genAnd, genOr),
12947         * src/mcs51/peeph.def,
12948         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
12949
12950 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12951
12952         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
12953         * src/SDCCdflow.c
12954         * src/SDCCcse.c
12955         * src/SDCCcse.h
12956         * src/SDCCBBlock.h
12957         * src/SDCCBBlock.c
12958
12959 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
12960
12961         fixed bug #845089
12962         * src/SDCCbitv.h,
12963         * src/SDCCbitv.c: added function to free a bitvector
12964         * src/SDCClrange.h,
12965         * src/SDCClrange.c: added function to recompute the liveranges
12966         * src/avr/ralloc.c,
12967         * src/ds390/ralloc.c,
12968         * src/hc08/ralloc.c,
12969         * src/mcs51/ralloc.c,
12970         * src/pic/ralloc.c,
12971         * src/pic16/ralloc.c,
12972         * src/xa51/ralloc.c,
12973         * src/z80/ralloc.c: recompute the liveranges after register packing
12974
12975 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
12976
12977         * src/SDCCloop.c (newInduction): fixed bug #845630
12978
12979 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12980
12981         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
12982         inadvertantly left behind from my 2003-11-12 change
12983
12984 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12985
12986         Updated headers I neglected to commit yesterday.
12987         * src/SDCClrange.h,
12988         * src/SDCCicode.h
12989
12990 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12991
12992         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
12993         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
12994         * src/SDCCopt.c (eBBlockFromiCode),
12995         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
12996         the creation of the key hash table from the sequencing so it can be used
12997         earlier (for some GCSE bug fixes still pending)
12998
12999 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13000
13001         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
13002         * support/regression/tests/addsub.c: testing genPlus shortcut
13003
13004 2003-11-15  Borut Razem <borut.razem AT siol.net>
13005
13006         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
13007
13008 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13009
13010         * src/SDCCcse.c (cseBBlock): fixed bug #527779
13011         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
13012         ordering is immaterial.
13013         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
13014
13015 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13016
13017         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
13018         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
13019         (SIGSEV) of bug #840381
13020         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
13021         unlink new file before rename if new and old filenames are the same)
13022
13023 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13024
13025         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
13026         uninitialized variables) for the mcs51. Set environment variable
13027         SDCC_GENRAMCLEAR to test.
13028         xdata initialization slightly shorter
13029
13030 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13031
13032         * src/SDCCsymt.h,
13033         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
13034         #838241 & 780691 (basicly the same bug)
13035         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
13036         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
13037
13038 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
13039
13040         * src/SDCCmain.c (linkEdit): "fix" #834252
13041
13042 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13043
13044         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
13045         * src/SDCCast.h,
13046         * src/SDCC.y: fixed bug #819403
13047
13048 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13049
13050         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
13051         the reentrant attribute.
13052         * src/hc08/gen.c (genPackBits): added missing stack readjustment
13053         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
13054         simulation
13055         * src/SDCCast.c (decorateType): fixed bug with storage class not being
13056         updated during pointer dereference; f.e. ~(((char *)1)*) was being
13057         erroneously reduced to a literal.
13058         * src/hc08/ralloc.c (packRegisters, rematStr),
13059         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
13060         some cases
13061
13062 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13063
13064         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
13065         * doc/sdccman.lyx: changed from 'article' to 'book'
13066         * doc/Makefile: readded test_suite_spec and cdbfileformat
13067
13068 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
13069
13070         * device/include/stdlib.h: include malloc.h to comply with ANSI
13071         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
13072
13073 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13074
13075         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
13076         * doc/clean.mk: also remove *.out files
13077         * doc/sdccman.lyx: some additions, larger top/bottom margins
13078
13079 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13080
13081         * src/SDCC.y: fixed bug #837365
13082         * support/regression/tests/bitopcse.c
13083         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
13084         a symbol (might be valop instead)
13085         * device/lib/Makefile.in: added errno.c to HC08SOURCES
13086         * device/lib/clean.mk: added hc08 to the cleaning list
13087
13088 2003-11-04  Borut Razem <borut.razem AT siol.net>
13089
13090         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
13091           made 2003-11-04
13092         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
13093           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
13094           malloc is declared in standard stdlib.h
13095
13096 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13097
13098         * device/lib/hc08/Makefile: need to clean .rel not .o files
13099         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
13100
13101 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13102
13103         * src/port.h,
13104         * src/hc08/main.c,
13105         * src/mcs51/main.c,
13106         * src/ds390/main.c,
13107         * src/z80/main.c,
13108         * src/avr/main.c,
13109         * src/pic/main.c,
13110         * src/pic16/main.c,
13111         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
13112         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
13113         tests (which uses the port's oclsExpense function)
13114         * src/SDCC.y,
13115         * src/SDCCast.c,
13116         * src/SDCCicode.c,
13117         * src/hc08/gen.c,
13118         * src/ds390/gen.c,
13119         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
13120
13121 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13122
13123         * src/SDCCcse.c (ifxOptimize),
13124         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
13125         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
13126         deleting the IFX iCode.
13127         * src/hc08/ralloc.c: reduced unneeded slocs
13128         * src/hc08/gen.c: fixed bug in asmopToBoolean
13129
13130 2003-11-04  Borut Razem <borut.razem AT siol.net>
13131
13132         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
13133           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
13134           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
13135           transferred to configure
13136
13137 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
13138
13139         Use headers defined in the C[++] standards:
13140         * sim/ucsim/gui.src/serio.src/fileio.cc
13141         * sim/ucsim/gui.src/serio.src/frontend.cc
13142         * sim/ucsim/gui.src/serio.src/main.cc
13143         * sim/ucsim/gui.src/serio.src/posix_signal.cc
13144         * support/Util/NewAlloc.c
13145         * as/hc08/lklibr.c
13146         * as/mcs51/lklibr.c
13147         * as/z80/aslist.c
13148         * as/z80/assym.c
13149
13150 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13151
13152         * Added MSVC projects for hc08 assembler and linker:
13153         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
13154         /as/hc08/link_hc08.dsp
13155
13156 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
13157
13158         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
13159
13160 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
13161
13162         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
13163
13164 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13165
13166         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
13167
13168 2003-10-31  Borut Razem <borut.razem AT siol.net>
13169
13170         * support/cpp2/cpplib.h,
13171           support/cpp2/cpplib.c,
13172           support/cpp2/cpplex.c,
13173           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
13174           to switch _asm block preprocessing on / off. Default is
13175           #pragma preproc_asm +
13176
13177 2003-10-31  Borut Razem <borut.razem AT siol.net>
13178
13179         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
13180           when outputting comment blocks (when executed with -C option) and
13181           _asm (SDCPP specific) blocks
13182
13183 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13184
13185         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
13186
13187 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
13188
13189         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
13190
13191 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
13192
13193         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
13194         * src/SDCCast.c (decorateType): fixed bug #832664
13195
13196 2003-10-31  Borut Razem <borut.razem AT siol.net>
13197
13198         * support/cpp2/cpplex.c: fixed for SDCPP:
13199           comments(when executed with -C option) and _asm blocks
13200           were included even if they where in skipped #if block.
13201           Applied solution from GCC cpp 3.3.2
13202
13203 2003-10-31  Borut Razem <borut.razem AT siol.net>
13204
13205         * src/SDCC.lex: sdcc now understands both formats:
13206           '# <line_number> <file_name>' and
13207           '#line <line_number> <file_name>'
13208         * support/cpp2/cppmain.c: sdcpp now generates the standard
13209           '# <line_number> <file_name>' instead of former
13210           '#line <line_number> <file_name>'
13211
13212 2003-10-30  Borut Razem <borut.razem AT siol.net>
13213
13214         * support/cpp2/cpphash.h,
13215         * support/cpp2/cpplib.h
13216         * support/cpp2/cpplex.c,
13217         * support/cpp2/cppmain.c,
13218         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
13219
13220 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13221
13222         Fixed a number of problems revealed by bug #827883.
13223         * src/SDCCloop.c (loopInvariants): Spill location of the
13224         result operand should be recomputed if extracted from
13225         a loop. Also, don't extract assignments of an iTemp
13226         from a literal.
13227         * src/SDCCast.c (isConformingBody): loop reversal should
13228         not occur if the control variable is involved with a
13229         relational operator.
13230
13231 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
13232
13233         * .version: bumped to 2.3.6 to reflect the big improvements
13234         made by Erik and Klaus. Thanks!
13235
13236 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
13237
13238         Replaced the livrange code.
13239         * src/SDCClrange.c: added new LR code
13240         * src/SDCCloop.c,
13241         * src/SDCCBBlock.h: removed remainig parts from old LR code
13242         * src/ds390/ralloc.c,
13243         * src/ds390/gen.c: minor fixes to make it work with new code
13244
13245 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13246
13247         * as/hc08/asm.h,
13248         * as/hc08/lkrloc.c,
13249         * src/hc08/gen.c,
13250         * src/hc08/ralloc.c: Fix various warnings related to the hc08
13251         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
13252         (tweaked fix for bug #818696)
13253
13254 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13255
13256         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
13257
13258 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13259
13260         * src/SDCCmain.c,
13261         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
13262         * src/mcs51/gen.c (gencjneshort),
13263         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
13264         more efficient (per Scott Bronson's suggestion)
13265
13266 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13267
13268         Extended the semantics of the critical keyword to include
13269         individual statements. See RFE #827755 and #799831
13270         * src/SDCC.y
13271         * src/SDCCicode.c
13272         * src/SDCCopt.c
13273         * src/SDCCast.c
13274         * support/Util/SDCCerr.c
13275         * support/Util/SDCCerr.h
13276         * src/mcs51/gen.c
13277         * src/ds390/gen.c
13278         * src/hc08/gen.c
13279
13280 2003-10-19  Borut Razem <borut.razem AT siol.net>
13281
13282         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
13283
13284 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13285
13286         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
13287         Fixed bug #818696
13288         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
13289         and predecrement operand is displayed
13290
13291 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
13292
13293         * src/SDCCval.c (valMinus): fixed bug #826041
13294
13295 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13296
13297         Some hc08 related updates that I missed earlier
13298         * sim/ucsim/stypes.h
13299         * support/regression/ports/hc08/spec.mk
13300
13301 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13302
13303         New target "hc08" for the Motorola 68hc08 family of micros
13304
13305         * configure
13306         * configure.in
13307         * Makefile
13308         * src/hc08/*
13309         * src/SDCCmain.c
13310         * src/port.h
13311         * sim/ucsim/hc08.src/*
13312         * sim/ucsim/configure.in
13313         * src/ucsim/configure
13314         * sim/ucsim/packages_in.mk
13315         * as/hc08/*
13316         * as/Makefile
13317         * device/include/mc68hc908qy.h
13318         * device/lib/hc08/*
13319         * device/lib/Makefile.in
13320         * support/regression/ports/hc08/*
13321         * support/regression/Makefile
13322
13323 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13324
13325         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
13326         regression test
13327         * src/ds390/gen.c (genCast): fixed bug #821957
13328
13329 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
13330
13331         * device/lib/logf.c: "fixed" overlay bug
13332         * support/regression/ports/host/spec.mk: added m library
13333         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
13334         * support/regression/tests/float_trans: added (for Eric)
13335
13336 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
13337
13338         * src/mcs51/gen.c (genCpl): fixed bug
13339         http://sf.net/mailarchive/message.php?msg_id=6263915
13340
13341 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
13342
13343         * src/SDCCast.c (decorateType): added extended constant folding
13344         * src/SDCCsymt.c (computeType): cleanup
13345         * src/SDCCval.c (valShift): minor optimization
13346         * support/regression/tests/ast_constant_folding.c: added
13347
13348 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13349
13350         * src/SDCCmain.c: removed some unintended changes
13351
13352 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13353
13354         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
13355         * src/z80/gen.c: fixed part of bug #817589
13356         * src/SDCCsymt.c (checkFunction): fixed bug #817895
13357
13358 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
13359
13360         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
13361         * src/SDCCcflow.c
13362         * src/SDCCcse.c
13363         * src/SDCCdflow.c
13364         * src/SDCClabel.c
13365         * src/SDCClrange.c
13366         * src/SDCCmem.c
13367         * src/SDCCopt.c
13368         * src/SDCCpeeph.c
13369         * src/SDCCset.c
13370         * src/avr/ralloc.c
13371         * src/ds390/ralloc.c
13372         * src/izt/ralloc.c
13373         * src/mcs51/ralloc.c
13374         * src/pic/ralloc.c
13375         * src/pic16/ralloc.c
13376         * src/xa51/ralloc.c
13377         * src/z80/ralloc.c
13378         * src/z80/gen.c: removed unused label "release:"
13379
13380 2003-10-06  Borut Razem <borut.razem AT siol.net>
13381
13382         * src/SDCC.lex: removed definition of unused variables
13383           save_optimize and save_options
13384
13385 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
13386
13387         * clean.mk: removed '=' in "-maxdepth=1"
13388         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
13389         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
13390
13391 2003-10-06  Borut Razem <borut.razem AT siol.net>
13392
13393         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
13394           my_unput() replaced by unput()
13395
13396 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
13397
13398         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
13399         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
13400         type-punned pointer will break strict-aliasing rules"
13401         Old LR behaviour is again default; Klaus' LR can be choosen by
13402         defining the environment variable LRKLAUS
13403         * src/SDCCBBlock.h
13404         * src/SDCCloop.c
13405         * src/SDCClrange.c
13406         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
13407         * clean.mk: fixed removal of files in bin/CVS/
13408         * device/lib/clean.mk: fixed removal of directories small and large
13409         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
13410         * src/SDCCicode.c,
13411         * src/SDCCval.c: removed superflous test for pedantic
13412
13413 2003-10-05  Borut Razem <borut.razem AT siol.net>
13414
13415         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
13416           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
13417           message "unmatched #pragma SAVE and #pragma RESTORE"
13418
13419 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13420
13421         * doc/sdccman.lyx: various additions and updates (interrupts, inline
13422           assembly, critical functions, atomic, nojtbound)
13423
13424 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
13425
13426         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
13427         * src/SDCCBBlock.h
13428         * src/SDCCloop.c
13429         * src/SDCCloop.h
13430         * src/SDCClrange.c
13431
13432 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13433
13434         * src/z80/gen.h,
13435         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13436         * src/mcs51/gen.h
13437         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13438         * src/ds390/gen.h
13439         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13440         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
13441         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
13442
13443 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13444
13445         * src/z80/gen.c (genRet): fixed bug #524753
13446         * src/z80/gen.c (genCast): fixed internal error on cast from
13447         pointer to long
13448         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
13449         fix for bug #477835 to the z80
13450         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
13451         for tracking iCodes in the peephole optimizer for z80
13452
13453 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13454
13455         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
13456         the other part of bug #814548
13457         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
13458
13459 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
13460
13461         * src/SDCCcse.c: fixed part of bug #814548
13462
13463 2003-09-28  Borut Razem <borut.razem AT siol.net>
13464
13465         * src/asm.c: rewrite of printILine() to use temporary file instead
13466           a pipe
13467         * src/xa51/main.c: commented out declaration of int rewinds
13468
13469 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13470
13471         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
13472
13473 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13474
13475         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
13476         * src/asm.c (printILine): Fixed bug #811015
13477
13478 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13479
13480         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
13481         freeing.
13482
13483 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13484
13485         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
13486         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
13487         to correctly handle general case of AOP_PAIRPTR
13488         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
13489
13490 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13491
13492         * src/mcs51/ralloc.c (fillGaps),
13493         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
13494         register positioning bug)
13495
13496 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
13497
13498         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
13499
13500 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13501
13502         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
13503         genCodePointerGet, genGenPointerGet, genFarPointerSet,
13504         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
13505         (ralloc doesn't intentionally do this now, but perhaps later)
13506         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
13507         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
13508         register positioning bugs (Fixed bug #762602 and #795325)
13509         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
13510         (Fixed bug #808779)
13511         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
13512         lines that --i-code-in-asm generates
13513
13514 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13515
13516         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
13517         trying to fclose a FILE* that was already closed.
13518
13519 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13520
13521         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
13522         of const struct should be treated as if const themselves)
13523
13524 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
13525
13526         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
13527
13528 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13529
13530         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
13531         Unix (/n) and DOS (/r/n) line terminations.
13532
13533 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13534
13535         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
13536         bug #613775
13537
13538 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13539
13540         * src/mcs51/gen.c (genFunction, genEndFunction),
13541         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
13542         and restore of EA so that stack offsets to parameters are
13543         correct when using both critical and reentrant/stack-auto.
13544         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
13545         size (can be triggered in error if sloc is shared between
13546         different sized objects)
13547         * device/include/float.h: fixed macros to explicitly use
13548         unsigned long where needed
13549
13550 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
13551
13552         Feature req. 799831: added code to allow nesting of critical functions
13553         * src/mcs51/gen.c (genFunction, genEndFunction)
13554         * src/ds390/gen.c (genFunction, genEndFunction)
13555
13556 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13557
13558         * src/SDCCsymt.c (sclsFromPtr),
13559         * src/SDCCsymt.h,
13560         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
13561         support for standard C idiom of memory mapped variables; for
13562         example, *((xdata int*)0x1234) = 1 is now internally equivalent
13563         to xdata int at 0x1234 tempvar = 1.
13564         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
13565         provided by Akiya ISHIDA
13566
13567 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
13568
13569         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
13570         * src/SDCCval.c (constVal): added reduction from int to char
13571         * src/SDCCval.c (valMult, valDiv): fixed sign handling
13572         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
13573         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
13574         to ignore the sign
13575         * support/regression/tests/shifts.c: fixed
13576
13577 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13578
13579         * src/z80/gen.c (genXor): Fixed bug #805445
13580
13581 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13582
13583         Fixed bug #621531 (const & volatile confusion in the type chain).
13584         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
13585         refer to the const or volatile state of the pointer itself.
13586
13587         * src/SDCCast.c
13588         * src/SDCCglue.c
13589         * src/SDCCicode.c
13590         * src/SDCCsymt.c
13591         * src/SDCCval.c
13592         * src/SDCC.y
13593         * src/SDCCsymt.h
13594         * src/pic/gen.c
13595         * src/pic/ralloc.c
13596         * src/pic16/gen.c
13597         * src/pic16/ralloc.c
13598         * support/regression/tests/const.c
13599
13600 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13601
13602         When checking for duplicated modules, use absolute paths
13603         instead of relative paths.  Files changed:
13604
13605         * as/mcs51/lklib.c
13606         * link/z80/lklib.c
13607
13608 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13609
13610         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
13611
13612 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13613
13614         * device/include/string.h: added size_t typedef, changed
13615         prototypes to use size_t, eliminated separate reentrant and
13616         non-reentrant declarations, added _memmove declaration
13617         * device/lib/_memcpy.c: changed to use size_t instead of int,
13618         changed /4 to >>2 to avoid division library call
13619         * device/lib/_memcmp.c,
13620         * device/lib/_memset.c,
13621         * device/lib/_strncat.c,
13622         * device/lib/_strncpy.c,
13623         * device/lib/_strncmp.c: changed to use size_t instead of int
13624         * device/lib/_memmove.c: new file (fixed bug #772294)
13625         * device/lib/Makefile.in: added _memmove.c
13626         * device/lib/z80/asm_strings.s: fixed bug #772290
13627         * support/regression/tests/bitfields.c: attempt to fix host assertion
13628         failure on amd64-unknown-linux2.2
13629
13630 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13631
13632         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
13633         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
13634         * as/z80/asmain.c (main): fixed bug #801766
13635
13636 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
13637
13638         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
13639         compilers
13640
13641 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13642
13643         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
13644         reported in bug #800609
13645
13646 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
13647
13648         * Top header beautifications in src/pic16 directory:
13649           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
13650           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
13651           pcoderegs.h, ralloc.c, ralloc.h
13652         * main.c: added top header and GPL license notice
13653         * pcode.c: fixed the if-conditional warning
13654
13655 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
13656
13657         * device/lib/_mullong.c: replaced int by short for gcc
13658
13659 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13660
13661         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
13662         and JUMPTABLE iCodes properly now (worked by accident before)
13663         * src/mcs51/gen.c (leftRightUseAcc),
13664         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
13665         iCode properly now. Use getSize instead of nRegs since a & b
13666         aren't part of the nRegs tally.
13667
13668 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
13669
13670         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
13671         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
13672           before instructions that use the _STATUS register
13673
13674 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
13675
13676         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
13677         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
13678         fetching of the pointer
13679         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
13680         copied from genNearPointerSet()
13681         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
13682         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
13683         If they pop r0/r1 they must be called in the opposite order than aopOp().
13684         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
13685         (resp. --stack-auto), prepared for --xstack
13686
13687 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13688
13689         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
13690
13691 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13692
13693         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
13694         these ports have their own __sdcc_external_start()
13695
13696 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
13697
13698         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
13699         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
13700         type for bits was changed. It resulted in bit variables becoming
13701         global, which is not permitted in PIC 14 assembly output.
13702
13703 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13704
13705         * doc/sdccman.lyx: various additions and updates. Rearranged sections
13706
13707 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13708
13709         Z80 and MCS51 linkers complaint if a public symbol is defined
13710         in more than one library module:
13711
13712         * as/mcs51/lklib.c
13713         * link/z80/lklib.c
13714         * as/mcs51/Makefile.in
13715
13716 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13717
13718         A few small changes that speed up the peephole optimizer.
13719
13720         * src/SDCCpeeph.c
13721
13722 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13723
13724         Try to make the peephole optimizer smarter by maintaining
13725         an association between the assembly source code and the
13726         iCodes that originated them. Put this information to use
13727         with a new peephole rule condition "notVolatile" so that
13728         the rules can be aggressive yet still safe.
13729
13730         * src/SDCCpeeph.c
13731         * src/SDCCpeeph.h
13732         * src/mcs51/gen.c
13733         * src/mcs51/peeph.def
13734
13735 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13736
13737         Fixed bug #741761
13738
13739         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
13740         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
13741         if the left or right operand symbols have the accuse flag set.
13742
13743 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13744
13745         Changed the type of the result of the ! (NOT) operator to char;
13746         previously it returned the same type as the source. This allows
13747         us to eliminate all the genFloatNot functions (all of its target
13748         implementations were very buggy) since !float can use the same
13749         code as !long now.
13750
13751         * src/SDCCicode.c (ast2iCode): ! returns char
13752         * src/mcs51/gen.c (genNot, genNotFloat),
13753         * src/ds390/gen.c (genNot, genNotFloat),
13754         * src/z80/gen.c (genNot, genNotFloat),
13755         * src/pic/gen.c (genNot, genNotFloat),
13756         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
13757
13758 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
13759
13760         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
13761         1. Interrupt would not compile properly. Ensure PCLATH register is saved
13762            during interrupts. Ensure WSAVE is located at a shared bank address.
13763         2. Fixed page selection in some places
13764         3. Fixed BTFSS/C to where necessary use registers directly and not simply
13765            the registers name strings.
13766         4. Fixed "signed / unsigned compare" compiler warnings.
13767         5. The PIC port manages its own allocation of the general purpose
13768            registers, but makes no attempt to reuse them. As a result when
13769            compiling it soon runs out of general purpose registers. Some
13770            additional code was added to the files pcode.c and device.c to walk
13771            through the function call tree and rename the registers so that they
13772            get reused.
13773
13774         * src/pic/device.c
13775         * src/pic/gen.c
13776         * src/pic/glue.c
13777         * src/pic/pcode.c
13778         * src/pic/pcode.h
13779         * src/pic/ralloc.c
13780         * src/pic/ralloc.h
13781         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
13782         genPlus() & genMinus() when the result is the same as left or right
13783
13784 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13785
13786         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
13787
13788 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13789
13790         Made bitfield a distinct type from bit so that bitfields
13791         convert as per ANSI C and bits retain their traditional
13792         boolean style behaviour. Implemented bitfield support in
13793         the z80 port.
13794
13795         * src/SDCCsymt.h,
13796         * src/SDCCsymt.c,
13797         * src/SDCCast.c,
13798         * src/cdbFile.c,
13799         * src/mcs51/gen.c,
13800         * src/ds390/gen.c: bit v bitfield split
13801         * src/z80/gen.c: New support for bitfields
13802         * support/regression/tests/bitfields.c: reenabled z80,
13803         added more tests
13804
13805 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13806
13807         Rules 246.x, 247.x relate to bitfields, the others speed up
13808         access to xdata mapped I/O devices.
13809
13810         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
13811
13812 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13813
13814         Cleaned up genPackBits and genUnpackBits and added two helper
13815         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
13816         for literal assignments in genPackBits (thanks to Frieder for
13817         reminding me).
13818
13819         * src/mcs51/gen.c
13820         * src/ds390/gen.c
13821
13822 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13823
13824         Fixed bug #748310 (pointer to function type mishandled when the
13825         function name is omitted). Also fixed a SIGSEGV when a function
13826         attribute (reentrant, etc) is used on a non-function or on a
13827         function but misplaced before the parameter list.
13828
13829         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
13830         bug #748310
13831         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
13832         * support/Util/SDCCerr.h,
13833         * support/Util/SDCCerr.c: Added func attr misuse error msg
13834
13835 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
13836
13837         Fixed bug #787649 by anonymous
13838         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
13839         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
13840
13841 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13842
13843         Fixed numerous bitfield problems.
13844
13845         * src/SDCC.y: More bitfield related error checking
13846         * src/SDCCsymt.h,
13847         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
13848         * support/Util/SDCCerr.h,
13849         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
13850         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
13851         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
13852         * support/regression/tests/bitfields.c: tests added
13853
13854 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13855
13856         Made the constant following the "interrupt" keyword optional. If
13857         omitted, the function will not automatically be given an entry
13858         in the interrupt vector table (similar to #pragma NOIV, but
13859         less syntacticly kludgy). The interrupt number is also now
13860         range checked. Also fixed a bug in the high order bit example
13861         in the manual.
13862
13863         * src/SDCC.y
13864         * src/SDCCmem.c
13865         * src/SDCCglue.c
13866         * src/SDCCsymt.h
13867         * support/Util/SDCCerr.c
13868         * support/Util/SDCCerr.h
13869         * doc/sdccman.lyx
13870
13871 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
13872
13873         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
13874         * src/SDCCicode.c (operandOperation): rewritten some ops
13875         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
13876         * src/SDCCsymt.c (computeType): literals are handled the same way as any
13877         other type
13878         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
13879         be re-activated by defining REDUCE_LITERALS)
13880         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
13881         unsigned, but are signed by default
13882         * src/SDCCval.c (constVal): rearranged
13883         * src/SDCCval.c (valMod): preliminary fix
13884         * src/SDCCval.c (valCastLiteral): use TYPE_* types
13885         * support/regression/literalop.c: added, work in progress
13886
13887 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13888
13889         Generate warnings for useless declarations like "char data;"
13890         that don't do what new users expect.
13891
13892         * src/SDCC.y
13893         * support/Util/SDCCerr.h
13894         * support/Util/SDCCerr.c
13895
13896 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
13897
13898         * src/SDCCval.c (valMult): fix overflow detection of negative int
13899
13900 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13901
13902         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
13903
13904         Changes to support big endian targets:
13905
13906         * src/ports.h
13907         * src/SDCCglue.c
13908         * src/avr/main.c
13909         * src/ds390/main.c
13910         * src/izt/i186.c
13911         * src/mcs51/main.c
13912         * src/pic/main.c
13913         * src/pic16/main.c
13914         * src/xa51/main.c
13915         * src/z80/main.c
13916
13917 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
13918
13919         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
13920         * device/lib/time.c: fixed warning "integer overflow in expression"
13921
13922 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
13923
13924         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
13925         * src/SDCCval.c (constVal): changed default to signed; hex and octal
13926         constants are unsigned; added recognition of "u" flag for unsigned
13927         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
13928         * src/SDCCval.c (valDiv, valMod): fixed signdness
13929         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
13930         signedness of modulo, left and right shift
13931         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
13932         * support/Util/SDCCerr.h: added warning W_INT_OVL
13933         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
13934         * src/SDCCast.c (ast_print): improved output of constants
13935
13936 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13937
13938         Fixed some warnings when building with MSVC:
13939
13940         * as/mcs51/asdata.c
13941         * as/z80/asdata.c
13942         * as/mcs51/asm.h
13943         * as/z80/asm.h
13944         * link/z80/aslink.h
13945         * link/z80/lkdata.c
13946         * link/z80/lkeval.c
13947         * link/z80/lkgb.c
13948         * link/z80/lkihx.c
13949         * link/z80/lks19.c
13950         * link/z80/lksym.c
13951         * support/cpp2/cpplib.c
13952         * src/ds390/gen.c
13953         * src/mcs51/gen.c
13954
13955 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
13956
13957         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
13958
13959 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13960
13961         * support/librarian/clean.mk: Do not remove Makefile.
13962         * support/librarian/Makefile: added.
13963
13964 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13965
13966         Added librarian to MSVC build:
13967         * all.dsp
13968         * sdcc.dsw
13969         * support/librarian/librarian.dsp
13970
13971         'configure' not needed for librarian, removed:
13972         * support/librarian/configure
13973         * support/librarian/configure.in
13974         * support/librarian/config_in.h
13975         * support/librarian/Makefile.in
13976
13977         Hopefully these ones built the librarian and the rest of sdcc properly:
13978         * Makefile
13979         * Makefile.common.in
13980
13981         Messed up 'configure', so revert to previous version:
13982         * configure
13983         * configure.in
13984
13985 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
13986
13987         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
13988         there, while the mantissa of a double is "only" 53 bits wide.
13989
13990 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13991
13992         Adding sdcclib to the build.  MSVC project coming soon.
13993         Files added/changed:
13994
13995         * support/librarian/clean.mk
13996         * support/librarian/configure
13997         * support/librarian/configure.in
13998         * support/librarian/config_in.h
13999         * support/librarian/Makefile.bcc
14000         * support/librarian/Makefile.in
14001         * support/librarian/sdcclib.c
14002         * Makefile.bcc
14003         * Makefile
14004         * Makefile.common.in
14005         * configure
14006         * configure.in
14007
14008 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14009
14010         Linker now complaints if linked modules have conflicting options, for
14011         example, one compiled using --model-large and another one compiled with
14012         --model-small.  The following files were modified:
14013
14014         * as/mcs51/asdata.c
14015         * as/mcs51/aslink.h
14016         * as/mcs51/asm.h
14017         * as/mcs51/asmain.c
14018         * as/mcs51/asout.c
14019         * as/mcs51/i51pst.c
14020         * as/mcs51/lkdata.c
14021         * as/mcs51/lklibr.c
14022         * as/mcs51/lkmain.c
14023         * as/z80/asdata.c
14024         * as/z80/asm.h
14025         * as/z80/asmain.c
14026         * as/z80/asout.c
14027         * as/z80/z80pst.c
14028         * link/z80/aslink.h
14029         * link/z80/lkdata.c
14030         * link/z80/lklibr.c
14031         * link/z80/lkmain.c
14032         * src/SDCCglue.c
14033
14034 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14035
14036         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
14037         as/mcs51/lklibr.c: Generate a warning when a library is not found.
14038
14039 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
14040
14041         * src/z80/mappings.i: fix _mul[us][int,long] entries
14042
14043 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14044
14045         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
14046
14047 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
14048
14049         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
14050         * support/regression/tests/bitopcse.c: added
14051         fixed warning:
14052         * src/avr/gen.c:
14053         * src/pic/gen.c:
14054         * src/pic16/gen.c:
14055         * src/z80/gen.c:
14056         * src/xa51/gen.c:
14057
14058 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14059
14060         added support for new library format to z80, gbz80 linkers:
14061         *link/z80/aslink.h
14062         *link/z80/lklex.c
14063         *link/z80/lklib.c
14064         *link/z80/lklist.c
14065
14066 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
14067
14068         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
14069         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
14070
14071 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
14072
14073         added DUMMY_READ_VOLATILE:
14074         * src/SDCC.y:
14075         * src/avr/gen.c:
14076         * src/xa51/gen.c:
14077         * src/z80/gen.c:
14078         * src/pic/gen.c:
14079         * src/pic16/gen.c:
14080         * src/mcs51/gen.c:
14081         * src/ds390/gen.c:
14082         * src/SDCCcse.c (algebraicOpts): many improvements
14083         * src/SDCCcse.h: removed algebraicOpts()
14084         * src/SDCCicode.c (picDummyRead): added
14085
14086 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14087
14088         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
14089         "Insufficient space in data memory".
14090
14091 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14092
14093         * src/mcs51/gen.c: fixed bug #771358
14094         * src/z80/gen.c: fixed bug #759087
14095
14096 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
14097
14098         * src/pic16/glue.c: minor cleanup by Vangelis
14099
14100 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14101
14102         * device/include/regc515c.h: fixed #758477
14103         * device/lib/_gptrget.c: saving some cycles in generic pointer get
14104         * device/lib/_gptrput.c: saved a few bytes
14105         * my tab spacing is 8, yours too?)
14106         * device/lib/_ser.c: process RX bytes earlier than TX bytes
14107         * device/lib/serial.c: process RX bytes earlier than TX bytes
14108         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
14109
14110 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
14111
14112         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
14113
14114 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14115
14116     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
14117
14118 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
14119
14120         * device/lib/Makefile.in: bad fix, reverted to 1.43
14121
14122 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
14123
14124         * device/lib/Makefile.in: added missing z80 object files
14125
14126 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
14127
14128         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
14129         pic16 progress by Vangelis:
14130         * src/SDCCglobl.h:
14131         * src/SDCCmain.c:
14132         * src/pic/Makefile:
14133         * src/pic:
14134         * pic/Makefile:
14135         * pic16/device.c:
14136         * pic16/device.h:
14137         * pic16/gen.c:
14138         * pic16/gen.h:
14139         * pic16/genarith.c:
14140         * pic16/glue.c:
14141         * pic16/main.c:
14142         * pic16/pcode.c:
14143         * pic16/pcode.h:
14144         * pic16/pcodepeep.c:
14145         * pic16/peeph.def:
14146
14147 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14148
14149     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
14150
14151 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14152
14153     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
14154     added gbz80 build to MSVC project.
14155     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
14156     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
14157     from 8051 stuff and setup so it links using a .lnk file.
14158
14159 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14160
14161     * support/librarian/sdcclib.c: sdcc librarian.
14162     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
14163     with sdcclib.
14164
14165 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14166
14167     * as/mcs51/lkmain.c: properly handle extensions in function afile.
14168
14169 2003-07-02  Borut Razem <borut.razem AT siol.net>
14170
14171         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
14172         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
14173         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
14174         src/xa51/main.c, src/z80/main.c:
14175         virtualization of glue() function: each port has it's own glue function,
14176         which is accessed by do_glue function pointer in PORT.general structure
14177
14178 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
14179
14180         * DS800C400 fun, improved ROM interface and tinibios.
14181
14182 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
14183
14184         * More support for DS80C400. Now includes beginning of interface to ROM.
14185
14186 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
14187
14188         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
14189
14190 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14191
14192         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
14193
14194 2003-06-19  Borut Razem <borut.razem AT siol.net>
14195
14196         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
14197
14198 2003-06-19  Borut Razem <borut.razem AT siol.net>
14199
14200         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
14201         fixed Z80 port - crt0.o: cannot open.
14202
14203 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
14204
14205         * support/Util/MySystem.c (merge_command): revert bad fix
14206
14207 2003-06-18  Borut Razem <borut.razem AT siol.net>
14208
14209         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
14210
14211 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14212
14213         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
14214         option --use-stdout sends errors to stdout instead of stderr.
14215
14216 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
14217
14218         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
14219
14220 2003-06-15  Borut Razem <borut.razem AT siol.net>
14221
14222         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
14223         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
14224         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
14225         fixed width array of pointers replaced with sets;
14226         multiple include and lib paths ared transferred to preprocessor and linker
14227         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
14228         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
14229         fixed width array of pointers
14230         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
14231         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
14232         fixupPath(), getPathDifference()
14233         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
14234         fixed width array of pointers
14235
14236 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
14237
14238         * src/pic16/ralloc.c: fix warnings
14239         * src/pic16/pcode.c: fix warning
14240
14241 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
14242
14243          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
14244         know all the details, but essentially this set of changes enable
14245         the pic16 port to generate movff instructions and generate assembler
14246         directives,
14247         * src/SDCCmain.c:
14248         * src/pic16/gen.c:
14249         * src/pic16/glue.c:
14250         * src/pic16/pcode.c:
14251         * src/pic16/device.c:
14252         * src/pic16/main.c:
14253         * src/pic16/pcode.h:
14254         * src/pic16/pcoderegs.c:
14255         * src/pic16/ralloc.c:
14256         * src/pic16/ralloc.h:
14257
14258 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14259
14260         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
14261         added option --vc, so sdcc errors and warnings are compatible with
14262         Microsoft Visual Studio.
14263
14264 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14265
14266         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
14267           device/lib/libfloat.lib: added atof function.
14268
14269 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
14270
14271         * doc/sdccman.lyx: updated to Lyx 1.3
14272         * doc/cdbfileformat.lyx: updated to Lyx 1.3
14273         * doc/test_suite_spec.lyx: updated to Lyx 1.3
14274         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
14275
14276 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
14277
14278         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
14279
14280 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14281
14282         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
14283           additions to the "related tools/documentation" section
14284
14285 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
14286
14287         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
14288
14289 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
14290
14291         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
14292         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
14293
14294 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
14295
14296         * doc/sdccman.lyx: fix double dash and other minor things
14297         * doc/Makefile: fix double dash
14298
14299 2003-05-28  Karl Bongers(patches from Martin Helmling)
14300         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
14301           condition and ignore commands.
14302
14303 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14304
14305         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
14306           is in parts still quite out of date, I did changes as far as I felt makes sense
14307           for a non-native english speaker.
14308           Please feel free to add to the manual or to correct my changes.
14309         * doc/Makefile: undid touching the date of intermediate tex files.
14310
14311 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14312
14313         * doc/sdccman.lyx: Manual has an index now
14314
14315 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
14316
14317         Finalize muluint/mulsint and mululong/mulslong merging:
14318         * device/lib/_mulint.c
14319         * device/lib/_mullong.c
14320         * device/lib/gbz80/mul.s
14321         * device/lib/gbz80/stubs.s
14322         * device/lib/z80/mul.s
14323         * device/lib/z80/stubs.s
14324         * src/SDCCsymt.c (initCSupport)
14325
14326 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14327
14328         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
14329         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
14330           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
14331           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
14332           instead of /Zm500.
14333
14334 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14335
14336         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
14337           the regression tests I'm not brave enough to enable 245.b, 245.c
14338         * doc/sdccman.lyx: added latex preamble for hyperref package.
14339           Using pdflatex this will give you a hyperlinked pdf file with
14340           bookmarks. (prepend '%' before /usepackage if this breaks something)
14341
14342 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14343
14344          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
14345
14346 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
14347
14348         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
14349
14350 2003-05-21    <johan AT balder>
14351
14352         * src/SDCCglue.c (printIval): fixed bug #739934
14353
14354 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
14355
14356         Applied patch from bug 737905 (renamed yylineo to mylineno):
14357         * src/altlex.c
14358         * src/SDCCast.c
14359         * src/SDCglobl.h
14360         * src/SDCC.lex
14361         * src/SDCCsymt.c
14362         * src/SDCCval.c
14363         * src/pic16/pcode.c: Cleaned warnings
14364         * src/pic16/pcodeflow.c: Cleaned warnings
14365         * src/pic16/pcoderegs.c: Cleaned warnings
14366
14367 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
14368
14369         * src/pic16/pcode.c: Cleaned warnings
14370         * src/pic16/pcodepeep.c: Cleaned warnings
14371         * src/pic16/ralloc.c: Cleaned warnings
14372
14373 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
14374
14375         * doc/sdccman.lyx: fixed bug 739745
14376         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
14377
14378 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
14379
14380         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
14381         it can be defined with CFLAGS when running configure
14382         * src/SDCCmain.c: fixed compiling + linking with object files
14383
14384 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
14385
14386         * configure.in: configure for pic16 port,
14387             added --disable-pic16-port
14388         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
14389         * src/SDCCmain.c: linkOptions is changed to set *,
14390             added if/endif conditional macros to remove options help
14391             messages from optionsTable when a port is not configured, added
14392             support for the PIc16 port in the ports table, when executing
14393             the compiler with no port specified on command line, a default
14394             port is selected with the new macro DEFAULT_PORT which is
14395             defined in port.h, in setDefaultOptions() linkOptions is removed
14396             from initialization assignment, since now it is a set,
14397             parseCmdLine uses setParseWithComma for linkOptions, in
14398             linkEdit() linkOptions are accessed with new function indexSet()
14399             which returns the i'th item of a set variable. See SDCCset.c, in
14400             linkEdit() when calling buildCmdLine(), added linkOptions as
14401             last argument. Now users can pass arguments to gplink via the
14402             -Wl option, main() uses pic16glue() to glue up pic16 programs
14403         * src/SDCCpeeph.c: various changes to support pic16
14404         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
14405             return the i'th item of the set
14406         * src/SDCCset.h: added function prototype for indexSet()
14407         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
14408         * src/clean.mk: added pic16 in CLEANALLPORTS variable
14409         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
14410             added macro DEFAULT_PORT
14411         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
14412         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
14413             generated
14414         * src/pic16/glue.c: commented out some error producing lines
14415         * src/pic16/main.c: __config directives are commented out to stop
14416             gpasm complaining and test the linkage with gplink, _linkCmd and
14417             _asmCmd changed to be more gplink and gpasm friendly
14418         * src/pic16/peeph.def: peep rule 3 is commented out, since it
14419             produced an error when parsed, peep rule 12 is added to utilize
14420             movff, but it is commented out since the pCode does not support
14421             yet a command with 2 address arguments
14422
14423 2003-05-18    <johan AT balder>
14424
14425         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
14426         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
14427 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
14428
14429         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
14430   Added feature to script commands from file.
14431
14432 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
14433
14434         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
14435         * src/SDCCutil.c: include ctype.h for win32
14436
14437 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
14438
14439         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
14440
14441 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
14442
14443         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
14444   Fixed so you can set breakpoints prior to run, run does not stop
14445   on entry now.  Add tbreak.  Other enhancements and fixes for use
14446   with ddd.
14447
14448 2003-05-12  Borut Razem <borut.razem AT siol.net>
14449
14450         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
14451
14452 2003-05-11  Borut Razem <borut.razem AT siol.net>
14453
14454         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
14455         the path of bin directory, so that PATH is the only env. variable, which has to be set
14456         in case of standard installation.
14457         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
14458         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
14459         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
14460
14461 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
14462
14463         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
14464         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
14465         temp files are in the port dir; clean the gen/test directory when
14466         generating new test.c
14467         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
14468         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
14469         * support/regression/tests/zeropad.c: added
14470
14471 2003-05-09    <johan AT balder>
14472
14473         * src/SDCCglue.c: fixed bug #597940
14474
14475 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
14476
14477         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
14478   cache sfr, optimize next,step, fix off by one sourceline,
14479   support ddd list function.
14480         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
14481
14482 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
14483
14484         * support/regression/HTMLgen.py: added compare_s2f()
14485         * support/regression/Makefile: redo 1.27
14486         * support/regression/generate-cases.py: redo 1.5
14487
14488 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
14489
14490         * support/regression/tests/float.c: workaround 33 bit hex constant
14491         * support/regression/tests/simplefloat.c: fix division for host
14492
14493 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
14494
14495         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
14496         that tame's the PIC's over-aggressive optimizer.
14497
14498 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14499
14500          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
14501          support for MSVC.
14502
14503 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
14504
14505         Initial support for DS80C400. "Hello world" runs on TINIm400
14506         (with polled I/O).
14507
14508 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
14509
14510          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
14511          * Some notes on ddd usage added in debugger/README
14512          Martin Helmling adding more features and fixes for ddd GUI debugger.
14513          Code added for nexti, stepi, up, down, and other adjustments.
14514
14515 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
14516
14517         * src/pic/pCodepeep.c non-wildcard asmops are now handled
14518         * src/pic/peeph.def Added two rules to optimize carry manipulation
14519         * src/pic/* removed debug printfs
14520
14521 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
14522
14523         * debugger/mcs51/cmd.c: added header newalloc.h
14524
14525 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
14526
14527         * as/Makefile: new EXEEXT
14528         * as/z80/Makefile: remove trailing slash of BUILDIR
14529         * as/z80/clean.mk: new EXEEXT
14530         * Makefile.common.in: add to CFLAGS (and others), don't replace it
14531         * support/cpp2/Makefile.in: new EXEEXT
14532         * src/pic/glue.c (pic14emitRegularMap): fixed warning
14533
14534 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
14535
14536         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
14537         EXEEXT was introduced to fix all related problems with targets
14538         "clean", "install" and "uninstall"; a couple of further flaws
14539         especially with "clean" have been fixed too
14540         * as/mcs51/Makefile.in
14541         * as/mcs51/clean.mk
14542         * as/z80/Makefile
14543         * Makefile
14544         * clean.mk
14545         * debugger/mcs51/Makefile.in
14546         * debugger/mcs51/clean.mk
14547         * link/z80/Makefile
14548         * link/z80/Makefile.in
14549         * link/z80/clean.mk
14550         * link/Makefile
14551         * packihx/Makefile.in
14552         * packihx/clean.mk
14553         * sim/ucsim/Makefile
14554         * sim/ucsim/clean.mk
14555         * sim/ucsim/avr.src/Makefile.in
14556         * sim/ucsim/avr.src/clean.mk
14557         * sim/ucsim/s51.src/Makefile.in
14558         * sim/ucsim/s51.src/clean.mk
14559         * sim/ucsim/xa.src/Makefile.in
14560         * sim/ucsim/xa.src/clean.mk
14561         * sim/ucsim/z80.src/Makefile.in
14562         * sim/ucsim/z80.src/clean.mk
14563         * sim/ucsim/main_in.mk
14564         * sim/ucsim/packages_in.mk
14565         * sim/ucsim/gui.src/Makefile.in
14566         * sim/ucsim/gui.src/serio.src/Makefile.in
14567         * sim/ucsim/gui.src/serio.src/clean.mk
14568         * src/Makefile.in
14569         * src/clean.mk
14570         * support/cpp2/Makefile.in
14571         * support/cpp2/clean.mk
14572         * support/makebin/Makefile
14573         * support/makebin/clean.mk
14574         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
14575         * doc/sdccman.lyx: --program-suffix no longer needed
14576
14577 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
14578
14579          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
14580          Martin Helmling added support for ddd GUI debugger.
14581          Code added to display assembly, set variables, and other commands
14582          to interface to ddd.
14583
14584 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
14585
14586         * as/Makefile: fix target clean
14587         * as/clean.mk: fix target clean
14588         * as/z80/clean.mk: fix target clean
14589
14590 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
14591
14592         * Makefile.common.in: added  AT EXEEXT AT
14593         * configure.in: removed all mingw32 stuff
14594         * configure: rebuilt from configure.in
14595         * doc/sdccman.lyx: updated section "installation"
14596         * support/scripts/sdcc_mingw32: adapted to configure
14597         * support/scripts/sdcc_cygwin_mingw32: added
14598
14599 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
14600
14601         * src/pic Added object file support for the PIC port
14602         * src/pic Applied patch from Craig Franklin (this started the object file support)
14603         * src/regression Updated the PIC regression tests for object files
14604
14605 2003-04-20  Borut Razem <borut.razem AT siol.net>
14606
14607         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
14608           lklex.c: In function `getfid':
14609           lklex.c:203: warning: array subscript has type `char'
14610         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
14611           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
14612         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
14613           stack handling macros
14614
14615 2003-04-19  Borut Razem <borut.razem AT siol.net>
14616
14617         * "handling space characters in file path" task:
14618         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
14619         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
14620         * support/Util/MySystem.h: make it self-sufficient
14621         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
14622           src/z80/main.c, sdcc/as/mcs51/lklex.c:
14623           handling space characters in file path
14624         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
14625           (it will be used by assemblers, which have their own includes, e.g. gpasm)
14626         * support/Util/MySystem.c: handling space characters in executable's path
14627
14628 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
14629
14630         * as/z80/Makefile: fix permanent rebuild of z80
14631         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
14632         * support/regression/tests/bitfields.c: added Johan's bitfields.c
14633
14634 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
14635
14636         * src/SDCCopt.c: add special case optimization to replace modulo by
14637           a power of two with a bitwise AND.
14638
14639 2003-04-18    <johan AT balder>
14640
14641         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
14642
14643 2003-04-17    <johan AT balder>
14644
14645         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
14646         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
14647
14648 2003-04-13  Borut Razem <borut.razem AT siol.net>
14649
14650         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
14651         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
14652           fixed mingw problem in adl_NORMALIZE_PATH
14653
14654 2003-04-12  Borut Razem <borut.razem AT siol.net>
14655
14656         * fixed "#pragma SAVE/RESTORE can not be nested":
14657         * src/SDCC.lex: reworked pragma handling functions
14658         * sdcc/src/SDCCglobl.h: reworked stack handling macros
14659         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
14660
14661 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
14662
14663         * src/SDCCutil.c (pathEquivalent): defined but not used
14664         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
14665         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
14666         * configure: rebuilt from configure.in
14667         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
14668         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
14669         * device/include/Makefile.in: replace sdcc_datadir
14670         * device/lib/Makefile.in: replace sdcc_datadir
14671         * Makefile.common.in: add LDFLAGS from configure
14672         * packihx/Makefile.in: use LDFLAGS
14673         * src/Makefile.in: use LDFLAGS
14674         * support/cpp2/Makefile.in: add LDFLAGS from configure
14675         * support/makebin/Makefile: use LDFLAGS
14676         * .version: bumped version number to 2.3.5
14677
14678 2003-04-12  Borut Razem <borut.razem AT siol.net>
14679
14680         * completed "different paths" task:
14681         * src/SDCCmacro.c: fixed bug in handling quotes
14682         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
14683         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
14684
14685 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
14686
14687         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
14688
14689 2003-04-11 kevin Vigor <kevin AT vigor.nu>
14690
14691         * ds390/gen.c ds390/peeph.def: fix bug 706781
14692
14693 2003-04-11  Borut Razem <borut.razem AT siol.net>
14694
14695         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
14696
14697 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
14698
14699         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
14700         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
14701          set - this bit used to not be set...).
14702         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
14703           bad code in PIC Port
14704         * src/regression/and2.c added to test bug 609268
14705         * src/regression/Makefile added and2.c to regression test
14706
14707
14708 2003-04-08    <johan AT CP255758-A>
14709
14710         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
14711         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
14712         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
14713
14714 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
14715
14716         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
14717         fix bug #487815
14718         * support/cpp2/Makefile.in: fix bug #487815
14719         * configure: rebuilt from configure.in
14720         * Makefile.common.in: docdir changed, new path suffixes
14721         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
14722         * sdcc_vc_in.h: reflect changes from sdccconf.h
14723         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
14724         * src/SDCCutil.h: remove BINDIR hack
14725         * doc/sdccman.lyx: update new path hierarchy
14726
14727 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14728
14729         * src/SDCCpeeph.c: added okToRemoveSLOC test
14730
14731 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14732
14733         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
14734
14735 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14736
14737         * src/SDCCpeeph.c: added labelIsReturnOnly test
14738         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
14739
14740 2003-04-05    <johan AT balder>
14741
14742         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
14743         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
14744         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
14745         * src/SDCCast.c: fixed a warning
14746         * src/SDCCast.h: fixed a warning
14747         * src/SDCCicode.c (operandFromAst): fixed a warning
14748
14749 2003-04-04    <johan AT balder>
14750
14751         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
14752         * src/SDCCast.c (decorateType): fixed bug #715076
14753         * src/SDCC.y: fixed bug #702907
14754
14755 2003-04-03    <johan AT balder>
14756
14757         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
14758         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
14759         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
14760         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
14761         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
14762
14763 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
14764
14765         * _decdptr.c: fix return values
14766         * _gptrget.c: fix return values
14767         * _gptrgetc.c: fix return values
14768         * _gptrput.c: fix return values
14769         * _mulint.c: fix return values
14770         * as/z80/Makefile: fix 'make -j' problem
14771
14772 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
14773
14774         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
14775         * configure.in: big cleanup, updated to autoconf 2.5x
14776         * configure: rebuilt from configure.in
14777         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
14778         * sdcc_vc_in.h: reflect changes from sdccconf.h
14779         * doc/Makefile: fixed a flaw in "make install"
14780
14781 2003-04-02    <johan AT balder>
14782
14783         * src/ds390/gen.c (genCmp): no comments
14784         * src/mcs51/gen.c (genCmp): no comments
14785         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
14786         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
14787
14788 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
14789
14790         * support/regression/generate-cases.py: place generated file in given sub directory
14791         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
14792         * support/regression/Makefile: improvements for 'make -j';
14793         side effect: it's simpler and faster now
14794
14795 2003-03-31  Borut Razem <borut.razem AT siol.net>
14796
14797         * src/z80/main.c: link-{port} and as-{port} defined without path
14798         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
14799
14800 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
14801
14802         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
14803
14804 2003-03-30  Borut Razem <borut.razem AT siol.net>
14805
14806         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
14807           changed type of list parameter to set
14808         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
14809         * src/port.h: changed type of do_assemble() parameter to set
14810         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
14811           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
14812           definition of "cppoutfilename" macro with NULL value in preProcess()
14813         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
14814         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
14815         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
14816           replaced with set *binPathSet
14817         * shash_add() deallocates the item, if allready exsists, before adding the new one
14818         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
14819
14820 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
14821
14822         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
14823           a nested for loop bug in the PIC port
14824         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
14825           for loops
14826
14827 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
14828
14829         * support/Util/dbuf.h: remove C++ stuff to make it portable
14830
14831 2003-03-28  Borut Razem <borut.razem AT siol.net>
14832
14833         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
14834           literal strings in stringLiteral()
14835         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
14836         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
14837           to the project
14838
14839 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
14840
14841         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
14842
14843 2003-03-26    <johan AT balder>
14844
14845         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
14846         * src/ds390/gen.c (saveRegisters): catched symbol abuse
14847         * src/SDCCast.c (decorateType): fixed " -v < 3"
14848
14849 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
14850
14851         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
14852         Added Lenny Story's debug infrastructure changes:
14853         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
14854         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
14855         * src/cdbFile.c: added
14856         * src/SDCCdebug.c: added
14857         * src/SDCCdebug.h: added
14858         * src/SDCCast.c (createFunction)
14859         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
14860         * src/SDCCmain.c (parseCmdLine, main)
14861         * src/SDCCmem.c (redoStackOffsets)
14862         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
14863         * src/SDCCsymt.h
14864         * src/common.h
14865         * src/avr/gen.c (genAVRCode)
14866         * src/ds390/gen.c (gen390Code)
14867         * src/mcs51/gen.c (gen51Code)
14868         * src/pic/gen.c (genpic14Code)
14869         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
14870         * src/xa51/gen.c (genXA51Code)
14871         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
14872
14873 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14874
14875         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
14876         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
14877
14878 2003-03-22    <johan AT balder>
14879
14880         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
14881
14882 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
14883
14884         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
14885         * doc/cdbfileformat.lyx: added, written by Lenny Story
14886         * doc/Makefile: added cdbfileformat.lyx
14887         * doc/clean.mk: added cdbfileformat.lyx
14888
14889 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
14890
14891         * src/mcs51/peeph.def: fix bug #705773
14892
14893 2003-03-20    <johan AT balder>
14894
14895         An sfr/sbit can have an "at #" AND an initializer
14896         * src/SDCCsymt.c (checkSClass):
14897         * src/SDCCmem.c (allocGlobal):
14898         * src/SDCCmem.c (allocLocal):
14899         * src/SDCCast.c (createBlock):
14900
14901 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
14902
14903         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
14904
14905 2003-03-16    <johan AT balder>
14906
14907         Undid the hackup of const and volatile, the problem is much bigger
14908         * src/SDCC.y:1.65
14909         * src/SDCCast.c:1.171
14910         * src/SDCCglue.c:1.138
14911         * src/SDCCicode.c:1.146
14912         * src/SDCCsymt.c:1.150
14913         * src/SDCCval.c:1.65
14914
14915 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
14916
14917         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
14918         * src/ds390/gen.c (genAddrOf): fixed bug #704087
14919
14920 2003-03-13    <johan AT balder>
14921
14922         Hackup const and volatile modifiers in type chains a bit:
14923         * src/SDCC.y:1.63
14924         * src/SDCCast.c:1.169
14925         * src/SDCCglue.c:1.136
14926         * src/SDCCicode.c:1.143
14927         * src/SDCCsymt.c1.146
14928         * src/SDCCsymt.h1.59
14929         * src/SDCCval.c:1.63
14930
14931 2003-03-12    <johan AT balder>
14932
14933         * src/SDCCBBlock.h: more LRH debugging junk
14934         * src/SDCCcflow.h: more LRH debugging junk
14935         * src/SDCCloop.c: more LRH debugging junk
14936         * src/SDCC.y (struct_declaration): fixed bug #697590
14937         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
14938         * src/ds390/gen.c (aopForRemat): fixed bug #700031
14939         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
14940
14941 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14942         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
14943         test function names must now match exactly).
14944         * src/SDCCcse.c: added special case in findCheaperOp to allow
14945         extending a short integer. Makes less awful code for bug 700121 test case.
14946
14947 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14948
14949         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
14950         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
14951
14952 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14953
14954         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
14955         actually called (operandsNotEqual() was called for all
14956         operandsNotEqualX tests).
14957
14958 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14959
14960         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
14961         with shorter literals. Fixes bug 700121.
14962
14963 2003-03-11    <johan AT balder>
14964
14965         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
14966
14967 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
14968
14969         * src/SDCCloop.c (mergeRegions): an evil beast is dead
14970         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
14971
14972 2003-03-10  Borut Razem <borut.razem AT siol.net>
14973
14974         * src/SDCCmain.c: pipe preprocessor's output
14975         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
14976         * sdcc_vc_in.h: define pclose as _pclose for WIN32
14977         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
14978         which closes all pipes in pipeSet set
14979         * src/SDCCset.c: free deleted item in function deleteSetItem()
14980         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
14981         moved from z80 to src subproject
14982         * .version: increased version number to 2.3.4
14983
14984 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
14985
14986         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
14987         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
14988         * support/regression/ports/xa51/spec.mk: fix typo
14989
14990 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
14991
14992         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
14993
14994 2003-03-09  Borut Razem <borut.razem AT siol.net>
14995
14996         * src/SDCCmain.c: pipe preprocessor's output
14997         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
14998         * sdcc_vc_in.h: define pclose as _pclose for WIN32
14999         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
15000         which closes all pipes in pipeSet set
15001         * src/SDCCset.c: free deleted item in function deleteSetItem()
15002         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
15003         moved from z80 to src subproject
15004
15005 2003-03-09  Borut Razem <borut.razem AT siol.net>
15006
15007         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
15008         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
15009         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
15010         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
15011         * src/SDCCglobl.h: unification of WIN32 native definitions
15012
15013 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15014
15015         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
15016
15017 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
15018
15019         * src/configure.in:   check for endianess (even while cross-compiling)
15020         * src/configure:      check for endianess (even while cross-compiling)
15021         * src/configure_in.h: check for endianess (even while cross-compiling)
15022         * src/avr/gen.c:        remove old endianess stuff
15023         * src/mcs51/gen.c:      remove old endianess stuff
15024         * src/ds390/gen.c:      remove old endianess stuff
15025         * src/pic/gen.c:        remove old endianess stuff
15026         * src/pic/genarith.c:   remove old endianess stuff
15027         * src/pic/glue.c:       fix endianess check
15028         * src/pic16/gen.c:      remove old endianess stuff
15029         * src/pic16/genarith.c: remove old endianess stuff
15030         * src/pic16/glue.c:     fix endianess check
15031         * src/xa51/gen.c:       remove old endianess stuff
15032         * src/z80/gen.c:        fix endianess check
15033         * src/SDCCglue.c:       fix endianess check
15034         * src/ds390/peeph.def: fix bug 700036
15035
15036 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
15037
15038         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
15039         * src/configure: find appropriate data-types on host for SDCC's int and long
15040         * src/configure.in: find appropriate data-types on host for SDCC's int and long
15041         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
15042         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
15043
15044 2003-03-07    <johan AT balder>
15045
15046         Just a big NOOP:
15047                 some minor cleanups before the big shot
15048                 OP_DEFS and OP_USES now use Kevin's protection
15049                 new option --nolabelopt
15050
15051         * src/SDCCBBlock.c:
15052         * src/SDCCast.c,:
15053         * src/SDCCcflow.c:
15054         * src/SDCCcse.c:
15055         * src/SDCCicode.c:
15056         * src/SDCCicode.h:
15057         * src/SDCClabel.c:
15058         * src/SDCCloop.c:
15059         * src/SDCCmain.c:
15060         * src/ds390/ralloc.c:
15061         * src/mcs51/ralloc.c:
15062         * src/pic/ralloc.c:
15063         * src/xa51/ralloc.c:
15064         * src/z80/ralloc.c:
15065
15066 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
15067
15068         * src/pic/pcode.c (get_op): fix 64 bit warnings
15069         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
15070         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
15071         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
15072         * support/regression/tests/malloc.c: fix 64 bit warnings
15073
15074 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
15075
15076         * src/mcs51/gen.c (genMinus): fixed bug 696436
15077
15078 2003-03-02  Borut Razem <borut.razem AT siol.net>
15079
15080         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
15081
15082 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
15083
15084         * configure.in: test for mkstemp
15085         * sdccconf_in.h: add HAVE_MKSTEMP
15086
15087 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
15088
15089         * device/include/ctype.h: removed warning while using --stack-auto
15090         * device/include/malloc.h: removed warning while using --stack-auto
15091         * device/include/string.h: removed warning while using --stack-auto
15092
15093 2003-02-23  Borut Razem <borut.razem AT siol.net>
15094
15095         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
15096         because NDEBUG is defined (see man assert)
15097         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
15098
15099 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15100
15101         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
15102         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
15103
15104 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
15105
15106         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
15107         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
15108
15109 2003-02-18    <johan AT balder>
15110
15111         * as/mcs51/asmain.c (asmbl): module can start with a digit
15112         * as/z80/asmain.c (asmbl): module can start with a digit
15113
15114 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
15115
15116         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
15117         * src/asm.c: fix pipe() for Mingw32
15118
15119 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
15120
15121         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
15122         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
15123         make -V work again; --c1mode reads now from stdin
15124         * doc/sdccman.lyx: added --c1mode
15125         * support/Util/SDCCerr.c: new messages for c1 mode
15126         * support/Util/SDCCerr.h: new messages for c1 mode
15127         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
15128
15129 2003-02-15    <johan AT balder>
15130
15131         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
15132
15133 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
15134
15135         * doc/sdccman.lyx: Environment variables, -o and other minor things
15136
15137 2003-02-14    <johan AT balder>
15138
15139         * src/xa51/main.c: before anyone really tries to use it :)
15140
15141         * Install doc's in share/sdcc/doc
15142         * removed some obsolete files
15143         * Do a proper make distclean and uninstall
15144         M Makefile.common.in
15145         R sdccbuild.sh
15146         M as/Makefile
15147         M device/include/Makefile.in
15148         M device/lib/Makefile.in
15149         M doc/sdccman.lyx
15150         M link/Makefile
15151         M sim/ucsim/doc/Makefile.in
15152         M src/clean.mk
15153         R src/avr/peeph.rul
15154         R src/xa51/peeph.rul
15155         M support/cpp2/Makefile.in
15156         M support/makebin/Makefile
15157
15158
15159 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
15160
15161         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
15162
15163 2003-02-10  Borut Razem <borut.razem AT siol.net>
15164
15165         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
15166         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
15167         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
15168         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
15169         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
15170         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
15171         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
15172         src/z80/Makefile.bcc: Borland Makefile cleanup
15173         * as/z80/Makefile.bcc: Added Borland Makefile
15174         * support/cpp2/borland.h: Removed
15175
15176 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
15177
15178         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
15179         * src/SDCC.lex: new pragma NOIV
15180         * src/SDCCglobl.h: new pragma NOIV
15181         * src/SDCCmem.c: new pragma NOIV
15182
15183 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
15184
15185         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
15186
15187 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
15188
15189         * src/SDCCmain.c: signal handling is switched off by --debug
15190         * doc/Makefile: small fix for install; use clean.mk again
15191         * doc/clean.mk: clean *.pdf and *.html too
15192
15193 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
15194
15195         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
15196         * device/lib/printfl.c: fix a ds390 bug by making it portable
15197         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
15198         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
15199         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
15200         * debugger/mcs51/cmd.c: converted multi-line string literals
15201         * sim/ucsim/globals.cc: converted multi-line string literals
15202         * src/SDCCmain.c: introduced signal handler to remove temp files
15203         * doc/Makefile: small tweaks, implement clean
15204         * doc: removed generated files
15205
15206 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15207
15208         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
15209         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
15210         Address Record is not correctly generated for DS390."
15211
15212 2003-02-02  Borut Razem <borut.razem AT siol.net>
15213
15214         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
15215         * as/mcs51/asm.h: fixed compilation with Borland C
15216         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
15217         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
15218         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
15219         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
15220         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
15221         src/z80/Makefile.bcc: delete $(LIB) only if exist
15222         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
15223
15224 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
15225
15226         * device/include/malloc.h: introduced NULL
15227         * device/include/string.h: introduced NULL
15228         * device/include/stdlib.h: introduced NULL
15229         * device/lib/_memcpy.c: removed NULL
15230         * device/lib/_strcat.c: removed NULL
15231         * device/lib/_strchr.c: removed NULL
15232         * device/lib/_strcmp.c: removed NULL
15233         * device/lib/_strcpy.c: removed NULL
15234         * device/lib/_strcspn.c: removed NULL
15235         * device/lib/_strlen.c: removed NULL
15236         * device/lib/_strncat.c: removed NULL
15237         * device/lib/_strncmp.c: removed NULL
15238         * device/lib/_strncpy.c: removed NULL
15239         * device/lib/_strpbrk.c: removed NULL
15240         * device/lib/_strrchr.c: removed NULL
15241         * device/lib/_strspn.c: removed NULL
15242         * device/lib/_strstr.c: removed NULL
15243         * device/lib/_strtok.c: removed NULL
15244         * device/lib/malloc.c: removed NULL, include own header
15245
15246 2003-02-02    <johan AT balder>
15247
15248         * 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
15249         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
15250         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
15251         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
15252         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
15253         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
15254
15255 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15256
15257         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
15258         area 'DATA'"
15259
15260 2003-02-01    <johan AT balder>
15261
15262         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
15263
15264 2003-01-31    <johan AT CP255758-A>
15265
15266         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
15267
15268 2003-01-30    <johan AT balder>
15269
15270         * src/SDCCBBlock.c: automatic bug detection
15271         * src/SDCCicode.c: automatic bug detection
15272
15273 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15274
15275         * src/SDCCglobl.h:   now --xram-size 0 works
15276         * src/SDCCmain.c:    now --xram-size 0 works
15277
15278 2003-01-29    <johan AT balder>
15279
15280         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
15281
15282 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15283
15284         * as/mcs51/aslink.h: Added options --xram-size and --code-size
15285         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
15286         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
15287         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
15288         * src/SDCCglobl.h:   Added options --xram-size and --code-size
15289         * src/SDCCmain.c:    Added options --xram-size and --code-size
15290
15291 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
15292
15293         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
15294         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
15295
15296 2003-01-27    <johan AT balder>
15297
15298         * src/SDCC.y: fixed bug #613764
15299
15300 2003-01-26    <johan AT balder>
15301
15302         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
15303         * src/SDCCsymt.h: fixed bug #673374
15304         * src/SDCCglue.c: fixed bug #661910
15305         * src/SDCCast.c: fixed bug #458099 and 673374
15306
15307 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
15308
15309         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
15310         * as/mcs51/strcmpi.h: added
15311         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
15312         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
15313         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
15314         * as/mcs51/assym.c: strcmpi -> as_strcmpi
15315         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
15316         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
15317         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
15318         * as/mcs51/Makefile.aslink: new module strcmpi
15319         * as/mcs51/Makefile.asx8051: new module strcmpi
15320         * as/mcs51/Makefil.bcc: new module strcmpi
15321         * as/mcs51/Makefile.in: new module strcmpi
15322         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
15323
15324 2003-01-26    <johan AT balder>
15325
15326         * src/SDCCglue.c: reverted back to 1.124
15327         * src/SDCCast.c: reverted back to 1.156
15328         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
15329
15330 2003-01-25    <johan AT balder>
15331
15332         * src/SDCCglue.c: A better fix for bug #661910
15333         * src/SDCCast.c: A better fix for bug #661910
15334         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
15335
15336 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
15337
15338         * src/Makefile.in: remove spawn.o
15339         * src/SDCCmain.c: remove spawn.h
15340         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
15341         * src/spawn.c: removed
15342         * src/spawn.h: removed
15343         * support/regression/ports/ds390/spec.mk: link with -r
15344
15345 2003-01-24    <johan AT CP255758-A>
15346
15347         * src/ds390/gen.c (aopOp): fixed bug #667458
15348         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
15349         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
15350         (createIvalCharPtr): an ival doesn't always have a storage class anymore
15351
15352 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
15353
15354         * src/mcs51/peeph.def: better assembler identation by Frieder
15355         * src/mcs51/gen.c: better assembler identation by Frieder
15356
15357 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
15358
15359         * as/z80/string.h: removed for gcc 3.2
15360         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
15361         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
15362
15363 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
15364
15365         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
15366         * src/SDCCpeeph.c (replaceRule): fix bug #663503
15367         * support/regression/Makefile: separate temp files for ports
15368         * support/regression/generate-cases.py: separate temp files for ports
15369         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
15370         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
15371
15372 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
15373
15374         * moved tinitalk to device/examples/ds390
15375
15376 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
15377
15378         * as/mcs51/lkmem.c: rflag is for DS390
15379         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
15380         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
15381                          (linkEdit): move mem- and map-files the same way as ihx-files
15382         * src/z80/main.c (_setDefaultOptions): removed --generic
15383         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
15384         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
15385         * src/pic/glue.c (picglue): --c1mode works again
15386         * src/pic16/glue.c (pic16glue): --c1mode works again
15387         * src/asm.c (printCLine): fix #660034
15388
15389 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
15390
15391         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
15392         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
15393         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
15394         * as/mcs51/lkmem (summary): better fix for sp problem
15395         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
15396         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
15397         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
15398                                               remove --stack-after-data
15399
15400 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
15401
15402         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
15403         * src/SDCCutil.c (join): ugly bug: missing '\0'
15404         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
15405
15406 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
15407
15408         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
15409         * src/port.h: typo
15410         * src/pic/main.c (_asmCmd): gpasm supports -o
15411         * src/z80/main.c: more general macros
15412         * device/lib/Makefile.in: remove intermediate files
15413
15414 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
15415
15416         * .version: Bumped version number to 2.3.3
15417         * src/SDCCBBlock.c: new option -o
15418         * src/SDCCglobl.h: new option -o
15419         * src/SDCCglue.c: new option -o
15420         * src/SDCCmain.c: new option -o
15421         * src/asm.c: new option -o
15422         * src/ds390/main.c: new option -o
15423         * src/pic/glue.c: new option -o
15424         * src/pic/pcode.c: new option -o
15425         * src/pic/ralloc.c: new option -o
15426         * src/pic16/glue.c: new option -o
15427         * src/pic16/pcode.c: new option -o
15428         * src/pic16/ralloc.c: new option -o
15429         * src/z80/main.c: new option -o
15430         * device/lib/Makefile.in: use -o
15431         * support/regression/ports/ds390/spec.mk: use -o
15432         * support/regression/ports/gbz80/spec.mk: use -o
15433         * support/regression/ports/mcs51/spec.mk: use -o
15434         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
15435         * support/regression/ports/z80/spec.mk: use -o
15436         * support/regression/ports/ucz80/spec.mk: use -o
15437         * support/regression/ports/xa51/spec.mk: use -o
15438         * support/regression/fwk/lib/timeout.c: fix usage string
15439
15440 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
15441         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
15442
15443 2003-01-07    <johan AT balder>
15444
15445         * src/SDCCast.c (decorateType): fixed bug #600035
15446
15447 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
15448         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
15449         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
15450         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
15451         * src/pic/pcode.c: outcommented unused variable to remove warnings
15452         * src/pic/ralloc.c: outcommented unused variable to remove warnings
15453
15454 2003-01-06    <karl AT turbobit.com>
15455         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
15456    regression tests.
15457
15458 2003-01-06    <johan AT balder>
15459
15460         * src/SDCCicode.c: fixed array add
15461
15462 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
15463         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
15464         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
15465
15466 2003-01-04    <johan AT balder>
15467
15468         * src/SDCCval.c (getNelements): fixed the initialized array of structures
15469
15470 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15471         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
15472
15473 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
15474         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
15475         * support/regression/tests/bug-524697.c: fit mem usage into 8032
15476
15477 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
15478         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
15479
15480 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
15481         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
15482
15483 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
15484         * src/mcs51/main.c: removed {bindir}{sep} from aslink
15485
15486 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15487
15488     * in /sdcc/as/mcs51/ changed these files in order to create an
15489     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
15490     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
15491     following files to include the previous two files: aslink.dsp,
15492     Makefile.aslink, Makefile.bcc, and Makefile.in.
15493
15494     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
15495     .adb instead of .cdb
15496
15497 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15498
15499         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
15500         value from option --iram-size.
15501
15502 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15503
15504         * /sdcc/as/mcs51/lklist.c: added boundary check before using
15505         dram[] array.
15506
15507 2002-09-18    <wiml AT hhhh.org>
15508
15509         * SDCClrange.h: exposed setFromRange() and setToRange()
15510         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
15511           packRegsForAccUse() (bug 542397)
15512         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
15513           multiple times and emitting the fetch operations more than once
15514           added aopGetUsesAcc() function to allow binary operators to
15515           fetch their operands in the correct order; made genMinus() emit
15516           compact code for X = LITERAL - Y
15517
15518 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15519         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
15520         sprintf() in line 1267.
15521
15522 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15523         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
15524         like ports.
15525
15526 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15527         Changes to aslink (All the changes are marked with 'JCF'):
15528
15529         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
15530         summary().
15531
15532         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
15533         area BSEG.  Also moves, if possible, the DATA area down into the internal
15534         ram so more space is available.
15535
15536         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
15537         sflag.
15538
15539         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
15540         not bytes.  Function summary() which creates a memory usage summary
15541         file with extension .mem.  Reports of overlaping stack and small stack
15542         size.  If the space for the stack is less than 16 bytes aslink trows a
15543         warning.
15544
15545         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
15546         the 8051.  Option 'y' for memory summary output file.
15547
15548         Changes to sdcc (All the changes are marked with 'JCF'):
15549
15550         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
15551
15552         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
15553         overlaying area for it (uses RegBankUsed[4]).
15554
15555         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
15556         bank zero as used by default.  By default aslink locates the stack
15557         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
15558         the creation of the .mem file.  Delegates the allocation of data area
15559         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
15560         the begining of the stack area to aslink.
15561
15562         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
15563         glue() in SDCCglue.c creates an area for it.
15564
15565 2002-09-03  Borut Razem <borut.razem AT siol.net>
15566         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
15567         sdcc/src/pic/glue.c:
15568         introduced atexit() handler for teporay files removal in case of
15569         errors, assertions, ...
15570
15571 2002-08-29  Borut Razem <borut.razem AT siol.net>
15572         * sdcc/support/cpp2/auto-host_vc_in.h:
15573         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
15574         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
15575         Maybe there is a similar problem with BORLANDC? It should be checked!
15576
15577         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
15578         corrected improper use of assert: the assignment to clr variable was done inside the assert.
15579         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
15580         was not executed, and the compiler (cl) launched a warning:
15581         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
15582
15583 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
15584         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
15585
15586 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
15587         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
15588
15589         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
15590           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
15591           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
15592           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
15593           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
15594           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
15595           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
15596         - added Release configuration in VS projects
15597         - review of compiler an linker options
15598         - VC .exe files are generated in bin_vc directory, not to interfere
15599           with binaries generated from other projects (cygwin, mingw, bcc ...)
15600
15601         * sdcc/src/yacc.dsp: added
15602
15603         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
15604         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
15605         and insert the version number definitions from .version
15606
15607         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
15608
15609         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
15610         added - genarate auto-host.h using auto-host_vc_in.h as template
15611
15612         * sdcc/sdcc_vc.h,
15613         removed from CVS, generated automatically
15614
15615 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
15616         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
15617
15618 2002-08-11  Borut Razem <borut.razem AT siol.net>
15619         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
15620
15621 2002-08-10  Borut Razem <borut.razem AT siol.net>
15622         * src/SDCCmain.c (main):
15623         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
15624         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
15625         The consequence was that some temporary files were not removed.
15626
15627         * src/SDCCglue.c:
15628         unification of code in functions tempfilename() and tempfile():
15629         function tempnam() is defined in Visual Studio 6.0 and .NET
15630
15631         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
15632
15633         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
15634           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
15635         - removed compiler command line option /WX: Treats all warnings as errors
15636         - update a list of source files, included into the project
15637
15638         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
15639           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
15640         changed project type to Generic Project so that can be correcly converted to VS.NET project
15641
15642         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
15643
15644         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
15645
15646         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
15647
15648         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
15649         added return 0 statements after assert() to make compiler happy
15650
15651         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
15652         added newline in the def file to keep MSC compiler satisfied
15653
15654         * sdcc/src/z80/gen.c:
15655         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
15656           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
15657         - solved MSC error in function aopDump()
15658
15659         * sdcc_vc.h: define PREFIX as "\\sdcc"
15660
15661 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
15662         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
15663
15664 2002-06-22  Scott Dattalo <scott AT dattalo.com>
15665         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
15666         - Rewrote the register banking algorithm.
15667         - Added pCode live-range analysis to registers (for now, only non-used and
15668         singly-used registers optimized away)
15669
15670         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
15671
15672         * 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.
15673
15674 2002-05-10  Scott Dattalo <scott AT dattalo.com>
15675         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
15676
15677 2002-04-22  Michael Hope  <michaelh AT vroom>
15678
15679         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
15680
15681         * configure.in (DD_COPT): Added include support required for gbdk.
15682
15683         * .version: Bumped version number just to increase it.
15684
15685         * src/SDCCmain.c: Added -nostdinc to the default options.
15686
15687 2002-04-15  Michael Hope  <michaelh AT vroom>
15688
15689         * device/lib/z80/printf.c (sprintf): Added.
15690
15691         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
15692
15693         * src/z80/peeph.def: Added transpose redundent load rule.
15694
15695         * src/z80/main.c: Added force callee saves for jaune.
15696
15697         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
15698
15699         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
15700
15701 2002-03-28  Johan Knol  <johan AT balder>
15702
15703         * src/SDCCval.c: fixed bug #532436
15704
15705 2002-03-14  Scott Dattalo <scott AT dattalo.com>
15706         * /src/port.h:
15707         Added "char *Processor" field to the port structure.
15708
15709         * /src/SDCCmain.c:
15710         Added -p option. Allows port dependent processor to be specified.
15711
15712         * all ports:
15713         Initialized the new field char *Processor field to NULL in all ports
15714
15715         * /src/pic/*:
15716         Compiler generated registers for interrupt context saving
15717         were not getting allocated.
15718
15719 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
15720
15721         * /src/SDCCast.c:
15722         Fixed left shift. Will promote the left side of a left shift
15723         if a) left shifting more than size of operand or b) when assigned
15724         to something size > size of left side
15725
15726 2002-03-14  Scott Dattalo <scott AT dattalo.com>
15727         * src/pic/*
15728         tons of changes. Register allocation has been
15729         rewritten. Added customization for the various PICs. Flow
15730         analysis is restructured. ...
15731
15732         * src/pic/device.h:
15733         Added
15734
15735         * src/pic/device.c:
15736         Added. device.c is a PIC port hack to accomodate variations
15737         in PIC devices.
15738
15739 2002-03-13  Michael Hope  <michaelh AT vroom>
15740
15741         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
15742
15743 2002-03-04  johanknol  <johanknol AT manik>
15744
15745         * /src/SDCCval.c: fixed
15746
15747         const unsigned char arr[][2] = { { 0, 1 } };
15748         t18.c:1: error: Initializer element is not constant
15749
15750 2002-03-04  bela  <bela AT manik>
15751
15752         * /device/include/mcs51reg.h:
15753         ds89c420 register definition update
15754
15755 2002-03-03    <johan AT FRIJA>
15756
15757         * support/Util/SDCCerr.c: did something, but don't no why anymore
15758
15759         * support/regression/tests/bug-524691.c: made it a little less shy
15760
15761         * src/SDCCast.c (decorateType): fixed bug #524697
15762
15763         * src/SDCCast.c: made some lineno improvements
15764
15765         * src/SDCCval.c (getNelements): changed warning to error
15766
15767         * src/SDCCglue.c (printIvalArray): changed warning to error
15768
15769         * src/SDCCicode.c: fixed a warning for mingw
15770
15771         * src/SDCCast.c (decorateType): fixed the << promotion for ops
15772
15773         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
15774
15775 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
15776
15777         * src/ds390/peeph.def:
15778         Added some more peephole rules
15779
15780         * src/ds390/gen.c: Various fixes & enhancements
15781
15782         * src/SDCClrange.c, src/SDCClrange.h:
15783         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
15784
15785         * src/ds390/ralloc.c:
15786         various fixes & enhancements (ds390) specific
15787
15788         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
15789         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
15790         from rallocs.
15791
15792         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
15793
15794 2002-03-02    <johan AT FRIJA>
15795
15796         * src/SDCCast.c (decorateType): fixed bug #524708
15797
15798         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
15799
15800         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
15801
15802 2002-03-01  Michael Hope  <michaelh AT vroom>
15803
15804         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
15805
15806         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
15807
15808 2002-03-01    <johan AT FRIJA>
15809
15810         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
15811
15812         * src/SDCCast.c (decorateType): fixed bug #524209
15813
15814         * src/SDCCval.c (valNot): fixed bug #524195
15815
15816 2002-02-26    <johan AT balder>
15817
15818         * src/xa51/gen.c: fixed a warning
15819
15820         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
15821
15822         * src/SDCCast.c (decorateType): fixed bug #522534
15823
15824 2002-02-23    <johan AT balder>
15825
15826         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
15827
15828 2002-02-22    <johan AT balder>
15829
15830         * src/SDCCast.c: fixed bug #514865
15831
15832         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
15833
15834 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
15835
15836         * sdcc/src/SDCCloop.c:
15837         Previous fix was not good. basic blocks that have "break" or "return" are
15838         not really partof a loop , but live ranges used in these blocks should
15839         be live thru the entire loop, so set partOfLoop but don't add them to
15840         loop region
15841
15842 2002-02-21    <johan AT FRIJA>
15843
15844         * src/SDCCcse.c: fixed bug #514308
15845
15846 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
15847
15848         * src/SDCCloop.c:
15849         Fixed BUG #519583. If a conditional block ended in a return/break
15850         statement inside a loop, it was not being considered part of the loop.
15851
15852         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
15853
15854 2002-02-10  Karl Bongers <karl AT turbobit.com>
15855
15856         * debugger/*:
15857         Fixed up SDCDB debugger somewhat.  Updated debugger/README
15858         with lots of comments and notes.
15859
15860         * device/examples/test2.c:
15861         Fix bug, "red" variable not being initialized(compiler complained).
15862
15863         * device/examples/Makefile, examples/test3.c:
15864         Add Makefile in device/examples folder, compiles test3.c
15865         for use as a multiple module SDCDB test case.
15866
15867         * sim/ucsim/cmd.src/cmdset.cc:
15868         Took out debug printfs in ucsim "next" command.
15869
15870         * sim/ucsim/xa.src:
15871         Karl and Johan start ucsim XA support.  Most dissassembly working,
15872         about 75% emulation done(plenty of work remaining).
15873
15874         * sim/ucsim/z80.src:
15875         Add Z80 support to ucsim, add test-ucz80 regression test,
15876         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
15877         Notice z80 compiler fails on examples/test3.c/crc code.
15878
15879 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
15880
15881         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
15882         Added support for --parms-in-bank1
15883
15884         * src/ds390/peeph.def:
15885         added a few more peephole optimzations
15886
15887         * src/ds390/main.c:
15888         1) added __builtin_inp & __builtin_outp used to read in data of given length
15889            from a memory mapped port
15890         2) added __builtin_memcmp
15891         3) added __builtin_swapw swap bytes of a short
15892
15893         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
15894         1) handle multiple send & receives from register bank1
15895         2) ralloc can now allocate DPTR1 to some liveRanges
15896
15897         * src/SDCCsymt.c, src/SDCCsymt.h:
15898         changes to handle multiple sends & receives
15899
15900         * src/SDCCptropt.h:
15901         added some pointer arithmetic optimization
15902
15903         * src/SDCCptropt.c:
15904         added some pointer arithmetic optimizations but not stable yet so not
15905         called from anywhere (will get this working shortly)
15906
15907         * src/SDCCopt.c: fixed for multiple sends & receives
15908
15909         * src/SDCCmain.c:
15910         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
15911         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
15912            set preprocessor defines (depending on options)
15913
15914         * src/SDCCicode.c, src/SDCCicode.h:
15915         changes made to handle multiple sends & receives
15916
15917         * src/SDCCglobl.h:
15918         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
15919
15920         * src/SDCCcse.c, src/SDCCcse.h:
15921         added function findbackward def (to be used in upcoming optimization)
15922
15923         * src/SDCCcflow.c, src/SDCCcflow.h:
15924         added function returnAtEnd - to determine if a basic block terminates with
15925         a RETURN iCode
15926
15927         * src/SDCCast.c, src/SDCCast.h:
15928         added option parms-in-bank1
15929
15930         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
15931         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
15932         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
15933         adjusted for --parms-in-bank1 option
15934
15935         * device/include/string.h:
15936         donot redefine "reentrant" keyword
15937
15938         * device/include/ds80c390.h: Added some more SFRs
15939
15940 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
15941
15942         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
15943
15944 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
15945
15946         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
15947
15948 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
15949
15950         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
15951
15952 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
15953
15954         * Added --xram-movc option
15955
15956 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
15957
15958         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
15959
15960 2002-01-11  Johan Knol
15961
15962         * Added math lib of Jesus Calvino-Fraga
15963
15964 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
15965
15966         * src/SDCCmain.c (processFile): fix processing of ../../src.c
15967         * support/regression/Makefile: new target test-mcs51-stack-auto
15968         * support/regression/ports/mcs51-stack-auto/spec.mk: added
15969
15970 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
15971
15972         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
15973
15974 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
15975
15976         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
15977
15978 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
15979
15980         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
15981
15982         * src/SDCCglue.h: add definition for printIvalChar()
15983
15984 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
15985
15986         * src/SDCCast.c: fix #498138 by Johan
15987
15988         * src/SDCCglue.c: fix #498138 by Johan
15989
15990 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
15991
15992         * support/regression/Makefile: fix clean
15993
15994         * support/regression/ports/ds390/support.c: fix transmission of last character
15995
15996 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
15997
15998         * /sdcc/src/ds390/gen.c:
15999         a) improved computing address of stack variable
16000         b) took out some #if 0 code
16001         c) improved parmBytes adjustment
16002         d) improved genPlusIncr & genMinusIncr
16003         e) genCmp could generate bad code (when left assigned to DPTR)
16004         f) Fixed bug in hasInc
16005
16006         * /sdcc/src/ds390/ralloc.c:
16007         a) packRegsForSupport could mess up live information (Fixed)
16008         b) packRegsDPTRuse could be incorrect for left & right shift
16009
16010         * /sdcc/src/mcs51/ralloc.c:
16011         packRegsForSupport could mess up the live information (Fixed)
16012
16013         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
16014
16015         * /sdcc/src/SDCCast.c:
16016         can reverse a loop even if function call is present as long
16017         as the loop control variable is local & is not passed as parameter
16018
16019 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16020
16021         * /sdcc/ChangeLog: *** empty log message ***
16022
16023         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
16024         More builtin function additions for TININative
16025
16026         * /sdcc/src/ds390/ralloc.c:
16027         Had broken the regression testsuite
16028
16029         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
16030
16031         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
16032         Added funcattr hasStackParms will be set for reentrant functions when there
16033         are paramteres on the stack, this helps in minimizing frame pointer generation
16034         typeFromStr can handle function pointers now
16035
16036         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
16037         *** empty log message ***
16038
16039 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16040
16041         * /src/ds390/gen.c, /src/ds390/main.c:
16042         More builtin function additions for TININative
16043
16044         * /src/ds390/ralloc.c:
16045         Had broken the regression testsuite
16046
16047         * /src/SDCCast.c: Fixed a bug in dumptree
16048
16049         * /src/SDCCsymt.c, /src/SDCCsymt.h:
16050         Added funcattr hasStackParms will be set for reentrant functions when there
16051         are paramteres on the stack, this helps in minimizing frame pointer generation
16052         typeFromStr can handle function pointers now
16053
16054         * /doc/builtins.txt, /doc/TININative.txt:
16055         *** empty log message ***
16056
16057
16058 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
16059
16060         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
16061         ALPHA version for -mTININative
16062
16063         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
16064         updated to reflect changes in the port structure
16065
16066         * /src/port.h:
16067         added function do_assemble (similar to do_link) if non-null this function
16068         will be called to do assembly (-mTININative) requires a multi command
16069         assembly
16070         added function genAssemblerEnd will be called to generate assembler Epilogue
16071
16072         * /src/SDCCsymt.c:
16073         added _JavaNative to debug info printing
16074
16075         * /src/SDCCmain.c: added option --tini-libid
16076         added port->do_assemble function (-mTININative) has a multi command assemble
16077
16078         * /src/SDCCglue.c: Disabled "constExpr" check
16079         added port->genAssemblerEnd function
16080
16081         * /src/SDCCglobl.h: Added option --tini-libid value
16082
16083         * /src/SDCCast.h:
16084         tookout optimizeCompare from the header (has no external references)
16085
16086         * /src/SDCCast.c: made one more function "static"
16087
16088 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
16089
16090         * src/z80/mappings.i: Added z80asm support.
16091
16092         * src/z80/main.c: Added z80asm support on --asm=z80asm
16093
16094         * src/z80/gen.c: Fixed asm portability issues.
16095
16096         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
16097
16098         * src/SDCCglue.c (printExterns): Added global/extern split.
16099
16100 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
16101
16102         * support/regression/Makefile: added test for mcs51 model large
16103
16104         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
16105
16106         * support/regression/ports/gbz80/spec.mk: added -mgbz80
16107
16108 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
16109
16110         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
16111
16112 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
16113
16114         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
16115
16116         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
16117
16118 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
16119
16120         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
16121
16122         * support/regression/tests/simplefloat.c: Port to mcs51.
16123
16124 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
16125         * support/regression/tests/bug-485362.c: Added.
16126
16127         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
16128
16129         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
16130
16131         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
16132
16133         * src/z80/gen.c (aopDump): Added a dump function.
16134
16135 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
16136         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
16137
16138         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
16139
16140         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
16141
16142         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
16143
16144         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
16145
16146         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
16147
16148         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
16149
16150         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
16151
16152         * support/regression/ports/ds390/support.c: Use tinibios.
16153
16154         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
16155
16156 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
16157
16158         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
16159         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
16160
16161         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
16162
16163         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
16164
16165 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
16166
16167         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
16168
16169         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
16170         (packRegsForIYUse): Created and optimised.
16171
16172 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
16173
16174         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
16175 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
16176
16177         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
16178
16179         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
16180
16181         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
16182
16183 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16184
16185         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
16186
16187         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
16188
16189 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16190
16191         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
16192
16193         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
16194
16195         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
16196
16197 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
16198
16199         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
16200         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
16201         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
16202
16203         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
16204
16205         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
16206         (genNotFloat): Added.
16207         (genUminusFloat): Added.
16208
16209         * device/lib/z80/Makefile: Added floating pt stubs.
16210
16211         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
16212
16213         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
16214
16215         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
16216
16217 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
16218
16219         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
16220
16221         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
16222
16223         * sdcc/support/regression/Makefile: Add port ds390.
16224
16225         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
16226
16227         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
16228
16229         * sdcc/support/regression/ports/ds390/spec.mk: Added.
16230
16231         * sdcc/support/regression/ports/ds390/support.c: Added.
16232
16233         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
16234
16235         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
16236
16237         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
16238
16239 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
16240
16241         * device/include/malloc.h: Added z80 and gbz80 support.
16242
16243         * device/lib/gbz80/heap.s: Added.
16244
16245         * device/lib/z80/heap.s: Added.
16246
16247         * device/lib/malloc.c: Added z80 and gbz80 support.
16248
16249         * support/regression/tests/malloc.c (testMalloc): Added.
16250
16251         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
16252
16253         * support/regression/tests/bug-478094.c: Added.
16254
16255         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
16256
16257 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
16258
16259         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
16260
16261         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
16262
16263         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
16264
16265         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
16266
16267         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
16268
16269 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
16270
16271         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
16272
16273 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
16274
16275         * support/regression/tests/bug-477927.c: Added.
16276
16277         * src/z80/peeph.def: Added minor rules.
16278
16279         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
16280
16281         * src/z80/peeph.def: Added jump optimisation modification.
16282
16283 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
16284
16285         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
16286
16287 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
16288
16289         * support/regression/tests/funptrs.c: Added.
16290
16291 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
16292
16293         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
16294
16295 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
16296
16297         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
16298
16299         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
16300
16301         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
16302         (movLeft2ResultLong): Created.
16303
16304         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
16305         (joinPushes): Added.  Joins two char pushes into a word push.
16306
16307 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
16308
16309         * support/cpp2/Makefile.in (install): Added creation of dest dir.
16310
16311         * support/makebin/Makefile (install): Added creation of dest dir.
16312
16313 2001-10-24 Karl Bongers <karl AT turbobit.com>
16314
16315         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
16316
16317 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
16318
16319         * src/z80/ralloc.c: Turned off faulty pack for one use.
16320
16321         * src/z80/peeph-gbz80.def: Removed redundent restart options.
16322
16323         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
16324
16325 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
16326
16327         * support/regression/Makefile: Improved clean
16328
16329         * support/regression/ports/gbz80/spec.mk: Added clean
16330
16331         * support/regression/ports/host/spec.mk: Added clean
16332
16333         * support/regression/ports/z80/spec.mk: Added clean
16334
16335         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
16336
16337         * support/regression/ports/mcs51/timeout.c: little improvements
16338
16339 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
16340
16341         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
16342
16343         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
16344
16345         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
16346
16347 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
16348
16349         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
16350
16351         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
16352
16353 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
16354         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
16355
16356         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
16357
16358         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
16359
16360         * src/mcs51/main.c (_linkCmd): Added bin path to command.
16361
16362         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
16363
16364         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
16365
16366         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
16367
16368         * support/regression/tests/longor.c: Added.
16369
16370 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
16371
16372         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
16373
16374         * as/mcs51/aslink.h: define PATH_MAX
16375
16376         * as/mcs51/asm.h: define PATH_MAX
16377
16378         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
16379
16380         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
16381
16382         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
16383
16384         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
16385
16386         * src/SDCCglobl.h: define PATH_MAX
16387
16388         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
16389
16390         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
16391
16392 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
16393
16394         * src/z80/gen.c (gencjneshort): Fixed
16395
16396         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
16397
16398 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
16399
16400         * support/regression/tests/bug-469671.c: Added.
16401
16402         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
16403
16404 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
16405
16406         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
16407
16408         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
16409
16410 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
16411
16412         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
16413
16414         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
16415
16416         * src/device/lib/_mullong.c : removed hint: nooverlay bug
16417
16418         * src/device/lib/_divuint.c : removed hint: nooverlay bug
16419
16420         * src/device/lib/_divulong.c: removed hint: nooverlay bug
16421
16422         * src/device/lib/_moduint.c : removed hint: nooverlay bug
16423
16424         * src/device/lib/_modulong.c: removed hint: nooverlay bug
16425
16426 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
16427
16428         * 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.
16429
16430         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
16431
16432         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
16433
16434 2001-10-07    <johan AT FRIJA>
16435
16436         * device/lib/gets.c (gets): fixed the return value.
16437
16438 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
16439         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
16440
16441         * 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.
16442
16443         * 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.
16444
16445         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
16446
16447         * src/pic/gen.c: Removed Safe_strdup.
16448
16449         * configure.in: Added option to enable libgc support.
16450
16451         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
16452         (bitVectUnion): Optimised.
16453         (bitVectIntersect): Optimised.
16454         (bitVectBitsInCommon): Optimised.
16455         (bitVectCplAnd): Optimised.
16456
16457         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
16458
16459 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16460
16461         * src/SDCCmain.c: distinguish between assembler debug and plain options
16462
16463         * src/avr/main.c:   remove standard assembler options
16464
16465         * src/ds390/main.c: remove standard assembler options
16466
16467         * src/mcs51/main.c: remove standard assembler options
16468
16469         * src/port.h: removed "PENDING" comment
16470
16471 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16472
16473         * src/device/lib/_mulint.c  : new, with assember functions
16474
16475         * src/device/lib/_mullong.c : new, with assember functions
16476
16477         * src/device/lib/_divuint.c : with assember functions
16478
16479         * src/device/lib/_divsint.c : with assember functions
16480
16481         * src/device/lib/_divulong.c: with assember functions
16482
16483         * src/device/lib/_divslong.c: with assember functions
16484
16485         * src/device/lib/_moduint.c : with assember functions
16486
16487         * src/device/lib/_modsint.c : with assember functions
16488
16489         * src/device/lib/_modulong.c: with assember functions
16490
16491         * src/device/lib/_modslong.c: with assember functions
16492
16493         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
16494
16495         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
16496
16497         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
16498                                       replaced _mululong.c and _mulslong.c by _mullong.c
16499
16500 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16501
16502         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
16503
16504 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
16505
16506         * src/SDCCglue.c: test, if win32api is available for MINGW
16507
16508 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
16509
16510         * src/SDCCsymt.c: no more _modifier in printTypeChain()
16511         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
16512         * support/regression/ports/gbz80/spec.mk: removed GENERIC
16513         * support/regression/ports/host/spec.mk: removed GENERIC
16514         * support/regression/ports/mcs51/spec.mk: removed GENERIC
16515         * support/regression/ports/z80/spec.mk: removed GENERIC
16516
16517 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
16518
16519         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
16520
16521         * support/regression/tests/bug-467035.c: Created.
16522
16523 2001-10-01    <johan AT FRIJA>
16524
16525         * src/SDCC.y: fixed bug #466586 part 1
16526
16527 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
16528
16529         * SDCCicode.c: z80 has no generic pointers
16530         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
16531
16532 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
16533
16534         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
16535
16536 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
16537
16538         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
16539
16540         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
16541
16542 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
16543
16544         * configure.in: Fixed up so that ucsim is only configured once.
16545
16546         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
16547
16548         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
16549         (getPathDifference): As above.
16550
16551         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
16552
16553         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
16554
16555 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
16556         * .version: Updated to 2.3.1
16557
16558         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
16559         Added copyright header.
16560
16561         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
16562         (assemble): Added support for macro based assembler commands.
16563         (linkEdit): Added support for macro based linker commands.
16564         (preProcess): Changed the pre-processor to use macros.
16565         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
16566         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
16567
16568         * device/lib/z80/crt0.s: Added module name for debugging.
16569
16570 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
16571
16572         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
16573
16574         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
16575
16576         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
16577
16578         * src/Makefile.in: Added SDCCmacro and SDCCutil
16579
16580 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
16581
16582         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
16583
16584 2001-09-16    <johan AT FRIJA>
16585
16586         * 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.
16587
16588 2001-09-15    <johan AT FRIJA>
16589
16590         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
16591         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
16592
16593 2001-09-11    <johan AT FRIJA>
16594
16595         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
16596
16597 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
16598
16599         * support/regression/tests/bug-460444.c: Added test case.
16600
16601         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
16602         (genCast): Added justification for all of the asserts.
16603
16604 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
16605
16606         * support/regression/support.c: _xdata replaced by xdata
16607
16608         * support/regression/spec.mk: removed _generic
16609
16610 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
16611
16612         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
16613
16614         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
16615         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
16616
16617         * src/z80/peeph.def: Added a rule to optimise shift then compare.
16618
16619         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
16620
16621         * support/regression/tests/bug-460010.c: Added test case.
16622
16623         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
16624
16625 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
16626
16627         * support/regression/Makefile: inter-port-clean adjusted for mcs51
16628
16629         * support/regression/testfwk.c: removed workaround for bug #436344
16630
16631         * support/regression/tests/bp.c: use less memory with mcs51
16632
16633         * support/regression/tests/bug-441448.c: use less memory
16634
16635         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
16636
16637         * support/regression/collate-results.py: typo
16638
16639 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
16640
16641         * support/regression/tests/fetchoverlap.c: Added new test case.
16642
16643         * support/regression/tests/bp.c: Added new test case.
16644
16645         * support/regression/tests/bug-448984.c: Added new test case.
16646
16647         * support/regression/tests/pow2shifts.c: Added new test case.
16648
16649         * src/z80/gen.c: Turned off the noise it normally generates for the release.
16650         (genlshTwo): Fixed right shift for count > 8.
16651
16652         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
16653
16654 2001-09-08    <johan AT FRIJA>
16655
16656         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
16657
16658 2001-09-07    <johan AT FRIJA>
16659
16660         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
16661
16662         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
16663
16664 2001-09-06    <johan AT FRIJA>
16665
16666         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
16667         * bernhard noted me at this: "() equals to (void)" (1.38)
16668
16669 2001-09-05    <johan AT FRIJA>
16670
16671         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
16672
16673 2001-09-04    <johan AT FRIJA>
16674
16675         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
16676
16677
16678 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
16679
16680         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
16681
16682 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
16683
16684         * link/z80/aslink.h: Fixed path for PATH_MAX
16685
16686 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
16687
16688         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
16689
16690         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
16691
16692         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
16693
16694         * 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.
16695
16696 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
16697
16698         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
16699         (genCmp): Fixed up genCmp for the GB with longs.
16700
16701         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
16702
16703         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
16704
16705         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
16706
16707         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
16708
16709 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
16710
16711         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
16712
16713 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
16714
16715         * 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.
16716
16717         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
16718
16719 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
16720
16721         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
16722
16723         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
16724
16725 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
16726
16727   * sim/ucsim/configure:    little improvement of Cygwin-detection
16728   * sim/ucsim/configure.in: little improvement of Cygwin-detection
16729   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
16730   * support/regression/tests/bug-221100.c: small changes for mcs51
16731   * support/regression/tests/bug-221168.c: small changes for mcs51
16732   * support/regression/tests/bug-227710.c: small changes for mcs51
16733   * support/regression/tests/staticinit.c: small changes for mcs51
16734   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
16735   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
16736   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
16737
16738 $Revision$