* support/Utils/dbuf_string.[ch]: added dbuf_chomp(),
[fw/sdcc] / ChangeLog
1 2008-05-18 Borut Razem <borut.razem AT siol.net>
2
3         * support/Utils/dbuf_string.[ch]: added dbuf_chomp(),
4           the buffer is null terminated
5         * src/device/pic16.c:
6           applied modified patch 1965676: Patch for Win32 16 bit PIC
7         * sdcc_vc_in.h: defined YY_NO_UNISTD_H
8
9 2008-05-16 Maarten Brock <sourceforge.brock AT dse.nl>
10
11         * src/SDCC.lex (check_type),
12         * src/SDCC.y (type_specifier2 TYPE_NAME): fixed bug 1925942
13         * as/hc08/clean.mk,
14         * as/mcs51/clean.mk,
15         * as/z80/clean.mk: also clean *.dep
16         * device/lib/pic16/libsdcc/stack/Makefile,
17         * sim/ucsim/libtool: removed as they are rebuild by configure
18         * src/clean.mk: removed izt, so Makefile is not deleted for distclean
19
20 2008-05-13 Maarten Brock <sourceforge.brock AT dse.nl>
21
22         * src/SDCCast.c (fixupInline, createFunction): save currBlockno in
23           fixupInline instead of createFunction to fix bug 1864577
24           (inlineFindMaxBlockno): removed, use global blockNo
25         * src/SDCCglobl.h: added blockNo
26         * src/z80/peep.c,
27         * src/z80/peep.h: modified properties
28         * support/regression/tests/bug1864577.c: new, added
29
30 2008-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
31
32         * as/mcs51/asdata.c,
33         * as/mcs51/asm.h: added org_cnt
34         * as/mcs51/asmain.c (main, asmbl): fixed bug 1957716, changed old K&R to ANSI
35         * as/mcs51/asout.c: changed old K&R to ANSI
36         * as/mcs51/Makefile.in: use common identifiers
37         * as/hc08/asdata.c,
38         * as/hc08/asexpr.c,
39         * as/hc08/asm.h,
40         * as/hc08/asmain.c,
41         * as/hc08/asout.c,
42         * as/hc08/Makefile.bcc,
43         * as/hc08/Makefile.in: synchronized with as/mcs51/*
44         * sdcc_vc_in.h: added define __func__
45         * src/SDCCast.c (expandInlineFuncs): applied patch 1957148 to fix bug 1717305,
46           Thanks Ruud van Silfhout
47         * support/regression/tests/bug1717305.c: new, added
48
49 2008-05-05 Borut Razem <borut.razem AT siol.net>
50
51         * support/regression/Makefile.in,
52           support/regression/fwk/lib/testfwk.c,
53           support/regression/ports/ds390/spec.mk,
54           support/regression/ports/hc08/spec.mk,
55           support/regression/ports/mcs51-common/spec.mk,
56           support/regression/ports/pic14/spec.mk,
57           support/regression/ports/pic16/spec.mk,
58           support/regression/ports/ucz80/spec.mk,
59           support/regression/ports/z80/spec.mk:
60           added INC_DIR and LIBDIR paths
61         * src/ds390/gen.c: removed duplicated selicolon
62
63 2008-05-04 Borut Razem <borut.razem AT siol.net>
64
65         * support/regression/Makefile.in,
66           support/regression/fwk/lib/testfwk.c,
67           support/regression/ports/ds390/spec.mk,
68           support/regression/ports/hc08/spec.mk,
69           support/regression/ports/mcs51-common/spec.mk,
70           support/regression/ports/mcs51-large/spec.mk,
71           support/regression/ports/mcs51-medium/spec.mk,
72           support/regression/ports/mcs51-small/spec.mk,
73           support/regression/ports/mcs51-stack-auto/spec.mk,
74           support/regression/ports/mcs51-xstack-auto/spec.mk,
75           support/regression/ports/pic14/spec.mk,
76           support/regression/ports/pic16/spec.mk,
77           support/regression/ports/ucz80/spec.mk:
78           added possibility to define the sdcc binary directory SDCC_BIN_PATH
79           used to run regeression tests
80
81 2008-05-01 Raphael Neider <rneider AT web.de>
82
83         * doc/sdccman.lyx, support/scripts/inc2h-pic16.pl: updated list of
84           supported devices and instructions to add new ones
85
86 2008-05-01 Raphael Neider <rneider AT web.de>
87
88         * device/include/pic16/adc.h,
89           device/lib/pic16/libio/adc/adcbusy.c,
90           device/lib/pic16/libio/adc/adcopen.c,
91           device/lib/pic16/libio/adc/adcsetch.c: support old 18f242 and new
92           18f2455 style ADC devices, based on patch #1776197
93         * device/lib/pic16/libio/adc/adcclose.c,
94           device/lib/pic16/libio/adc/adcconv.c,
95           device/lib/pic16/libio/adc/adcread.c: cosmetic changes
96         * device/include/pic16/{pic18f2331.h,pic18f2431.h},
97           device/lib/pic16/libdev/{pic18f2331.c,pic18f2431.c}: reuse 18f4331
98         * device/include/pic16/pic18f4431.h,
99           device/lib/pic16/libdev/pic18f4431.c: remove outdated comments
100         * device/lib/pic16/libio/adc.ignore: forbid unhandled devices
101
102 2008-05-01 Raphael Neider <rneider AT web.de>
103
104         * src/pic16/device.h: removed unused field PIC16_device.sfrRange,
105           moved xinst flag into pic16_options_t
106         * src/pic16/device.c (default_device, pic16_list_devices,
107           pic16_find_device): removed references to sfrrange
108         * src/pic16/gen.c (genFunction),
109           src/pic16/glue.c (pic16initialComments),
110           src/pic16/main.c (pic16_optionsTable),
111           src/pic16/ralloc.c (newReg, pic16_writeUsedRegs): updated references
112           to xinst
113         * device/include/pic16/pic16devices.txt: removed sfrrange lines
114
115 2008-04-29 Raphael Neider <rneider AT web.de>
116
117         * src/pic16/devices.inc,
118           device/include/pic16/pic16devices.txt: replaced compiled-in list
119           of devices with a variant parsed at runtime
120         * src/pic16/device.c: added support for parsing pic16devices.txt,
121           clean up
122         * src/pic16/device.h: removed (now) unused fields from PIC_device
123         * src/pic16/main.c: removed #pragma maxram,
124           (_pic16_initPaths): removed bogus generation of search paths,
125           setup the port proper only after the search paths (for
126           pic16devices.txt) are set up,
127           (_pic16_finaliseOptions): moved processor dependant code here
128           from _pic16_initPaths(), clean up
129         * src/pic16/ralloc.c (pic16_init_stack),
130         * src/pic16/ralloc.h,
131         * src/pic16/pcode.c: clean up
132         * device/include/Makefile.in,
133           support/scripts/sdcc.nsi: also install/package pic16devices.txt
134         * support/scripts/inc2h-pic16.pl: updated instructions
135
136 2008-04-29 Raphael Neider <rneider AT web.de>
137
138         * device/include/pic16/{pic18f2480.h, pic18f2580.h, pic18f4423.h,
139           pic18f4480.h, pic18f4523.h, pic18f4580.h, pic18f6585.h, pic18f8585.h},
140           device/lib/pic16/libdev/{pic18f2480.c, pic18f2580.c, pic18f4423.c,
141           pic18f4480.c, pic18f4523.c, pic18f4580.c, pic18f6585.c, pic18f8585.c}:
142           added missing family members and 18f2480/2580/4480/4580 family
143         * device/include/pic16/{pic18f2423.h, pic18f2523.h}: use 18f4523.h
144         * device/include/pic16/pic18f2525.h: use 18f4620.h
145         * device/include/pic16/pic18f6680.h: use 18f8680.h
146         * device/include/pic16/pic18fregs.h,
147           device/lib/pic16/pics.all,
148           src/pic16/devices.inc: add new devices
149         * device/lib/pic16/libdev/{pic18f2423.c, pic18f2523.c}: use 18f4523.c
150         * device/lib/pic16/libdev/pic18f2525.c: use 18f4620.c
151         * device/lib/pic16/libdev/pic18f6680.c: uso 18f8680.c
152         * device/lib/pic16/libio/{adc.ignore, i2c.ignore, usart.ignore}:
153           prevent attempting to build the libio for some new devices
154
155 2008-04-29 Raphael Neider <rneider AT web.de>
156
157         * debugger/mcs51/Makefile.in: fixed paths to sources
158
159 2008-04-25 Borut Razem <borut.razem AT siol.net>
160
161         * as/link/lklibr.c: moved from as/link/z80/lklibr.c
162         * as/link/hc08/lklibr.c, as/link/mcs51/lklibr.c: deleted
163         * as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
164         * as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
165           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
166           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
167           as/link/z80/linkz80.dsp: lklibr.c moved
168         * doc/INSTALL.txt: binary archives in bz2 format
169         * support/cpp/auto-host_vc_in.h: CPP2 replaced with CPP
170
171 2008-04-23 Maarten Brock <sourceforge.brock AT dse.nl>
172
173         * src/SDCCglue.c (printIvalType, printIvalBitFields): fixed bug 1856409
174         * support/regression/tests/bug1856409.c: new, added
175
176 2008-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
177
178         * src/z80/peep.c,
179         * src/mcs51/peep.c: Use werror for error messages.
180         * src/SDCCicode.c (geniCodeConditional),
181         * src/SDCCsymt.c (structElemType): fixed bug 1839321
182         * src/z80/Makefile.bcc,
183         * src/z80/z80.dsp: added src/z80/peep.c/h
184         * support/regression/tests/bug1839321.c: new, added
185
186 2008-04-20 Raphael Neider <rneider AT web.de>
187
188         * device/include/pic16/pic18f2455.h: added bitfields for port C
189
190 2008-04-20 Philipp Klaus Krause <pkk AT spth.de>
191
192         * src/z80/peep.c: Use werror for error messages.
193
194 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
195
196         * src/z80/peep.h (declaration of notUsed()),
197         * src/z80/main.c (enabled notUsed() for z80 port, documented z80_port
198           struct),
199         * src/z80/z80.h (added dependency on peep.h),
200         * src/z80/peep.c (definition of notUsed()): Implemented RFE #1880202
201           for Z80.
202
203 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
204
205         * src/SDCCpeeph.c (added support for notUsed()),
206         * src/mcs51/main.c (added dependency on peep.h, documented mcs51_port
207           struct),
208         * src/port.h (removed dependency on mcs51/peep.h, added declaration
209           for notUsed()): Implemented generic (that is not port-specific) part
210           of RFE #1880202.
211
212 2008-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
213
214         * as/link/mcs51/lkmem.c (summary2): fixed bug 1796077
215         * device/lib/libsdcc.lib,
216         * device/lib/Makefile.in,
217         * support/regression/ports/mcs51-xstack-auto/spec.mk,
218         * device/lib/calloc.c: renamed to _calloc.c
219         * device/lib/free.c: renamed to _free.c
220         * device/lib/malloc.c: renamed to _malloc.c
221         * device/lib/realloc.c: renamed to _realloc.c
222         * src/ds390/gen.c (aopGet, aopPut, genPlusBits, genDataPointerSet,
223           genNearPointerSet, genPagedPointerSet): synchronized with mcs51/gen.c
224         * src/ds390/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq, ifxForOp,
225           genAnd, genOr, genXor, genIfx, gen390Code): fixed bug 1509084
226         * src/mcs51/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq,
227           ifxForOp, genAnd, genOr, genXor, genNearPointerGet,
228           genPagedPointerGet, genFarPointerGet, genCodePointerGet,
229           genGenPointerGet, genIfx, gen51Code): fixed bug 1509084
230         * src/ds390/gen.c,
231         * src/mcs51/gen.c: throughout cosmetic changes for syncing both
232         * src/SDCCsymt.h: updated IS_OP_RUONLY, IS_OP_ACCUSE
233         * support/regression/tests/bug1509084.c: new, added
234
235 2008-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
236
237         * device/include/mcs51/cc2510fx.h: added _XPAGE
238         * device/include/mcs51/compiler.h: cosmetic changes
239
240 2008-03-31 Maarten Brock <sourceforge.brock AT dse.nl>
241
242         * sdcc.dsw: adapted for moved cpp2, added dependency for as_z80 on
243           config
244
245 2008-03-31 Borut Razem <borut.razem AT siol.net>
246
247         * support/cpp2 renamed to support/cpp
248         * support/cpp2/libiberty/filenames.h, support/cpp2/libiberty/hex.c,
249           support/cpp2/libiberty/splay-tree.c,
250           support/cpp2/libiberty/splay-tree.h, support/cpp2/libcpp/macro.c,
251           support/cpp2/libcpp/directives.c,
252           support/cpp2/libcpp/include/cpplib.h,
253           support/cpp2/libcpp/include/symtab.h,
254           support/cpp2/libcpp/include/line-map.h,
255           support/cpp2/libcpp/line-map.c, support/cpp2/libcpp/files.c,
256           support/cpp2/libcpp/init.c, support/cpp2/libcpp/traditional.c,
257           support/cpp2/libcpp/expr.c, support/cpp2/libcpp/internal.h,
258           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/system.h,
259           support/cpp2/libcpp/charset.c: SDCPP synchronized with GCC CPP
260           release version 4.3.0
261         * configure.in, configure, Makefile.in, Makefile.bcc:
262           adapted for moved cpp2
263
264 2008-03-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
265
266         * device/include/hc08/mc68hc908jkjl.h: committed fix for bug #1929739,
267           thanks Alejandro Pustowka <alejo_pustowka AT yahoo.com.mx>
268
269 2008-03-30 Maarten Brock <sourceforge.brock AT dse.nl>
270
271         * src/SDCCloop.c (loopInvariants): applied fix for bug 1717943, thanks
272           Robert Larice
273         * support/regression/tests/bug1717943.c: new, added
274
275 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
276
277         * src/z80/gen.c (assignResultValue): Reverted reversal of order of
278           bytewise return value assignments introduced in last commit.
279
280 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
281
282         * src/z80/gen.c (emitDebug, assignResultValue, genPlus, genMinus,
283           genMult, genJumpTab):
284           Use 16-bit instructions for addition in some additional cases,
285           implemented RFEs #1914251, #1914245, #1922090, #1921382, #1918323.
286
287 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
288
289         * src/z80/ralloc.c (serialRegAssign, allocReg, tryAllocatingRegPair):
290           Implemented RFE #1921450, changed some debug messages.
291
292 2008-03-30 Borut Razem <borut.razem AT siol.net>
293
294         * Small Device C Compiler 2.8.0 released
295         * .version, doc/sdccman.lyx: changed sdcc version to 2.8.1
296         * support/scripts/sdcc.nsi: added finish page; this version
297           was used for 2.8.0 release
298         * doc/knownbugs.html: removed; magically generated by the build
299           process using gen_known_bugs.pl from now on
300
301 2008-03-23 Borut Razem <borut.razem AT siol.net>
302
303         * src/pic/gen.h: Q&D solution for the bug, found by Jim Paris
304           and reverted it, since it was already fixed by Raphael ;-)
305         * doc/knownbugs.html: updated for RC2
306
307 2008-03-22 Raphael Neider <rneider AT web.de>
308
309         * src/SDCCicode.c (getPtrType): avoid unnecessary extra assignments
310           for PIC16 targets
311
312 2008-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
313
314         * src/mcs51/gen.c (adjustArithmeticResult): fixed bug 1839299
315         * support/regression/tests/bug1839277.c: added related testBug1839299
316
317 2008-03-21 Maarten Brock <sourceforge.brock AT dse.nl>
318
319         * src/ds390/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign),
320         * src/mcs51/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign):
321           fixed bug 1839277
322         * src/mcs51/gen.c: throughout only output hex constants
323         * src/SDCCicode.c (getPtrType, geniCodeCast): fixed code size regression
324         * support/regression/tests/bug1839277.c: new, added
325
326 2008-03-21 Philipp Klaus Krause <pkk AT spth.de>
327
328         * src/z80/ralloc.c (callFuncByName): Used // instead of /**/ to fix
329           compilation warning about nested comments.
330
331 2008-03-20 Maarten Brock <sourceforge.brock AT dse.nl>
332
333         * src/SDCCsymt.c (comparePtrType): fixed bug 1921073
334         * support/regression/tests/bug1921073.c: new, added
335
336 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
337
338         * src/z80/SDCCpeeph.c.c (callFuncByName):
339           Commented function parameters.
340
341 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
342
343         * src/z80/ralloc.c (packRegsForAccUse2):
344           disabled a broken accumulator packing optimization (fixed #1292721).
345         * support/regression/tests/bug-1292721: Regression test for #1292721.
346
347 2008-03-16 Raphael Neider <rneider AT web.de>
348
349         * src/pic/gen.c (SetIrp,genNearPointerGet,genNearPointerSet):
350           fixed code bloat regression using a variant of patch #1915618
351
352 2008-03-16 Borut Razem <borut.razem AT siol.net>
353
354         * support/scripts/sdcc.nsi: added section debugging macros, added SDCC
355           icon, changed startup menu for release distribution, code cleaning,
356           create url files instead links in startup menu
357
358 2008-03-16 Maarten Brock <sourceforge.brock AT dse.nl>
359
360         * src/SDCCcse.c (algebraicOpts): fixed bug 1579949
361         * support/regression/tests/bug1579949.c: new, added
362
363 2008-03-14 Paul Stoffregen <paul AT pjrc.com>
364
365         * device/lib/printf_fast.c: fixed bug 1255403
366
367 2008-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
368
369         * doc/sdccman.lyx: enhanced paragraph about bankswitching for mcs51
370         * src/cdbFile.c (cdbWriteBasicSymbol): fixed bug 1909409 for locals
371
372 2008-03-14 Borut Razem <borut.razem AT siol.net>
373
374         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated link-xx and aslink
375           command line options
376         * as/link/hc08/lkmain.c: converted tabs to spaces so that the usage
377           is correctly displayed
378         * as/link/z80/lkmain.c: usage line commented out
379
380 2008-03-13 Borut Razem <borut.razem AT siol.net>
381
382         * doc/sdccman.lyx: corrected to be able to convert to PDF,
383           updated the list pf supported pic14 devices
384
385 2008-03-12 Maarten Brock <sourceforge.brock AT dse.nl>
386
387         * doc/sdccman.lyx: added paragraph about bankswitching for mcs51
388
389 2008-03-12 Borut Razem <borut.razem AT siol.net>
390
391         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated command line options,
392           fixed documentation request #1718191
393         * as/hc80/asmain.c, as/mcs51/asmain.c: added option -c to usage
394         * doc/sdccman.lyx: added description of --no-std-crt0 gbz80
395           command line option
396
397 2008-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
398
399         * src/SDCCast.c (isConformingBody): fixed bug 1505811, thanks Robert Larice
400         * support/regression/tests/bug1505811.c: new, added
401
402 2008-03-09 Raphael Neider <rneider AT web.de>
403
404         * device/include/pic16/pic18f2620.h,
405         * device/include/pic16/pic18f4620.h,
406         * device/lib/pic16/libdev/pic18f2620.c,
407         * device/lib/pic16/libdev/pic18f4525.c,
408         * device/lib/pic16/libdev/pic18f4620.c: merged 18f2525/2620/4525/4620
409           family to consistently use pic18f4620.[ch], fixes #1832562
410
411 2008-03-09 Borut Razem <borut.razem AT siol.net>
412
413         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
414           changed sdcc version to 2.8.0
415         * knownbugs.html: regenerated
416         * support/scripts/gen_known_bugs.pl: added number of open bugs
417
418 2008-03-09 Raphael Neider <rneider AT web.de>
419
420         * src/pic16/gen.c (pic16_mov2w_volatile): NEW, read volatile operands,
421           (genOr): read volatile operand even if the result is known,
422           closes #1511838
423           (genOr,genXor): removed unused legacy code,
424           (genDummyRead): use pic16_mov2w_volatile()
425
426 2008-03-08 Borut Razem <borut.razem AT siol.net>
427
428         * src/SDCCglue.c: fixed bug #1864582: multiple definition of char
429           cons w. --model-large
430         * support/regression/staticinit.c: added regression test for bug
431           #1864582
432
433 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
434
435         * src/ds390/gen.c (pushSide, genPcall),
436         * src/hc08/gen.c (pushSide, genPcall): synchronized with mcs51
437         * src/mcs51/gen.c: cosmetic changes
438         * support/regression/fwk/include/testfwk.h: added macro reentrant
439         * support/regression/tests/bug1908493.c: new, added
440
441 2008-03-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
442
443         * src/SDCCdebug.c:, as/link/lkaomf51.c: Fixed bug 1909409: Pdata in OMF file
444
445 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
446
447         * src/mcs51/gen.c (pushSide, genPcall): fixed bug 1908493
448         * src/SDCCmain.c (preProcess): removed -DSDCC_PARMS_IN_BANK1 because it is
449           already set in ds390/main.c and mcs51/main.c
450
451 2008-03-07 Raphael Neider <rneider AT web.de>
452
453         * src/regression/init0.c: new test for initialized arrays of function
454           pointers
455         * src/regression/Makefile: made a bit more flexible, added init0.c
456         * src/pic/glue.c (emitIvals): hacky fix for initializing from function
457           pointers, closes #1427663
458
459 2008-03-05 Borut Razem <borut.razem AT siol.net>
460
461         * dos/sdccman.lyx: docummented predefined macros SDCC_REVISION,
462           SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT
463
464 2008-03-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
465
466         * support/librarian/sdcclib.c:Added feature request 1908061:
467           Synchronise sdcclib commands with ar.
468
469 2008-03-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
470
471         * src/SDCCmain.c: added predefined macros SDCC_REVISION (RFE #1907229),
472           and (depending on corresponding compiler option) SDCC_PARMS_IN_BANK1,
473           SDCC_FLOAT_REENT, SDCC_INT_LONG_REENT
474         * device/include/mcs51/compiler.h: removed umlauts, added double
475           underscore
476
477 2008-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
478
479         * src/SDCCptropt.c (ptrPseudoSymConvert): fixed bug 1536762
480         * support/regression/tests/bug1536762.c: new, added
481         * src/SDCCutil.c,
482         * src/SDCCutil.h: added getBuildDate()
483         * src/SDCCmain.c (printVersionInfo),
484         * src/SDCCglue.c (initialComments): use getBuildDate() instead of
485           __DATE__
486         * src/*/ralloc.c: removed IS_OP_RUONLY macro
487         * src/ds390/ralloc.c (packRegisters),
488         * src/mcs51/ralloc.c (packRegisters),
489         * src/z80/ralloc.c (packRegisters): applied fix for bug 1618050, thanks
490           Robert Larice
491         * support/regression/tests/bug1618050.c: new, added
492         * src/SDCCsymt.h: fixed typo in DECLSPEC2TXT
493         * support/regression/fwk/include/testfwk.h,
494         * support/regression/tests/bug1838000.c: moved _AUTOMEM and _STATMEM to
495           testfwk.h
496
497 2008-03-04 Raphael Neider <rneider AT web.de>
498
499         * src/pic/gen.c: removed unused prototypes, prevent internal errors
500           on accessing OP_SYM_TYPE(op)
501         * src/pic/gen.h: removed unused prototype of genMinusDec()
502         * src/pic/genarith.c (genMinus): cosmetic changes, rewritten to
503           fix #1876953 (invalid subtraction code), removed unused code
504
505 2008-03-03 Raphael Neider <rneider AT web.de>
506
507         * src/pic/gen.c,
508         * src/pic/gen.h,
509         * src/pic/genarith.c,
510         * src/pic/ralloc.c,
511         * src/pic/ralloc.h: removed AOP_R0, AOP_R1, AOP_DPTR, AOP_DPTR2,
512           AOP_ACC, and *_IDX and adjusted code, removed unused legacy code
513
514 2008-03-03 Raphael Neider <rneider AT web.de>
515
516         * src/pic/device.c (find_device): search user-specified paths first
517           for pic14devices.txt, fixes #1900827
518
519 2008-03-02 Borut Razem <borut.razem AT siol.net>
520
521         * support/scripts/sdcc.nsi: fixed bug in IsNT, LogicLib-isation of
522           AddToPath and RemoveFromPath
523
524 2008-03-01 Borut Razem <borut.razem AT siol.net>
525
526         * support/scripts/sdcc.nsi: reverted MULTIUSER page since it didn't
527           work correctly, added debugging support if -DSDCC.DEBUG command line
528           option is defined
529
530 2008-02-28 Borut Razem <borut.razem AT siol.net>
531
532         * doc/sdccman.lyx: cosmetic changes
533
534 2008-02-28 Maarten Brock <sourceforge.brock AT dse.nl>
535
536         * src/mcs51/ralloc.c (fillGaps): fixed bug 1839671
537         * doc/sdccman.lyx: fixed unmeant removal of spaces
538
539 2008-02-27 Borut Razem <borut.razem AT siol.net>
540
541         * support/scripts/sdcc.nsi: corrected installation directory for
542           current user installation mode
543         * doc/README.txt: added Philipp Klaus Krause to the developers list
544
545 2008-02-27 Maarten Brock <sourceforge.brock AT dse.nl>
546
547         * src/mcs51/gen.c (genUnpackBits): don't generate ifxJump, instead
548           return ifx condition
549           (genNearPointerGet, genPagedPointerGet, genFarPointerGet,
550           genCodePointerGet, genGenPointerGet): cleanup aop before generating
551             ifxJump to fix bug 1838000
552         * src/SDCCsymt.c (aggregateToPointer): fix problem for xstack
553         * support/regression/tests/bug1838000.c: new, added
554         * device/include/mcs51/cc1110.h: new, added, thanks to Pravin Angolkar
555
556 2008-02-26 Borut Razem <borut.razem AT siol.net>
557
558         * src/SDCCast.c, doc/sdccman.lyx: fixed RFE #1901171: inerger promotion
559           of casted varargs
560         * support/scripts/sdcc.nsi: added MULTIUSER page,
561           NSIS upgraded to version 2.35
562
563 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
564
565         * src/mcs51/ralloc.c (isSpiltOnStack): fixed bug 1565152
566         * support/regression/tests/bug1565152.c: new, added
567
568 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
569
570         * src/mcs51/gen.c (genPagedPointerSet): fixed bug 1670148
571         * support/regression/ports/mcs51-xstack-auto/spec.mk: added expf.c
572         * support/regression/tests/bug1670148.c: new, added
573
574 2008-02-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
575
576         * device/include/mcs51/at89c51ed2.h: fixed bug 1901469.
577
578 2008-02-24 Borut Razem <borut.razem AT siol.net>
579
580         * src/SDCCast.c, src/SDCCast.h: fixed bug #1874922: explicit typecast
581           is ineffective for unsigned char parameter
582
583 2008-02-24 Maarten Brock <sourceforge.brock AT dse.nl>
584
585         * src/SDCCast.c (expandInlineFuncs): fixed bug 1875869
586         * src/SDCCglue.c (printIvalBitFields): fixed bug 1806631
587         * support/regression/tests/bitopcse.c: removed hc08 exception, see testfwk.h
588         * support/Util/MySystem.c (my_system): output errorcode when verbose
589
590 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
591
592         * src/z80/gen.c (genMult): Rewrote 8-bit multiplication by constant,
593           implements #1898231
594
595 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
596
597         * device/lib/z80/mul.s: Rewrote __muluchar_rrx_s, to improve 8-bit mult.,
598           implements #1896290
599
600 2008-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
601
602         * src/SDCCast.c (createIvalStruct): fixed bug 1466761
603
604 2008-02-21 Borut Razem <borut.razem AT siol.net>
605
606         * support/regression/Makefile.in,
607           support/regression/ports/ds390/spec.mk,
608           support/regression/ports/hc08/spec.mk,
609           support/regression/ports/mcs51-common/spec.mk,
610           support/regression/ports/pic14/spec.mk,
611           support/regression/ports/pic16/spec.mk,
612           support/regression/ports/ucz80/spec.mk,
613           support/regression/ports/xa51/spec.mk:
614           added CFLAGS when compiling timeout
615
616 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
617
618         * support/regression/tests/bugs-1596270-1736867.c: Regression test for
619           #1596270, #1736867
620
621 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
622
623         * src/SDCClrange.c (findPrevUse): fixed bug 1888147
624         * support/regression/tests/bug1888147.c: new, added
625
626 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
627
628         * src/z80/gen.c: fixed bugs #1596270, #1736867
629
630 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
631
632         * src/z80/gen.c: fixed bug in register pair loading when swapping register
633           contents, mostly fixes #1596270
634
635 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
636
637         * src/z80/peeph.def,
638         * src/z80/peeph-z80.def: moved peephole that breaks gbz80 to z80-specific
639           peepholes, fixes #1806565
640
641 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
642
643         * src/SDCCpeeph.c (operandBaseName): added check for @Ri
644         * src/mcs51/peeph.def (rule 177.c): added operandsNotRelated(%1 %3)
645           fixes bug 1739475, thanks Robert Larice
646           (rule 271): new, added
647
648 2008-02-18 Borut Razem <borut.razem AT siol.net>
649
650         * sim/ucsim/s51.src/Makefile.in: fixed error made in previous commit
651
652 2008-02-17 Maarten Brock <sourceforge.brock AT dse.nl>
653
654         * src/SDCCmain.c (linkEdit): emit -z when using --debug for z80
655
656 2008-02-17 Raphael Neider <rneider AT web.de>
657
658         * src/pic16/genarith.c,
659         * src/pic16/gen.c,
660         * src/pic16/gen.h,
661         * src/pic16/genutils.c: removed unused legacy code,
662           removed unused fields from struct asmop and struct _G
663
664 2008-02-17 Raphael Neider <rneider AT web.de>
665
666         * src/pic16/gen.c (AccRsh): cosmetic changes,
667           (shiftR1Left2ResultSigned,shiftR1Left2Result,shiftL1Left2Result,
668           genRightShiftLiteral): fixed to work with SFRs as result by
669           assigning only once to result,
670           removed a lot of unused/excluded code fragments
671
672 2008-02-17 Raphael Neider <rneider AT web.de>
673
674         * device/include/pic/pic16f88.h,
675         * device/include/pic/pic16f886.h,
676         * device/include/pic/pic16f887.h: added TRISA6 and TRISA7
677
678 2008-02-17 Borut Razem <borut.razem AT siol.net>
679
680         * src/z80/peeph.def: applied patch
681           #1893626: Optimize tail calls on Z80, thanks to Philipp Krause
682         * src/z80/gen.c, src/z80/peeph.def: applied patch
683           #1893510: Improve logical left shift on Z80, thanks to Philipp Krause
684         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
685           sim/ucsim/s51.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
686           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
687           sim/ucsim/main_in.mk: renamed libutil.a to libucsimutil.a in order to
688           enable compilation on Mac OS X 10.5 (Leopard) and XCode v3.0
689
690 2008-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
691
692         * as/link/mcs51/aslink.dsp: removed SDK define
693         * as/link/z80/clean.mk: brought in sync with other ports
694         * as/link/z80/lklibr.c (SdccLib, fndsym): handle the dflag here too
695         * as/hc08/Makefile.bcc,
696         * as/mcs51/Makefile.bcc,
697         * as/z80/Makefile.bcc: noice.c was moved to as/asxxsrc/
698         * src/z80/main.c (_setValues): use the now capitalized -Z,
699           (z80_port, gbz80_port): generate debug information when asked
700
701 2008-02-16 Borut Razem <borut.razem AT siol.net>
702
703         * as/z80/asmain.c, as/z80/asm.h, as/z80/asdata.c,
704           as/link/z80/lkmain.c, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
705           as/z80/Makefile.in. as/z80/Makefile.bcc:
706           applied patch #1893393: patch for as-z80 and link-z80 to generate
707           cdb, thanks to Armin Diehl
708         * as/*/asnoice.c, as/hc08/as_hc08.dsp, as/hc08/Makefile.in,
709           as/mcs51/asx8051.dsp, as/mcs51/Makefile.in:
710           asnoice.c moved to as/asxxsrc/asnoice.c
711         * src/z80/peeph-gbz80.def: applied patch
712           #1880235: Z80 return peephole, thanks to Philipp Krause
713
714 2008-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
715
716         * .version,
717         * doc/sdccman.lyx: bumped version to 2.7.5
718         * src/SDCCsymt.c (compareType, comparePtrType): fixed bug 1281583
719
720 2008-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
721
722         * device/include/pic16/stdlib.h,
723         * device/lib/pic16/libc/stdlib/ltoa.c,
724         * device/lib/pic16/libc/stdio/vfprintf.c: ascii strings are char*
725
726 2008-02-13 Borut Razem <borut.razem AT siol.net>
727
728         * src/SDCCmain.c, src/SDCCglue.c: fixed --c1mode
729         * src/pic16/glue.c, src/SDCCast.c, src/SDCCast.h, src/SDCCBBlock.c,
730           src/SDCCcse.c, src/SDCCglue.c, src/SDCCicode.c, src/SDCCloop.c,
731           src/SDCCopt.c,  src/SDCCval.c:
732           fixed bug #1890273: SDCC Warning 154 shows wrong filename
733
734 2008-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
735
736         * src/SDCCsymt.c (compareType): fixed bug 1309013
737
738 2008-02-09 Borut Razem <borut.razem AT siol.net>
739
740         * src/SDCCval.c, src/SDCCval.h:
741           code cleaning, added function constChrVal()
742         * src/SDCCglue.c, src/pic/glue.c, src/pic16/glue.c, src/SDCCast.c, src/SDCC.y:
743           call constChrVal() instead constVal()
744
745 2008-02-01 Maarten Brock <sourceforge.brock AT dse.nl>
746
747         * src/SDCCast.c (resolveSymbols): added reentrancy check for parameters
748           of function pointer
749         * src/SDCCerr.h,
750         * src/SDCCerr.c: changed warning W_NONRENT_ARGS to error E_NONRENT_ARGS
751         * support/regression/tests/absolute.c: added TestStruct TestVar (see also
752           bug 1859853)
753
754 2008-02-01 Raphael Neider <rneider AT web.de>
755
756         * device/include/pic/pic16f886.h,
757         * device/include/pic/pic16f887.h: added RA6 and RA7
758
759 2008-01-24 Raphael Neider <rneider AT web.de>
760
761         * device/include/pic/pic16f88.h: added RA6 and RA7
762         * device/lib/pic/libdev/disabled_pic16f886.c,
763         * device/lib/pic/libdev/disabled_pic16f887.c: renamed and enabled
764
765         * src/pic16/devices.inc,
766         * device/include/pic16/pic18f2423.h,
767         * device/include/pic16/pic18f2523.h,
768         * device/include/pic16/pic18fregs.h,
769         * device/lib/pic16/pics.all
770         * device/lib/pic16/libdev/pic18f2423.c,
771         * device/lib/pic16/libdev/pic18f2523.c: added 18f2423 and 18f2523
772         * device/lib/pic16/libio/i2c.ignore,
773         * device/lib/pic16/libio/usart.ignore,
774         * device/lib/pic16/libio/adc.ignore: ignore new devices
775
776 2008-01-23 Maarten Brock <sourceforge.brock AT dse.nl>
777
778         * src/SDCCast.c (createRMW): fixed bug 1582651
779
780 2008-01-20 Borut Razem <borut.razem AT siol.net>
781
782         * src/SDCCcse.c: partially fixed enhancement request
783           #1793872 - multiply by -1 not collapsed
784         * support/regression/tests/arithcsi.c: added regression test
785
786 2008-01-19 Maarten Brock <sourceforge.brock AT dse.nl>
787
788         * as/mcs51/asx8051.dsp: removed define SDK
789         * as/mcs51/i51mch.c (machine): fixed bug 1865114
790         * device/include/asm/ds390/features.h: fixed bug with ds390 & stack-auto
791         * as/link/lklex.c,
792         * as/link/mcs51/lkmain.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
793           cosmetic changes, brought more in sync, changed old K&R to ANSI
794
795 2008-01-13 Borut Razem <borut.razem AT siol.net>
796
797         * support/scripts/sdcc.nsi: added Uninstall/reinstall page, ...
798         * src/SDCCicode.c: fixed bug #1870216 - Error 122: dividing by zero
799
800 2007-12-30 Borut Razem <borut.razem AT siol.net>
801
802         * src/pic16/gen.c: fixed implementation of bitwise operations for
803           pic16 target
804         * support/regression/tests/bitwise.c: added test cases
805
806 2007-12-29 Borut Razem <borut.razem AT siol.net>
807
808         * src/SDCCasm.[ch]: renamed from asm[ch], use dbuf_getline(), ...
809         * src/src.dsp, src/Makefile.bcc, src/Makefile.in, src/common.h,
810           src/SDCCglue.c, src/xa51/main.c: asm.[ch] renamed to SDCCasm.[ch]
811         * support/Util/dbuf_string.[ch]: added function dbuf_getline()
812         * src/ds390/gen.c, src/hc08/gen.c, src/mcs51/gen.c, src/pic16/gen.c,
813           src/pic/gen.c, src/z80/gen.c, src/xa51/gen.c, src/pic16/ralloc.c,
814           src/pic16/pcode.[ch]: added const qualifier
815         * as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
816           as/mcs51/Makefile.bcc, as/mcs51/Makefile.in, as/mcs51/asx8051.dsp,
817           as/z80/Makefile.bcc, as/z80/Makefile.in, as/z80/as_gbz80.dsp,
818           as/z80/as_z80.dsp: added dbuf.[ch] and dbuf_string[ch] to project
819         * as/asxxsrc/aslex.c: use dbuf_getline()
820         * as/hc08/asdata.c, as/hc08/asexpr.c, as/hc08/asm.h, as/hc08/m08adr.c,
821           as/mcs51/asdata.c, as/mcs51/asexpr.c, as/mcs51/asm.h,
822           as/mcs51/i51adr.c, as/z80/asdata.c, as/z80/asexpr.c, as/z80/aslist.c,
823           as/z80/asm.h, as/z80/z80adr.c:
824           changed type of ib and ip to const char *
825
826 2007-12-28 Borut Razem <borut.razem AT siol.net>
827
828         * as/asxxsrc/aslex.c: moved from as/mcs51/aslex.c;
829           introduced (readlin) - long lines are turuncated
830         * as/hc08/as_hc08.dsp, as/mcs51/asx8051.dsp, as/z80/as_gbz80.dsp,
831           as/z80/as_z80.dsp, as/hc08/Makefile.in, as/mcs51/Makefile.in,
832           as/z80/Makefile.in: moved aslex.c to asxxsrc
833         * as/hc08/aslex.c, as/z80/aslex.c: deleted
834         * as/hc08/asmain.c, as/mcs51/asmain.c:
835           added missing initialization of a_addr field
836         * support/regression/tests/long_asm_line.c: added regtest for long
837           assembler line
838
839 2007-12-22 Borut Razem <borut.razem AT siol.net>
840
841         * src/SDCC.lex: fixed bug #1852894: # character hangs the compiler
842
843 2007-12-20 Maarten Brock <sourceforge.brock AT dse.nl>
844
845         * src/SDCCsymt.c (computeType): fixed bug, thanks Fan Weiguang
846
847 2007-12-16 Borut Razem <borut.razem AT siol.net>
848
849         * device/include/pic16/stdbool.h: removed, since already exists in
850          device/include/; this also fixes bitopcse.c regression test for pic16
851          target
852         * support/regression/fwk/inclusw/testfwk.h: added macro ASSERT_FAILED
853         * src/pic16/glue.c: fixed bug #1851855: generic static pointer
854           dereference doesn't work; covered by regression test bug1399290
855
856 2007-12-05 Borut Razem <borut.razem AT siol.net>
857
858         * doc/sdccman.lyx: fixed bug #1844509 - Correction to Manual 4.6.9
859           Adding new PIC16
860
861 2007-12-01 Borut Razem <borut.razem AT siol.net>
862
863         * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc:
864           corrected handling of the highest_valid_address
865
866 2007-11-17 Raphael Neider <rneider AT web.de>
867
868         * src/pic/main.c (_asmCmd): include debug arguments (-g as $3)
869         * src/pic/glue.c (picglue): emit .file if --debug is given
870
871 2007-11-17 Raphael Neider <rneider AT web.de>
872
873         * src/pic16/genarith.c (pic16_genPlus, pic16_genMinus): take special
874         care when left or right operand resides in result, fixes #1830220
875
876 2007-11-17 Borut Razem <borut.razem AT siol.net>
877
878         * src/SDCCglue.c, src/pic16/glue.c: reverted fix for bug
879           #983491 - "Merge duplicate strings function is ineffective"
880         * support/regression/tests/bug-983491.c: regtest disabled
881         * as/asxxsrc: created
882           as/asxxsrc/assym.c, as/asxxsrc/strcmpi.c: moved
883           as/hc08/assym.c, as/mcs51/assym.c, as/strcmpi.c,
884           as/z80/assym.c, as/hc08/asstore.c, as/mcs51/asstore.c: deleted
885           as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
886           as/hc08/asm.h, as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
887           as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
888           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
889           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
890           as/link/z80/linkz80.dsp, as/mcs51/Makefile.bcc, as/mcs51/Makefile.in,
891           as/mcs51/asm.h, as/mcs51/asx8051.dsp, as/z80/Makefile.bcc,
892           as/z80/Makefile.in, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
893           as/z80/Makefile.as_hc08, as/mcs51/Makefile.asx8051: modified
894           created as/asxxsrc directory, assym.c and strcpi.c moved into it
895
896 2007-11-15 Maarten Brock <sourceforge.brock AT dse.nl>
897
898         * device/include/stdarg.h: added and removed some casts
899         * src/SDCCsymt.c (compareType): Fully check types between generic and
900           non-generic pointers, also accept ptr-ptr to void-ptr assignments
901
902 2007-11-13 Borut Razem <borut.razem AT siol.net>
903
904         * support/regression/tests/bug-1817005.c:
905           added regtest for bug #1817005 - as-z80 chokes on long labels
906
907 2007-11-12 Borut Razem <borut.razem AT siol.net>
908
909         * as\z80\asmain.c, as\z80\asm.h, as\z80\assym.c, as\z80\asdata.c,
910           as\z80\asout.c, as\z80\aslist.c:
911           fixed bug #1817005 - as-z80 chokes on long labels
912
913 2007-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
914
915         * as/hc08/asmain.c,
916         * as/z80/asmain.c: cosmetic changes
917         * as/hc08/alloc.h,
918         * as/mcs51/alloc.h,
919         * as/z80/alloc.h: removed
920         * as/hc08/assym.c,
921         * as/mcs51/assym.c: replaced alloc.h with stdlib.h
922         * as/link/aslink.h: added LKDIRSEP and, LKDIRSEPSTR
923         * as/link/hc08/Makefile.in,
924         * as/link/mcs51/Makefile.in,
925         * as/link/z80/Makefile.in: added -DUNIX to CFLAGS
926         * as/link/lklex.c,
927         * as/link/mcs51/lkarea.c,
928         * as/link/mcs51/lkmain.c: cosmetic changes
929         * as/link/hc08/lklibr.c,
930         * as/link/z80/lklibr.c,
931         * as/link/mcs51/lklibr.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
932           used cygwin_conv_to_full_posix_path,
933           added warnings, cosmetic changes, brought more in sync
934           changed old K&R into ANSI function declarations
935         * as/link/z80/lklibr.c (loadAdb): added
936         * as/link/z80/lkmain.c: removed -- option from usage text
937
938 2007-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
939
940         * src/mcs51/gen.c (outBitC): optimized for no result
941
942 2007-10-31 Borut Razem <borut.razem AT siol.net>
943
944         * src/SDCCsymt.c: fixed (hopeful properly) bug
945           #1805702 - order of extern matters
946         * support/regression/tests/bug-1805702.c: enabled regtest for bug
947           #1805702
948
949 2007-10-29 Borut Razem <borut.razem AT siol.net>
950
951         * src/SDCCsymt.c: reverted bad fixed of bug #1805702
952           - order of extern matters
953         * support/regression/tests/bug-1805702.c: disabled regtest for bug
954           #1805702
955
956 2007-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
957
958         * src/ds390/peeph.def: replaced 24bitModeAndPortDS390 by
959           24bitMode, portIsDS390
960         * src/mcs51/gen.c (genOr): optimized for RFE 1750727
961         * src/SDCCpeeph.c (flat24bitModeAndPortDS390): removed
962           (notVolatileVariable): also check sloc names,
963           (callFuncByName): moved ftab[] out of function and sorted it by use
964
965 2007-10-28 Maarten Brock <sourceforge.brock AT dse.nl>
966
967         * device/include/stdarg.h: fixed bug in va_start macro for --xstack
968         * src/hc08/gen.c (aopForRemat): aop->aopu.aop_immd.from_cast_remat not set,
969           aop->aopu.aop_immd.aop_immd2 not filled with (generic) pointer type
970         * src/SDCCicode.c (geniCodeCast): fixed bug 880197
971         * support/regression/tests/bug-880197.c: new, added
972
973 2007-10-28 Borut Razem <borut.razem AT siol.net>
974
975         * support/regression/Makefile.in,
976           support/regression/ports/mcs51-large/spec.mk,
977           support/regression/ports/mcs51-xstack-auto/spec.mk,
978           support/regression/ports/mcs51-stack-auto/spec.mk,
979           support/regression/ports/mcs51-medium/spec.mk,
980           support/regression/ports/mcs51-common/spec.mk,
981           support/regression/ports/mcs51-common/*,
982           support/regression/ports/mcs51-small/*:
983           mcs51 renamed to mcs51-common, created mcs51-small
984         * src/SDCCsymt.c: fixed bug #1805702 - order of extern matters
985         * support/regression/tests/bug-1805702.c: added regtest for bug
986           #1805702
987
988 2007-10-26 Maarten Brock <sourceforge.brock AT dse.nl>
989
990         * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b,
991           added new rules 265 - 270
992         * support/regression/tests/bug1721024.c:new, added
993         * support/regression/Makefile.in: renamed test-mcs51 to test-mcs51-small,
994           introduced new test-mcs51 to run all mcs51 tests
995
996 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
997
998         * support/regression/tests/bug1816470.c: new, added
999
1000 2007-10-21 Maarten Brock <sourceforge.brock AT dse.nl>
1001
1002         * src/SDCCast.c (resultTypePropagate): do propagate for LEFT_OP, do not
1003           propagate for *,+,- with float, fixed bug 1816470
1004           (decorateType): cast to resultTypeProp instead of resultType
1005
1006 2007-10-19 Borut Razem <borut.razem AT siol.net>
1007
1008         * src/pic16/glue.c: fixed bug #983491 - "Merge duplicate strings
1009           function is ineffective" for pic16 tareget
1010         * support/scripts/listerr.c: corrected include path
1011         * device/lib/_itoa.c: fixed bug #1806402 - _itoa and _uitoa leak to
1012           adjacent memory
1013
1014 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
1015
1016         * support/regression/tests/using.c: new, added
1017         * support/regression/tests/vaargs.c: fixed and enabled test
1018
1019 2007-10-18 Borut Razem <borut.razem AT siol.net>
1020
1021         * src/SDCCglue.c: fixed bug #983491 - Merge duplicate strings function
1022           is ineffective
1023         * support/regression/tests/bug-983491.c: added regtest for bug #983491
1024
1025 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
1026
1027         * doc/sdccman.lyx: documented option --Werror
1028         * src/SDCCsymt.c (checkFunction): fixed bug 1815418 by setting
1029           RegBankUsed[] earlier
1030
1031 2007-10-14 Maarten Brock <sourceforge.brock AT dse.nl>
1032
1033         * device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
1034         * src/pic/glue.c,
1035         * src/SDCCval.c,
1036         * src/SDCCast.c,
1037         * src/SDCCast.h: replaced AST_LIT_VALUE with AST_FLOAT_VALUE and
1038           AST_ULONG_VALUE
1039         * src/SDCCast.c (decorateType): improved optimization of tri-op
1040         * src/SDCCerr.c (vwerror, setWError),
1041         * src/SDCCerr.h,
1042         * src/SDCCmain.c (parseCmdLine): added option --Werror to treat all
1043           warnings as errors, thanks Stas Sergeev for PATCH 1813211
1044
1045 2007-10-13 Maarten Brock <sourceforge.brock AT dse.nl>
1046
1047         * src/mcs51/gen.c (leftRightUseAcc): use macro IS_OP_ACCUSE
1048         * src/SDCCast.c (decorateType): optimize bit=cond?1:0, RFE 1738430
1049         * support/regression/tests/bug-223113.c,
1050         * support/regression/tests/bug-426632.c,
1051         * support/regression/tests/bug-468811.c,
1052         * support/regression/tests/bug-477835.c,
1053         * support/regression/tests/bug-478094.c,
1054         * support/regression/tests/bug-499644.c,
1055         * support/regression/tests/bug-524209.c,
1056         * support/regression/tests/bug-524211.c,
1057         * support/regression/tests/packcast.c,
1058         * support/regression/tests/structidx.c: added empty tests
1059         * support/regression/tests/bug-607243.c: enabled test
1060
1061 2007-10-06 Borut Razem <borut.razem AT siol.net>
1062
1063         * .version, doc/sdccman.lyx: bumped version to 2.7.4 to indicate the full
1064            support of universal binaries on Mac OS X
1065
1066 2007-10-02 Borut Razem <borut.razem AT siol.net>
1067
1068         * src/SDCCval.h: unified double2ul macro for all platforms
1069         * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
1070         * support/regression/tests/bitwise.c: added regtest for bug #1777758
1071
1072 2007-09-30 Borut Razem <borut.razem AT siol.net>
1073
1074         * src/SDCCval.h: fixed bug #1739860 - sdcc does not work correctly on some
1075           platforms
1076         * sdcc_vc_in.h: enabled warnings
1077         * src/hc08/gen.c: fixed MSVC warning C4146: unary minus operator applied to
1078           unsigned type, result still unsigned
1079         * src/mcs51/peep.c: fixed gcc warning: suggest parentheses around && within ||
1080
1081 2007-09-28 Raphael Neider <rneider AT web.de>
1082
1083         * src/pic/device.c (find_device): prevent buffer underflow error
1084         * src/pic/pcoderegs.c (OptimizeRegUsage): avoid dereferencing
1085           the just destroyed list entry
1086
1087 2007-09-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1088
1089         * doc/sdccman.lyx: there's a dedicated wiki page for cmake and sdcc, thanks
1090           Alexander Neundorf
1091
1092 2007-09-18 Borut Razem <borut.razem AT siol.net>
1093
1094         * src/SDCCval.c: fixed MSVC warning C4146: unary minus operator
1095          applied to unsigned type, result still unsigned
1096
1097 2007-09-17 Borut Razem <borut.razem AT siol.net>
1098
1099         * src/SDCC.y, src/SDCCast.c, src/SDCCcse.c, src/SDCCglue.c,
1100           src/SDCCicode.c, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCval.c,
1101           src/SDCCval.h, src/hc08/gen.c, src/avr/gen.c, src/ds390/gen.c,
1102           src/mcs51/gen.c, src/pic/gen.c, src/pic/genarith.c, src/pic/glue.c,
1103           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/genarith.c,
1104           src/pic16/genutils.c, src/pic16/glue.c, src/pic16/main.c,
1105           src/z80/gen.c, src/z80/ralloc.c:
1106           fixed bug #1739860 - sdcc does not work correctly on some platforms
1107           (not finished)
1108           introduced and used ulFromVal(), double2ul(), used strtod() instead sscanf()
1109
1110 2007-09-17 Raphael Neider <rneider AT web.de>
1111
1112         * src/pic16/device.c: reverted to previous version
1113         * device/lib/pic16/Makefile.common.in: quieten gpasm via -Wa,-q
1114
1115 2007-09-16 Raphael Neider <rneider AT web.de>
1116
1117         * src/pic16/device.c (pic16_dump_usection): do not reserve 0 bytes,
1118           as this raises a ton of gpasm warnings, just emit a second label
1119         * src/pic16/devices.inc,
1120         * device/lib/pic16/pics.all,
1121         * device/lib/pic16/libdev/pic18f2585.c,
1122         * device/lib/pic16/libdev/pic18f2680.c,
1123         * device/lib/pic16/libdev/pic18f2682.c,
1124         * device/lib/pic16/libdev/pic18f2685.c,
1125         * device/lib/pic16/libdev/pic18f4585.c,
1126         * device/lib/pic16/libdev/pic18f4680.c,
1127         * device/lib/pic16/libdev/pic18f4682.c,
1128         * device/lib/pic16/libdev/pic18f4685.c,
1129         * device/include/pic16/pic18f2585.h,
1130         * device/include/pic16/pic18f2680.h,
1131         * device/include/pic16/pic18f2682.h,
1132         * device/include/pic16/pic18f2685.h,
1133         * device/include/pic16/pic18f4585.h,
1134         * device/include/pic16/pic18f4680.h,
1135         * device/include/pic16/pic18f4682.h,
1136         * device/include/pic16/pic18f4685.h,
1137         * device/include/pic16/pic18fregs.h: added 18f2585, 18f2680,
1138           18f2682, 18f2685, 18f4585, 18f4680, 18f4682, 18f4685,
1139           patch contributed by Anton Strobl, applied with changes
1140
1141 2007-09-16 Raphael Neider <rneider AT web.de>
1142
1143         * device/include/pic16/pic18f2431.h,
1144         * device/include/pic16/pic18f25j10.h,
1145         * device/include/pic16/pic18f4431.h,
1146         * device/include/pic16/pic18f45j10.h: adopted common include style
1147         * device/include/pic16/pic18f1320.h,
1148         * device/include/pic16/pic18f2320.h,
1149         * device/include/pic16/pic18f2525.h,
1150         * device/include/pic16/pic18f4320.h,
1151         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
1152         * device/include/pic16/pic18fregs.h: prepared for automatic include
1153           file selection by having DEVICE.h for every DEVICE
1154         * device/lib/pic16/libdev/pic18f2320.c,
1155         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
1156
1157         * device/lib/pic16/configure.in,
1158         * device/lib/pic16/configure: use rm -rf instead of rmdir
1159         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
1160         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
1161
1162 2007-09-09 Borut Razem <borut.razem AT siol.net>
1163
1164         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
1165           distingush between i386 and ppc Mac OS X versions
1166
1167 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
1168
1169         * src/mcs51/gen.c (genReceive): fixed bug 1788177
1170         * support/regression/tests/bug1788177.c: new, added
1171
1172 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1173
1174         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
1175         * device/include/mcs51/lint.h added keyword __naked
1176
1177 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
1178
1179         * src/pic16/glue.c,
1180         * src/pic/glue.c,
1181         * src/SDCCmem.h: removed maxRegBank
1182         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
1183           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
1184         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
1185         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
1186           name and behaviour to handle banked functions
1187           (scan4op): and use it to fix bug 1786213
1188
1189 2007-09-03 Raphael Neider <rneider AT web.de>
1190
1191         * device/include/pic16/pic18f248.h,
1192         * device/include/pic16/pic18f258.h,
1193         * device/include/pic16/pic18f448.h,
1194         * device/lib/pic16/libdev/pic18f248.c,
1195         * device/lib/pic16/libdev/pic18f258.c,
1196         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
1197           added T0CONbits, fixes #1786891
1198
1199 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
1200
1201         * src/ds390/gen.c (genFarPointerSet),
1202         * src/hc08/ralloc.c (packRegisters),
1203         * src/mcs51/ralloc.c (packRegisters),
1204         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
1205           bug 1750318
1206         * src/SDCCicode.h: POINTER_SET can be true for literals too
1207         * support/regression/tests/bug1750318.c: new, added
1208
1209 2007-08-23 Borut Razem <borut.razem AT siol.net>
1210
1211         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
1212           library versions without the completition functionality
1213
1214 2007-08-22 Raphael Neider <rneider AT web.de>
1215
1216         * device/include/pic16/pic18f1220.h,
1217         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
1218
1219 2007-08-12 Borut Razem <borut.razem AT siol.net>
1220
1221         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
1222
1223 2007-08-11 Borut Razem <borut.razem AT siol.net>
1224
1225         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
1226           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
1227           support/Util/SDCCerr.[ch] moved to src
1228         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
1229           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
1230           device/examples/ds390/tinitalk/tinitalk.dsp,
1231           device/examples/serialcomm/windows/serialcomm.dsp,
1232           support/librarian/librarian.dsp:
1233           removed linking of unused odbc32.lib and odbccp32.lib
1234         * support/scripts/winres.h:
1235           added for compilation with Visual C++ 2005 Express Edition
1236
1237 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1238
1239         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
1240           and CKCON1.
1241
1242 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1243
1244         * sdccconf_in.h: update the endian test so that SPARC Solaris
1245           does not throw syntax errors
1246
1247 2007-08-06 Borut Razem <borut.razem AT siol.net>
1248
1249         * doc/sdccman.lyx: removed two index entries which prevented the
1250           generation of sdcc doc archive
1251
1252 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1253
1254         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
1255           instead of lyx 1.5.0.
1256
1257 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1258
1259         * device/include/hc08/mc68hc908apxx.h: new header contributed by
1260           Lucas Loizaga, with minor modifications. Thanks!
1261
1262 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1263
1264         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
1265           in sdcclib.
1266
1267 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1268
1269         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
1270           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
1271           with acall/ajmp.
1272
1273 2007-07-22 Borut Razem <borut.razem AT siol.net>
1274
1275         * configure.in, configure: re-introduced .version
1276         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
1277           the version reverted to 2.7.0
1278
1279 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
1280
1281         * configure.in,
1282         * doc/sdccman.lyx: bumped version to 2.7.3
1283         * device/include/mcs51/compiler.h: fixed elif->else
1284         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
1285         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
1286           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
1287            enable accuse for bit operands
1288         * src/SDCCmain.c (printVersionInfo),
1289         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
1290           environment descriptor
1291         * src/SDCCutil.h: added getBuildEnvironment
1292         * src/SDCCglue.c (initialComments): use getBuildEnvironment
1293         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
1294         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
1295         * support/regression/tests/bug1348008.c,
1296         * support/regression/tests/bug1496419.c,
1297         * support/regression/tests/bug1503067.c,
1298         * support/regression/tests/preproc.c: added empty tests
1299
1300 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1301
1302         * support/regression/tests/bug1678803.c: new, added
1303
1304 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
1305
1306         * as/link/aslink.h,
1307         * as/link/hc08/lkihx.c,
1308         * as/link/hc08/lkrloc.c,
1309         * as/link/mcs51/lkihx.c,
1310         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
1311           ihxExtendedLinearAddress
1312         * as/link/mcs51/lkrloc.c (relr),
1313         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
1314           acall/ajmp, see bug 830513
1315
1316 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
1317
1318         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
1319           (cseBBlock): remember aggr2ptr has been used
1320         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
1321           (geniCodeAssign): fixed bug 868103
1322         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
1323           added operandSize prototype
1324         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
1325           (genDataPointerSet): use max of size of right and result,
1326           (gencjne): added parameter useCarry for optimization,
1327           (genCmpEq): use carry if appropriate,
1328           (genXor): check if operand already in carry
1329         * support/regression/tests/bug-868103.c: enabled test
1330
1331 2007-07-12 Raphael Neider <rneider AT web.de>
1332
1333         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
1334
1335 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
1336
1337         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
1338           from Robert Larice, thanks
1339         * support/regression/tests/bitopcse.c,
1340         * support/regression/tests/bitvars.c,
1341         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
1342         * support/regression/tests/bug-927659.c: enabled test for z80
1343         * support/regression/tests/bug1738367.c: added extra tests by Frieder
1344         * support/regression/tests/bug1745717.c: new, added
1345         * support/regression/tests/literalop.c,
1346         * support/regression/tests/nullstring.c: removed storage definitions that
1347           are now in testfwk.h
1348
1349 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
1350
1351         * device/include/stdbool.h: do not define __bool_true_false_are_defined
1352           and bool for targets that do not fully support it.
1353         * support/regression/tests/bug1546986.c,
1354         * support/regression/tests/bug1723128.c,
1355         * support/regression/tests/bug1734654.c,
1356         * support/regression/tests/bug1738367.c,
1357         * support/regression/tests/constantRange.c: only use bool if allowed
1358
1359 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
1360
1361         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
1362           Larice, also handle function pointers
1363         * support/regression/tests/bug1749275.c: new, added
1364
1365 2007-07-03 Borut Razem <borut.razem AT siol.net>
1366
1367         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
1368           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
1369           #1746528: SDCC should ignore ':' in inline assembler comments
1370         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
1371
1372 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
1373
1374         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
1375         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
1376
1377 2007-06-29 Borut Razem <borut.razem AT siol.net>
1378
1379         * src/SDCCmain.c: fixed bug
1380           #1744746: SDCC #4867: broken option --xram-size
1381
1382 2007-06-28 Borut Razem <borut.razem AT siol.net>
1383
1384         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
1385           find out the endianess of host machine for ucsim
1386
1387 2007-06-27 Borut Razem <borut.razem AT siol.net>
1388
1389         * support/regression/generate-cases.py: corrected the file name
1390           in warning
1391         * configure.in, configure, sdccconf_in.h: find out the endianess of
1392           host machine
1393         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
1394           negative size
1395
1396 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
1397
1398         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
1399
1400 2007-06-26 Borut Razem <borut.razem AT siol.net>
1401
1402         * support/regression/generate-cases.py: display warning if function
1403           list is empty; implemented more flexible rule for detection of
1404           testing functions, allowing return type 'void' in the same line as
1405           the function name in the function definition
1406         * support/regression/tests/bug-1654060.c: corrected test
1407         * support/librarian/sdcclib.c: fixed warning:
1408           format '%s' expects type 'char *', but argument 2 has type 'int'
1409
1410 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1411
1412         * support/librarian/sdcclib.c: Added feature Requests [1510635]
1413           Multiple infiles for sdcclib.
1414
1415 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1416
1417         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
1418           bug 1731741
1419
1420 2007-06-18 Borut Razem <borut.razem AT siol.net>
1421
1422         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
1423           how to handle comments, so they have to be removed by the
1424           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
1425         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
1426           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
1427           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
1428           table driven option hadling
1429
1430 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1431
1432         * src/SDCCast.c (decorateType),
1433         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
1434           iCode to ast level to fix bug 1738367
1435         * support/regression/tests/bug1738367.c: new, added
1436
1437 2007-06-15 Raphael Neider <rneider AT web.de>
1438
1439         * src/pic16/devices.inc,
1440         * device/lib/pic16/pics.all,
1441         * device/include/pic16/pic18fregs.h,
1442         * device/include/pic16/pic18f[24][45]20.h,
1443         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
1444           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
1445         * device/lib/pic16/Makefile.in: faster cleanup
1446
1447 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1448
1449         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
1450
1451 2007-06-13 Raphael Neider <rneider AT web.de>
1452
1453         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
1454
1455 2007-06-12 Raphael Neider <rneider AT web.de>
1456
1457         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
1458           suppress bit defines if NO_BIT_DEFINES is #define'd
1459         * device/include/pic/pic*.h: recreated all headers to include
1460           conditional bit defines
1461         * device/include/pic/pic16f886.h,
1462         * device/include/pic/pic16f887.h: fixed based on newer .inc file
1463         * device/include/pic/recreate.sh: script to recreate the complete
1464           device library files based on the currently supported devices
1465
1466 2007-06-12 Borut Razem <borut.razem AT siol.net>
1467
1468         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
1469           support/regression/Makefile.in, support/scripts/build.mak,
1470           support/scripts/Makefile.snapshot:
1471           use new svn URL scheme
1472         * doc/sdccman.lyx: SDCC Wiki moved to
1473           http://sdcc.wiki.sourceforge.net/
1474
1475 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1476
1477         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
1478         * support/regression/tests/bug1734654.c: added
1479
1480 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1481
1482         * src/SDCCast.c (decorateType): optimized '?' for equal operands
1483         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
1484           with literal operands
1485
1486 2007-06-10 Borut Razem <borut.razem AT siol.net>
1487
1488         * as/link/z80/lklibr.c: fixed mingw build warning
1489           lklibr.c:575: warning: implicit declaration of function 'tolower'
1490         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
1491           src/z80/main.c: move target specific options from src/SDCCmain.c
1492           to src/<target>/main.c
1493
1494 2007-06-09 Borut Razem <borut.razem AT siol.net>
1495
1496         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
1497           removed unused swap_sense; removed outBitCLong, replaced with outBitC
1498         * support/regression/tests/bug-1294691.c: added
1499
1500 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
1501
1502         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
1503           can also be static, fixes bug 1733438
1504         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
1505           have absolute address too
1506           (computeType): added optimization for 'cond ? true : false'
1507         * support/regression/tests/absolute.c: added test for static absolute var
1508
1509 2007-06-08 Raphael Neider <rneider AT web.de>
1510
1511         * src/regression/Makefile: suppress parallel builds, allow easy
1512           switching between pic14/pic16 ports
1513         * src/regression/picregs.h: added pic14/16 header file switch
1514         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
1515           inline.c,nestfor.c,string1.c}: include "picregs.h"
1516
1517 2007-06-07 Borut Razem <borut.razem AT siol.net>
1518
1519         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
1520           permanent solution to suppress GCC 4.2.0 c++ warning:
1521           deprecated conversion from string constant to `char *'
1522           use 'const char *' where ever required
1523         * support/regression/generate-cases.py: implemented more flexible rule
1524           for detection of testing functions, allowing white-spaces surrounding
1525           the function name and the 'void' parameter.
1526         * support/regression/tests/constantRange.c,
1527           support/regression/tests/scott-compare3.c: fixed failing regression
1528           tests, uncovered by implementation of more flexible rule for detection
1529           of testing functions
1530
1531 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
1532
1533         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
1534
1535 2007-06-04 Borut Razem <borut.razem AT siol.net>
1536
1537         * configure.in, configure, config_vc.awk: sdcc version number is now
1538           stored in configure.in; removed .version
1539         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
1540           doc/INSTALL.txt: version bumped to 2.7.2
1541         * sim/ucsim/configure.in, sim/ucsim/configure:
1542           use "read" to read from .version
1543
1544 2007-06-03 Borut Razem <borut.razem AT siol.net>
1545
1546         * */Makefile.in: removed annoying warning:
1547           Makefile:xx: Makefile.dep: No such file or directory
1548
1549 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1550
1551         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
1552           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
1553         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
1554         * src/SDCCast.c (resultTypePropagate): propagate for '!',
1555           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
1556           bugfix: only use newBoolLink for bit result type
1557         * src/SDCCicode.c (geniCodeLogic): added param tree,
1558           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
1559           (geniCodeLogicAndOr): use IS_BIT,
1560           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
1561           (ast2iCode): added tree param to geniCodeLogic for comparisons
1562         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
1563         * support/regression/tests/bug1723128.c: added test NotZero
1564
1565 2007-06-01 Borut Razem <borut.razem AT siol.net>
1566
1567         * SDCPP synchronized with GCC CPP release version 4.2.0,
1568           currently the latest release:
1569         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1570           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
1571           support/cpp2/cppdefault.h, support/cpp2/except.h,
1572           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
1573           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
1574           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1575           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
1576           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
1577           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
1578           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
1579           support/cpp2/opts.h, support/cpp2/output.h,
1580           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
1581           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
1582           support/cpp2/system.h, support/cpp2/version.c,
1583           support/cpp2/Makefile.in: modified
1584         * support/cpp2/opts-common.c: added
1585         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
1586         * device/lib/pic16/libdev/pic18f[24]5j10.c:
1587           search for included source file in local directory
1588         * sim/ucsim/configure, sim/ucsim/configure.in:
1589           temporary solution to suppress GCC 4.2.0 c++ warning:
1590           deprecated conversion from string constant to `char *'
1591
1592 2007-06-01 Raphael Neider <rneider AT web.de>
1593
1594         * device/lib/pic/libdev/pic12f683.c,
1595         * device/include/pic/pic12f683.h: added GPIO bits
1596
1597 2007-06-01 Raphael Neider <rneider AT web.de>
1598
1599         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
1600           quotation marks, clarified role of PIC14 vs. PIC16 ports
1601         * src/pic16/devices.inc,
1602         * device/include/pic16/pic18fregs.h,
1603         * device/include/pic16/pic18f[24][45]j10.h,
1604         * device/lib/pic16/pics.all,
1605         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
1606           18f24j10, 18f25j10, 18f44j10, and 18f45j10
1607         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
1608           for new devices as they are not yet supported by gputils
1609
1610 2007-05-31 Borut Razem <borut.razem AT siol.net>
1611
1612         * Small Device C Compiler 2.7.0 released
1613         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
1614           changed sdcc version to 2.7.1
1615         * support/scripts/sdcc.nsi: added How to create WIN32 release
1616           setup.exe package
1617
1618 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
1619
1620         * doc/sdccman.lyx: documented initialization and allocation of absolute
1621           variables, bit parameter passing, the need for function pointers to be
1622           reentrant and alpha quality support of inline and retrict
1623
1624 2007-05-26 Borut Razem <borut.razem AT siol.net>
1625
1626         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
1627           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
1628         * docs/knownbugs.html: updated
1629
1630 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
1631
1632         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
1633           thanks Jan Waclawek
1634         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
1635           AOP_CRY and ruonly
1636           (gencjneshort): optimized when left is AOP_DIR
1637         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
1638           initializing unions in a struct/array
1639         * support/regression/fwk/include/testfwk.h: added defines for data, near
1640           and far for host and z80
1641         * support/regression/tests/bug1723128.c: new, added
1642
1643 2007-05-22 Borut Razem <borut.razem AT siol.net>
1644
1645         * doc/knownbugs.html: updated
1646
1647 2007-05-21 Raphael Neider <rneider AT web.de>
1648
1649         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
1650           error message instead
1651         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
1652
1653 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1654
1655         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
1656
1657 2007-05-21 Raphael Neider <rneider AT web.de>
1658
1659         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
1660           closes #1722392
1661         * src/regression/gpsim_assert.h,
1662         * src/regression/Makefile,
1663         * src/regression/pcodeopt.c: regression test for the above fix
1664
1665 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1666
1667         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
1668           jumps to self, fixed bug 1717281
1669
1670 2007-05-10 Borut Razem <borut.razem AT siol.net>
1671
1672         * support/scripts/gen_known_bugs.pl: cosmetic fix
1673         * doc/knownbugs.html: generated by gen_known_bugs.pl
1674
1675 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1676
1677         * src/SDCCast.c (createFunction): also generate non-inlined version of
1678           function for functions declared as "static inline"
1679         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
1680           function can be inlined after non-inlined version generated.
1681
1682 2007-05-10 Borut Razem <borut.razem AT siol.net>
1683
1684         * support/scripts/gen_known_bugs.pl: added script
1685           which generates knownbugs.html
1686
1687 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
1688
1689         * doc/knownbugs.html: updated for release 2.7.0
1690
1691 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1692
1693         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
1694
1695 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
1696
1697         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
1698           (throughout): updated generating comments
1699         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
1700           (throughout): updated generating comments
1701         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
1702           rule instead of at the second, or it might skip lines when removing the
1703           complete match
1704         * support/regression/tests/bug1714204.c: changed test to foo
1705
1706 2007-05-08 Borut Razem <borut.razem AT siol.net>
1707
1708         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
1709           thanks to SDCC Distributed Compile Farm members,
1710           added Z80 and GBZ80 command line options
1711         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
1712
1713 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
1714
1715         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
1716         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
1717         * support/regression/tests/longlit.c: modified to be tested at all and
1718           to pass the actual test
1719
1720 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1721
1722         * device/include/mcs51/uPSD33xx.h: Added.
1723
1724 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
1725
1726         * device/lib/_gptrput.c,
1727         * device/lib/_gptrget.c: removed old code,
1728          (_gptrgetWord),
1729         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
1730         * support/regression/tests/bug1714204.c: new, added
1731
1732 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1733
1734         * support/regression/tests/regtrack.c: test was never executed
1735           because of the regression test being picky about white spaces.
1736         * device/lib/mcs51/crtclear.asm: added comment
1737
1738 2007-05-06 Raphael Neider <rneider AT web.de>
1739
1740         * device/lib/pic/Makefile.rules,
1741         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
1742           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
1743
1744 2007-05-06 Raphael Neider <rneider AT web.de>
1745
1746         * src/pic16/device.h,
1747         * src/pic16/main.h,
1748         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
1749           _pic16_setDefaultOptions): removed/reordered command-line args
1750         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
1751           devices, regrouped command line args, environment variables),
1752           clarified sone points, added sections on how to add devices to the
1753           PIC14/PIC16 ports
1754
1755 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
1756
1757         * src/z80/peeph.def: fixed bug in rule 2
1758
1759 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
1760
1761         * src/port.h: added TARGET_MCS51_LIKE
1762         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
1763           take advantage of it too
1764         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
1765           (shiftR2Left2Result): Optimized: don't check shifting by 0
1766         * src/z80/peeph-z80.def,
1767         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
1768           modifications, see patch 1700823
1769         * src/mcs51/peep.c (): fixed bug 1712928
1770         * support/regression/tests/bug1712928.c: new, added
1771
1772 2007-05-05 Borut Razem <borut.razem AT siol.net>
1773
1774         * device/lib/pic16/Makefile.common.in,
1775           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
1776           removed bash dependencies
1777
1778 2007-05-01 Borut Razem <borut.razem AT siol.net>
1779
1780         * src/SDCCicode.c:
1781           fixed bug #1710507: --i-code-in-asm makes compile fail
1782           all iCode comments are now one liners
1783         * src/mcs51/gen.c: fixed memory leak
1784
1785 2007-05-01 Raphael Neider <rneider AT web.de>
1786
1787         * device/lib/pic/libdev/*.c
1788         * device/include/pic/*.h: regenerated all device libs from updated
1789           .inc files
1790         * support/scripts/inc2h.pl: documented usage, now uses strict to
1791           catch more bugs
1792
1793 2007-04-30 Borut Razem <borut.razem AT siol.net>
1794
1795         * doc/sdccman.lyx:
1796           fixed bug #1669175: Problem with space in output paths
1797           documented how to use paths with spaces for Windows users
1798
1799 2007-04-29 Borut Razem <borut.razem AT siol.net>
1800
1801         * Fixed svn:eol-style and svn:keywords properties
1802         * src/SDCCval.c: fixed bug
1803           #1592871: Segfault with "large" const arrays of characters
1804           replaced recursion with iteration
1805         * Removed svn:executable property from non-executable files
1806
1807 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
1808
1809         * src/mcs51/gen.c (genRet): fixed bug 1707003
1810
1811 2007-04-27 Raphael Neider <rneider AT web.de>
1812
1813         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
1814           createReachingDefinitions,assignValnums,pic16_destructDF,
1815           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
1816           prevent NULL pointer dereferences
1817         * device/lib/pic/libdev/pic16f886.c,
1818         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
1819           prevent building them, gputils do not really support them yet
1820
1821 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1822
1823         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
1824           helps printf_small. 32 bytes more __idata mem.
1825
1826 2007-04-27 Raphael Neider <rneider AT web.de>
1827
1828         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
1829           return early when pb or pb->pcHead is NULL (patch #1708427)
1830         * src/regression/empty.c,
1831         * src/regression/Makefile: added test with empty functions
1832         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
1833
1834 2007-04-27 Borut Razem <borut.razem AT siol.net>
1835
1836         * src/SDCCast.c: fixed feature request
1837           #1547512: Redundant strings linked when using sizeof("abc")
1838
1839 2007-04-23 Borut Razem <borut.razem AT siol.net>
1840
1841         * doc/sdccman.lyx, src/SDCCmain.c:
1842           peep-hole comments are generated only if --fverbose-asm option is
1843           specified and --no-peep-comments is not, as proposed by Frieder.
1844         * support/regression/Makefile.in: compile regression tests with
1845           --fverbose-asm option so one can "grep" whether a new (or an old)
1846           peephole is (still) applied; requested by Frieder.
1847
1848 2007-04-23 Kevin Buettner <kevin AT buettner.to>
1849
1850         * device/include/pic/pic16f886.h,
1851         * device/include/pic/pic16f887.h,
1852         * device/lib/pic/libdev/pic16f886.c,
1853         * device/lib/pic/libdev/pic16f887.c,
1854         * device/include/pic/pic14devices.txt,
1855         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
1856
1857 2007-04-23 Kevin Buettner <kevin AT buettner.to>
1858
1859         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
1860           fixes #1704666
1861
1862 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1863
1864         * device/lib/_memset.c: assembler version for mcs51
1865
1866 2007-04-22 Borut Razem <borut.razem AT siol.net>
1867
1868         * support/scripts/listerr.c: program to create the list of errors and
1869           warnings list from - added
1870         * doc/sdccman.lyx: removed the note
1871           "For list of warnings and corresponding codes, see err_warn.txt"
1872         * src/SDCCsymt.c: fixed bug #1699804:
1873           Bug with some uses of sizeof(static local array) (MCS51)
1874         * support/regression/tests/bug-1699804.c: added
1875
1876 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
1877
1878         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
1879           (main): added option -i,
1880           (asmbl, case S_INCL): use search_path_fopen,
1881           mostly from patch 1579668 by Peter Miller, thanks
1882         * src/z80/main.c: fixed typo --callee-saves-bc
1883         * device/include/mcs51/compiler.h: added sfrword for Tasking
1884
1885 2007-04-20 Borut Razem <borut.razem AT siol.net>
1886
1887         * src/z80/main.c: replaced reserved keyword asm with asmblr
1888
1889 2007-04-19 Borut Razem <borut.razem AT siol.net>
1890
1891         * src/port.h: use const pointers to strings
1892         * src/SDCCargs.h: declared getStringArg() and getIntArg()
1893         * src/pic16/main.c: include SDCCargs.h
1894         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
1895           const char, since the strings are dynamically allocated
1896         * src/SDCCmain.c: options.code_seg and options.const_seg are
1897           dynamically allocated; check port specific command line options
1898           before the general ones
1899         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
1900
1901 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
1902
1903         * device/include/ds400rom.h,
1904         * device/lib/ds390/lcd390.c,
1905         * device/lib/ds390/memcpyx.c,
1906         * device/lib/ds390/rtc390.c,
1907         * device/lib/ds400/ds400rom.c,
1908         * device/lib/ds400/memcpyx.c,
1909         * device/lib/hc08/_ret.c: more replacements of keywords with their
1910           double underscore equivalents
1911         * device/lib/ds390/Makefile.in,
1912         * device/lib/ds400/Makefile.in,
1913         * device/lib/gbz80/Makefile.in,
1914         * device/lib/hc08/Makefile.in,
1915         * device/lib/mcs51/Makefile.in,
1916         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
1917
1918 2007-04-17 Borut Razem <borut.razem AT siol.net>
1919
1920         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
1921           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
1922           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
1923           to --fverbose-asm, to be gcc'ish
1924
1925 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
1926
1927         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
1928
1929 2007-04-17 Borut Razem <borut.razem AT siol.net>
1930
1931         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
1932         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
1933           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
1934           with their double underscore equivalent
1935
1936 2007-04-14 Borut Razem <borut.razem AT siol.net>
1937
1938         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
1939           source"
1940
1941 2007-04-13 Borut Razem <borut.razem AT siol.net>
1942
1943         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
1944           C99 standard
1945         * device/examples/serialcomm/windows/serial.[ch],
1946           device/examples/serialcomm/windows/test_serialcomm.cpp:
1947           updated by Bela Torok
1948         * device/examples/serialcomm/windows/serialcomm.dsw,
1949           device/examples/serialcomm/windows/serialcomm.dsp: added
1950
1951 2007-04-13 Jan Waclawek <wek AT efton.sk>
1952
1953         * doc/sdccman.lyx: additions and changes at various places
1954           (submitted as #1697136).
1955           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
1956
1957 2007-04-10 Borut Razem <borut.razem AT siol.net>
1958
1959         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
1960           LyX file format changed to 245
1961         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
1962           "FreeWare" replaced with "free open source"
1963
1964 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
1965
1966         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
1967
1968 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
1969
1970         * device/include/pic16/pic18fregs.h,
1971         * device/lib/_bp.c,
1972         * device/lib/_decdptr.c,
1973         * device/lib/_divsint.c,
1974         * device/lib/_divslong.c,
1975         * device/lib/_divuint.c,
1976         * device/lib/_divulong.c,
1977         * device/lib/_fs2schar.c,
1978         * device/lib/_fs2sint.c,
1979         * device/lib/_fs2slong.c,
1980         * device/lib/_fs2uchar.c,
1981         * device/lib/_fs2uint.c,
1982         * device/lib/_fs2ulong.c,
1983         * device/lib/_fsadd.c,
1984         * device/lib/_fscmp.c,
1985         * device/lib/_fsdiv.c,
1986         * device/lib/_fseq.c,
1987         * device/lib/_fsget1arg.c,
1988         * device/lib/_fsget2args.c,
1989         * device/lib/_fsgt.c,
1990         * device/lib/_fslt.c,
1991         * device/lib/_fsmul.c,
1992         * device/lib/_fsneq.c,
1993         * device/lib/_fsnormalize.c,
1994         * device/lib/_fsreturnval.c,
1995         * device/lib/_fsrshift.c,
1996         * device/lib/_fssub.c,
1997         * device/lib/_fsswapargs.c,
1998         * device/lib/_gptrget.c,
1999         * device/lib/_gptrgetc.c,
2000         * device/lib/_gptrput.c,
2001         * device/lib/_logexpf.c,
2002         * device/lib/_modsint.c,
2003         * device/lib/_modslong.c,
2004         * device/lib/_moduint.c,
2005         * device/lib/_modulong.c,
2006         * device/lib/_mulint.c,
2007         * device/lib/_mullong.c,
2008         * device/lib/_schar2fs.c,
2009         * device/lib/_ser.c,
2010         * device/lib/_setjmp.c,
2011         * device/lib/_sint2fs.c,
2012         * device/lib/_slong2fs.c,
2013         * device/lib/_spx.c,
2014         * device/lib/_uchar2fs.c,
2015         * device/lib/_uint2fs.c,
2016         * device/lib/_ulong2fs.c,
2017         * device/lib/asincosf.c,
2018         * device/lib/atanf.c,
2019         * device/lib/calloc.c,
2020         * device/lib/ds390/tinibios.c,
2021         * device/lib/ds400/tinibios.c,
2022         * device/lib/expf.c,
2023         * device/lib/free.c,
2024         * device/lib/hc08/_mulint.c,
2025         * device/lib/logf.c,
2026         * device/lib/malloc.c,
2027         * device/lib/printf_fast.c,
2028         * device/lib/printf_tiny.c,
2029         * device/lib/printfl.c,
2030         * device/lib/realloc.c,
2031         * device/lib/ser_ir.c,
2032         * device/lib/serial.c,
2033         * support/regression/tests/libmullong.c: replaced all special keywords
2034           with their double underscore equivalent
2035         * support/regression/ports/mcs51-xstack-auto/spec.mk,
2036         * device/lib/Makefile.in: compile libs with --std-c99 instead of
2037           --std-sdcc99
2038         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
2039           (genRet): if the bit-symbol is ruonly it already is in the carry
2040         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
2041         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
2042         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
2043           type UCHAR if dest is not bit
2044
2045 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
2046
2047         * device/include/math.h,
2048         * device/lib/cotf.c,
2049         * device/lib/expf.c,
2050         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
2051
2052 2007-04-01 Borut Razem <borut.razem AT siol.net>
2053
2054         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
2055           fixed bug #1692042: input buffer overflow...scanner uses REJECT
2056         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
2057           gcc_unreachable() called internal_error()...
2058
2059 2007-03-30 Raphael Neider <rneider AT web.de>
2060
2061         * src/pic/ralloc.c (isData): suppress garbage debug output
2062
2063 2007-03-28 Borut Razem <borut.razem AT siol.net>
2064
2065         * doc/sdccman.lyx:
2066           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
2067           is developed, built and used worldwide, and the word "night" doesn't
2068           make any sense.
2069
2070 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
2071
2072         * device/include/mcs51/C8051F360.h: new, added
2073         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
2074
2075 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2076
2077         * src/SDCC.y (declaration_specifiers, function_specifier),
2078         * support/Util/SDCCerr.c,
2079         * support/Util/SDCCerr.h,
2080         * src/SDCCsymt.h,
2081         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
2082           inline keyword
2083         * src/SDCCmem.c (deallocParms),
2084         * src/SDCCast.c: support for function inlining, not quite complete
2085         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
2086           'restrict' qualifier
2087
2088 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2089
2090         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
2091           (saveRBank, unsaveRBank): don't save bits,
2092           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
2093         * support/regression/tests/bug1535242.c: new, added
2094         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
2095           thanks Alexey Shamrin <shamrin AT gmail.com>,
2096           made assert.h header ANSI compliant (added a check for NDEBUG macro,
2097           removed header guard)
2098         * .version,
2099         * sdcc.spec: bumped version to 2.6.5
2100         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
2101
2102 2007-03-22 Borut Razem <borut.razem AT siol.net>
2103
2104         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
2105           fixed bug #1653671: sdcdb integration into ddd is broken
2106
2107 2007-03-22 Raphael Neider <rneider AT web.de>
2108
2109         * src/pic/gen.c (popGetExternal): augmented to also create references
2110           to external variables (not only labels),
2111           (genCall): comment on plan to reduce PAGESEL overhead,
2112           (genFunction, genEndFunction): also save/restore FSR around interrupt
2113           handling code, removed lots of unused code
2114           (genDivOneByte): release acquired temp register
2115         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
2116           of popGetExternal
2117         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
2118           for registers that need to be saved during interrupts (FSR, STATUS,
2119           PCLATH; W needs special handling), currently only FSR is used
2120
2121 2007-03-22 Raphael Neider <rneider AT web.de>
2122
2123         * device/include/pic/pic14devices.txt: 16f688 has only one config word
2124
2125 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2126
2127         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
2128
2129 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2130
2131         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
2132
2133 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
2134
2135         * as/link/aslink.h: added LKOBJEXT
2136         * as/link/hc08/link_hc08.dsp,
2137         * as/link/hc08/Makefile.bcc,
2138         * as/link/hc08/Makefile.in,
2139         * as/link/mcs51/aslink.dsp,
2140         * as/link/mcs51/Makefile.bcc,
2141         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
2142         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
2143         * as/link/lkaomf51.c: merged and moved
2144         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
2145         * as/link/z80/lkdata.c,
2146         * as/link/lkdata.c: merged and moved
2147         * as/link/hc08/lkmain.c,
2148         * as/link/mcs51/lkmain.c: cosmetic changes
2149         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
2150         * as/link/lklex.c: use LKOBJEXT
2151         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
2152           ANSI-fied functions, removed bubble-sorts
2153         * as/link/z80/lksym.c           as/link/lksym.c: merged,
2154           ANSI-fied functions
2155         * as/link/z80/linkgbz80.dsp,
2156         * as/link/z80/linkz80.dsp,
2157         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
2158           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
2159         * as/link/z80/lkhead.c,
2160         * as/link/z80/lklex.c: deleted
2161         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
2162         * as/link/z80/lkmain.c: added copyfile()
2163
2164 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2165
2166         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
2167
2168 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2169
2170         * device/lib/_strlen.c: assembler version for mcs51
2171
2172 2007-03-13 Raphael Neider <rneider AT web.de>
2173
2174         * device/include/pic16/pic18f2221.h,
2175         * device/include/pic16/pic18f2321.h,
2176         * device/include/pic16/pic18f2331.h,
2177         * device/include/pic16/pic18f4221.h,
2178         * device/include/pic16/pic18f4321.h,
2179         * device/include/pic16/pic18f4331.h: fixed config byte location names
2180         * support/scripts/inc2h-pic16.pl: removed debug output, emit
2181           consistently named config byte locations
2182
2183 2007-03-13 Borut Razem <borut.razem AT siol.net>
2184
2185         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
2186           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
2187           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
2188           as/link/z80/Makefile.in, as/z80/Makefile.in:
2189           introduced LDFLAGS
2190
2191 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2192
2193         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
2194         * device/lib/printf_large.c: pointer was converted to generic
2195         pointer for mcs51 models other than model-small (Maarten noticed)
2196
2197 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2198
2199         * device/include/mcs51/ADuC84x.h: Added.
2200
2201 2007-03-10 Borut Razem <borut.razem AT siol.net>
2202
2203         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
2204           fixed RFE #1624219: double backslashes in filenames;
2205           functions hexEscape(), octalEscape() and copyStr() moved from
2206           SDCCval.c to SDCCutil.c and made them glovbally available
2207
2208 2007-03-09 Borut Razem <borut.razem AT siol.net>
2209
2210         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
2211           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
2212           1673361: Missaligned comments in output files
2213
2214 2007-03-09 Raphael Neider <rneider AT web.de>
2215
2216         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
2217
2218 2007-03-09 Raphael Neider <rneider AT web.de>
2219
2220         * src/pic/gen.c,
2221         * src/pic/glue.c,
2222         * src/pic/ralloc.c: suppress undesired debug output
2223         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
2224
2225 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2226
2227         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
2228
2229 2007-03-07 Borut Razem <borut.razem AT siol.net>
2230
2231         * device/lib/pic16/libdev/pic18f[24][34]31.c:
2232           search include files in the current directory
2233
2234 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
2235
2236         * src/SDCCglue.c (emitMaps, glue),
2237         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
2238           absolute xdata
2239         * support/regression/tests/absolute.c: added xdata test
2240
2241 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
2242
2243         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
2244           added condition to macro, fixes bug 1666080
2245
2246 2007-03-02 Raphael Neider <rneider AT web.de>
2247
2248         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
2249
2250 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2251
2252         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
2253         be cleared. Unconditionally set __XPAGE
2254         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
2255
2256 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2257
2258         * src/SDCCglobl.h,
2259         * src/SDCCmain.c,
2260         * src/mcs51/gen.c,
2261         * src/mcs51/rtrack.c,
2262         * src/ds390/gen.c,
2263         * doc/sdccman.lyx: added --no-gen-comments
2264         * src/mcs51/peeph.def: added 192.b, disabled 185
2265
2266 2007-02-25 Raphael Neider <rneider AT web.de>
2267
2268         * src/pic16/gen.c (genCast): fixed typo
2269         * device/lib/pic16/Makefile.subdir: only install existing files
2270         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
2271
2272 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
2273
2274         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
2275         * device/lib/mcs51/crtclear.asm,
2276         * device/lib/mcs51/crtxclear.asm: renumbered labels
2277         * device/lib/mcs51/Makefile.in: added crtcall.asm
2278         * doc/sdccman.lyx: documented mcs51 crt* library startup code
2279         * src/mcs51/gen.c (movc): removed,
2280           (aopGet, genPlusBits): clear a after loading the carry (possibly from
2281             acc.x or psw.x),
2282           (toCarry, genSend, genRet): added function toCarry,
2283           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
2284           (assignBit, genAssign, genCast): added function assignBit
2285         * src/mcs51/Makefile.bcc: added rtrack.c
2286         * src/mcs51/ralloc.h: made valueKnown a bitfield
2287         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
2288           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
2289           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
2290         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
2291         * src/z80/gen.c: added AOP_IS_PAIRPTR,
2292           (_pop): only pop valid pairs, see gencjneshort,
2293           (gencjneshort): return pair that still needs to be popped, restructured,
2294           (gencjne, genCmpEq): call _pop
2295
2296 2007-02-23 Raphael Neider <rneider AT web.de>
2297
2298         * device/include/pic/pic14devices.txt: 16f684 has only one config word
2299
2300 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2301
2302         * device/include/mcs51/P89LPC925.h: Added.
2303
2304 2007-02-18 Raphael Neider <rneider AT web.de>
2305
2306         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
2307
2308 2007-02-17 Borut Razem <borut.razem AT siol.net>
2309
2310         * support/cpp2/directives.c, support/cpp2/version.c:
2311           synchronized with GCC CPP 4.1.2
2312
2313 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2314
2315         * src/mcs51/rtrack.h,
2316         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
2317           by checking the strings passed by emitcode() to the assembler.
2318           Feel free to change. This in part addresses RFE #482179.
2319           Set environment variable SDCC_RTRACK to enable.
2320         * src/mcs51/gen.c: inserted hooks
2321         * src/mcs51/ralloc.h: added two members to struct regs
2322         * support/regression/tests/regtrack.c: added
2323
2324 2007-02-14 Borut Razem <borut.razem AT siol.net>
2325
2326         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
2327         * Makefile.in: applied patch from Makefile related part of
2328           #1469393: Compiler does not initialize static data
2329
2330 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2331
2332         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
2333           for better fix of bug 1273984, compiles pic16 rand.c
2334
2335 2007-02-12 Borut Razem <borut.razem AT siol.net>
2336
2337         * src/pic16/main.c: fixed pic16 standard library directory bug
2338
2339 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2340
2341         * src/hc08/gen.c (genSwap): fix swap regression test
2342
2343 2007-02-10 Borut Razem <borut.razem AT siol.net>
2344
2345         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
2346           with same scope
2347         * support/regression/tests/bug-1654060.c: added regression test for
2348           #1654060
2349
2350 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
2351
2352         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
2353         bit moves in return statement
2354
2355 2007-02-09 Borut Razem <borut.razem AT siol.net>
2356
2357         * src/SDCC.y: fixed bug #1654060 typedef within function causes
2358           syntax error
2359
2360 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
2361
2362         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
2363         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
2364
2365 2007-02-07 Raphael Neider <rneider AT web.de>
2366
2367         * src/pic16/devices.inc,
2368         * device/include/pic16/pic18fregs.h,
2369         * device/include/pic16/pic18f[24][34]31.h,
2370         * device/lib/pic16/libdev/pic18f[24][34]31.c,
2371         * device/lib/pic16/pics.all: added 18f[24][34]31 family
2372         * device/lib/pic16/libio/i2c.ignore: do not build i2c
2373
2374 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
2375
2376         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
2377           can this have lived here for so many years?
2378         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
2379           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
2380         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
2381
2382 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
2383
2384         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
2385         appended by loop induction must be at the very end of the eBBlock
2386
2387 2007-02-05 Kevin Vigor
2388
2389         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
2390
2391 2007-02-05 Borut Razem <borut.razem AT siol.net>
2392
2393         * support/regression/fwk/lib/timeout.c: native WIN32 port,
2394           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
2395
2396 2007-02-03 Borut Razem <borut.razem AT siol.net>
2397
2398         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
2399           applied patch #1646602 option to set default signedness of char to
2400           unsigned, added -funsigned-char command line option,
2401           thanks to Gunther Jehle
2402         * device/lib/Makefile.in: added the -f option to rm so it doesn't
2403           prompt for file deletion a few hundred times (especially the
2404           subversion files, which have ro permissions so it asks for
2405           confirmation), thanks to Simon McAuliffe;
2406           added {} + option to find in order to remove multiple files from a
2407           single rm commad
2408
2409 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2410
2411         * device/include/mcs51/SST89x5xRDx.h: Added.
2412
2413 2007-02-02 Raphael Neider <rneider AT web.de>
2414
2415         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
2416         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
2417
2418 2007-02-01 Raphael Neider <rneider AT web.de>
2419
2420         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
2421           config words again
2422
2423 2007-01-31 Borut Razem <borut.razem AT siol.net>
2424
2425         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
2426           if compiled with GCC. Thanks to Raphael Neider
2427
2428 2007-01-31 Raphael Neider <rneider AT web.de>
2429
2430         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
2431             operand names, handles name and (name + n) for all n,
2432           (sameBank): restructured, also check bank allocation policy,
2433         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
2434           (pic14_operandsAllocatedInSameBank): check whether to operands
2435             will be allocated into the same bank (i.e., section) to reduce
2436             BANKSEL overhead, queried from pcode.c:sameBank,
2437           (pic14printLocals): reintroduced clustering registers into a single
2438             section: all compiler generated symbols will now reside in one
2439             bank (per file), reducing BANKSEL overhead and code size,
2440           (showAllMemmaps): use local dbuf where possible
2441
2442 2007-01-29 Raphael Neider <rneider AT web.de>
2443
2444         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
2445           (call_libraryfunc): retrieve/create symbol and mark as used,
2446           (genFunction): mark defined functions as non-extern and add again
2447            to code memmap for later output
2448         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
2449           (pic14printLocals): reworked for new symbol emission,
2450           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
2451           showAllMemmaps): reworked symbol output using dbufs, added handling
2452             of string literals (still incomplete),
2453           (picglue): removed symbol emission, moved into showAllMemmaps,
2454           (emitSymbolSet): new workhorse for symbol output,
2455           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
2456
2457 2007-01-29 Borut Razem <borut.razem AT siol.net>
2458
2459         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
2460           component contains the extension separator.
2461
2462 2007-01-28 Borut Razem <borut.razem AT siol.net>
2463
2464         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
2465           on WIN32
2466         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
2467           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
2468           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
2469           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
2470           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
2471           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
2472           src/z80/gen.c, support/Util/MySystem.c:
2473           accept slash and backslash as directory separator on WIN32 and
2474           Cygwin ports
2475
2476 2007-01-28 Raphael Neider <rneider AT web.de>
2477
2478         * src/pic16/devices.inc,
2479         * device/include/pic16/pic18f[24][23]21.h,
2480         * device/include/pic16/pic18fregs.h,
2481         * device/lib/pic16/libdev/pic18f[24][23]21.c,
2482         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
2483         * device/lib/pic16/libio/adc.ignore,
2484         * device/lib/pic16/libio/i2c.ignore,
2485         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
2486           family, as gputils do not yet support the devices
2487         * device/lib/pic16/Makefile.subdir: ignore errors on install
2488         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
2489           headers and libraries from gputils .inc files
2490
2491 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2492
2493         * doc/sdccman.lyx: add printf_fast_f precision limitation note
2494
2495 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2496
2497         * doc/sdccman.lyx: add printf benchmarks
2498
2499 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
2500
2501         * device/lib/printf_fast.c: fix %c, char promoted to int
2502         * device/lib/printf_tiny.c: fix %c, char promoted to int
2503
2504 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
2505
2506         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
2507
2508 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2509
2510         * support/regression/tests/swap.c: 64 bit hosts failed
2511         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
2512
2513 2007-01-25 Raphael Neider <rneider AT web.de>
2514
2515         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
2516           based on absolute register address, patch by Alex Blond
2517
2518 2007-01-22 Raphael Neider <rneider AT web.de>
2519
2520         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
2521           emitted, do not emit them again...
2522
2523 2007-01-22 Raphael Neider <rneider AT web.de>
2524
2525         * src/regression/bank1.c, src/regression/compare6.c,
2526           src/regression/add.c: cosmetic changes
2527         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
2528         * src/pic/gen.c: fixed global zero and one,
2529           (aopForSym): removed unued code,
2530           (aopGet): assert aop is defined, check and use `index' of
2531             pCodeImmd operands (fixes #1630908),
2532         * src/pic/pcode.c (get_op): added output of generic pointer tag,
2533           (register_reassign): prevent accidental register unification,
2534           (ReuseReg): cosmetic changes (also above)
2535         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
2536           pic14emitStaticSeg): do not emit initialized data,
2537           (printIval*): replaced with working versions,
2538           (pic14createInterruptVect,picglue): use idata for initialized data,
2539             now init data should work in all modules (not only main()),
2540         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
2541
2542 2007-01-21 Borut Razem <borut.razem AT siol.net>
2543
2544         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
2545           use -fPIC or -fpic if they are supported and not ignored
2546         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
2547         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
2548
2549 2007-01-20 Borut Razem <borut.razem AT siol.net>
2550
2551         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
2552           implemented RFE #1470316: allow "$" in variable names
2553
2554 2007-01-20 Raphael Neider <rneider AT web.de>
2555
2556         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
2557
2558 2007-01-20 Raphael Neider <rneider AT web.de>
2559
2560         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
2561         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
2562         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
2563         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
2564           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
2565         * device/lib/pic/libdev/pic*.c,
2566         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
2567         * device/lib/pic/libdev/Makefile.in: show progress
2568
2569 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
2570
2571         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
2572         * support/scripts/sdcc_cygwin_mingw32,
2573         * support/scripts/sdcc_mingw32,
2574         * support/scripts/build.mak: replaced --datadir by --datarootdir for
2575         conformance with autoconf 2.6
2576
2577 2007-01-19 Raphael Neider <rneider AT web.de>
2578
2579         * src/pic/device.c (register_map): fixed list construction
2580         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
2581           (genMod): removed case for genModbits,
2582           (genModbits): removed as now unused/unimplemented
2583         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
2584
2585 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2586
2587         * support/regression/tests/swap.c: added in response to #1638622
2588         * doc/sdccman.lyx: synced version, minor changes
2589
2590 2007-01-18 Borut Razem <borut.razem AT siol.net>
2591
2592         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
2593           thanks to Gunther Jehle
2594         * src/asm.c: don't die if the file drfined in #line couldn't be opened
2595         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
2596           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
2597           use filename in lineno instead.
2598         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
2599           print the file name in ast_print()
2600
2601 2007-01-18 Borut Razem <borut.razem AT siol.net>
2602
2603         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
2604           defined in MSVC
2605         * src/SDCC.lex: stringLiteral() returns const char pointer,
2606           EOF detection in stringLiteral(), fixed asmbuf memory leak,
2607           fixed column counting
2608         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
2609           accept const char pointer as parameter
2610         * src/SDCCdwarf2.c: corrected buffer size
2611
2612 2007-01-17 Borut Razem <borut.razem AT siol.net>
2613
2614         * support/Util/dbuf_string.c: fixed for amd64
2615
2616 2007-01-15 Borut Razem <borut.razem AT siol.net>
2617
2618         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
2619           removed terminal symbol ELIPSIS, since it was never generated by the
2620           lexer and it was wrongly used in parameter_identifier_list rule
2621
2622 2007-01-15 Raphael Neider <rneider AT web.de>
2623
2624         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
2625             code page and data banking description
2626         * src/pic/genarith.c,
2627         * src/pic/gen.h: removed bit arithmetic functions,
2628             updated exit(1) to exit(EXIT_FAILURE)
2629         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
2630         * device/include/pic16/pic18f2455.h,
2631         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
2632             TRISD and TRISE, fixed/added some bit names
2633         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
2634         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
2635             updated pic18f2455.{c,h} instead of duplicating them
2636
2637 2007-01-14 Borut Razem <borut.razem AT siol.net>
2638
2639         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
2640           Cannot debug files that contain spaces in the path name
2641           by converting spaces in asm file name to underscores
2642
2643 2007-01-13 Borut Razem <borut.razem AT siol.net>
2644
2645         * doc/sdccman.lyx: fixed format errors
2646
2647 2007-01-10 Borut Razem <borut.razem AT siol.net>
2648
2649         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
2650           codeseg/constseg #pragma fail
2651         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
2652         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
2653           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
2654           suppoprt/cpp2/sdcpp.[ch]: house cleaning
2655
2656 2007-01-09 Borut Razem <borut.razem AT siol.net>
2657
2658         * get rid of diagnistic.[ch], pretty-print.[ch],
2659           c-pretty-print.[ch], ... used just for error, warning, ...
2660           message formatting
2661         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
2662           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
2663           suppoprt/cpp2/pretty-print.[ch]:
2664           removed
2665         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
2666           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
2667           suppoprt/cpp2/sdcpp.dsp:
2668           changed
2669
2670 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
2671
2672         * device/lib/printf_large.c (output_float): removed recursion,
2673           use smaller buffer on stack for mcs51,
2674           fixed bug printing 1.96
2675         * support/regression/tests/snprintf.c: added test
2676
2677 2007-01-07 Borut Razem <borut.razem AT siol.net>
2678
2679         * use dynamic memory buffers instead temporary files
2680         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
2681           added
2682         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
2683           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
2684           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
2685           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
2686           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
2687           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
2688           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
2689           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
2690           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
2691           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
2692           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
2693           support/Util/dbuf.c, support/Util/dbuf.h:
2694           modified
2695         * .version, sdcc.spec: bumped version to 2.6.4
2696
2697 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
2698
2699         * src/port.h: added TARGET_Z80_LIKE macro
2700         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
2701           output PSEG location if --xram-loc or --xstack-loc was used
2702         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
2703
2704 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
2705
2706         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
2707         * as/as_z80.dsp,   as/z80/as_z80.dsp,
2708         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
2709         * sdcc.dsw: moved project files into subdir
2710         * as/hc08/as_hc08.dsp,
2711         * as/hc08/Makefile.bcc,
2712         * as/hc08/Makefile.in,
2713         * as/mcs51/Makefile.bcc,
2714         * as/mcs51/Makefile.in,
2715         * as/z80/Makefile.bcc,
2716         * as/z80/Makefile.in,
2717         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
2718         * as/hc08/asm.h,
2719         * as/mcs51/asm.h,
2720         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
2721         * as/hc08/asmain.c,
2722         * as/hc08/assym.c,
2723         * as/mcs51/asmain.c,
2724         * as/mcs51/assym.c,
2725         * as/z80/assym.c: removed include "strcmpi.h"
2726         * as/hc08/strcmpi.c,
2727         * as/hc08/strcmpi.h,
2728         * as/mcs51/strcmpi.c,
2729         * as/mcs51/strcmpi.h,
2730         * support/Util/strcmpi.c,
2731         * support/Util/strcmpi.h: removed files
2732         * as/strcmpi.c: added as_strncmpi()
2733
2734 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2735
2736         * sdcc.dsw: Added some dependencies on project config.dsp
2737
2738 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
2739
2740         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
2741           with [di]ram_start to fix a regresion
2742
2743 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
2744
2745         * configure.in: added missing mcs51 in status output
2746         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
2747         directory
2748         * debugger/mcs51/clean.mk (distclean): remove config.h
2749         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
2750         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
2751         options.h, s-options-h and options.c
2752         * support/cpp2/clean.mk: unused, removed
2753         * Makefile.common.in,
2754         * main_in.mk,
2755         * as/Makefile.in,
2756         * as/hc08/Makefile.in,
2757         * as/hc08/clean.mk,
2758         * as/mcs51/Makefile.in,
2759         * as/mcs51/clean.mk,
2760         * as/z80/clean.mk,
2761         * as/z80/conf.mk,
2762         * as/z80/Makefile.in,
2763         * as/z80/clean.mk,
2764         * as/link/Makefile.in,
2765         * as/link/hc08/Makefile.in,
2766         * as/link/hc08/clean.mk,
2767         * as/link/mcs51/Makefile.in,
2768         * as/link/mcs51/clean.mk,
2769         * as/link/z80/Makefile.in,
2770         * as/link/z80/clean.mk,
2771         * as/link/z80/conf.mk,
2772         * debugger/mcs51/Makefile.in,
2773         * debugger/mcs51/clean.mk,
2774         * device/include/Makefile.in,
2775         * device/lib/Makefile.in,
2776         * device/lib/mcs51/Makefile.in,
2777         * device/lib/pic/Makefile.in,
2778         * device/lib/pic/Makefile.common.in,
2779         * device/lib/pic/Makefile.subdir,
2780         * device/lib/pic/Makefile.rules,
2781         * device/lib/pic16/libio/Makefile.in,
2782         * device/lib/pic16/Makefile.subdir,
2783         * device/lib/pic16/libdev/Makefile.in,
2784         * device/lib/pic16/Makefile.rules,
2785         * device/lib/pic16/Makefile.common.in,
2786         * sim/ucsim/avr.src/Makefile.in,
2787         * sim/ucsim/main_in.mk,
2788         * sim/ucsim/cmd.src/Makefile.in,
2789         * sim/ucsim/doc/Makefile.in,
2790         * sim/ucsim/gui.src/Makefile.in,
2791         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
2792         * sim/ucsim/gui.src/serio.src/Makefile.in,
2793         * sim/ucsim/hc08.src/Makefile.in,
2794         * sim/ucsim/libltdl/Makefile.in,
2795         * sim/ucsim/s51.src/Makefile.in,
2796         * sim/ucsim/sim.src/Makefile.in,
2797         * sim/ucsim/sim.src/conf.mk,
2798         * sim/ucsim/xa.src/Makefile.in,
2799         * sim/ucsim/z80.src/Makefile.in,
2800         * src/Makefile.in,
2801         * src/clean.mk,
2802         * src/port.mk,
2803         * support/cpp2/Makefile.in,
2804         * support/librarian/Makefile.in,
2805         * support/librarian/clean.mk,
2806         * support/makebin/Makefile.in,
2807         * support/makebin/clean.mk,
2808         * support/packihx/Makefile.in,
2809         * support/regression/Makefile.in,
2810         * support/regression/ports/ds390/spec.mk,
2811         * support/regression/ports/gbz80/spec.mk,
2812         * support/regression/ports/hc08/spec.mk,
2813         * support/regression/ports/mcs51/spec.mk,
2814         * support/regression/ports/mcs51-large/spec.mk,
2815         * support/regression/ports/mcs51-medium/spec.mk,
2816         * support/regression/ports/mcs51-xstack-auto/spec.mk,
2817         * support/regression/ports/pic14/spec.mk,
2818         * support/regression/ports/pic16/spec.mk,
2819         * support/regression/ports/mcs51-stack-auto/spec.mk,
2820         * support/regression/ports/ucz80/spec.mk,
2821         * support/regression/ports/xa51/spec.mk,
2822         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
2823         adding a slash after $(top_builddir) and/or adding @datarootdir@
2824         * configure.in,
2825         * debugger/mcs51/configure.in,
2826         * device/lib/pic/configure.in,
2827         * device/lib/pic16/configure.in,
2828         * sim/ucsim/configure.in,
2829         * support/cpp2/configure.in,
2830         * support/packihx/configure.in: changed AC_PREREQ to 2.60
2831         * configure,
2832         * debugger/mcs51/configure,
2833         * device/lib/pic/configure,
2834         * device/lib/pic16/configure,
2835         * sim/ucsim/configure,
2836         * support/cpp2/configure,
2837         * support/packihx/configure: generated with autoconf 2.60
2838
2839 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
2840
2841         * as/link/hc08/lkihx.c (newArea),
2842         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
2843
2844 2007-01-02 Borut Razem <borut.razem AT siol.net>
2845
2846         * doc/sdccman.lyx: documented #pragma sdcc_hash
2847         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
2848           initialized to 0
2849         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
2850
2851 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
2852
2853         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
2854         empty 'while'-loop to work correctly, see regression test 'while.c'
2855         * support/regression/tests/while.c: added
2856
2857 2007-01-01 Borut Razem <borut.razem AT siol.net>
2858
2859         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
2860           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
2861           support/cpp2/libcpp/sdcpp.c:
2862           sdcpp specific pragma/directive/option handling moved to sdcpp.c
2863         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
2864         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
2865
2866 2006-12-31 Borut Razem <borut.razem AT siol.net>
2867
2868         * SDCPP synchronized with GCC CPP release version 4.1.1,
2869           currently the latest release:
2870         * support/cpp2/libcpp, support/cpp2/libcpp/include,
2871           support/cpp2/libcpp/include/cpp-id-data.h
2872           support/cpp2/libiberty/fopen_unlocked.c
2873           support/cpp2/libiberty/md5.c
2874           support/cpp2/md5.h
2875           support/cpp2/opt-functions.awk
2876           support/cpp2/opt-gather.awk
2877           support/cpp2/optc-gen.awk
2878           support/cpp2/opth-gen.awk:
2879           added
2880         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
2881           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
2882           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
2883           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
2884           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
2885           support/cpp2/diagnostic.h, support/cpp2/except.h,
2886           support/cpp2/hwint.h, support/cpp2/input.h,
2887           support/cpp2/intl.h, support/cpp2/move-if-change,
2888           support/cpp2/opts.c, support/cpp2/opts.h,
2889           support/cpp2/output.h, support/cpp2/prefix.c,
2890           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
2891           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
2892           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
2893           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
2894           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
2895           support/cpp2/version.c:
2896           modified
2897         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
2898           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
2899           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
2900           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
2901           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
2902           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
2903           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
2904           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
2905           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
2906           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
2907           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
2908           moved
2909         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
2910           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
2911           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
2912           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
2913           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2914           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
2915           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
2916           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
2917           support/cpp2/hashtable.h, support/cpp2/line-map.c,
2918           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
2919           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
2920           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
2921           support/cpp2/system.h:
2922           deleted / moved
2923
2924 2006-12-31 Borut Razem <borut.razem AT siol.net>
2925
2926         * configure.in, configure: fixed bug #1538756: configure dies if bison
2927           and flex are not installed, 2nd try
2928
2929 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
2930
2931         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
2932         400.x for better code in RFE 899102
2933
2934 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
2935
2936         * src/SDCCpeeph.c (deadMove),
2937         * src/port.h,
2938         * src/mcs51/peep.h: renamed 'op' by 'reg'
2939         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
2940         (scan4op): small change for removeDeadMove(), added support for
2941         'callee saves' and/or PACLL function calls,
2942         (removeDeadMove): added, removes superflous 'mov r%1,%2',
2943         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
2944         left in new dispatcher mcs51DeadMove()
2945         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
2946         removeDeadMove()
2947         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
2948
2949 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2950
2951         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
2952           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
2953
2954 2006-12-30 Borut Razem <borut.razem AT siol.net>
2955
2956         * support/cpp2/spacs.h: deleted from svn
2957         * configure.in, configure: fixed bug #1538756: configure dies if bison
2958           and flex are not installed
2959
2960 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
2961
2962         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
2963           with this z80 passes printf float test when enabled
2964         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
2965
2966 2006-12-28 Borut Razem <borut.razem AT siol.net>
2967
2968         * support/cpp2/config.in, support/cpp2/configure.in,
2969           support/cpp2/configure, support/cpp2/Makefile.in:
2970           fix for the solaris build
2971
2972 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2973
2974         * src/SDCC.y (type_specifier2, pointer),
2975         * src/SDCCsymt.h,
2976         * src/SDCCsymt.c (mergeSpec, checkSClass),
2977         * support/Util/SDCCerr.c,
2978         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
2979         * support/valdiag/valdiag.py: Allow test cases to specify
2980           required language standard
2981         * support/valdiag/tests/restrict.c: New file to test restrict keyword
2982         * support/valdiag/tests/tentdecl.c: Supress empty source file error
2983
2984 2006-12-27 Borut Razem <borut.razem AT siol.net>
2985
2986         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
2987         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
2988           mbchar removed
2989         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
2990           fixed for borland C
2991         * support/cpp2/libiberty/Makefile.bcc: updated
2992         * src/pic16/main.c: fixed #pragma udata handling
2993         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
2994
2995 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
2996
2997         * src/SDCCpeeph.c: made labelHashEntry global,
2998         made pcDistance, FBYNAME static,
2999         (pcDistance): made static, use isComment and isLabel,
3000         (deadMove): added,
3001         (getLabelRef): added, extracted from labelRefCount(),
3002         (labelRefCount): use new getLabelRef(),
3003         (callFuncByName): made static, added deadMove,
3004         use isComment and isLabel,
3005         (newPeepRule): made static, set isLabel,
3006         (isLabelDefinition): added parameter isPeepRule to allow '%' in
3007         labels from peephole rules,
3008         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
3009         when isComment or isLabel is set
3010         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
3011         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
3012         to make them global
3013         * src/mcs51/peep.h: added
3014         * src/mcs51/peep.c: added, implements mcs51DeadMove()
3015         * src/port.h: added peep->deadMove to port structure
3016         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
3017         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
3018         deadMove, finally removed no. 1 and 2
3019         * src/mcs51/gen.c,
3020         * src/pic/gen.c,
3021         * src/z80/gen.c,
3022         * src/z80/ralloc.c,
3023         * src/pic16/gen.c,
3024         * src/ds390/gen.c,
3025         * src/hc08/gen.c: mark lines with isComment or isLabel
3026         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
3027         * .version,
3028         * sdcc.spec: bumped version to 2.6.3
3029
3030 2006-12-26 Borut Razem <borut.razem AT siol.net>
3031
3032         * support/cpp2/Makefile.in: added dependency on options.h
3033         * configure: regenerated
3034         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
3035         * support/cpp2/Makefile.in: added vasprintf.c
3036
3037 2006-12-25 Borut Razem <borut.razem AT siol.net>
3038
3039         * SDCPP synchronized with GCC CPP release version 3.4.6,
3040           the latest release before 4.x:
3041         * support/cpp2/Makefile.in, support/cpp2/config.h,
3042           support/cpp2/configure, support/cpp2/configure.in,
3043           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
3044           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
3045           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
3046           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
3047           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
3048           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
3049           support/cpp2/cpptrad.c, support/cpp2/except.h,
3050           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
3051           support/cpp2/hwint.h, support/cpp2/intl.h,
3052           support/cpp2/line-map.c, support/cpp2/line-map.h,
3053           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
3054           support/cpp2/output.h, support/cpp2/prefix.c,
3055           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
3056           support/cpp2/system.h, support/cpp2/version.c:
3057           modified
3058         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
3059           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
3060           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
3061           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
3062           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
3063           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
3064           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
3065           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
3066           support/cpp2/move-if-change, support/cpp2/opts.c,
3067           support/cpp2/opts.h, support/cpp2/opts.sh,
3068           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
3069           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
3070           support/cpp2/win32, support/cpp2/win32/dirent.c,
3071           support/cpp2/win32/dirent.h:
3072           added
3073         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
3074         * support/cpp2/sdcpp.h: renamed from sdcc.h
3075         * sdcppinit.c: deleted
3076
3077 2006-12-23 Borut Razem <borut.razem AT siol.net>
3078
3079         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
3080           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
3081           preproc.c: an other try to fix bug #982435: introduced
3082           -pedantic-parse-number command line option and pedantic_parse_number
3083           pragma
3084
3085 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
3086
3087         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
3088            BSEG handling,
3089           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
3090            corrected overlayed areax addresses, warn about memory overlaps
3091         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
3092         * src/avr/main.c,
3093         * src/ds390/main.c,
3094         * src/hc08/main.c,
3095         * src/mcs51/main.c,
3096         * src/pic16/main.c,
3097         * src/pic/main.c,
3098         * src/xa51/main.c,
3099         * src/z80/main.c,
3100         * src/port.h: added xabs_name and iabs_name
3101         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
3102           (glue, emitMaps): create and emit maps d_abs and i_abs
3103         * src/SDCCglue.h: cosmetic changes
3104         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
3105         * src/SDCCmem.h,
3106         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
3107           (allocDefault): put absolute, initialized globals in them
3108         * support/regression/tests/absolute.c: added absolute bdata test
3109         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
3110
3111 2006-12-20 Borut Razem <borut.razem AT siol.net>
3112
3113         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
3114         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
3115           added regression test for bug #982435
3116
3117 2006-12-18 Borut Razem <borut.razem AT siol.net>
3118
3119         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
3120         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
3121           small cosmetic changes
3122         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
3123         * support/regression/tests/bug-1351710.c: added regression test
3124
3125 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3126
3127         * doc/sdccman.lyx: added the long missed iCode table
3128           "<where is figure II?>", added links to wiki
3129
3130 2006-12-17 Borut Razem <borut.razem AT siol.net>
3131
3132         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
3133           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
3134           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
3135           unified table driven pragma handling, pragma argument type checking
3136         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
3137           current one - version 1.1.3
3138         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
3139
3140 2006-12-13 Raphael Neider <rneider AT web.de>
3141
3142         * src/pic/device.h: removed AssignedMemory structure and macros
3143         * src/pic/device.c: removed global finalMapping (linker assigns
3144             memory locations),
3145           (register_map): add SFRs to remembered memRanges
3146           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
3147           assignFixedRegisters,assignRelocatableRegisters): removed,
3148           (setMaxRAM,validAddress): adapted accordingly,
3149           (pic14_hasSharebank,pic14_getSharedStack): only report and use
3150             reasonably sized sharebanks,
3151         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
3152           (allDefsOutOfRange): removed unused code,
3153         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
3154             handling
3155         * src/pic/pcode.c (register_reassign): removed recursion warning,
3156             fired far too often,
3157         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
3158             to use existing pic14_stringInSet() to avoid duplicate symbols,
3159             tidied up the code a bit,
3160           (pic14printLocals): added in symmetry to printExterns, replaces
3161             writeUsedRegs more or less,
3162           (picglue): call new pic14_printLocals(),
3163         * device/include/pic/pic*.h: removed #pragma memmap directives,
3164             information gathered from include/pic/pic14devices.txt
3165         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
3166
3167 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
3168
3169         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
3170
3171 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3172
3173         * device/include/mcs51/cc2430.h: fixed missing ';'
3174
3175 2006-12-10 Raphael Neider <rneider AT web.de>
3176
3177         * device/lib/pic16/libc/stdio/vfprintf.c,
3178         * device/lib/pic16/libc/stdio/printf_small.c,
3179         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
3180           char arguments, as char varargs are cast to int by the caller,
3181           hopefully fixes #1604915 (other device libraries are still affected)
3182
3183 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3184
3185         * src/mcs51/ralloc.c (packRegsForAssign),
3186         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
3187
3188 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
3189
3190         * device/include/malloc.h: removed init_dynamic_memory
3191         * device/lib/malloc.c: made init_dynamic_memory static and automatically
3192           call it once from malloc. Also use _sdcc_heap[] from _heap.c
3193         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
3194         * device/lib/libsdcc.lib,
3195         * device/lib/Makefile.in,
3196         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
3197         * doc/sdccman.lyx: documented use of new _heap.c
3198         * support/regression/tests/malloc.c: removed init_dynamic_memory
3199         * src/cdbFile.c(spacesToUnderscores): new function,
3200           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
3201           1068030
3202         * device/include/tinibios.h: removed defines for putchar and getchar
3203         * device/lib/ds390/Makefile.in: added putchar.c
3204         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
3205
3206 2006-12-09 Borut Razem <borut.razem AT siol.net>
3207
3208         * support/cpp2/sdcc.h: prevent multiple inclusion
3209         * support/cpp2/options.h: deleted
3210
3211 2006-12-08 Borut Razem <borut.razem AT siol.net>
3212
3213         * support/cpp2/sdcc.h: removed x*alloc() macros
3214         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
3215         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
3216           support/cpp2/sdcpp.sdc: x*alloc files added to the project
3217         * support/cpp2/system.h: moved #include "sdcc.h"
3218         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
3219           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
3220           added
3221         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
3222           -funsigned-char options
3223         * support/cpp2/sdcppmain.c: fixed bug 1611411
3224
3225 2006-12-07 Borut Razem <borut.razem AT siol.net>
3226
3227         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
3228           directive
3229
3230 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
3231
3232         * src/SDCCsymt.c (addDecl): fixed bug 1609244
3233         * src/SDCCmain.c (linkEdit): fixed bug 1609279
3234         * doc/sdccman.lyx,
3235         * .version: bumped to 2.6.2 because a) it's been a while
3236           b) the linker sources have moved c) the preprocessor is upgraded
3237
3238 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3239
3240         * support/regression/tests/snprintf.c: some checks
3241         * lib/src/printf_large.c: %bc: read char instead of int from stack
3242
3243 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
3244
3245         * device/include/mcs51/cc2430.h: inserted _XPAGE
3246
3247 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3248
3249         * device/include/mcs51/cc2430.h: added
3250
3251 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
3252
3253         * device/include/asm/default/features.h,
3254         * device/include/asm/ds390/features.h,
3255         * device/include/mcs51/at89s53.h,
3256         * device/include/ser.h,
3257         * device/include/ser_ir.h,
3258         * device/include/serial.h: changed keywords to double underscore variants,
3259           fixes bug 1590261 some more, thanks Steven Borley
3260
3261 2006-12-01 Raphael Neider <rneider AT web.de>
3262
3263         * src/pic/pcode.c (register_reassign): do not crash on recursive code
3264           but emit warning (recursion is not supported for pic14)
3265
3266 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3267
3268         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
3269         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
3270
3271 2006-11-30 Raphael Neider <rneider AT web.de>
3272
3273         * src/pic/device.c (dump_sfr): always emit symbols
3274         * src/pic/glue.c (pic14printPublics): fixed typo
3275
3276 2006-11-30 Raphael Neider <rneider AT web.de>
3277
3278         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
3279           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
3280           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
3281            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
3282            a sharebank, use a non-shared bank for the stack if none available
3283         * src/pic/device.h (struct memRange): added linked list next field,
3284           added prototypes for above functions
3285         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
3286           (typeRegWithIdx): accept fixed and unfixed stack registers
3287         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
3288           the stack, handle shared and banked stack (except for WSAVE),
3289           (insertBankSel): removed useless optimization (will never fire),
3290           (FixRegisterBanking): added optimization for devices with only one
3291           possibly aliased bank of memory, like 16f84
3292         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
3293           devices have no SHAREBANK in the linker script
3294         * device/include/pic/pic14devices.txt: documented memmap
3295         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
3296
3297 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3298
3299         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
3300           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
3301           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
3302           genhc08Code): switched most of the D (debug) macros to DD (detailed
3303           debug) macros to better control clutter in the generated .asm file.
3304         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
3305           genRightShift): fixed bug with non-constant bit shift stored to
3306           a volatile result (SF Open Discussion forum thread #1616749).
3307           Single byte case is not yet optimized.
3308
3309 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
3310
3311         * device/include/asm/mcs51/features.h,
3312         * device/include/malloc.h,
3313         * device/include/stdio.h: changed keywords to double underscore variants,
3314           fixes bug 1590261
3315
3316 2006-11-27 Borut Razem <borut.razem AT siol.net>
3317
3318         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
3319           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
3320           support/cpp2/output.h, support/cpp2/cppinit.c,
3321           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
3322           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
3323           support/cpp2/cppdefault.c, support/cpp2/system.h,
3324           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
3325           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
3326           support/cpp2/prefix.c, support/cpp2/except.h,
3327           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
3328           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
3329           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
3330           support/cpp2/version.c, support/cpp2/cppmain.c,
3331           support/cpp2/version.h, support/cpp2/hashtable.c,
3332           support/cpp2/cpperror.c:
3333           synchronized with GCC CPP release version 3.3.6,
3334           the latest where cppmain.c still exists.
3335         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
3336           support/cpp2/sdcppinit.c: added
3337
3338 2006-11-27 Borut Razem <borut.razem AT siol.net>
3339
3340         * support/cpp2/cpplex.c:
3341           fixed _asm ... _endasm handling bug, introduce with GCC CPP
3342           synchronization
3343         * support/cpp2/cpplib.c: removed definitions of unused variables
3344
3345 2006-11-26 Borut Razem <borut.razem AT siol.net>
3346
3347         * support/cpp2/libiberty.h: commented out x*alloc() declarations
3348           since they are redefined by macros in support/cpp2/sdcc.h
3349         * support/cpp2/sdcc.h: x*alloc macro redefinition
3350
3351 2006-11-25 Borut Razem <borut.razem AT siol.net>
3352
3353         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
3354           support/cpp2/configure, support/cpp2/Makefile.in,
3355           support/cpp2/cppfiles.c, support/cpp2/output.h,
3356           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
3357           support/cpp2/config.h, support/cpp2/cpplib.h,
3358           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
3359           support/cpp2/cppdefault.c, support/cpp2/config.in,
3360           support/cpp2/system.h, support/cpp2/cpplex.c,
3361           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
3362           support/cpp2/cppdefault.h, support/cpp2/prefix.c
3363           support/cpp2/hwint.h, support/cpp2/mbchar.h,
3364           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
3365           support/cpp2/configure.in, support/cpp2/intl.h,
3366           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
3367           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
3368           support/cpp2/version.c, support/cpp2/cppmain.c,
3369           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
3370           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
3371           support/cpp2/cpperror.c,
3372           support/cpp2/libiberty/safe-ctype.c,
3373           support/cpp2/libiberty/safe-ctype.h,
3374           support/cpp2/libiberty/splay-tree.c,
3375           support/cpp2/libiberty/obstack.c,
3376           support/cpp2/libiberty/lbasename.c,
3377           support/cpp2/libiberty/splay-tree.h,
3378           support/cpp2/libiberty/obstack.h:
3379           synchronized with GCC CPP release version 3.2.3,
3380           the latest before integration of cpp into gcc
3381         * support/cpp2/except.h, support/cpp2/line-map.c,
3382           support/cpp2/line-map.h,
3383           support/cpp2/libiberty/hex.c,
3384           support/cpp2/libiberty/concat.c,
3385           support/cpp2/libiberty/filenames.h: added
3386         * support/cpp2/intl.c: deleted
3387
3388 2006-11-24 Borut Razem <borut.razem AT siol.net>
3389
3390         * src/SDCC.y: enabled compilation of empty source file
3391         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
3392           "ISO C forbids an empty source file"
3393         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
3394           if all the code is ifdefed out.
3395
3396 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3397
3398         * src/hc08/gen.c (genPcall): fix for bug #1601032
3399
3400 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
3401
3402         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
3403         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
3404         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
3405         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
3406         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
3407         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
3408         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
3409         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
3410         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
3411         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
3412         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
3413         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
3414         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
3415         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
3416         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
3417           Renamed to all upper case as per the standard set by SiLabs
3418
3419 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
3420
3421         * device/include/mcs51/C8051F520.h: new, added
3422         * device/include/mcs51/compiler.h: added link about predefined macros
3423
3424 2006-11-23 Raphael Neider <rneider AT web.de>
3425
3426         * src/regression/Makefile: add -L path to fresh library
3427         * src/regression/simulate: emphasize FAILED output
3428         * src/regression/create_stc: output _failures from gpsim
3429         * src/regression/compare4.c,
3430         * src/regression/rotate6.c: fixed char literals,
3431           all compile, all run =8-D
3432
3433         * src/pic/pcode.h: added isPCASMDIR macro
3434         * src/pic/gen.c (genAnd): fixed bit offset
3435         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
3436           packBits): unified register numbering schemes,
3437           (newReg): do not insert stack registers into hash table,
3438           (initStack): unpinned pseudo stack, simplified,
3439           (typeRegWithIdx): fixed retrieval of stack registers,
3440         * src/pic/pcode.c (addpCodeComment,sameBank): added,
3441           (pCodeReplace): removed invalid assertion,
3442           (insertPCodeInstruction): fixed newly added labels,
3443           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
3444           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
3445           DumpFlow): removed unsed (broken?) code,
3446           (insertBankSel): prevent STATUS from being BANKSELed,
3447           (FixRegisterBanking): rewritten from scratch, implemented generic
3448             optimizations (suppress BANKSELs to same register and to registers
3449             present in all banks),
3450           (AnalyzeBanking): update flow after BANKSELection
3451
3452         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
3453             sharebank, let linker place it, mark STKxx symbols as emitted
3454
3455 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3456
3457         * src/regression/arrays.c,
3458         * src/regression/bank1.c,
3459         * src/regression/bool2.c,
3460         * src/regression/compare7.c,
3461         * src/regression/compare8.c,
3462         * src/regression/compare9.c,
3463         * src/regression/compare10.c,
3464         * src/regression/configword.c,
3465         * src/regression/for.c,
3466         * src/regression/mult1.c,
3467         * src/regression/pointer1.c,
3468         * src/regression/rotate6.c,
3469         * src/regression/string1.c,
3470         * src/regression/struct1.c,
3471         * src/regression/Makefile: make PIC14 regression tests run again
3472           (3 fail, 6 won't compile)
3473
3474 2006-11-21 Raphael Neider <rneider AT web.de>
3475
3476         * device/include/pic16/pic18f4550.h,
3477         * device/include/pic16/pic18f4455.h,
3478         * device/lib/pic16/libdev/pic18f4550.c,
3479         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
3480         * configure.in: removed superfluous closing bracket
3481
3482 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3483
3484         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
3485           always positive.
3486
3487 2006-11-21 Raphael Neider <rneider AT web.de>
3488
3489         * src/pic/device.{c,h}: added pic14_getPIC()
3490         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
3491           (genAnd): added PIC code for one case, fixes #1597044
3492         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
3493           SFRs that are present in all banks (e.g., STATUS)
3494
3495 2006-11-20 Raphael Neider <rneider AT web.de>
3496
3497         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
3498           INCFSZ/INCFSZW and declared them as changing Z bit,
3499           (insertPCodeInstruction): correctly invert the above instructions,
3500           fixes #1599333,
3501           (DoBankSelect): don't panic on po_immediates
3502
3503 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3504
3505         * as/link/aslink.h,
3506         * as/link/mcs51/lkihx.c (newArea),
3507         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
3508         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
3509
3510 2006-11-11 Raphael Neider <rneider AT web.de>
3511
3512         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
3513           bitfield symbols, fixes #1579535 (once more...).
3514
3515 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3516
3517         * support/regression/generate-cases.py,
3518         * support/regression/fwk/include/testfwk.h,
3519         * support/regression/fwk/lib/testfwk.c: used code pointers,
3520           (about 50kByte less code generated for mcs51)
3521
3522 2006-11-06 Borut Razem <borut.razem AT siol.net>
3523
3524         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3525           debugger/mcs51/configure: fixed failed check because the function
3526           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
3527           who submitted the patch for gpsim.
3528         * debugger/mcs51/configure.in: removed the result message
3529         * debugger/mcs51/Makefile.in: fixed the config.status warning
3530           "... seems to ignore the --datarootdir setting"
3531
3532 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
3533
3534         * device/include/mcs51/c8051f020.h,
3535         * device/include/mcs51/c8051f040.h,
3536         * device/include/mcs51/c8051f060.h,
3537         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
3538         * src/z80/gen.c (gencjneshort),
3539         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
3540
3541 2006-10-31 Borut Razem <borut.razem AT siol.net>
3542
3543         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3544           debugger/mcs51/configure: get readline version
3545
3546 2006-10-30 Borut Razem <borut.razem AT siol.net>
3547
3548         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
3549         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3550           debugger/mcs51/configure: locate readline even when cross compiling
3551         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
3552
3553 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3554
3555         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
3556           serial port.
3557
3558 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
3559
3560         * device/include/malloc.h,
3561         * device/lib/calloc.c,
3562         * device/lib/free.c,
3563         * device/lib/malloc.c,
3564         * device/lib/realloc.c: moved definition of struct into sources
3565         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
3566
3567 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
3568
3569         * as/asx8051.dsp: corrected output directories
3570         * as/link/hc08: new directory for hc08 linker
3571         * as/hc08/aslink.h,             as/link/aslink.h,
3572         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
3573         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
3574         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
3575         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
3576         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
3577         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
3578         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
3579         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
3580         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
3581         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
3582         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
3583         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
3584         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
3585         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
3586         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
3587         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
3588         * as/link/hc08/conf.mk,
3589         * configure,
3590         * configure.in,
3591         * Makefile.in,
3592         * sdcc.dsw: moved hc08 linker to as/link/hc08
3593         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
3594         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
3595         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
3596         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
3597         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
3598         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
3599         * as/link/mcs51/aslink.dsp,
3600         * as/link/mcs51/Makefile.in: factored out the common files
3601         * as/hc08/lkstore.c: deleted, use the one already in as/link/
3602         * as/clean.mk: extra cleaning common files
3603         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
3604         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
3605         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
3606
3607 2006-10-29 Raphael Neider <rneider AT web.de>
3608
3609         * src/pic/ralloc.c (newReg): create aliases for registers with
3610           multiple names to fix #1579535 and #1584001,
3611           (regWithIdx,dirregWithName): resolve aliases on lookup
3612         * src/pic/pcode.c (DoBankSelect): die with error message on failing
3613           bankselect
3614         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
3615           to prevent build errors on small devices
3616
3617 2006-10-28 Raphael Neider <rneider AT web.de>
3618
3619         * src/pic/gen.c (genFunction,genCall): drop "same code page"
3620           assumption within interrupt handlers, fixes #1584940
3621         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
3622           "emitted" to avoid emitting them again in udata
3623
3624 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3625
3626         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
3627         Removed.
3628
3629 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3630
3631         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
3632         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
3633         on/off CR to CRLF conversion.
3634
3635 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3636
3637         * doc/sdccman.lyx: updated IRQ section
3638
3639 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3640
3641         * device/lib/serial_io.c: removed
3642         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
3643         replacements for serial_io.c
3644
3645 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
3646
3647         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
3648
3649 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3650
3651         * device/lib/serial_io.c: Default putchar() and getchar() for
3652           mcs51 uses serial port.
3653
3654 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
3655
3656         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
3657
3658 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3659
3660         * support/regression/ports/mcs51/support.c: smaller
3661         _sdcc_external_startup()
3662         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
3663
3664 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
3665
3666         * device/lib/gbz80/crt0.s,
3667         * device/lib/gbz80/crt0_rle.s,
3668         * device/lib/gbz80/div.s,
3669         * device/lib/gbz80/fstubs.s,
3670         * device/lib/gbz80/heap.s,
3671         * device/lib/gbz80/mul.s,
3672         * device/lib/gbz80/putchar.s,
3673         * device/lib/gbz80/stubs.s,
3674         * device/lib/z80/crt0.s,
3675         * device/lib/z80/crt0_rle.s,
3676         * device/lib/z80/div.s,
3677         * device/lib/z80/fstubs.s,
3678         * device/lib/z80/heap.s,
3679         * device/lib/z80/mul.s,
3680         * device/lib/z80/putchar.s,
3681         * device/lib/z80/stubs.s: reverted, I was mistaken
3682
3683 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3684
3685         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
3686         * support/regression/ports/mcs51/support.c: removed race
3687         condition on TI in _putchar allowing to use serial port mode 0
3688
3689 2006-10-20 Borut Razem <borut.razem AT siol.net>
3690
3691         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
3692
3693 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
3694
3695         * device/lib/gbz80/crt0.s,
3696         * device/lib/gbz80/crt0_rle.s,
3697         * device/lib/gbz80/div.s,
3698         * device/lib/gbz80/fstubs.s,
3699         * device/lib/gbz80/heap.s,
3700         * device/lib/gbz80/mul.s,
3701         * device/lib/gbz80/putchar.s,
3702         * device/lib/gbz80/stubs.s,
3703         * device/lib/z80/crt0.s,
3704         * device/lib/z80/crt0_rle.s,
3705         * device/lib/z80/div.s,
3706         * device/lib/z80/fstubs.s,
3707         * device/lib/z80/heap.s,
3708         * device/lib/z80/mul.s,
3709         * device/lib/z80/putchar.s,
3710         * device/lib/z80/stubs.s: removed all leading underscores from area names
3711
3712 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
3713
3714         * support/regression/ports/mcs51/support.c: use highest baudrate so the
3715           regression tests are not waiting in the simulator for simulated
3716           transmission of debug output
3717
3718 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3719
3720         * device/lib/printf_large.c: slightly smaller
3721         * doc/sdccman.lyx: do not use spaces within html links
3722
3723 2006-10-16 Borut Razem <borut.razem AT siol.net>
3724
3725         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
3726           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
3727           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
3728           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
3729           debugger/mcs51/configure:
3730           [ 1185668 ] add gnu readline support to sdcdb - enabled
3731
3732 2006-10-16 Raphael Neider <rneider AT web.de>
3733
3734         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
3735           fixes #1577882, removes close to all banking optimizations
3736
3737 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
3738
3739         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
3740           variables in code memory
3741         * support/regression/tests/absolute.c: added test for this
3742
3743 2006-10-15 Raphael Neider <rneider AT web.de>
3744
3745         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
3746           devices,
3747           (BankSelect): emit BANKSEL before touching linker-placed regs,
3748           fixes #1570934
3749
3750 2006-10-10 Raphael Neider <rneider AT web.de>
3751
3752         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
3753         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
3754         * src/pic/main.c (_pic14_parseOptions),
3755         * src/pic/main.h: mostly reverted to previous state, now use results
3756             from SDCCmain.c's argument parsing
3757
3758 2006-10-10 Borut Razem <borut.razem AT siol.net>
3759
3760         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
3761           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
3762           [ 1185668 ] add gnu readline support to sdcdb -
3763           prepared for READLINE, not enabled yet,
3764           thanks to <tal.bav AT gmail.com>
3765
3766 2006-10-10 Raphael Neider <rneider AT web.de>
3767
3768         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
3769         * src/pic16/devices.inc,
3770         * device/include/pic16 (pic18f[24]620.h),
3771         * device/include/pic18fregs.h,
3772         * device/lib/pic16/pics.all,
3773         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
3774             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
3775             Gary Plumbridge and Anton Strobl
3776
3777 2006-10-10 Raphael Neider <rneider AT web.de>
3778
3779         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
3780           --stack-siz=NUM options to configure the argument passing stack
3781         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
3782         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
3783           (pic14_getSharebankSize): obey --stack-siz=NUM,
3784           (pic14_getSharebankAddress): obey --stack-loc=NUM
3785
3786 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3787
3788         * doc/sdccman.lyx: added to the manual
3789         * doc/figures/ddd_example.png: added (neither pdflatex nor
3790         most browsers seem to like the .eps file)
3791
3792 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
3793
3794         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
3795         to /tmp and /var/tmp acc. LSB
3796         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
3797         RESULT_TYPE_IFX
3798         * support/regression/tests/onebyte.c: added test
3799
3800 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3801
3802         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
3803
3804 2006-10-05 Borut Razem <borut.razem AT siol.net>
3805
3806         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
3807           thanks to dfulab:
3808           - sdcc.dsw: changed property eol-style to CRLF
3809           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
3810
3811 2006-10-04 Raphael Neider <rneider AT web.de>
3812
3813         * device/include/pic/{pic16f84.h,pic16f84a.h},
3814         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
3815           from patch #1522504, thanks to Robas Teodor
3816
3817 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
3818
3819         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
3820           fixes bug 1566015
3821
3822 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
3823
3824         * src/pic16/glue.c (pic16emitMaps),
3825         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
3826         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
3827         * device/lib/pic16/libc/string/memcpypgm2ram.c,
3828         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
3829           Philipp Krause
3830         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
3831         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
3832
3833 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3834
3835         * support/librarian/sdcclib.c: Added option -l.
3836         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
3837           usage totals.
3838         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
3839           using Windows command prompt.
3840
3841 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
3842
3843         * device/lib/libsdcc.lib: added module rand
3844         * src/ds390/ralloc.c (rematStr),
3845         * src/hc08/ralloc.c (rematStr),
3846         * src/mcs51/ralloc.c (rematStr),
3847         * src/z80/ralloc.c (rematStr): made output more consistent
3848         * src/mcs51/gen.c: cosmetic changes
3849
3850 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
3851
3852         * src/port.h: added mem.cabs_name to PORT
3853         * src/ds390/main.c,
3854         * src/hc08/main.c,
3855         * src/mcs51/main.c,
3856         * src/pic16/main.c,
3857         * src/pic/main.c,
3858         * src/xa51/main.c,
3859         * src/z80/main.c: added cabs_name initializers
3860         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
3861           constants
3862           (emitMaps): emit absolutes in code memory into cabs_name
3863         * src/SDCCmem.c,
3864         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
3865         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
3866         * support/regression/fwk/include/testfwk.h: added define for at
3867         * support/regression/tests/absolute.c: added, new
3868
3869 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
3870
3871         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
3872           optimizations, see also patch 887161 by Stas Sergeev
3873         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
3874           to be necessary anymore,
3875           (102, 103, 104, 127): renamed all occurances of bp to _bp
3876
3877 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
3878
3879         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
3880           thanks Weston T. Schmidt for patch 1555221
3881         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
3882         * src/SDCCicode.c(geniCodeMultiply): small optimization
3883
3884 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
3885
3886         * device/include/stdlib.h: added rand prototypes
3887         * device/lib/rand.c: new, added
3888         * device/lib/Makefile.in: added rand.c
3889         * src/z80/peeph.def,
3890         * src/z80/peeph-gbz80.def,
3891         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
3892
3893 2006-09-20 Raphael Neider <rneider AT web.de>
3894
3895         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
3896
3897 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
3898
3899         * as/link/aslink.h: cosmetic changes
3900         * as/link/mcs51/Makefile.in,
3901         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
3902
3903 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
3904
3905         * as/link/aslink.h,
3906         * as/link/mcs51/aslink.h,
3907         * as/link/z80/aslink.h: merged and moved to as/link/
3908         * as/link/lkstore.c,
3909         * as/link/mcs51/lkstore.c: moved to as/link/
3910         * as/link/clean.mk: remove *.o
3911         * as/link/mcs51/alloc.h: deleted
3912         * as/link/mcs51/lkarea.c: added lnksect prototype
3913         * as/link/mcs51/lkdata.c,
3914         * as/link/mcs51/lklex.c,
3915         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
3916         * as/link/mcs51/lkmem.c,
3917         * as/link/mcs51/lknoice.c: removed include strcmpi.h
3918         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
3919         * as/link/mcs51/aslink.dsp,
3920         * as/link/mcs51/Makefile.aslink,
3921         * as/link/mcs51/Makefile.bcc,
3922         * as/link/mcs51/Makefile.in: updated for moved files
3923         * as/link/z80/lkarea.c,
3924         * as/link/z80/lkhead.c,
3925         * as/link/z80/lklex.c,
3926         * as/link/z80/lklibr.c,
3927         * as/link/z80/lklist.c,
3928         * as/link/z80/lkmain.c,
3929         * as/link/z80/lkrloc.c,
3930         * as/link/z80/lksym.c: synced with mcs51
3931         * as/link/z80/lkdata.c,
3932         * as/link/z80/lkeval.c,
3933         * as/link/z80/lkihx.c,
3934         * as/link/z80/lks19.c: cosmetic changes
3935         * as/link/z80/Makefile.in,
3936         * as/link/z80/linkgbz80.dsp,
3937         * as/link/z80/linkz80.dsp: updated for moved files
3938
3939 2006-09-16 Borut Razem <borut.razem AT siol.net>
3940
3941         * debugger/mcs51/sdcdb.c: partially fixed
3942           [ 1203664 ] sdcdb fails to open files w. two "." periods
3943         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
3944           debugger/mcs51/symtab.h: fixed indenting
3945         * configure.in, configure: up to date with latest Maarten's changes
3946
3947 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
3948
3949         as/link/mcs51
3950         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
3951         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
3952         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
3953         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
3954         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
3955         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
3956         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
3957         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
3958         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
3959         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
3960         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
3961         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
3962         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
3963         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
3964         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
3965         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
3966         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
3967         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
3968         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
3969         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
3970         as/link/mcs51/alloc.h,
3971         as/link/mcs51/clean.mk,
3972         as/link/mcs51/conf.mk,
3973         as/link/mcs51/Makefile.bcc,
3974         as/link/mcs51/Makefile.in,
3975         as/link/mcs51/readme.390,
3976         as/link/mcs51/strcmpi.c,
3977         as/link/mcs51/strcmpi.h,
3978         as/mcs51/clean.mk,
3979         as/mcs51/Makefile.bcc,
3980         as/mcs51/Makefile.in,
3981         configure,
3982         Makefile.in,
3983         sdcc.dsw: moved mcs51 linker to as/link/mcs51
3984
3985 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
3986
3987         * as/link,
3988         * as/link/Makefile.in,
3989         * as/link/z80/linkgbz80.dsp,
3990         * as/link/z80/linkz80.dsp,
3991         * configure,
3992         * link,
3993         * link/clean.mk,
3994         * link/Makefile.in,
3995         * link/README,
3996         * link/z80,
3997         * link/z80/aslink.h,
3998         * link/z80/clean.mk,
3999         * link/z80/conf.mk,
4000         * link/z80/linkgbz80.dsp,
4001         * link/z80/linkz80.dsp,
4002         * link/z80/lkarea.c,
4003         * link/z80/lkdata.c,
4004         * link/z80/lkeval.c,
4005         * link/z80/lkgb.c,
4006         * link/z80/lkgg.c,
4007         * link/z80/lkhead.c,
4008         * link/z80/lkihx.c,
4009         * link/z80/lklex.c,
4010         * link/z80/lklibr.c,
4011         * link/z80/lklist.c,
4012         * link/z80/lkmain.c,
4013         * link/z80/lkrloc.c,
4014         * link/z80/lks19.c,
4015         * link/z80/lksym.c,
4016         * link/z80/Makefile.in,
4017         * Makefile.in,
4018         * sdcc.dsw: moved link/ to as/link/
4019
4020 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
4021
4022         * as/mcs51/i51mch.c (machine): fixed warning
4023
4024 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4025
4026         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
4027
4028 2006-09-09 Borut Razem <borut.razem AT siol.net>
4029
4030         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
4031           sdcdb WIN32 native port
4032         * src/clean.mk: fixed
4033
4034 2006-09-08 Borut Razem <borut.razem AT siol.net>
4035
4036         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
4037
4038 2006-09-08 Raphael Neider <rneider AT web.de>
4039
4040         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
4041         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
4042             to gplink to disable processor mismatch warning and to allow
4043             the use of devices with only aliased (shared) memory banks,
4044           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
4045
4046 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4047
4048         * doc/sdccman.lyx: Some re-formating plus example on using
4049           #pragma preproc_asm +/-
4050
4051 2006-09-07 Borut Razem <borut.razem AT siol.net>
4052
4053         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
4054           section
4055
4056 2006-09-06 Borut Razem <borut.razem AT siol.net>
4057
4058         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
4059           line at sdcc.nsi:153
4060         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
4061
4062 2006-09-05 Borut Razem <borut.razem AT siol.net>
4063
4064         * configure.in, configure: support for winsock2
4065         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
4066           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
4067           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
4068           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
4069           debugger/mcs51/symtab.h: sdcdb WIN32 native port
4070
4071 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
4072
4073         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
4074           and OP_DEFS
4075         * support/regression/tests/bug1551947.c: new, added
4076         * src/SDCCsymt.h: strings are char* not byte*
4077
4078 2006-09-05 Raphael Neider <rneider AT web.de>
4079
4080         * device/lib/pic16/libdev/pic18f4550.c,
4081           device/include/pic16/pic18f4550.h: added PORTD/TRISD
4082             declarations/definitions from patch #1520949
4083
4084 2006-09-05 Raphael Neider <rneider AT web.de>
4085
4086         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
4087           byte-aligned bitfields, fixes #1539278
4088
4089 2006-09-05 Raphael Neider <rneider AT web.de>
4090
4091         * src/pic/gen.c (genReceive): skip unreferenced arguments,
4092           fixes #1544120
4093
4094 2006-09-04 Borut Razem <borut.razem AT siol.net>
4095
4096         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
4097         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
4098           -mno-cygwin is a part of the compiler name
4099         * support/scripts/sdcc_mingw32: don't disable ucsim
4100
4101 2006-09-03 Borut Razem <borut.razem AT siol.net>
4102
4103         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
4104         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
4105
4106 2006-09-03 Raphael Neider <rneider AT web.de>
4107
4108         * src/pic/ralloc.c,
4109         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
4110           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
4111           fixes #1550049
4112
4113 2006-09-01 Borut Razem <borut.razem AT siol.net>
4114
4115         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
4116           to make ppc-osx happy
4117
4118 2006-08-31 Borut Razem <borut.razem AT siol.net>
4119
4120         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
4121         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
4122         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
4123         * support/regression/ports/ds390/spec.mk,
4124           support/regression/ports/mcs51/spec.mk,
4125           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
4126           To run regression tests in mingw environment:
4127           make DEV_NULL=NUL CC=gcc
4128
4129 2006-08-30 Borut Razem <borut.razem AT siol.net>
4130
4131         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
4132           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
4133           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
4134           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
4135           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
4136           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
4137           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
4138           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
4139           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
4140           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
4141           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
4142           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
4143           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
4144           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
4145           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
4146           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
4147           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
4148           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
4149           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
4150           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
4151           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
4152           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
4153           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
4154           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
4155           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
4156           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
4157           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
4158           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
4159           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
4160           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
4161           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
4162           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
4163           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
4164           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
4165           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
4166           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
4167           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4168           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
4169           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
4170           ucsim WIN32 native port
4171
4172 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4173
4174         * doc/sdccman.lyx: added note on dynamic memory heap initialization
4175
4176 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4177
4178         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
4179         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
4180
4181 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
4182
4183         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
4184         * support/regression/tests/bug1546986.c: new, added
4185         * as/mcs51/.cvsignore,
4186         * debugger/mcs51/.cvsignore,
4187         * src/.cvsignore: deleted
4188
4189 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4190
4191         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
4192           definitions)
4193
4194 2006-08-20 Borut Razem <borut.razem AT siol.net>
4195
4196         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
4197           removed cl_listen_console::match(), cl_console::match(),
4198           restructured cl_commander::proc_input()
4199
4200 2006-08-16 Borut Razem <borut.razem AT siol.net>
4201
4202         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
4203           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
4204           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
4205
4206 2006-08-14 Borut Razem <borut.razem AT siol.net>
4207
4208         * support/regression/Makefile.in,
4209           support/regression/ports/pic14/gpsim.cmd,
4210           support/regression/ports/pic14/spec.mk,
4211           support/regression/ports/pic14/support.c:
4212           added pic14 regression test
4213
4214 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
4215
4216         * as/doc/asxhtm.html: documented changed ABS behaviour
4217         * as/doc/README: fixed some typos
4218
4219 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
4220
4221         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
4222           not defined on host
4223
4224 2006-08-12 Borut Razem <borut.razem AT siol.net>
4225
4226         * support/regression/fwk/include/testfwk.h,
4227           support/regression/fwk/lib/testfwk.c,
4228           support/regression/generate-cases.py,
4229           support/regression/Makefile.in:
4230           regression test framework does not depend on function pointers and
4231           variable arguments
4232
4233 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
4234
4235         * device/include/stddef.h: c temporary hack to fix bug 1518273
4236
4237 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4238
4239         * device/include/mcs51/cc2510fx.h: added
4240         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
4241           to projects.
4242
4243 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
4244
4245         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
4246         * as/z80/Makefile.in: added strcmpi.c
4247         * as/z80/z80adr.c: added upper case registers and lower case conditionals
4248         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
4249
4250 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
4251
4252         * device/lib/gbz80/asm_strings.s,
4253         * device/lib/gbz80/crt0_rle.s,
4254         * device/lib/gbz80/div.s,
4255         * device/lib/gbz80/mul.s,
4256         * device/lib/gbz80/shift.s,
4257         * device/lib/z80/asm_strings.s,
4258         * device/lib/z80/crt0_rle.s,
4259         * device/lib/z80/div.s,
4260         * device/lib/z80/mul.s,
4261         * device/lib/z80/shift.s: changed to all lower case menmonics except the
4262           flags which are all upper case
4263
4264 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
4265
4266         * as/z80/asm.h: made CASE_SENSITIVE 1
4267         * link/z80/aslink.h: made CASE_SENSITIVE 1
4268         * src/z80/gen.c (throughout): made all conditionals upper case
4269         * support/regression/tests/bug1503067.c: new
4270
4271 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
4272
4273         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
4274           (shiftIntoPair): added case 2 for PAIR_IY,
4275           (setupToPreserveCarry): replaced parameters with iCode and check if
4276            PAIR_DE is in use to fix bug 1399290,
4277           (genPlus, genMinus): updated call to setupToPreserveCarry
4278         * support/regression/tests/bug1399290.c: new
4279
4280 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
4281
4282         * device/lib/Makefile.in (Z80SOURCES): enabled float support
4283         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
4284         * src/ds390/gen.c (shiftRLong),
4285         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
4286         * src/mcs51/gen.c (sameReg): changed to sameByte,
4287           (xch_a_aopGet): new,
4288           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
4289            shiftRLong): fixed bug 1533966
4290         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
4291           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
4292         * support/regression/Makefile.in: disabled z80, enabled ucz80
4293         * support/regression/tests/float_trans.c: enabled test for z80 and host
4294         * support/regression/tests/shifts2.c: new, for testing bug 1533966
4295
4296 2006-08-01 Borut Razem <borut.razem AT siol.net>
4297
4298         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
4299           comparison is always false due to limited range of data type
4300           on PPC64 machine (openpower-linux1) where "char = unsigned char"
4301
4302 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
4303
4304         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
4305         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
4306         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
4307         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
4308
4309 2006-07-31 Borut Razem <borut.razem AT siol.net>
4310
4311         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
4312           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
4313           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
4314           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
4315           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
4316           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
4317           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
4318           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
4319           enable ucsim mingw compilation. Serial port is disabled,
4320           since it uses termios.h API, which is not available on native
4321           WIN32
4322
4323 2006-07-31 Borut Razem <borut.razem AT siol.net>
4324
4325         * Small Device C Compiler 2.6.0 released
4326         * support/scripts/sdcc.nsi: added FULL_DOC option
4327         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
4328
4329 2006-07-28 Borut Razem <borut.razem AT siol.net>
4330
4331         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
4332         * doc/INSTALL.txt: updated
4333
4334 2006-07-27 Borut Razem <borut.razem AT siol.net>
4335
4336         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
4337           device/lib/pic/libdev/Makefile.in: fixed bug
4338           [ 1438354 ] pic libsdcc: distclean doesn't work
4339         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
4340           device/lib/pic16/libio/Makefile.in: fixed bug
4341           [ 1438344 ] pic16 lib: clean doesn't work properly
4342         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
4343
4344 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
4345
4346         * device/lib/pic/libsdcc/fsdiv.c,
4347         * device/lib/pic/libsdcc/fsmul.c,
4348         * device/lib/pic16/libsdcc/float/fsdiv.c,
4349         * device/lib/pic16/libsdcc/float/fsmul.c,
4350         * device/lib/_fsdiv.c,
4351         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
4352         * support/regression/tests/bug1520966.c: added
4353         * doc/knownbugs.html: removed [ 1520966 ] from the list
4354
4355 2006-07-25 Borut Razem <borut.razem AT siol.net>
4356
4357         * configure.in, configure, sdccconf_in.h: fixed bug
4358           [ 1519095 ] regression test onebyte.c fails on ppc64 host
4359         * doc/knownbugs.html: removed [ 1519095 ] from the list
4360
4361 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
4362
4363         * doc/knownbugs.html: added, contains list of known bugs at release
4364         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
4365
4366 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
4367
4368         * device/include/mcs51/compiler.h: added SFRX for xdata based special
4369           function registers and corrected defaults with additional warning
4370         * device/lib/malloc.c: cosmetic changes
4371         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
4372         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
4373           (fillGaps): and used it
4374
4375 2006-07-20 Raphael Neider <rneider AT web.de>
4376
4377         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
4378           output unless SDCCPICDEBUG is set
4379         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
4380           output if SILENT is set
4381
4382 2006-07-11 Borut Razem <borut.razem AT siol.net>
4383
4384         * doc/README.txt: updated
4385
4386 2006-07-10 Borut Razem <borut.razem AT siol.net>
4387
4388         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
4389           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
4390           in WIN32 installation
4391         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
4392           release candidate 1
4393
4394 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
4395
4396         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
4397         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
4398
4399 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
4400
4401         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
4402
4403 2006-07-06 Borut Razem <borut.razem AT siol.net>
4404
4405         * support/regression/tests/bitfields.c:
4406           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
4407         * support/regression/tests/constantRange.c:
4408           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
4409
4410 2006-07-04 Borut Razem <borut.razem AT siol.net>
4411
4412         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
4413           src/port.mk,
4414           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
4415           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
4416           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
4417           reverted changes from 2006-07-03
4418         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
4419         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
4420           added CPPFLAGS, used by the host port
4421
4422 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
4423
4424         * support/regression/valdiag/tests/switch.c,
4425         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
4426         * support/regression/tests/libmullong.c: fixed for host
4427         * support/regression/ports/host/spec.mk: disable all warnings for host,
4428         SDCC runs with --less-pedantic too
4429
4430 2006-07-03 Borut Razem <borut.razem AT siol.net>
4431
4432         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
4433           defined CPPFLAGS
4434         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
4435         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
4436           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
4437           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
4438           include ../port.mk
4439         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
4440           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4441           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
4442           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
4443
4444 2006-07-02 Raphael Neider <rneider AT web.de>
4445
4446         * src/pic16/devices.inc,
4447         * device/include/pic16/pic18fregs.h,
4448         * device/include/pic16/pic18f4550.h,
4449         * device/lib/pic16/pics.all,
4450         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
4451
4452 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
4453
4454         * as/hc08/lkaomf51.c (OutputName),
4455         * as/mcs51/lkaomf51.c (OutputName),
4456         * as/z80/asmain.c (asmbl),
4457         * src/ds390/main.c (asmLineNodeFromLineNode),
4458         * src/hc08/ralloc.c (hc08_assignRegisters),
4459         * src/mcs51/main.c (asmLineNodeFromLineNode),
4460         * src/xa51/ralloc.c (checkRegMask),
4461         * src/xa51/gen.c (emitcode),
4462         * src/z80/gen.c (_emit2),
4463         * src/SDCCast.c (searchLitOp),
4464         * src/SDCCglobl.h,
4465         * support/packihx/packihx.c,
4466         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
4467         * src/ds390/gen.c (aopPutUsesAcc),
4468         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
4469         * support/regression/tests/libmullong.c (mullong_wrapper),
4470         * src/SDCCsymt.c (powof2),
4471         * src/SDCCast.c,
4472         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
4473         * src/SDCCsymt.h: added TYPE_TARGET_*
4474         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
4475         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
4476         SDCCast because 1) header problems 2) this is the right place
4477         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
4478         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
4479         prototype
4480
4481 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4482
4483         * src/SDCCicode.h: removed buggy semicolon in unused macro
4484         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
4485         search for previous definiton of auto symbols too,
4486         (findPrevUse): fixed logic of emitWarnings
4487
4488 2006-06-26 Raphael Neider <rneider AT web.de>
4489
4490         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
4491           PCLATH and PCLATU on interrupts, potentially fixes #1505141
4492
4493 2006-06-25 Raphael Neider <rneider AT web.de>
4494
4495         * device/lib/pic/libm: NEW, added math library functions
4496         * device/lib/pic/libsdcc: NEW; added float support functions
4497         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
4498         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
4499           NEW, added math related headers
4500         * device/include/asm/pic/features.h: NEW
4501         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
4502           (popGet): allow larger offsets for AOP_PCODE,
4503           (genDataPointerSet): handle literals explicitly, more debug output,
4504           (genAssign): fixed for float using aopLiteral ;-)
4505         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
4506           GOTO initialisation routine
4507         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
4508           flag on registers, fixes #1469043 (local variables do not work)
4509         * src/pic/main.c (_pic14_do_link),
4510         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
4511           available
4512
4513 2006-06-25 Borut Razem <borut.razem AT siol.net>
4514
4515         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
4516           characters printed (not including the trailing '\0' used to end
4517           output to strings). Problem detected in regression test bug-927659.c.
4518           NOTE: printf() family functions should return int instead
4519           unsigned int!
4520         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
4521           specifier are printed as themselves
4522         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
4523           support flags, width and precision specifiers
4524
4525 2006-06-24 Borut Razem <borut.razem AT siol.net>
4526
4527         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
4528           to the list of sdcc tagrets not supporting bit type
4529         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
4530           testfor pic16 due to bug:
4531           [ 1511794 ] pic16: regression test bug-895992.c fails
4532
4533 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
4534
4535         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
4536         * src/SDCCglue.c (initPointer), fixed bug 1496419
4537         * support/regression/tests/bug1496419.c: new, added
4538
4539 2006-06-22 Borut Razem <borut.razem AT siol.net>
4540
4541         * support/regression/ports/pic16/support.c: use gpsim usart module from
4542           libgpsim_modules library
4543
4544 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4545
4546         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
4547         IP0H to IPH0.
4548
4549 2006-06-19 Raphael Neider <rneider AT web.de>
4550
4551         * src/pic/glue.h,src/pic16/glue.h: added prototypes
4552         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
4553           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
4554           (pic14printExterns,pic14printPublics,pic16printPublics,
4555           pic16_printExterns): use new functions to emit symbols
4556           (picglue,pic16glue): emit publics before emitting externs
4557         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
4558           locally defined functions to avoid bug #1443651
4559         * support/regression/tests/bug-716242.c: removed pic16 workaround
4560         * support/regression/ports/pic16/spec.mk: ignore errors during build
4561
4562 2006-06-19 Raphael Neider <rneider AT web.de>
4563
4564         * src/pic/glue.h: added pic14aopLiteral prototype
4565         * src/pic/glue.c (pic14aopLiteral): return unsigned int
4566         * src/pic/gen.c: removed stdint.h dependency
4567           (aopGet): use Safe_strdup()
4568           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
4569           (genDataPointerSet): use pic14aopLiteral()
4570         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
4571           for pic16; thanks to Bernhard and Maarten
4572
4573 2006-06-18 Borut Razem <borut.razem AT siol.net>
4574
4575         * support/regression/tests/structflexarray.c: flexible array members
4576           not supported by gcc < 3
4577         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
4578           GUI tool by default
4579         * src/pic/gen.c: don't include [p]strdin.h on solaris
4580         * support/Util/pstdint.h: addad svn attributes
4581         * support/regression/tests/constantRange.c,
4582           support/regression/tests/rotate.c: include inttypes.h instead
4583           stdint.h on solaris, addad svn attributes
4584
4585 2006-06-18 Raphael Neider <rneider AT web.de>
4586
4587         * src/SDCCsymt.c (initCSupport): change return type of divschar to
4588           int for PIC16
4589         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
4590           (pic16_genMinusBits): simplified sign-extension
4591           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
4592             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
4593             adjusted to correctly handle mixed-signed operands, disabled
4594             now unused multiplciation routines
4595         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
4596           (assignResultValue): added argument denoting the size of the result
4597             as returned by the function (fixes upcasts in assigning from
4598             function calls: char foo(); int i = foo();)
4599           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
4600             function result to assignResultValue
4601           (genMult): disabled inlined multiplication code
4602           (genDiv): augmented to also handle the modulus operator, fixed to
4603             handle mixed-signed operands correctly
4604           (genMod): simply call genDiv, disabled unused code
4605           (genAssign): fixed missing (sign-)extension on result
4606         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
4607             valid char operands, allow signed operands for native code, added
4608             division and modulo operator handling
4609         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
4610
4611         As a consequence, onebyte.c (if split into two files) and muldiv.c
4612         pass regression tests.
4613
4614 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4615
4616         * doc/Makefile.in: two runs of makeindex seem needed to get
4617         correct page references in the index of sdccman.pdf
4618         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
4619
4620 2006-06-17 Borut Razem <borut.razem AT siol.net>
4621
4622         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
4623
4624 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4625
4626         * doc/sdccman.lyx: updated, added (porting source code, debugging),
4627         mentioned ec2drv and paulmon
4628
4629 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
4630
4631         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
4632           consecutive abs areas
4633           (find_empty_space, allocate_space): added map to handle codemap or
4634            xdatamap,
4635           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
4636            absolute idata and xdata
4637         * as/mcs51/lkmem.c (summary2): updated legend
4638
4639 2006-06-16 Raphael Neider <rneider AT web.de>
4640
4641         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
4642
4643 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
4644
4645         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
4646           1208515
4647         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
4648
4649 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
4650
4651         * src/port.h (struct PORT): added field gp_tags, to hold the tag
4652         value of generic pointers,
4653         * src/avr/main.c,
4654           src/ds390/main.c,
4655           src/hc08/main.c,
4656           src/izt/i186.c,
4657           src/izt/tlcs900h.c,
4658           src/mcs51/main.c,
4659           src/pic/main.c,
4660           src/pic16/main.c,
4661           src/xa51/main.c,
4662           src/z80/main.c: PORT structure, added elements for gp_tags field,
4663         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
4664         fields in the PORT structure of each port,
4665         * src/SDCCast.c (decorateType): allow processing of generic pointers
4666         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
4667         S_FIXED symbols
4668
4669 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
4670
4671         * link/z80/lkgb.c,
4672         * link/z80/lkgg.c,
4673         * src/pic16/gen.c,
4674         * src/pic16/main.c,
4675         * src/pic16/pcode.c,
4676         * src/pic/main.c,
4677         * src/pic/pcoderegs.c,
4678         * src/SDCCicode.c,
4679         * src/SDCCmain.c,
4680         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
4681           bug 1504689 on minGW
4682
4683 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4684
4685         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
4686
4687 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
4688
4689         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
4690
4691 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
4692
4693         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
4694           for optimization
4695
4696 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
4697
4698         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
4699         to a char variable. Fixed bug #1504211
4700         * device/include/pic16/adc.h,
4701         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
4702         and fixed bug #1364390
4703
4704 2006-06-10 Borut Razem <borut.razem AT siol.net>
4705
4706         * CVSROOT: removed the CVS left-over
4707
4708 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
4709
4710         * as/hc08/asmain.c (asexit),
4711         * as/hc08/lkmain.c (lkexit),
4712         * as/mcs51/asmain.c (asexit),
4713         * as/mcs51/lkmain.c (lkexit),
4714         * src/SDCCglue.c (DEFSETFUNC),
4715         * src/SDCCmain.c (linkEdit, assemble),
4716         * support/librarian/sdcclib.c (AddRel),
4717           replaced unlink() by standard C remove()
4718         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
4719         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
4720           gatherImplicitVariables): new, added to fix bug 608752,
4721           (createFunction): added gatherImplicitVariables()
4722         * src/SDCCast.h: added createRMW prototype
4723         * src/SDCCsymt.h (struct symbol): added infertype
4724         * support/regression/tests/bug608752.c: new, added
4725
4726 2006-06-10 Raphael Neider <rneider AT web.de>
4727
4728         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
4729           multibyte dummy reads (fixes #1503234)
4730
4731 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
4732
4733         * device/include/mcs51/compiler.h: new, added header file to enable
4734           creating common sfr definition header files for different compilers
4735
4736 2006-06-05 Raphael Neider <rneider AT web.de>
4737
4738         * src/pic16/{pcode.h,genarith.c}:
4739           introduced pCodeOp combining any two pCodeOps (previously only
4740           two register operands could be combined), removed pcop2 from
4741           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
4742         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
4743         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
4744           rewritten to use new PO_TWO_OPS
4745         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
4746         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
4747           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
4748           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
4749           (pic16_get_op): embraced return arg to allow #define return(x),
4750             added new case for combined opcodes
4751           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
4752           (pic16_pCode2str,pic16_getRegFrompCodeOp,
4753            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
4754
4755 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
4756
4757         * src/SDCCval.c (checkConstantRange): added
4758         * src/SDCCval.h: added checkConstantRange
4759         * support/Util/SDCCerr.c,
4760         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
4761         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
4762         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
4763         * src/SDCCast.c (decorateType): added checkConstantRange,
4764         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
4765         can be emitted with the correct always true/false warning,
4766         added optimization for double '!';
4767         result of decorateType() must be assigned back to the tree, because
4768         decorateType() can change the tree
4769         * src/SDCCicode.c (geniCodeLogic),
4770         (geniCodeAssign): replaced new checkConstantRange, added warnings,
4771         (checkConstantRange): removed, it was only a fragment which never
4772         emitted a warning
4773         * src/SDCCsymt.c (computeType): fixed promotion for
4774         "-1 < (unsigned bit) b"
4775         * src/pic/ralloc.c (packRegsForAssign),
4776         * src/pic16/ralloc.c (packRegsForAssign),
4777         * src/hc08/ralloc.c (packRegsForAssign),
4778         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
4779         from mcs51
4780         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
4781         * support/regression/tests/constantRange.c: added
4782         * support/valdiag/tests/constantRange.c: added
4783         * support/valdiag/valdiag.py: added -DPORT_HOST=1
4784
4785 2006-06-02 Borut Razem <borut.razem AT siol.net>
4786
4787         * support/regression/ports/pic16/support.c: increase stack size
4788           to 255 bytes
4789         * support/regression/Makefile.in: sort tests by name so that the
4790           resutlts can be compared on different machines / platforms
4791
4792 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4793
4794         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
4795         * src/ds390/gen.c (emitLabel): new, added,
4796           (genDjnz): fixed stack overflow bug,
4797           (throughout): cosmetic changes to sync with mcs51/gen.c,
4798           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
4799         * src/mcs51/gen.c (genEndFunction): small optimization,
4800           (throughout): cosmetic changes to sync with ds390/gen.c
4801
4802 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4803
4804         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
4805           (_print_format): fixed printing pointers
4806         * src/mcs51/gen.c (emitLabel, movb): new, added,
4807           (genAssign): small optimization,
4808           (genDjnz): fixed stack overflow bug,
4809           (throughout): replaced sprintf with SNPRINTF,
4810           replaced mcs51_regWithIdx with REG_WITH_INDEX,
4811           replaced emitcode("mov", "b,...") with MOVB(...),
4812           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
4813           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
4814         * src/mcs51/peeph.def: added rules 140 and 264
4815         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
4816           so they may get optimized into registers
4817
4818 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
4819
4820         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
4821           immediately when encountered,
4822           (printUsage): always use stderr even on windows
4823
4824 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
4825
4826         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
4827         (processParms): fixed bug #1247551
4828         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
4829         parseCmdLine, main): print '--version' to stdout,
4830         print 'help' to stdout if --help is given,
4831         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
4832         arguments are given; fixed --help
4833
4834 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
4835
4836         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
4837         * support/regression/tests/bug-1493710.c: added
4838
4839 2006-05-27 Borut Razem <borut.razem AT siol.net>
4840
4841         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
4842           static instead auto
4843         * support/regression/ports/pic16/support.c: increase stack size
4844           from default 64 bytes to 128 bytes
4845         * support/regression/tests/staticinit.c,
4846           support/regression/tests/float.c: regression tests fully enabled
4847           for pic16 port by putting the initialized data arrays into the code
4848           section
4849         * support/regression/ports/pic16/spec.mk: don't link default libraries.
4850           This was changed by mistake in the previous version.
4851
4852 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
4853
4854         * src/pic16/gen.c (genFunction, genEndFunction): some
4855         beautifications, fixed bug with falsely restoring FSR2 in large
4856         stack model, thanks to Beau E. Cox for reporting the bug
4857
4858 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4859
4860         * debugger/mcs51/break.c,
4861         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
4862           use %p to print pointers, made address variables unsigned
4863         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
4864         * debugger/mcs51/symtab.c (parseSymbol): must return something
4865         * src/mcs51/gen.c (aopForSym): small optimization,
4866            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
4867           (freeAsmop): added missing break,
4868           (aopPut): removed parameter bvolatile, determine it inside the function,
4869           (saveRegisters, unsaveRegisters): small optimization,
4870           (genIpush): removed pointless check,
4871           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
4872           replaced sprintf with SNPRINTF,
4873           replaced strcpy with strncpyz,
4874           updated aopPut calls,
4875           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
4876         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
4877
4878 2006-05-24 Borut Razem <borut.razem AT siol.net>
4879
4880         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
4881           modification of test for the pic16 port, put the array to the code
4882           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
4883
4884 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4885
4886         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
4887         * support/Util/pstdint.h: added
4888
4889 2006-05-22 Borut Razem <borut.razem AT siol.net>
4890
4891         * src/regression/Makefile: removed bool2.c test, added -q linker option
4892         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
4893           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
4894           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
4895           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
4896           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
4897           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
4898           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
4899           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
4900           define SUPPORT_BIT_TYPES 0, removed unused bit variables
4901
4902 2006-05-22 Raphael Neider <rneider AT web.de>
4903
4904         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
4905           bug #1492360 (problematic due to generic pointers, see code)
4906
4907 2006-05-22 Borut Razem <borut.razem AT siol.net>
4908
4909         * support/regression/ports/pic16/specs.mk: removed stack size linker
4910           directive
4911         * support/regression/tests/array.c,
4912           support/regression/tests/bitopcse.c,
4913           support/regression/tests/bug-908454.c,
4914           support/regression/tests/malloc.c: modified for pic16 regression test
4915         * support/regression/tests/bitfields.c:
4916           pic16 - excluded bitfileds of size > 8
4917         * support/regression/tests/bp.c: pic16 - reduced data size
4918         * support/regression/tests/bug-221100.c: pic16 - reduced data size
4919         * support/regression/tests/bug-460010.c:
4920           pic16 - used the absolute address the fits in memory
4921         * support/regression/tests/bug-716242.c:
4922           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
4923         * support/regression/tests/float.c:
4924           pic16 - excluded - data size too big
4925         * support/regression/tests/onebyte.c:
4926           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
4927         * support/regression/tests/shifts.c:
4928           pic16 - function names probably have to differ in first X characters
4929           (gpasm limitation?)
4930         * support/regression/tests/staticinit.c:
4931           pic16 - excluded some tests due error: no target memory available for
4932           section ".idata"
4933
4934 2006-05-22 Borut Razem <borut.razem AT siol.net>
4935
4936         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
4937           second try. Thanks Stas Sergeev once more.
4938
4939 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4940
4941         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
4942           (genLeftShift, genRightShift): fixed bug 1491627
4943         * src/hc08/peeph.def (rules 7, 8.x): added
4944         * support/regression/tests/shifts.c (ShiftLeftByParam,
4945           ShiftRightByParam, testShiftByParam): added to test variable shifting
4946
4947 2006-05-20 Raphael Neider <rneider AT web.de>
4948
4949         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
4950         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
4951           (allocReg): add only new registers to dynAllocRegs,
4952           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
4953             #1489055, #1445850, and probably #1483693
4954
4955 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
4956
4957         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
4958         bug in for-loop that didn't emit the last of CONFIG and ID registers
4959
4960 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
4961
4962         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
4963           with offset
4964         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
4965           1489016, 1434401 and 1490124
4966         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
4967           1489016, 1434401 and 1490124
4968
4969 2006-05-17 Borut Razem <borut.razem AT siol.net>
4970
4971         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
4972           thanks Stas Sergeev
4973
4974 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4975
4976         * device/include/mcs51/P89c51RD2.h,
4977         * device/include/mcs51/P89LPC901.h,
4978         * device/include/mcs51/P89LPC922.h,
4979         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
4980
4981 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4982
4983         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
4984         to fix missing stack pragma in compiled binary object file,
4985
4986 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
4987
4988         * support/packihx/configure.in,
4989         * support/packihx/configure: removed warning, autoconf >= 2.5x can
4990         determine sizeof basic types even while cross compiling
4991
4992 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
4993
4994         * src/avr/gen.c (aopop),
4995         * src/ds390/gen.c (aopOp),
4996         * src/hc08/gen.c (aopOp),
4997         * src/mcs51/gen.c (aopop),
4998         * src/pic16/gen.c (pic16_aopOp),
4999         * src/pic/gen.c (aopOp),
5000         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
5001         if size of operand is smaller than spill location
5002
5003 2006-05-12 Borut Razem <borut.razem AT siol.net>
5004
5005         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
5006           have to have CR/LF line endings even if they are checked out on *nix
5007           or on WIN32 in cygwin binmode
5008
5009 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
5010
5011         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
5012         * device/include/ds80c390.h: added sfr16 definitions
5013         * src/ds390/gen.c,
5014         * src/ds390/gen.h,
5015         * src/ds390/main.c,
5016         * src/ds390/ralloc.c,
5017         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
5018           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
5019           bit returning functions
5020         * support/regression/tests/sfr16.c: enabled test on ds390
5021
5022 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5023
5024         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
5025         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
5026
5027 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
5028
5029         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
5030         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
5031           (cl_address_space constructor): removed expensive initialization,
5032           (cl_address_space::get_cell): extended for late initialization,
5033           (cl_address_space::*): use late initialization,
5034           (cl_address_decoder::activate): removed expensive initialization,
5035           This reduced regression test running time by 25%
5036
5037 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
5038
5039         * packihx/,
5040         * configure.in,
5041         * configure,
5042         * sdcc.dsw,
5043         * Makefile.bcc,
5044         * Makefile.in,
5045         * support/packihx/Makefile.in,
5046         * support/packihx/clean.mk,
5047         * support/packihx/Makefile.bcc,
5048         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
5049
5050 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5051
5052         * src/SDCCval.c (valNot): fix for regression test failure
5053           of not.c on big endian hosts
5054
5055 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
5056
5057         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
5058
5059 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5060
5061         * device/lib/mcs51/Makefile.in: changed string comparison operator
5062           to = for POSIX compliance; == is bash extension
5063
5064 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
5065
5066         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
5067           kosmonaut_pirx
5068
5069 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
5070
5071         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
5072         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
5073         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
5074         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
5075         bug report #1478657,
5076
5077 2006-05-05 Borut Razem <borut.razem AT siol.net>
5078
5079         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
5080           making the html
5081
5082 2006-05-02 Borut Razem <borut.razem AT siol.net>
5083
5084         * doc/Makefile.in: removed *.ind dependency since there is no rule to
5085           create *.ind, which made make to fail if invoked with -j 2
5086
5087 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
5088
5089         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
5090           Hubert Sack for patch 1479782
5091
5092 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
5093
5094         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
5095
5096 2006-05-01 Raphael Neider <rneider AT web.de>
5097
5098         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
5099           (create_pic): store only prefix-free device name,
5100           (init_pic): check for device names with "16" prefix,
5101           (list_valid_pics),
5102         * src/pic/device.h (struct PIC_device),
5103         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
5104             stored device name,
5105         * device/include/pic/pic12f{635,675,629,683}.h,
5106         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
5107         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
5108         * device/include/pic/pic16f505.h,
5109         * device/lib/pic/libdev/pic16f505.c: removed
5110         * device/include/pic/pic14devices.txt: added support for pic12f
5111             devices, removed unsupported non 16-bit devices
5112             [above changes provided by patch from Zik Saleeba]
5113         * src/pic/*, src/pic16/*, device/include/pic16/*,
5114           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
5115
5116 2006-05-01 Borut Razem <borut.razem AT siol.net>
5117
5118         * configure.in, configure, doc/Makefile.in:
5119           sync with nightly build makefile - latex, dvipdf and dvips
5120           not needed any more
5121
5122 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
5123
5124         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
5125         in the library source
5126
5127 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
5128
5129         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
5130
5131 2006-04-28 Raphael Neider <rneider AT web.de>
5132
5133         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
5134         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
5135           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
5136         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
5137
5138 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
5139
5140         * device/lib/pic/libdev/Makefile.in,
5141         * device/lib/hc08/Makefile.in,
5142         * device/lib/gbz80/Makefile.in,
5143         * device/lib/z80/Makefile.in,
5144         * device/lib/ds390/Makefile.in,
5145         * device/lib/ds400/Makefile.in: added srcdir to include search path,
5146         thanks to Borut for the bug report
5147         * configure.in,
5148         * configure: always create doc/Makefile independent from --enable-doc
5149         * Makefile.in: always install from directory doc independent from
5150         --enable-doc
5151         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
5152         removed
5153         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
5154         * doc/Makefile.in: install *.txt if present
5155         * device/include/Makefile.in (install): added installation of pic/*.inc
5156         and pic/*.txt files again, they were erroneously removed
5157
5158 2006-04-28 Raphael Neider <rneider AT web.de>
5159
5160         * src/pic/{gen.c,main.h,pcode.c},
5161         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
5162             concerning signedness with casts
5163
5164 2006-04-28 Raphael Neider <rneider AT web.de>
5165
5166         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
5167             definition of an interrupt handler,
5168         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
5169             interrupt handler stuff from picglue() to separate routine,
5170           (picglue): enabled definition of intr handlers in files w/o main()
5171
5172 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5173
5174         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
5175           compilation with MSVC 2005 Express Edition (VC8)
5176
5177 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
5178
5179         * device/lib/Makefile: fixed build of gbz80 lib
5180
5181 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5182
5183         * support/regression/tests/bug-460010.c,
5184         * support/regression/tests/bug-524691.c,
5185         * support/regression/tests/bug-716242.c: removed conditional defines
5186           that are already in testfwk.h
5187
5188 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5189
5190         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
5191           (AccAXRsh1): added, shift right by 1,
5192           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
5193            AccAXLrl1
5194         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
5195
5196 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
5197
5198         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
5199         remove cast to same type
5200         * src/SDCCast.c (decorateType): fix for RFE 1475742,
5201         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
5202         * as/z80/Makefile,
5203         * link/z80/Makefile: removed, they have moved to
5204         Makefile.in files
5205         * configure,
5206         * configure.in: replaced duplicate message about ucsim by missing sdcpp
5207         * install-sh: fix bug #1204398 by setting umask 0022
5208         * device/lib/Makefile: separate build of z80 and gbz80 lib
5209
5210 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
5211
5212         Enabled VPATH feature: changed nearly all Makefiles (149 files).
5213         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
5214
5215         One basic decision: e.g. src/clean.mk includes further files. In order
5216         to make this work there are two solutions:
5217         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
5218           run configure on them. This way they can use
5219           'include $(srcdir)/port-clean.mk'
5220         - always include clean.mk by the Makefile at the same level. To avoid
5221           that `make clean` tries to include and build Makefile.dep the
5222           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
5223           implemented, because now even `make uninstall` doesn't create
5224           Makefile.in. clean.mk could be eliminated by pasting it in
5225           Makefile.in.
5226
5227         * debugger/mcs51/Makefile.in: build own objects from library sources
5228         (SLIB, SDCC) in current directory
5229
5230         * configure, configure.in: renamed --disable-device-lib-build in
5231         --disable-device-lib; added --enable-doc, the required tools are
5232         searched by configure; added result message; the toolchain for the
5233         belonging ports are now only built, if the port is enabled.
5234
5235         * support/regression/*: all output is written in directory gen, because
5236         the fwk and ports directories don't livet in the build tree using vpath
5237
5238         * doc/sdccman.lyx: renamed --disable-device-lib-build to
5239         --disable-device-lib, added --enable-doc, added section VPATH
5240
5241         * sim/ucsim/configure.in,
5242         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
5243         z80 are enabled by default
5244
5245 2006-04-24 Raphael Neider <rneider AT web.de>
5246
5247         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
5248             to config word, "pic14_"-prefixed some extern functions
5249           (pic14_emitConfigWord): emit __config directive(s) if assignment to
5250             config word has been found
5251         * src/pic/device.h: added prototypes
5252         * src/pic/pcode.c: added "pic14_"-prefix where needed
5253         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
5254             fixup
5255         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
5256             words,
5257           (pic14emitRegularMap): ignore config words,
5258           (pic14createInterruptVect): moved generating __config directives away
5259           (picglue): have __config directives emitted
5260
5261 2006-04-24 Borut Razem <borut.razem AT siol.net>
5262
5263         * doc/Makefile: sync with nightly build makefile
5264
5265 2006-04-24 Raphael Neider <rneider AT web.de>
5266
5267         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
5268             registers that have not been assigned proper liveranges,
5269             fixes #1469504 and #1474602,
5270           (pCodeRegOptimizeRegUsage): fixed typo in comment
5271
5272 2006-04-24 Borut Razem <borut.razem AT siol.net>
5273
5274         * device/examples/main8051.c: deleted - it was removed from CVS
5275           24.mar.2000 and after that modified 18.feb.2001, so it reappered
5276           after the transition to Subversion
5277         * src/SDCCalloc.h: deleted - it was removed  from CVS
5278           3.feb.2001 and after that modified 18.feb.2001, so it reappered
5279           after the transition to Subversion
5280         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
5281           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
5282           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
5283           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
5284
5285 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
5286
5287         * as/asx8051.dsp: added mcs51/strcmpi.h
5288         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
5289         * as/hc08/aslink.h: updated lnksect prototype
5290         * as/hc08/asm.h,
5291         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
5292         * as/hc08/asmain.c,
5293         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
5294           (newdot): handle A_ABS
5295         * as/hc08/asout.c,
5296         * as/mcs51/asout.c (outarea): output address
5297         * as/hc08/lkaomf51.c,
5298         * as/mcs51/lkaomf51.c: disabled unused array UsageType
5299         * as/hc08/m08pst.c,
5300         * as/mcs51/i51pst.c,
5301         * as/z80/z80pst.c: "ABS" is not A_OVR
5302         * as/hc08/lkarea.c (newarea): read a_addr,
5303           (lnkarea): added codemap array, sort absolute areas to the front,
5304            combine all GSINITx/GSFINAL,
5305           (find_empty_space, allocate_space): new functions,
5306           (lnksect): return next address, handle absolute sections
5307         * as/mcs51/lkarea.c (newarea): read a_addr,
5308           lnksect2 prototype changed,
5309           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
5310           (find_empty_space, allocate_space): new, factored out of lnksect2,
5311           (lnksect2): return next address, handle absolute sections
5312         * as/hc08/lkhead.c,
5313         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
5314         * as/hc08/lklibr.c (addfile, fndsym),
5315         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
5316           index out of range and detect both '\' and '/'
5317         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
5318         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
5319           regression tests (ds390 cannot return bool yet)
5320         * doc/sdccman.lyx: changed version number, document changed --no-peep,
5321           document critical interrupts on z80, document changed SDCC define
5322         * src/asm.c (_asxxxx_mapping): fixed .org directive,
5323           (_a390_mapping): added .org directive
5324         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
5325           (genMultOneByte): fixed warnings
5326         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
5327           ones
5328         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
5329         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
5330           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
5331         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
5332         * src/pic16/main.c: removed newReg prototype
5333         * src/pic16/pcode.c,
5334         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
5335           warnings
5336         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
5337           ones
5338         * src/pic16/ralloc.c
5339         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
5340           to fix warnings
5341         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
5342           from short to PIC_OPTYPE
5343         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
5344         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
5345           optype from short to PIC_OPTYPE
5346         * src/port.h: made int_size unsigned to fix warnings
5347         * src/SDCC.y: fixed warning on MSVC
5348         * src/SDCCicode.c (getArraySizePtr): return unsigned int
5349         * src/SDCCopt.c (convertToFcall): fixed warnings
5350         * src/SDCCsymt.h: removed double prototype for genSymName
5351         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
5352           offset int to fix warnings
5353
5354 2006-04-22 Borut Razem <borut.razem AT siol.net>
5355
5356         * doc/sdccman.lyx, */Makefile, */Makefile.in:
5357           references to CVS replaced with Subversion
5358
5359 2006-04-21 Borut Razem <borut.razem AT siol.net>
5360
5361         * doc/sdccman.lyx, */Makefile, */Makefile.in:
5362           references to CVS replaced with Subversion
5363
5364 2006-04-19 Borut Razem <borut.razem AT siol.net>
5365
5366         * src/version.awk: adapted for svn
5367         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
5368           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
5369           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
5370           /binutils-avr/etc/*.vi, *.jin: removed all properties
5371           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
5372
5373 2006-04-19 Borut Razem <borut.razem AT siol.net>
5374
5375         * CVS to Subversion migration completed
5376
5377 2006-04-18 Borut Razem <borut.razem AT siol.net>
5378
5379         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
5380           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
5381
5382 2006-04-17 Borut Razem <borut.razem AT siol.net>
5383
5384         * device/include/Makefile.in: added pic/*.inc to the installation
5385
5386 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
5387
5388         * support/regression/collate-results.py: fixed output in case of
5389         a valdiag error
5390         * support/regression/generate-cases.py: fixed splitting of pathnames
5391         with dots
5392         * as/hc08/lklibr.c (addfile),
5393         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
5394
5395 2006-04-11 Raphael Neider <rneider AT web.de>
5396
5397         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
5398         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
5399         * src/pic16/pcode.c (assignValnums): fixed #1460578
5400
5401 2006-04-11 Raphael Neider <rneider AT web.de>
5402
5403         * device/lib/pic/libdev/*.c,
5404         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
5405           fixes #1468739, enables compilation in --std-c99 mode
5406         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
5407
5408 2006-04-11 Raphael Neider <rneider AT web.de>
5409
5410         * src/pic/device.c (find_device): removed debug output
5411           (list_valid_pics): enabled verbose listing of supported devices
5412         * device/include/stdbool.h: define bool as char for pic14/16 as well
5413
5414 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5415
5416         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
5417
5418 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5419
5420         * .version: bumped version to 2.5.6
5421         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
5422
5423 2006-04-06 Raphael Neider <rneider AT web.de>
5424
5425         * .version: bumped version to 2.5.6 (pic14 ABI changed)
5426         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
5427         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
5428           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
5429             pic14_constructAbsMap
5430           (pic14printPublics): declare absolute global symbols as global
5431           (pic14createInterruptVect),
5432         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
5433           (newReg): assume new registers unused, use correct name in
5434             hashtable (reg->name instead of name), more debugLog output
5435         * src/pic/device.h (PIC_device): added fields for verbose output
5436         * src/pic/device.c: moved device definition to pic14devices.txt,
5437             added routines for runtime parsing of pic14devices.txt,
5438             added support for second config word
5439         * src/pic/main.c (_process_pragma): removed #pragma maxram,
5440           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
5441           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
5442           (_pic14_parseOptions): moved pCodeInitRegisters here
5443           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
5444         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
5445           (pCodeInitRegisters): rewrapped comments, perpared new approach to
5446             handling the pseudo stack
5447         * device/lib/Makefile.in: ignore failures in objects-pic16,
5448         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
5449         * device/lib/pic/NEWS: document new dependency on picXXX.lib
5450         * device/lib/pic/Makefile.subdir,
5451         * device/lib/pic16/Makefile.subdir: improved clean rules
5452         * device/lib/pic/libdev/: NEW, pic14 device libraries
5453         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
5454         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
5455         * device/include/Makefile.in: create subdir and install pic14 headers
5456         * device/include/pic/p16f_common.inc: removed unused declarations
5457         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
5458             PICs from inc2h.pl v1.6,
5459             replaced BIT_AT macros with struct declarations
5460         * device/include/pic/pic14devices.txt: definition of supported devices,
5461             all above improvements contributed by Zik Saleeba, thanks
5462         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
5463         * support/scripts/sdcc.nsi: also install pic14 device libraries and
5464             headers
5465
5466 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5467
5468         * device/include/mcs51/c8051f410.h: added interrupt numbers,
5469         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
5470           thanks to Charles Olds
5471
5472 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5473
5474         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
5475
5476 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5477
5478         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
5479         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
5480         * support/regression/bug1464657.c: added, new test
5481
5482 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5483
5484         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
5485           version number
5486
5487 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5488
5489         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
5490           --no-peep and --peep-file <file> are used don't use default rules but
5491           do use the <file>
5492
5493 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5494
5495         * src/mcs51/gen.c (genCall): fixed bug 1457608
5496
5497 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5498
5499         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
5500         changes seem to cause (trigger?) problems with the build system.
5501
5502 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
5503
5504         * src/SDCCpeeph.c (operandsLiteral): new, added,
5505           (callFuncByName): inserted operandsLiteral
5506         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
5507
5508 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5509
5510         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
5511         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
5512
5513 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5514
5515         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
5516           implemented patch 1120823 Thanks to Willy De la Court (normal
5517           interrupts need an interrupt number now if they are made critical),
5518           and enabled nesting of critical functions though not for gbz80
5519           (genCritical, genEndCritical): added functions
5520           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
5521         * src/z80/mappings.i: added "ei" to all mappings
5522
5523 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5524
5525         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
5526         submitted by the Debian SDCC maintainer Aurelien Jarno:
5527         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
5528         archive with gcc 4.1 on mips and wrote the patch"
5529
5530 2006-03-16 Raphael Neider <rneider AT web.de>
5531
5532         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
5533           the left operand is shorter than the result (c* = lit-c* + int),
5534           fixes bug #1450796
5535         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
5536           OP_SYMBOL
5537
5538 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5539
5540         * src/.version: increased version number to 2.5.5
5541         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
5542         linking is done manually in pic16 port's _linkEdit,
5543         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
5544         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
5545         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
5546         allocate asmop as AOP_ACC,
5547         (aopForRemat): added parameter 'bool result' in function declaration,
5548         (pic16_aopGet): return AOP_ACC when accessing WREG,
5549         (pic16_popGetTempReg): minor modification,
5550         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
5551         'pic16_allocWithIdx',
5552         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
5553         calling function in absolute addresses,
5554         (genAssign): take into account AOP_ACC asmop,
5555         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
5556         * src/pic16/pcoderegs.c: some debug functions and lines added,
5557         * src/pic16/ralloc.c (decodeRegType): added but commented out,
5558         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
5559         register too,
5560         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
5561         call to allocReg, not by manually allocating a new one,
5562         (pic16_assignRegisters): now before going through the register
5563         allocating functions mark all registers as free. This eliminates some
5564         side effects resulting from peephole parser done earlier in the backbone
5565
5566 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
5567
5568         * src/SDCCicode.c (geniCodeLogic),
5569         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
5570
5571 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
5572
5573         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
5574           (genSend): bugfix, do not allocate and free twice,
5575           (shiftRLong): handle partially overlapping aops
5576         * support/regression/tests/bitopcse.c: fixed warning redefined idata
5577
5578 2006-03-08 Borut Razem <borut.razem AT siol.net>
5579
5580         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
5581           for pic16
5582
5583 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
5584
5585         * support/regression/tests/bug1409955.c: new, added
5586         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
5587         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
5588           (aopForSym, aopOp): increment asmop.allocated if reused,
5589           (freeAsmop): decrement asmop.allocated and check for zero instead of
5590           using asmop.freed,
5591           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
5592           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
5593            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
5594            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
5595            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
5596            genSignedRightShift, genRightShift, genDataPointerGet,
5597            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
5598            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
5599             in reverse order from allocation,
5600           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
5601             added swappedLR to keep track
5602         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
5603           pdata & code for GCC, z80, gbz80 & hc08
5604         * support/regression/tests/zeropad.c: moved defines to testfwk.h
5605
5606 2006-03-08 Raphael Neider <rneider AT web.de>
5607
5608         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
5609
5610 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
5611
5612         * device/include/mcs51/c8051f410.h: new SiLabs mcu
5613         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
5614         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
5615
5616 2006-03-06 Borut Razem <borut.razem AT siol.net>
5617
5618         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
5619           made the linker quiet
5620
5621 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5622
5623         * src/pic16/gen.c (genPcall): fixed bug #1443644
5624         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
5625         which dumps before the function entry point a data byte which represents
5626         the number of the local variables used by the specified function, added
5627         'xinst' for initial support for Extended Instruction Support,
5628         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
5629         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
5630         port->fun_prefix anymore (may change later),
5631         (genFunction, genEndFunction): do not store/restore local registers for
5632         _main (this should take care the --main-return command line option in
5633         the future),
5634         (genOr): removed some legacy pic-port instructions,
5635         * src/pic16/genarith.c (genAddLit): re-enabled old code because
5636         performing operations with SFR's causes data to be written more than
5637         once to each SFR. Perhaps SFRs should be handled in special cases...
5638         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
5639         pcode.h
5640         * src/pic16/main.c (_process_pragma): stack bound checking did not take
5641         into account for stack starting position,
5642         (struct OPTIONS pic16_optionsTable): added command line argument
5643         --extended or -y for Extended Instruction Support,
5644         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
5645         (deassignLRs): *** perhaps the most important change, old 'for' code
5646         (commented out for reference), didn't account for some registers which
5647         were left marked 'not free' after a pointer operation. The change
5648         reduces register usage a lot in some cases
5649
5650 2006-03-04 Borut Razem <borut.razem AT siol.net>
5651
5652         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
5653           _clean
5654         * support/regression/tests/bug-524697.c: decreased array size for
5655           mcs51 to fit into the internal RAM
5656         * support/regression/Makefile.in: a little bit more verbose
5657
5658 2006-03-03 Borut Razem <borut.razem AT siol.net>
5659
5660         * support/regression/fwk/lib/testfwk.c,
5661           support/regression/fwk/include/testfwk.h: introduced function
5662           _prints(), nonrecursive _printn(), call _initEmu() from main()
5663         * support/regression/ports/gbz80/support.asm,
5664           support/regression/ports/ucz80/support.asm,
5665           support/regression/ports/z80/support.asm,
5666           support/regression/ports/ds390/support.c,
5667           support/regression/ports/hc08/support.c,
5668           support/regression/ports/host/support.c,
5669           support/regression/ports/mcs51/support.c,
5670           support/regression/ports/xa51/support.c: added empty _initEmu()
5671           function
5672         * support/regression/ports/pic16/gpsim.cmd,
5673           support/regression/ports/pic16/spec.mk,
5674           support/regression/ports/pic16/support.c,
5675           support/regression/Makefile.in: added pic16 regression test
5676
5677 2006-03-01 Raphael Neider <rneider AT web.de>
5678
5679         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
5680           genConstPointerGet): use safe way of generating MOVFF to cover
5681             literals as well as registers, fixes bug #1440527
5682         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
5683             dereference
5684           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
5685             more correctly, fixes bug #1232186
5686           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
5687         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
5688             gplink guess the correct processor in more cases, applied patch
5689             from Till Riedel attached to and fixing bug #1436552
5690
5691 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5692
5693         * support/regression/tests/array.c: added, contains check for #1434401
5694         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
5695
5696 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
5697
5698         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
5699         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
5700         * device/include/mcs51/c8051f326.h,
5701         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
5702         * device/include/mcs51/c8051f000.h,
5703         * device/include/mcs51/c8051f018.h,
5704         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
5705           PCON_IDLE,PCON_STOP and added sfr16 definitions
5706
5707 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
5708
5709         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
5710           genGetWord): fixed bug 1409955
5711
5712 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
5713
5714         * device/include/hc08/mc68hc908gp32.h,
5715         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
5716
5717 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
5718
5719         * src/SDCCast.c (constExprValue): return NULL if not a value
5720         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
5721         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
5722         * support/regression/tests/bitfields.c: enabled signed bitfield for all
5723
5724 2006-02-13 Borut Razem <borut.razem AT siol.net>
5725
5726         * src/regression/ptrarg.c: added, fails due to bug #1430967
5727         * src/regression/Makefile: ptrarg.c added, ...
5728
5729 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
5730
5731         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
5732         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
5733
5734 2006-02-11 Borut Razem <borut.razem AT siol.net>
5735
5736         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
5737           print "Processor: xxx" message to stdout only if --verbose
5738
5739 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
5740
5741         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
5742         * support/regression/tests/bug1426356.c: added
5743         * support/regression/tests/bitfields.c: removed 2 tests
5744
5745 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
5746
5747         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
5748         * device/include/mcs51/c8051f330.h,
5749         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
5750           PCON_IDLE,PCON_STOP and added sfr16 definitions
5751         * device/lib/_divsint.c,
5752         * device/lib/_divuint.c,
5753         * device/lib/_divulong.c,
5754         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
5755           register bank bug for small stackauto
5756
5757 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
5758
5759         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
5760
5761 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
5762
5763         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
5764         * all.dsp: corrected several bin paths
5765         * device/include/mcs51/c8051f120.h,
5766         * device/include/mcs51/c8051f300.h,
5767         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
5768           to PCON_IDLE,PCON_STOP
5769         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
5770         * device/lib/printf_large.c (output_float): fixed bug 1388703
5771         * support/regression/tests/bug1057979.c: added test for bug 1388703
5772
5773 2006-02-08 Raphael Neider <rneider AT web.de>
5774
5775         * src/pic/pcode.c (pciTRIS): fixed typo,
5776           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
5777           (LinkFlow): fixed handling of flows that end in a call,
5778           (ReuseReg): perform safety check earlier
5779         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
5780             to work with flows at the beginning of a pBlock,
5781             fixes #1426557 (Symbol not previously defined),
5782           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
5783             usage information
5784           (RemoveUnusedRegisters): update register usage info
5785         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
5786             created, reuse existing ones instead
5787         * src/pic/gen.c (genPcall): fixed #1424719
5788
5789 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
5790
5791         * link/z80/lkmain.c,
5792         * link/z80/lklex.c,
5793         * link/z80/lkdata.c,
5794         * link/z80/aslink.h: fixed build on current cygwin:
5795         replaced getline() by lk_getline()
5796
5797 2006-02-01 Borut Razem <borut.razem AT siol.net>
5798
5799         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
5800           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
5801           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
5802           src/regression/bool1.c, src/regression/bool2.c,
5803           src/regression/bool3.c, src/regression/call1.c,
5804           src/regression/compare.c, src/regression/compare10.c,
5805           src/regression/compare2.c, src/regression/compare3.c,
5806           src/regression/compare4.c, src/regression/compare5.c,
5807           src/regression/compare6.c, src/regression/compare7.c,
5808           src/regression/compare8.c, src/regression/compare9.c,
5809           src/regression/configword.c, src/regression/for.c,
5810           src/regression/inline.c, src/regression/mult1.c,
5811           src/regression/nestfor.c, src/regression/or1.c,
5812           src/regression/pointer1.c, src/regression/ptrfunc.c,
5813           src/regression/rotate1.c, src/regression/rotate2.c,
5814           src/regression/rotate3.c, src/regression/rotate4.c,
5815           src/regression/rotate5.c, src/regression/rotate6.c,
5816           src/regression/rotate7.c, src/regression/string1.c,
5817           src/regression/struct1.c, src/regression/sub.c,
5818           src/regression/sub2.c, src/regression/switch1.c,
5819           src/regression/while.c, src/regression/xor.c,
5820           src/regression/create_stc, src/regression/simulate,
5821           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
5822           regression tests
5823         * src/regression/gpsim_assert.h: added
5824
5825 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
5826
5827         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
5828         ((void (code *) (void)) 0) ();
5829         * as/hc08/aslex.c,
5830         * as/hc08/aslink.h,
5831         * as/hc08/asm.h,
5832         * as/hc08/asmain.c,
5833         * as/hc08/lkdata.c,
5834         * as/hc08/lklex.c,
5835         * as/hc08/lkmain.c,
5836         * as/mcs51/aslex.c,
5837         * as/mcs51/aslink.h,
5838         * as/mcs51/asm.h,
5839         * as/mcs51/asmain.c,
5840         * as/mcs51/lkdata.c,
5841         * as/mcs51/lklex.c,
5842         * as/mcs51/lkmain.c,
5843         * as/z80/aslex.c,
5844         * as/z80/asm.h,
5845         * as/z80/asmain.c: fixed build on current cygwin:
5846         replaced getline() by as_getline()
5847
5848 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5849
5850         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
5851         declarator in the symbol chain
5852         * src/SDCCsymt.h,
5853         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
5854         parameter list for function pointers
5855         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
5856         * support/regression/tests/bug-716242.c: added
5857
5858 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
5859
5860         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
5861         offset if possible
5862         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
5863
5864 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
5865
5866         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
5867         inifinitely recurseable, added static
5868         * support/regression/tests/bug-1408066.c: added
5869
5870 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
5871
5872         * src/SDCCicode.h,
5873         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
5874         renamed, added possibility to create "postLoopLbl"-labels
5875         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
5876         newiTempLoopHeaderLabel
5877         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
5878         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
5879         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
5880         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
5881         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
5882         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
5883         (basicInduction): fixed bug #136564, made static,
5884         (loopInduction): changed parameter of basicInduction, made static,
5885         (addPostLoopBlock): added
5886         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
5887         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
5888         findLoopEndSeq
5889         * support/regression/tests/bug-136564.c: added
5890         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
5891         --std-sdcc99 to LIBSDCCFLAGS
5892
5893 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
5894
5895         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
5896         while loop
5897         * support/regression/tests/bug-1406131.c: added
5898
5899 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
5900
5901         * src/SDCCast.c (decorateType): fix promotion of unary minus
5902         * src/SDCCsymt.c (computeType): beautified
5903         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
5904         (valUnaryPM, valComplement): fix sign and promotion,
5905         (valNot): ANSI: result type is int (SDCC: unsigned char)
5906         * support/regression/tests/uminus.c: speedup by removing superflous
5907         test case 'int'
5908         * support/regression/tests/onebyte.c: added promotion and signedness
5909         tests for unary minus
5910         * support/regressions/tests/bug-477927.c: disable warning about
5911         uninitialized variables
5912         * support/regression/tests/not.c: added
5913
5914 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
5915
5916         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
5917         * src/mcs51/gen.c (gen51Code): show final register usage after
5918         fillGaps in asm with --i-code-in-asm
5919         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
5920         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
5921         incUsed, rliveClear, adjustIChain): made static,
5922         (setFromRange): excluded because it's unused,
5923         (findPrevUseSym, markWholeLoop): added,
5924         (findPrevUse): rewritten; fixes bug 895992; now a complete search
5925         through all branches of predecessors enables sdcc to emit the warning
5926         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
5927         (rlivePoint): made static, added parameter emitWarnings which is only
5928         true during the first run out of two,
5929         (findRecursiveSucc, findRecursivePred): removed,
5930         (computeLiveRanges): made static, added parameter emitWarnings,
5931         (dumpIcRlive): added for debugging only
5932         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
5933         removed prototype of setFromRange()
5934         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
5935         in call of computeLiveRanges()
5936         * support/regression/tests/bug-895992.c: added
5937         * support/regression/tests/bug-971834.c: added
5938         * support/valdiag/tests/bug-895992.c: added
5939         * support/valdiag/tests/bug-971834.c: added
5940
5941 2005-12-18 Raphael Neider <rneider AT web.de>
5942
5943         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
5944           (genUnpackBits): improved code for direct operands,
5945           (genPackBits): improved code for literal assignment to bitfields
5946             and for direct destination operands (no FSR indirection),
5947             prevented redundant AND, fixes #1362800,
5948           (AccLsh): added parameter to disable masking of the result
5949         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
5950           skip instructions with side-effects (like incfsz),
5951           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
5952         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
5953         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
5954           fixes #1375263
5955
5956 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
5957
5958         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
5959         volatile variables as spill location
5960
5961 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
5962
5963         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
5964         replacing literals
5965         * support/regression/tests/bug-1376320.c: added
5966
5967 2005-12-08 Raphael Neider <rneider AT web.de>
5968
5969         * src/pic/device.c: renamed is_shared to pic14_is_shared
5970         * src/pic/gen.c (genIfx): re-enabled handling of sbits
5971         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
5972           (is_valid_identifier): added for above workaround
5973
5974 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
5975
5976         * device/lib/Makefile.in: fixed to enable port-specific-objects
5977         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
5978           char, thanks Hubert Sack
5979         * doc/sdccman.lyx: documented --xstack-loc,
5980           elaborated a bit more on interrupts and pitfalls,
5981           removed "setjmp/longjmp unsupported",
5982           documented some unsupported C99 features
5983         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
5984         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
5985           if, thanks Hubert Sack
5986         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
5987         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
5988           make make_library
5989         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
5990           regression tests can report resource usage (rfe 700441)
5991         * support/regression/collate-results.py: report resource usage
5992         * support/regression/ports/ds390/spec.mk,
5993         * support/regression/ports/hc08/spec.mk,
5994         * support/regression/ports/mcs51/spec.mk,
5995         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
5996         * support/regression/ports/ds390/uCsim.cmd,
5997         * support/regression/ports/hc08/uCsim.cmd,
5998         * support/regression/ports/mcs51/uCsim.cmd,
5999         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
6000         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
6001           library, use the default one
6002         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
6003           building the library
6004
6005 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
6006
6007         * config.dsp: added dependency on .version and configure_vc.awk
6008         * device/include/setjmp.h: updated for --stack-auto and --xstack
6009         * device/include/mcs51/at89c51snd1c.h: corrected line endings
6010         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
6011         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
6012         * device/lib/libsdcc.lib: added _setjmp
6013         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
6014           (decorateType): fixed bug 1372851,
6015           (optimizeGetHbit): fixed warning
6016         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
6017           array initialisation
6018         * support/regression/tests/bug1057979.c: added test for bug 1358192
6019         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
6020
6021 2005-12-03 Borut Razem <borut.razem AT siol.net>
6022
6023         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
6024           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
6025
6026 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
6027
6028         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
6029         createIval): implement symbol independant "flexible array member",
6030         (createIvalCharPtr): implemented flexible array initialisation with a
6031         string
6032         * src/SDCCsymt.c (copyStruct): removed,
6033         (getSize): fixed misleading comment,
6034         (getAllocSize): removed, the additional allocation size is now in
6035         sym->flexArrayLength,
6036         (checkStructFlexArray): new, syntax checks for flexible array members,
6037         (compStructSize): added syntax checks for "flexible array members"
6038         (copyStruct): removed,
6039         (copyLinkChain): removed inefficient fix for bug 770487
6040         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
6041         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
6042         symbol->flexArrayLength
6043         * src/SDCCerr.c,
6044         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
6045         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
6046         * support/regression/tests/structflexarray.c: added
6047         * support/valdiag/tests/structflexiblearray.c: added
6048
6049 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
6050
6051         * src/SDCCast.c (decorateType): fixed bug 1368489
6052         * support/Util/SDCCerr.c,
6053         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
6054
6055 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6056
6057         * device/include/mcs51/at89c51snd1c.h: added file submitted by
6058           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
6059
6060 2005-11-27 Borut Razem <borut.razem AT siol.net>
6061
6062         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
6063           support/cpp2/mkdeps.h: added command line option
6064           -obj-ext=<extension> to SDCPP to define object file externion, used
6065           for generation of make dependencies (-M)
6066         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
6067
6068 2005-11-26 Borut Razem <borut.razem AT siol.net>
6069
6070         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
6071           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
6072           added pic and pic16 libraries
6073
6074 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6075
6076         * device/include/float.h: Corrected typo in prototype of __fsgt
6077
6078 2005-11-25 Borut Razem <borut.razem AT siol.net>
6079
6080         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
6081           added creation of model-mcs51-stack-auto libraries
6082
6083 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
6084
6085         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
6086         and fields-list too
6087         * src/SDCCast.c (createIvalArray): removed obsolete comment
6088
6089 2005-11-24 Borut Razem <borut.razem AT siol.net>
6090
6091         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
6092           added missing device/lib/mcs51/crt*.asm sources
6093
6094 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
6095
6096         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
6097
6098 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
6099
6100         * device/lib/_fs2schar.c,
6101         * device/lib/_fs2sint.c,
6102         * device/lib/_fs2slong.c: optimized inline asm
6103
6104 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6105
6106         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
6107           Better handling of floats between -1.0 and 0.0.
6108
6109 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6110
6111         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
6112           (the missing "if"s prohibited removal of redundant labels)
6113
6114 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6115
6116         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
6117           Properly convert floats between -1.0 and 0.0 to long, int, and char
6118           types (max integer value of negative floats tends to zero).
6119         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
6120           Removed changes made so to work properly with floats between
6121           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
6122           and _fs2char.c
6123
6124 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
6125
6126         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
6127         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
6128         (genCast) cosmetic change
6129         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
6130         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
6131         from mcs51
6132         * support/regression/tests/bitfields (testSignedBitfields): added
6133
6134 2005-11-18 Borut Razem <borut.razem AT siol.net>
6135
6136         * sdcc/device/lib/Makefile.in: remove all unnecessary files
6137         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
6138           introduced SILENT option to make building of pic16 libraries less
6139
6140 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6141
6142         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
6143           Now they work properly with floats between -1.0 and 0.0
6144         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
6145
6146 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6147
6148         * src/SDCCicode.c (printOperand): added missing else
6149
6150 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
6151
6152         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
6153         reformatted for better readability
6154         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
6155         signed bitfields
6156
6157 2005-11-17 Borut Razem <borut.razem AT siol.net>
6158
6159         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
6160           introduced SILENT option to make building of pic16 libraries less
6161           verbose - used for nightly snapshot build
6162         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
6163           available on Win32 platforms.
6164         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
6165           medium, large, pic and pic16
6166
6167 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6168
6169         * device/lib/printf_large.c: Temporary patch for bug 1358192:
6170           printf("%f"...) sets fraction to zero.
6171
6172 2005-11-16 Raphael Neider <rneider AT web.de>
6173
6174         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
6175           fixes #1357221
6176         * src/pic/gen.c (genIfx): implemented for CARRY bit
6177         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
6178           to generic pointers, fixes #1357332,
6179           (pic16_movLit2f): NEW,
6180           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
6181
6182 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
6183
6184         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
6185
6186 2005-11-11 Raphael Neider <rneider AT web.de>
6187
6188         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
6189         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
6190           compute pointer's type from operand,
6191           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
6192           improved single bit reads, fixes bug #1353379
6193
6194 2005-11-09 Borut Razem <borut.razem AT siol.net>
6195
6196         * support/scripts/sdcc.nsi: added lib/pic to the package
6197
6198 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
6199
6200         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
6201
6202 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
6203
6204         * support/regression/tests/bug1348008.c: added
6205         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
6206         * support/regression/tests/bug1337835.c: updated comment
6207
6208 2005-11-06 Borut Razem <borut.razem AT siol.net>
6209
6210         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
6211           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
6212           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
6213           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
6214           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
6215           dynamic construction of cl_error_class and derivates - 2.nd try
6216
6217 2005-11-05 Borut Razem <borut.razem AT siol.net>
6218
6219         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
6220           bug, which caused Bus Errors on sparc solaris
6221
6222 2005-11-04 Borut Razem <borut.razem AT siol.net>
6223
6224         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
6225           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
6226           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
6227           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
6228           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
6229           and derivates to resolve the initialization problem on OSX
6230
6231 2005-11-02 Borut Razem <borut.razem AT siol.net>
6232
6233         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
6234           corrected typo - #include <winsock2.h>
6235
6236 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
6237
6238         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
6239           (_asxxxx_mapping): added org directive for future enhancements
6240
6241 2005-11-01 Borut Razem <borut.razem AT siol.net>
6242
6243         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
6244           enabled sockets on WIN32
6245         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
6246
6247 2005-10-31 Borut Razem <borut.razem AT siol.net>
6248
6249         * support/regression/generate-cases.py: escape backslashes in {testcase}:
6250           WIN32 backslash path delimiters should be escaped when used in C strings
6251         * support/regression/tests/bitfields.c: exclude failing assertions for
6252           __CYGWIN32__ and __MINGW32__ hosts
6253
6254 2005-10-30 Borut Razem <borut.razem AT siol.net>
6255
6256         * src/SDCCutil.c: corrected double comparison typo
6257
6258 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
6259
6260         * device/lib/medium/Makefile: added for new memory model medium
6261         * device/include/asm/mcs51/features.h: updated for medium/pdata
6262         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
6263           added Multiply & Accumulate sbit's and MAC0_PAGE define
6264         * device/include/mcs51/c8051f300.h: added sfr16 definitions
6265         * device/include/mcs51/c8051f310.h: added sfr16 definitions
6266         * device/lib/_mullong.c: update for medium model
6267         * device/lib/incl.mk: added medium model
6268         * doc/sdccman.lyx: documented medium model
6269         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
6270         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
6271         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
6272         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
6273           (allocParms): set SCLS and OCLS to pdata for medium model
6274         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
6275           for pdata,
6276           (powof2): return <0 if not power of 2
6277         * src/avr/gen.c (genBitWise): use updated powof2
6278         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
6279           (shiftR2Left2Result): small optimization in setup, save acc when storing,
6280           (shiftLLeftOrResult): use B if necessary
6281         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
6282         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
6283         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
6284         * support/regression/Makefile.in: added test-mcs51-medium
6285         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
6286
6287 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
6288
6289         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
6290         specifier unsigned
6291         * device/lib/time.c (mktime): fixed bug 1334315
6292
6293 2005-10-28 Raphael Neider <rneider AT web.de>
6294
6295         * device/include/pic/p16f_common.inc: added common declarations
6296         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
6297
6298 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
6299
6300         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
6301           (aopPutUsesAcc): added to predict accumulator use,
6302           (assignResultValue): save acc if necessary,
6303           (genMinusDec): store result if indirectly addressed,
6304           (genDivOneByte):  save acc if necessary,
6305           (movLeft2Result): bugfix if left already in acc,
6306           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
6307             attention to accumulator use (esp. pdata),
6308           (genReceive): receive pdata correctly
6309         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
6310         * src/SDCCicode.h: added isOperandInPagedSpace prototype
6311
6312 2005-10-27 Raphael Neider <rneider AT web.de>
6313
6314         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
6315
6316 2005-10-27 Raphael Neider <rneider AT web.de>
6317
6318         * .version: changed version to 2.5.4
6319         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
6320         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
6321           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
6322             arithmetics support routines
6323         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
6324         * device/lib/Makefile.in: also create installdir for pic
6325
6326         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
6327           pic14 port as well
6328         * src/pic/device.c (dump_sfr): rewritten to delegate register
6329           placement to the linker (use `extern sym' rather than sym EQU addr),
6330           (validAddress): fixed to check last specified address
6331         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
6332           (popGetLit): truncate literal value to 8 bit,
6333           (popGet): moved assert to more appropriate place
6334           (popGetExternal): create pCode operand from and mark the according
6335             symbol as being `extern'
6336           (popGetAddr): added sanity check on immediate's offset, provide
6337             GPOINTER tag on demand
6338           (aopPut): fixed for immediates,
6339           (mov2w_op): move operand's address or contents to WREG (depending on
6340             operand type), safer variant of mov2w,
6341           (movwf,call_libraryfunc): NEW, handy abbreviations,
6342           (get_argument_pcop,get_return_val_pcop,pass_argument,
6343           get_returnvalue): interface for accessing function parameters and
6344             return values,
6345           (assignResultValuei,genRet): use new parameter/return value interface
6346           (pic14_getDataSize): back to old version handling generic pointers,
6347           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
6348             provided implementation and/or fixed old one,
6349           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
6350             calls, removed legacy 8051 reference code
6351           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
6352           (loadSignToC): NEW, move the operands sign bit to CARRY,
6353           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
6354             genRightShiftSigned, accepts negative shift counts,
6355           (setup_fsr): load FSR and adjust IRP (indirect memory access),
6356           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
6357             generic pointers, __data pointers and __code pointers,
6358           (genUnpackBits,genPackBits): rewritten to work with generic pointers
6359             and signed bitfields, limit bitfields to 8 bit,
6360           (genDataPointerGet): fixed number of bytes read,
6361           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
6362           (genPointerGet,genPointerSet): fixed handling of __code pointers,
6363             pointers to constant data are no longer assumed to point to __code
6364             space, removed invalid pointer types,
6365           (bitpatternFromVal): retrieve the PICs representation of an integer
6366             or float literal,
6367           (genDataPointerSet): fixed assigning to po_immediate operands,
6368           (genGenPointerSet): implemented as library call,
6369           (genIfx): fixed incorrect condition,
6370           (genAddrOf): limit generic pointers' addresses to 2 bytes,
6371             provide GPOINTER tag according to destination's storage class,
6372           (genCast): added code to handle casting to generic pointers, added
6373             sign-/zero extension of the result
6374           (aop_isLitLike,op_isLitLike): fixed handling of immediates
6375         * src/pic/gen.h: added macros to access IRP bit in STATUS register
6376         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
6377           extend the result
6378         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
6379           address/register resides in the shared banks
6380           (emitSymbolToFile): improved to handle global and `pinned' symbols,
6381             put all variables into separate sections (have the linker arrange
6382             them)
6383           (picglue): put init code and interrupt handlers in separate sections
6384         * src/pic/main.c: added port specific options table, modified to PORT
6385           structure to make GPOINTERs 3 byte, added pic14_options
6386           (_pic14_do_link): private linking routine (update paths to libraries,
6387             add libsdcc.lib by default)
6388         * src/pic/main.h: declare pic14_options
6389         * src/pic/pcode.c: fixed instructions i/o relations,
6390           (RegCond): reverted to correct version,
6391           (newpCodeOpLit): truncate literals to 8 bit,
6392           (genericPrint): added debug output,
6393           (getRegFromInstruction): fixed for various operand types, simplified
6394           (BuildFlow): fixed broken handling of isntructions with labels
6395           (LinkFlow): start at last instruction in flow (skip trailing comments),
6396             pass the flow on to the next instruction after CALL
6397           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
6398           (insertPCodeInstruction): fixed inserting after a skip instruction,
6399           (DoBankSelect): fixed for labeled instructions
6400           (OptimizepBlock): honor --nopeep switch
6401           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
6402         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
6403         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
6404           (pCodeOptime2pCodes): allow disabling this optimization via
6405             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
6406             but is still buggy), started implementation of a dataflow based
6407             pCode optimization (CSE + dead code elimination)
6408           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
6409         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
6410           names are independant of the stack location and therefore portable across
6411           devices
6412
6413 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
6414
6415         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
6416           (selectSpil): fixed bug 1337835 by not spilling bit variables
6417         * support/regression/tests/bug1337835.c: added test for this bug
6418         * src/mcs51/peeph.def: restart after rule 3.c,
6419           addded rules 263.x to optimize loading constants
6420
6421 2005-10-26 Raphael Neider <rneider AT web.de>
6422
6423         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
6424         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
6425           (genAssign): emit warning when casting literals to generic pointer
6426             type, also applies when taking the address of a fixed variable,
6427           (genCast): improved casting to generic pointers
6428         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
6429           extern variables, added verbose error message
6430         * device/include/pic16/{string.h,errno.h}: added #pragma library c
6431
6432 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
6433
6434         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
6435         carry must be complemented too
6436         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
6437         could be emitted by genMinus
6438         * src/SDCCval.c (constVal): fixed bug 1305065
6439
6440 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
6441
6442         * src/SDCCast.c (addCast): added promotion for bit variables
6443         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
6444         promotion casts + optimisation
6445         (optimizeGetWord): fix warning 'i' might be used uninitialized
6446         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
6447         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
6448
6449 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
6450
6451         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
6452         all chars are promoted to int; promotion should be handled in SDCCast.c
6453
6454 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6455
6456         * device/lib/_strcmp.c: Fixed bug 1326457
6457
6458 2005-10-11 Raphael Neider <rneider AT web.de>
6459
6460         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
6461         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
6462
6463 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6464
6465         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
6466         * support/regression/tests/sfr16.c: added test for the sfr32 bug
6467
6468 2005-10-04 Raphael Neider <rneider AT web.de>
6469
6470         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
6471           device/lib/pic16/pics.all: added pic18f1320
6472         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
6473
6474 2005-09-30 Raphael Neider <rneider AT web.de>
6475
6476         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
6477         * src/pic16/devices.inc: NEW, provides device descriptions
6478         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
6479
6480 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
6481
6482         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
6483           GETHBIT
6484
6485 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
6486
6487         * doc/sdccman.lyx: updated Highest Order Bit documentation,
6488           documented Any Order Bit, Higher Order Byte and Higher Order Word
6489         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
6490         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
6491           (optimizeGetAbit): new, to get any bit, not only the high bit,
6492           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
6493           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
6494           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
6495           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
6496             RIGHT_OP: also try GETBYTE, GETWORD optimization,
6497             GETABIT, GETBYTE, GETWORD: decorate them,
6498           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
6499           (ast_print): added GETABIT, GETBYTE, GETWORD
6500         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
6501         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
6502           (geniCodeBinary): new generic binary icode,
6503           (ast2iCode): added GETABIT, GETBYTE, GETWORD
6504         * src/port.h: updated comment for PORT.hasExtBitOp
6505         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
6506           (genGetByte): new, to get a single byte,
6507           (genGetWord): new, to get a word from a long,
6508           (gen51Code): added GETABIT, GETBYTE, GETWORD
6509         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
6510
6511 2005-09-23 Raphael Neider <rneider AT web.de>
6512
6513         * configure.in, configure: have device/lib/pic configured
6514         * device/lib/Makefile.in: added model-pic14
6515         * device/lib/clean.mk: added pic/ to clean rule
6516         * device/lib/pic: added rudimentary pic14 library providing support
6517           functions for multiplication/division/generic pointer access
6518         * src/SDCCopt.c (convilong): mark support functions as extern
6519           for pic14 port as well
6520         * src/pic/gen.c (genMult): added assertions,
6521           (genpic14Code): emit warning on unhandled iCodes
6522         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
6523         * src/pic/pcode.c (pCodeOpCopy),
6524         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
6525           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
6526           SFR_REGISTER}), made safe for future extensions
6527         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
6528           instructions even if preceeded by SKIP instructions (also remove
6529           them); removed unused code
6530         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
6531           prevents leaving parts of the structure uninitialized after copying
6532
6533 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
6534
6535         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
6536           ago by me
6537         * support/regression/tests/addsub.c: added test for the bug
6538
6539 2005-09-21 Raphael Neider <rneider AT web.de>
6540
6541         * device/include/pic16/pic18f1220.h,
6542           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
6543         * device/lib/pic16/Makefile.rules: added missing opening paren
6544         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
6545           are provided in genutils.c,
6546           (genUminusFloat,genUminus,genCmpEq): added asserts on different
6547           operand/result sizes,
6548           (genCmp): assert on NULL pointers first, then check deref'ed values
6549         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
6550           result size
6551
6552 2005-09-18 Raphael Neider <rneider AT web.de>
6553
6554         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
6555           as these are now unused,
6556           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
6557         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
6558           local, avoids uninitialized pointer dereference on r->name
6559         * src/pic16/ralloc.c (newReg): fixed indentation
6560
6561 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
6562
6563         * src/SDCCval.c (constVal): fixed bug 730366
6564         * support/Util/SDCCerr.c,
6565         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
6566
6567 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
6568
6569         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
6570
6571 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
6572
6573         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
6574
6575 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6576
6577         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
6578           (hex2dec): made hex_digit unsigned char, removed ascii dependance
6579         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
6580           (hex2dec): made hex_digit unsigned char, removed ascii dependance
6581         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
6582         * packihx/packihx.c (hexDigit): made c unsigned char
6583         * as/mcs51/lklibr.c (fndsym),
6584         * link/z80/lkgb.c (gb),
6585         * link/z80/lklibr.c (fndsym),
6586         * link/z80/lkrloc.c (relr),
6587         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
6588         * src/SDCC.lex (checkCurrFile, process_pragma),
6589         * src/SDCCglue.c (spacesToUnderscores),
6590         * src/SDCCmain.c (setParseWithComma, processFile),
6591         * src/asm.c (tvsprintf, printCLine),
6592         * src/avr/gen.c (emitcode, aopPut),
6593         * src/ds390/gen.c (emitcode),
6594         * src/hc08/gen.c (emitcode, emitinline),
6595         * src/mcs51/gen.c (emitcode, genInline),
6596         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
6597           tokenizeLineNode),
6598         * src/pic/ralloc.c (debugLog),
6599         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
6600           tokenizeLineNode),
6601         * src/pic16/ralloc.c (debugLog),
6602         * src/z80/main.c (_process_pragma):
6603            made all ctype.h function calls safe
6604         * src/SDCCopt.c: include math.h for fabs
6605         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
6606           and used them throughout the code to make ctype.h function calls safe
6607         * src/ds390/main.c (asmLineNodeFromLineNode),
6608         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
6609         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
6610            unsigned char*
6611         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
6612           (newpCodeAsmDir): made ctype.h function calls safe
6613         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
6614           pic16_emitcode):  made lbp unsigned char*
6615         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
6616           (pic16_newpCodeAsmDir): made ctype.h function calls safe
6617         * src/xa51/gen.c (emitcode),
6618         * src/z80/gen.c (_emit2): made lbp unsigned char*
6619         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
6620            char*
6621
6622 2005-09-05 Raphael Neider <rneider AT web.de>
6623
6624         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
6625           access bank splitpoint
6626
6627 2005-09-05 Raphael Neider <rneider AT web.de>
6628
6629         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
6630
6631 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
6632
6633         * .version: changed to version 2.5.3
6634         * doc/sdccman.lyx: changed version to 2.5.3,
6635           documented --codeseg and --constseg and pragma codeseg and constseg,
6636           documented bit parameters (reentrant) and bit returning
6637         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
6638            currFunc->recvSize, but is this ok for all ports?
6639           (ast2iCode): result of ~ on unsigned char must be cast to int for
6640            bool to work
6641         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
6642           function pointers in bit space
6643         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
6644           (processFuncArgs): call port.reg_parm() with reentrancy info
6645         * src/port.h,
6646         * src/avr/main.c,
6647         * src/ds390/main.c,
6648         * src/hc08/main.c,
6649         * src/pic/main.c,
6650         * src/pic16/main.c,
6651         * src/xa51/main.c,
6652         * src/z80/main.c: port.reg_parm prototype extended with
6653           "bool reentrant" parameter
6654         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
6655           options.stackAuto for allocating bit register parameters
6656         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
6657           (genSend): set BitBankUsed if it is,
6658           (selectRegBank): factored out of genCall for use in genPcall,
6659           (genCall): removed redundant dtype assignmen, use selectRegBank,
6660           (genPcall): handle returning in Carry properly, save in F0 if needed,
6661           (genReceive): handle bit register parameters
6662         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
6663           (mcs51_assignRegisters): enable bit registers for all reentrant
6664            functions and don't set BitBankUsed unconditionally
6665         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
6666         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
6667         * support/regression/tests/funptrs.c: added tests for BOOL and for return
6668
6669 2005-08-27 Borut Razem <borut.razem AT siol.net>
6670
6671         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
6672         ppc-osx (Darwin) does not support -u option. It seems that it is
6673         supported only on Linux - GNU cp
6674
6675 2005-08-25 Borut Razem <borut.razem AT siol.net>
6676
6677         * sim/ucsim/gui.src/serio.src/Makefile.in,
6678           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
6679           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
6680           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
6681           install and strip, since the strip at /usr/ccs/bin should be used
6682           on solaris
6683
6684 2005-08-24 Borut Razem <borut.razem AT siol.net>
6685
6686         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
6687
6688 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
6689
6690         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
6691         ffffffffu
6692
6693 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
6694
6695         * as/mcs51/aslink.h: completed lkrloc.c prototypes
6696         * as/mcs51/lkmain.c (link_main): fixed warning
6697         * device/include/stdbool.h: ds390 has no advanced bit support yet
6698         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
6699         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
6700         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
6701           and updated their macros
6702         * src/SDCCval.c (constVal): updated comment for renamed b_long
6703
6704 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
6705
6706         * as/mcs51/asdata.c: changed ctype['['] to BINOP
6707         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
6708           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
6709           (oprio): set priority for '['
6710         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
6711            and adb_24_bit
6712         * as/mcs51/asm.h: added defines R_BIT and S_BIT
6713         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
6714         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
6715         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
6716           added overlayable BIT_BANK area
6717         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
6718           (summary2): explain 'T' in legenda
6719         * as/mcs51/lkrloc.c: replaced old K&R style,
6720           (relr): added R_BIT processing,
6721           (errmsg): added "Bit-addressable relocation error",
6722           (adb_bit): added for converting from byte- to bit-addressable space,
6723           (adb_24_bit): added for converting from byte- to bit-addressable space
6724         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
6725            used in reentrant functions now even as return value
6726         * device/lib/_gptrput.c (_gptrput): removed obsolete code
6727         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
6728           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
6729         * src/SDCCglobl.h: added indicator BitBankUsed
6730         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
6731            the bit registers b0-b7
6732         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
6733           (geniCodeCast): fixed bug 1263853,
6734           (geniCodeLogicAndOr): put result in bool or char,
6735           (geniCodeReceive): added parameter func for accessing the return type,
6736           (geniCodeFunctionBody): pass func to geniCodeReceive
6737         * src/SDCCmain.c: added indicator BitBankUsed
6738         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
6739         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
6740           (checkSClass): don't put automatic bool/bit on stack,
6741           (checkFunction): removed check on function cannot return bit
6742         * src/SDCCsymt.h: added newBoolLink prototype
6743         * src/mcs51/gen.c (rb1regs): added bit registers,
6744           (movc): created for assigning to carry,
6745           (pushReg, popReg): created for pushing registers,
6746           (sameRegs): check both AOP_REG and AOP_CRY types,
6747           (aopOp): handle bit registers,
6748           (aopPut): optimization no self-assign,
6749           (saveRegisters): push reg->base (bits) only once for bit registers,
6750            and use pushReg,
6751           (unsaveRegisters): pop reg->base only once and use popReg,
6752           (assignResultValue): added parameter func and return in carry for bits,
6753           (genIpush): optimization no reload in A if not changed,
6754           (genSend): bit parameters in reentrant functions are passed in bit
6755            registers by first assigning to bits in B, then save registers and
6756            copy B to bits,
6757           (genCall): handle returning in Carry properly, save it in F0 if needed,
6758           (genPcall): updated assignResultValue call, this is not safe yet for bit
6759            returning function !!!
6760           (genFunction): don't generate equ's for bit registers and use pushReg,
6761           (genEndFunction): take care of bit returning functions and use popReg,
6762           (genRet): return bit in Carry,
6763           (genIfx): optimize bit registers and other directly addressable bits,
6764           (genReceive): updated assignResultValue call
6765         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
6766           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
6767            registers when using stack-auto
6768         * src/mcs51/ralloc.c (_G): added allBitregs,
6769           (regs8051): added the bit registers,
6770           (createStackSpil): use macro IS_BIT,
6771           (getRegBit): added to allocate a bit register, else spill,
6772           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
6773           (updateRegUsage): factored out to ease stepping while debugging,
6774           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
6775            also allocate bit registers,
6776           (fillGaps): handle bit registers,
6777           (findAllBitregs): added to create bit vector with all bit registers,
6778           (mcs51_allBitregs): returns this bit vector,
6779           (mcs51_assignRegisters): when using stack-auto use bit registers for
6780            passing parameters and creating local variables
6781         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
6782
6783 2005-08-22 Borut Razem <borut.razem AT siol.net>
6784
6785         * device/lib/Makefile.in: replaced find option -or with -o
6786           to make it run on solaris
6787
6788 2005-08-22 Raphael Neider <rneider AT web.de>
6789
6790         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
6791           fixes #1265442 (crash on Solaris)
6792
6793 2005-08-20 Borut Razem <borut.razem AT siol.net>
6794
6795         * configure, configure.in: added tests for libsocket and libnsl libraries,
6796           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
6797           from support/regression/Makefile.in
6798         * support/regression/Makefile.in: added
6799         * device/lib/pic16/Makefile.common.in: force make to use bash shell
6800         * sim/ucsim/libtool: regenerated on sparc-solaris
6801         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
6802           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
6803           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
6804           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
6805           sparc-solaris, which doesn't use GNU ld linker
6806         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
6807         * as/Makefile: find on sparc-solaris does not support -maxdepth option
6808
6809 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
6810
6811         * src/mcs51/peeph.def: updated comments
6812
6813 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6814
6815         * device/lib/_gptrget.c,
6816         * device/lib/_gptrput.c: slightly shorter
6817         * doc/sdccman.lyx: incremented version
6818         * src/mcs51/peeph.def: moved peephole comments to the line of first
6819           change to better keep line correlation, reanimated 186.e
6820         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
6821
6822 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6823
6824         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
6825           David Saxton with quotes around file name.
6826
6827 2005-08-15 Borut Razem <borut.razem AT siol.net>
6828
6829         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
6830           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
6831           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
6832           make tests run on x86_64 platform
6833
6834 2005-08-13 Raphael Neider <rneider AT web.de>
6835
6836         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
6837           as it might be executed DURING a build (parallel make is wonderful)
6838
6839 2005-08-13 Raphael Neider <rneider AT web.de>
6840
6841         * device/lib/Makefile.in (port-specific-objects-pic16):
6842           revert to cp $(PORT)/bin/*.* $(PORTDIR)
6843         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
6844           dependency
6845         * device/lib/pic16/Makefile.rules: build subdirs before creating
6846           the library, removed builddir rule, create $(builddir) early in
6847           recurse rule, use empty recurse rule for leaf directories
6848         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
6849           mkdir errors (race condition), removed duplicate suffix "hex"
6850           from clean rules
6851         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
6852         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
6853           prevents mkdir -p from aborting on Alpha
6854
6855 2005-08-12 Raphael Neider <rneider AT web.de>
6856
6857         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
6858           db-statements in order to allow for arrays of pointers in code
6859           sections to be placed without interspersed 0-padding, fixes
6860           bug #1256215
6861         * (emitStatistics): fixed division by zero for pic18f1220
6862         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
6863           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
6864         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
6865         * (pic16_pCodeConstString): keep track of already emitted string
6866           literals to prevent "duplicate definitions of symbol _str_NR"
6867         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
6868           debug message
6869         * device/lib/Makefile.in: ignore failing PIC16 library builds
6870         * device/lib/pic16/Makefile: do not build if gputils are missing
6871         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
6872
6873 2005-08-10 Raphael Neider <rneider AT web.de>
6874
6875         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
6876           my last commit)
6877
6878 2005-08-10 Raphael Neider <rneider AT web.de>
6879
6880         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
6881           Rokas' patch to add the new fixed point type "__fixed16x16"
6882         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
6883           functions for __fixed16x16 arithmetics
6884         * device/lib/pic16: reimplemented the build system to support
6885           a separate build directory, better handling of libio (create
6886           the library in a separate subdir for each architecture) and
6887           easier configuration (centralized in Makefile.common)
6888
6889 2005-08-07 Raphael Neider <rneider AT web.de>
6890
6891         * src/pic16/gen.c (genrshTwo): fixed sign extension
6892         * src/pic16/device.c: added pic18f2320, 4220 and 4320
6893         * device/include/pic16/pic18f2220.h: changed some bit definitions,
6894           added T0CONbits
6895         * device/include/pic16/pic18f4220.h: NEW, header for
6896           pic18f4220 and pic18f4320
6897         * device/include/pic16/pic18fregs.h: added new devices,
6898           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
6899         * device/include/pic16/signal.h: resolved name clashes
6900           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
6901           to also allow testing for interrupt enable bits, added
6902           comments on how to use the macros
6903         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
6904         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
6905           register definitions for the devices
6906         * device/lib/pic16/pics.all: added new devices
6907         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
6908           allocated memory
6909         * device/lib/pic16/libc/stdlib/memfree: do not count
6910           the block header as free memory
6911         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
6912           simplified and added missing end-of-blocklist-marker
6913           (reported by Peter Onion, fixes #1252814)
6914         * (_mergeHeapBlock): fixed loop condition
6915         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
6916           len==0, restructured code
6917         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
6918           up a bit, reduced bitfield accesses, prevent endless loops
6919           in case of heap corruption
6920         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
6921           "unreferenced arguments/must return a value" warnings
6922         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
6923           replaced BAUDREG with SPBRG
6924         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
6925           device/lib/pic16/debug/gstack/gstack.c: replaced
6926           _naked, _asm, _endasm with __naked, __asm, __endasm
6927
6928 2005-08-05 Raphael Neider <rneider AT web.de>
6929
6930         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
6931           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
6932
6933 2005-08-05 Borut Razem <borut.razem AT siol.net>
6934
6935         * device/lib/Makefile.in: added missing ';'
6936         * configure: removed ^M characters
6937
6938 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6939
6940         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
6941           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
6942           License
6943
6944 2005-08-04 Borut Razem <borut.razem AT siol.net>
6945
6946         * configure.in: pic16 libraries build 2nd try - enable running
6947           configure in device/lib/pic16
6948         * configure: regenerated from configure.in
6949         * device/lib/Makefile.in: create $(PORT)/bin directory
6950
6951 2005-08-03 Raphael Neider <rneider AT web.de>
6952
6953         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
6954           to get/set values via pointers
6955         * (genUnpackBits,genPackBits): changed detection of
6956           ptr->bitfield vs. sym.bitfield, fixed access via generic
6957           pointers, removed dead (wrong) code for multibyte bitfields
6958         * (genNearPointerGet, genGenPointerGet): removed useless code,
6959           fixed bitfield detection, fixes #1250594
6960         * (genNearPointerSet): removed useless code
6961         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
6962           and introduced macro pic16_emitpcode that conditionally emits
6963           the origin of the following pCode (useful for debugging SDCC)
6964         * src/pic16/pcode.c: changed (and disabled) some debug outputs
6965         * (createDefmap): fixed handling of LFSR for --optimize-df
6966
6967 2005-08-02 Borut Razem <borut.razem AT siol.net>
6968
6969         * device/lib/Makefile.in: pic16 libraries build enabled since
6970           gputils-0.13.2 are now localy installed at sourceforge's compile farm
6971
6972 2005-08-02 Raphael Neider <rneider AT web.de>
6973
6974         * src/pic16/gen.c (genPackBits): removed deprecated warning
6975         * (genGenPointerSet): fixed bitfield detection
6976
6977 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6978
6979         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
6980
6981 2005-07-31 Raphael Neider <rneider AT web.de>
6982
6983         * device/lib/pic16/libdev/pic18f458.c,
6984           device/include/pic16/pic18f458.h: added missing T0CONbits
6985
6986 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6987
6988         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
6989
6990 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
6991
6992         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
6993
6994 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6995
6996         * device/include/mcs51/at89c51ed2.h: added.
6997
6998 2005-07-23 Raphael Neider <rneider AT web.de>
6999
7000         * src/pic/gen.h: added emitpcode macro for debugging
7001         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
7002           and replace by macro adding debug information on demand
7003         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
7004         * (gencjne): tried to fix; replaced with correct (slower) code
7005         * (gen{Unp,P}ackBits): fixed single bit access
7006         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
7007         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
7008           previous instruction
7009         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
7010           register has to be handled with care (forbidding movement
7011           of assignments/uses, removing assignments completely, ...)
7012         * (pCodeOptime2pCodes): make use of regIsSpecial
7013         * added lots of debugging output (commented out)
7014         * src/pic/rallloc.c (deassignLRs): prevent operand registers
7015           from being reused as result UNLESS it is known to work
7016
7017 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
7018
7019         * support/Util/dbuf.h: include <stddef.h> for size_t
7020         * .version: changed to version 2.5.2
7021
7022 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7023
7024         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
7025
7026 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7027
7028         * src/hc08/gen.c (genMinus): fixed bug #1241835,
7029           (genModOneByte): removed needless psha/pula
7030
7031 2005-07-22 Raphael Neider <rneider AT web.de>
7032
7033         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
7034           have PIC14 handled like PIC16, fixes broken pic14 linker calls
7035         * src/pic/gen.c (resolveIfx): do not "invent" labels
7036         * (genSkipc): changed to positive logic
7037         * (genSkipCond): removed as no longer needed
7038         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
7039           backport from PIC16
7040         * (genLeftShift): check operands are in different registers
7041         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
7042           INCF does not update CARRY...
7043         * src/pic/main.c: fixed _linkCmd
7044         * src/pic/pcode.c (unlinkpCode): added inactive code
7045         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
7046           alive (do not assign result and operand overlapping registers)
7047
7048 2005-07-22 Raphael Neider <rneider AT web.de>
7049
7050         * src/pic/device.c (dump_sfr): replaced register declaration with
7051           call to emitSymbolToFile() to avoid duplicate symbols
7052         * (assignRelocatableRegisters): do not declare external symbols
7053         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
7054           right (take size of type, not etype)
7055         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
7056         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
7057         * (packRegsForAccUse): disabled assignment of WREG as
7058           the result reg to prevent occurence of just fixed #1235003,
7059           fixes #1242954
7060         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
7061           symbols (avoids duplicate symbols in .asm file)
7062         * (pic14emitRegularMap): use emitSymbolToFile()
7063         * src/pic/gen.c (aopOp): fixed spillLocation handling
7064         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
7065         * (genDataPointerSet): removed unneccessary variables/output
7066
7067 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
7068
7069         * as/mcs51/lkarea.c: enlarged codemap for banked memory
7070         * device/lib/mcs51/crtbank.asm: added # to 0x0F
7071
7072 2005-07-21 Raphael Neider <rneider AT web.de>
7073
7074         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
7075           architecture cannot handle them efficiently, fixes bug #1235003
7076         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
7077           check for empty sets before using them (fixes bug #1232190)
7078
7079 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
7080
7081         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
7082           (lnksect2): generate warnings for memory overlap
7083         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
7084           constseg to set the name of these segments so you can instruct the linker
7085           to place them in banks
7086         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
7087         * src/SDCCglobl.h: added MODEL_HUGE to enum,
7088           added code_seg and const_seg to options
7089         * src/SDCCglue.c (emitMaps): use options.const_seg,
7090           (createInterruptVect): put interrupt vectors in segment HOME,
7091           (glue): put HOME before static segment and put the main glue in HOME,
7092           (glue): use options.code_seg
7093         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
7094         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
7095           these segments so you can instruct the linker to place them in banks
7096           (linkEdit): use code_loc for HOME segment which should be the first
7097           segment in code memory now
7098         * src/SDCCmem.c: fixed more stuff like bug 1238386
7099         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
7100           (changePointer): don't change function pointers to code pointers for
7101           banked functions,
7102           (compareType): added exceptional check for banked function pointers
7103         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
7104         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
7105           after static in code memory
7106         * src/mcs51/gen.c: added aopLiteralLong prototype,
7107           (aopForSym): use getSize for functions,
7108           (genCall): generate banked calls over one trampoline __sdcc_banked_call
7109           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
7110           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
7111           the segment,
7112           (genPcall): use call for literal function pointers and generate banked
7113           calls over the one trampoline so there's only one place for the user to
7114           modify according to his/hers hardware,
7115           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
7116           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
7117         * src/mcs51/main.c: added keyword banked,
7118           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
7119         * support/Util/SDCCerr.c,
7120         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
7121           needed for passing the bank and address to the trampoline
7122         * device/lib/mcs51/crtbank.asm: added for bankswitching
7123         * device/lib/mcs51/Makefile: added crtbank
7124
7125 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7126
7127         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
7128           for fields at offset 0 of a struct or union as reported
7129           on 2005-07-07 in the developer mailing list.
7130
7131 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
7132
7133         * src/SDCCmem.c: fixed bug 1238386
7134
7135 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7136
7137         * src/mcs51/peeph.def: added labelrefcounting for peepholes
7138           (patch #1144962), added peephole 300, enabled 259.x
7139         * doc/sdccman.lyx: removed screenshot and provided link instead
7140
7141 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7142
7143         * doc/sdccman.lyx: added section about debugging with ddd
7144         * doc/figures/ddd_example.eps: screenshot of debugging session
7145
7146 2005-07-04 Raphael Neider <rneider AT web.de>
7147
7148         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
7149           like CODE pointers, fixes #1115683
7150         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
7151           call, fixes bugs #1232211, #1228110,
7152           fixed wrong casts to pCodeFlow from pCodeInstructions
7153
7154 2005-07-04 Raphael Neider <rneider AT web.de>
7155
7156         * src/pic/gen.c (popGet): changed assert to allow for
7157           bit operands
7158         * (popGetAddr): changed signature to provide
7159           an additional index, patched all call sites
7160         * (genCmpEq): handle literal-like operands correctly
7161         * (genAddrOf): added sanity checks on __code/__data pointers
7162         * (genAssign): added handling of symbols from __code section
7163         * (gencjne): do not generate code for comparisons whose result
7164           is neither stored nor used, fixes bug #1171114
7165         * (AccLsh, AccRsh): operate on operand instead of WREG
7166         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
7167           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
7168           by known count
7169         * rewrote complete shift-by-literal logic, commented unused
7170           functions out
7171         * (genConstPointerGet): get multiple bytes (if result size > 1),
7172           fixed handling of non-immediate addresses
7173         * (genPointerGet): handle CODE pointers like CONST pointers
7174         * (genpic14Code): insert C-SRC lines as Cource-pCodes
7175         * ({aop,op}_isLitLike): NEW, single place to decide whether an
7176           operand is to be treated as a literal or not
7177         * (mov2w,genPcall,genCmpEq),
7178           src/pic/genarith.c: use aop_isLitLike() to decide between
7179           literal/register contents
7180         * (addSign): added missing offset
7181         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
7182           only emit comment in debug-mode,
7183           use {aop,op}_isLitLike throughout the file
7184         * src/pic/glue.c: fix initializers for pointers (work in progress)
7185         * src/pic/pcode.c (get_op): honor index on _const symbols
7186         * ({reset,dump}pCodeStatistics): NEW, estimate code size
7187         * (dumppBlock): added pCode size estimation
7188         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
7189           check for IS_SYMOP before OP_SYMBOL'ing
7190         * fixed indentation, compacted switch-statements
7191         * (allocReg): find free register and allocate it instead of
7192           allocating new registers all the time
7193         * (deassignLRs): prevent POINTER_GET's from being assigned the same
7194           registers as its operands (necessary only for multibyte GETs)
7195
7196 2005-07-01 Raphael Neider <rneider AT web.de>
7197
7198         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
7199           debugging .asm-output macros FENTRY + FEXIT
7200         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
7201           way... I wonder...
7202         * (emitpComment): NEW, printf to pCode
7203         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
7204           offset handling
7205         * (popGetAddr): NEW, variant of popGet to access an immediates
7206           high(er) bytes instead of the n'th byte of memory they reference,
7207           replaced popGet with popGetAddr where neccessary
7208         * (genDataPointerGet): reactivated and fixed implementation
7209         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
7210           accesses
7211         * (genDataPointerSet): fixed multibyte assignments
7212         * (genpic14Code): fixed --i-code-in-asm handling
7213         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
7214         * (genPlus): fixed index-out-of-bounds error
7215         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
7216         * src/pic/ralloc.c: added debugging output macro FENTRY2
7217         * (spillThis): fixed indentation, enbraced for-body for clarity
7218         * (rematStr): commented out as now unused
7219         * (regTypeNum): commented out special spill case (overwrites
7220           arbitrary values)
7221         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
7222
7223 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
7224
7225         * doc/sdccman.lyx: documented sfr16/sfr32,
7226           added example for using storage class with function pointers
7227         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
7228
7229 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
7230
7231         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
7232         * device/lib/_itoa.c,
7233         * device/lib/_ltoa.c: optimized codesize
7234         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
7235           but don't know how to suppress the double warning.
7236         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
7237         * support/Util/SDCCerr.c,
7238         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
7239
7240 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
7241
7242         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
7243           fixed old K&R prototypes
7244         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
7245         * device/lib/_gptrget.c,
7246         * device/lib/_gptrgetc.c,
7247         * device/lib/_gptrput.c: changed versions for new memory indicator values,
7248           also new versions for small generic pointers and banked generic pointers
7249         * src/port.h: added const_name
7250         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
7251         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
7252         * src/SDCCcse.c (findPrevIc): check all associative operators
7253         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
7254         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
7255         * src/SDCCmem.c: updated comments,
7256           set far-space to 0 for pdata, results in optimized code
7257         * src/SDCCmem.h: added macro CONST_NAME
7258         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
7259           moving the info into the highest bits, see also gptrget/gptrput
7260         * src/src.dsp: added sdcc.ico to project files
7261         * src/avr/gen.c (genCast): fixed bug 0x%d
7262         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
7263         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
7264           relation between ptr_type and DCL_TYPE,
7265           (genCast): fixed bug 0x%d
7266         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
7267           (CODE)" for const_name
7268         * src/hc08/gen.c (genCast): fixed bug 0x%d
7269         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
7270           (hc08_port): added "CONST (CODE)" for const_name
7271         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
7272           (aopForRemat, adjustArithmeticResult): disconnected direct relation
7273           between ptr_type and DCL_TYPE,
7274           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
7275           operand* and took AOP() inside function so sfr-ness can be checked,
7276           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
7277           new prototype,
7278           (genFunction, genEndFunction): optimized stack setup,
7279           (genMinus): optimized for literals with ending zeroes (in bytes),
7280           (genCast): fixed bug 0x%d
7281         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
7282           (mcs51_port): added "CONST (CODE)" for const_name
7283         * src/mcs51/peeph.def: made rule 226 more generic
7284         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
7285         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
7286         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
7287         * src/z80/main.c (z80_port): added NULL for const_name,
7288           (gbz80_port): added NULL for const_name
7289         * support/regression/tests/bug663539.c,
7290         * support/regression/tests/sfr16.c: new tests
7291
7292 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7293
7294         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
7295
7296 2005-06-24 Raphael Neider <rneider AT web.de>
7297
7298         * device/lib/pic16/libdev/pic18f[68][567]20.c:
7299           corrected typos...
7300         * device/include/pic16/signal.h: added USBIF
7301           and SIG_USB
7302
7303 2005-06-24 Raphael Neider <rneider AT web.de>
7304
7305         * device/lib/pic16/libdev/pic18f2455.c,
7306           device/include/pic16/pic18f2455.h: NEW
7307         * device/include/pic16/pic18fregs.h,
7308           device/lib/pic16/pics.all,
7309           src/pic16/device.c: added 18f2455
7310         * device/lib/pic16/libdev/pic18f[68][567]20.c,
7311           device/include/pic16/{pic18f[68][567].h,usart.h}:
7312           replaced MULTIPLE_USARTS define with more relaible
7313           compatibility sfrs (for USART access)
7314
7315 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
7316
7317         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
7318           and the output asm file line is printed on two lines.
7319
7320 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7321
7322         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
7323           BGT, BLE, BHI, and BLS instructions
7324         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
7325           genCmpEq): removed
7326         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
7327           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
7328           fixes bug #1216342
7329         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
7330
7331 2005-06-15 Raphael Neider <rneider AT web.de>
7332
7333         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
7334         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
7335         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
7336           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
7337           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
7338
7339 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7340
7341         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
7342           Marcel Telka in bug #1215704
7343
7344 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
7345
7346         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
7347           located in shared memory bank.
7348
7349 2005-05-31 Raphael Neider <rneider AT web.de>
7350
7351         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
7352           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
7353           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
7354
7355 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
7356
7357         * device/lib/_strncpy.c: fixed the fix
7358
7359 2005-05-26 Raphael Neider <rneider AT web.de>
7360
7361         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
7362           initializers with \0, bug #1208187
7363         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
7364           intializers with \0, bug #1208187
7365
7366 2005-05-26 Raphael Neider <rneider AT web.de>
7367
7368         * src/pic16/glue.c (pic16_printIvalChar): fixed string
7369           initializers with \0, bug #1208187
7370         * src/pic16/main.c (_process_pragma): added sanity checks
7371           for stack position and size, emit warnings when appropriate
7372
7373 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
7374
7375         * device/lib/_strncpy.c: fixed not filling with \0
7376
7377 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7378
7379         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
7380           createFunction),
7381         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
7382           compound_statement),
7383         * src/SDCCsymt.h,
7384         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
7385
7386 2005-05-24 Raphael Neider <rneider AT web.de>
7387
7388         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
7389
7390 2005-05-24 Raphael Neider <rneider AT web.de>
7391
7392         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
7393           TRISE definitions, closes bug #1162453
7394
7395 2005-05-22 Raphael Neider <rneider AT web.de>
7396
7397         * src/pic16/main.c (_process_pragma): check for missing
7398           arguments to pragmas code and udata
7399         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
7400           consistency fixes to match other headers (thanks to Jim Paris)
7401         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
7402
7403 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
7404
7405         * src/SDCCicode.c (isOperandEqual): fixed missing ;
7406
7407 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
7408
7409         * support/regression/tests/bug1198642.c: new test
7410         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
7411         * src/SDCCcse.c (findPrevIc): added comment, please have a look
7412         * support/scripts/resource.h,
7413         * support/scripts/resource.rc,
7414         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
7415         * support/scripts/sdcc.ico: added 32x32 icon
7416
7417 2005-05-18 Raphael Neider <rneider AT web.de>
7418
7419         * device/lib/pic16/libdev/pic18f*.c,
7420         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
7421           keywords to "__sfr" and "__at (X)"
7422         * device/include/pic16/pic18fregs.h: added pic18f4520
7423         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
7424           #1203088 (MPLAB compatibility)
7425
7426 2005-05-17 Raphael Neider <rneider AT web.de>
7427
7428         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
7429         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
7430         * device/lib/pic16/pics.all: added new devices
7431         * src/pic16/device.c: added support for pic18f4520
7432
7433 2005-05-16 Raphael Neider <rneider AT web.de>
7434         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
7435         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
7436         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
7437           convenience function for bit access
7438
7439 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7440
7441         * device/lib/printf_large.c: fixed bug 1193299
7442         * support/regression/tests/bug1057979.c: added test %3.3s
7443
7444 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7445
7446         * device/include/mcs51/8051.h,
7447         * device/include/mcs51/8052.h: made parseable with lint
7448         * device/include/mcs51/lint.h: added include file for (sp)lint
7449         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
7450         * doc/cdbfileformat.lyx,
7451         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
7452
7453 2005-05-14 Raphael Neider <rneider AT web.de>
7454
7455         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
7456         * device/lib/pic16/libc/stdlib/itoa.c (new)
7457         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
7458         * device/lib/pic16/libio/Makefile: exclude subdir according to
7459           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
7460         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
7461         * src/pic16/gen.c (genFunction): prevent annoying warning
7462         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
7463           nameclashes on BeOS
7464         * support/cpp2/cppmain.c (cpp_output_string): new
7465         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
7466           fixes bug 1116802
7467
7468 2005-05-13 Borut Razem <borut.razem AT siol.net>
7469
7470         * src/SDCCmain.c (linkEdit): fixed bug 1195202
7471
7472 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7473
7474         * .version: changed to version 2.5.1; back to bleeding edge development
7475
7476 2005-05-11 Borut Razem <borut.razem AT siol.net>
7477
7478         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
7479           generate PDF version 1.3 documents
7480
7481 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7482
7483         * .version: changed to version 2.5.0
7484
7485 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7486
7487         * doc/sdccman.lyx: updated weblinks, index and smaller updates
7488
7489 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7490
7491         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
7492         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
7493         well as many smaller updates.
7494         * .version: changed to version 2.5.0-pre1
7495
7496 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7497
7498         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
7499
7500 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
7501
7502         * support/regression/tests/bug1185672.c: added
7503         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
7504           bug 1185672
7505         * src/mcs51/gen.c (genCall): added comments, made it look safer
7506         * src/mcs51/gen.c (genEndFunction): simplified
7507
7508 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
7509
7510         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
7511
7512 2005-04-14 Borut Razem <borut.razem AT siol.net>
7513
7514         * fixed bug 1045046 - SIGSEGV with really simple code?:
7515           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
7516           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
7517
7518 2005-04-14 Borut Razem <borut.razem AT siol.net>
7519
7520         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
7521           src/pic16/device.h: temporarily disabled experimental #inline pragma
7522           for 2.5.0 release
7523
7524 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
7525
7526         * device/include/z80/stdio.h,
7527         * device/include/z80/string.h: removed these highly incomplete files so
7528           SDCC can use the default ones in device/include/
7529
7530 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7531
7532         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
7533         gcc warning.
7534         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
7535         fix sdcpp warnings.
7536
7537 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
7538
7539         * device/include/malloc.h: removed redundant __reentrant prototypes
7540         * device/lib/_mullong.c: added working xstack variant in asm (C version
7541           doesn't pass regression tests)
7542         * device/lib/bpx.c: used __data and made bpx char for mcs51
7543         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
7544           (createFunction): fixed bug with xstackPtr
7545         * src/SDCCcse.c: corrected comments
7546         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
7547           (killDeadCode, eBBlockFromiCode): removed unused code
7548         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
7549           corrected comments
7550         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
7551           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
7552           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
7553           (genModOneByte): fixed warning in MSVC
7554         * src/mcs51/main.c (): added comments
7555         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
7556
7557 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
7558
7559         * src/SDCCmain.c (linkEdit): oops, changed one line too many
7560
7561 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
7562
7563         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
7564
7565 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
7566
7567         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
7568         characters arrays of larger size than the declared one.
7569
7570 2005-04-10 Borut Razem <borut.razem AT siol.net>
7571
7572         * src/pic/gen.c (genInline),
7573           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
7574           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
7575           (findNextInstruction), (findPrevInstruction),
7576           (findInstructionUsingLabel),
7577           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
7578         * src/pic/pcode.c (findLabel): added missing '\n'
7579         * src/src.dsp: added SDCCdwarf2.c to the project
7580
7581 2005-04-09 Borut Razem <borut.razem AT siol.net>
7582
7583         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
7584
7585 2005-04-08 Raphael Neider <rneider AT web.de>
7586
7587         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
7588           into the chain after a given one) and mergeDefmapSymbols (combine
7589           defmap entries for each symbol per pcode)
7590         * (createDefmap): have defmap entries merged in the end
7591         * (defmapReplaceSymRef): split defmap entries covering two accesses to
7592           a symbol before replacing one access type's symbol, merge symbols in
7593           the end (replacement symbol might already have an entry)
7594         * (assignValnums): keep reference to written WREG intact
7595
7596 2005-04-08 Raphael Neider <rneider AT web.de>
7597
7598         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
7599           Alpha)
7600
7601 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
7602
7603         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
7604         bytes
7605
7606 2005-04-07 Raphael Neider <rneider AT web.de>
7607
7608         * device/include/pic16/usart.h: added compatibility defines for
7609           devices with more than one USART
7610         * device/include/pic16/pic18f[68][567]20.h: activated above defines
7611
7612 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7613
7614         * device/lib/Makefile.in: updated for port specific include
7615
7616 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7617
7618         * support/regression/ports/mcs51/spec.mk: added mcs51 include
7619
7620 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7621
7622         * device/include/8051.h,
7623         * device/include/8052.h,
7624         * device/include/at89S8252.h,
7625         * device/include/at89c55.h,
7626         * device/include/at89x051.h,
7627         * device/include/at89x51.h,
7628         * device/include/at89x52.h,
7629         * device/include/mcs51reg.h,
7630         * device/include/reg51.h,
7631         * device/include/reg764.h,
7632         * device/include/regc515c.h,
7633         * device/include/sab80515.h: (re)moved these 12 files
7634         * device/include/mcs51/8051.h,
7635         * device/include/mcs51/8052.h,
7636         * device/include/mcs51/at89S8252.h,
7637         * device/include/mcs51/at89c55.h,
7638         * device/include/mcs51/at89x051.h,
7639         * device/include/mcs51/at89x51.h,
7640         * device/include/mcs51/at89x52.h,
7641         * device/include/mcs51/mcs51reg.h,
7642         * device/include/mcs51/reg51.h,
7643         * device/include/mcs51/reg764.h,
7644         * device/include/mcs51/regc515c.h,
7645         * device/include/mcs51/sab80515.h: and added them here
7646
7647 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
7648
7649         * device/include/stdarg.h: changed SDCC specific keywords to double
7650           underlined form.
7651         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
7652           mcs51 and ds390.
7653         * device/include/hc08/mc68hc908gp32.h,
7654         * device/include/hc08/mc68hc908jb8.h,
7655         * device/include/hc08/mc68hc908jkjl.h,
7656         * device/include/hc08/mc68hc908qy.h: fixed comments
7657         * device/include/mcs51/README: updated
7658         * device/include/mcs51/c8051f120.h: added PINRSF
7659         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
7660         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
7661           amidst code. Also inline is not supported.
7662
7663 2005-04-06 Raphael Neider <rneider AT web.de>
7664
7665         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
7666         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
7667           callers stack/frame pointers
7668
7669 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
7670
7671         * device/include/pic16/usart.h: added, missing in previous commit,
7672         * device/include/pic16/adc.h: fixed typo,
7673         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
7674         commit,
7675         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
7676         <p18fxxx.inc>
7677         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
7678         uninitialized because a bug appears with gplink
7679         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
7680         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
7681         complains for unrecognised option
7682
7683 2005-04-05 Raphael Neider <rneider AT web.de>
7684
7685         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
7686           structs as well (using memcpy)
7687         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
7688           on ISRs (GOTO has no label)
7689         * src/pic16/device.h: added OF_OPTIMIZE_DF
7690         * src/pic16/main.c: added compiler switch --optimize-df to enable the
7691           new data flow analysis/optimization
7692         * src/pic16/pcode.c: added (prototypes for and implementation of)
7693           dataflow analysis functions, fixed pCodeInstructions' inCond and
7694           outCond values, made RCALL a branch instruction
7695         * (pic16_unlinkpCode): keep C line if possible
7696         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
7697           C line moved if possible
7698         * (pic16_getRegFrompCodeOp): NEW, improved version of...
7699         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
7700           to use new pic16_getRegFrompCodeOp (works for more SFRs)
7701         * (pic16_BuildFlow): fixed skip instructions with label (did not start
7702           new flow)
7703         * (pic16_getJumptabpCode): NEW, needed in...
7704         * (LinkFlow): fixed handling of jumptables, calls and conditional
7705           branches
7706         * (pic16_InsertCommentAfter): NEW
7707         * (pic16_pCodeReplace): made verbose and flow preserving
7708         * (AnalyzeFlow): added call to data flow analysis
7709         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
7710         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
7711         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
7712
7713 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7714
7715         * src/SDCCast.c (decorateType): fixed bug #1105626
7716
7717 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
7718
7719         * device/include/asm/pic16/features.h,
7720         * pic18f*.h headers,
7721         * device/include/pic16/adc.h,
7722         * device/include/pic16/delay.h,
7723         * device/include/pic16/i2c.h,
7724         * device/include/pic16/malloc.h,
7725         * device/include/pic16/stdio.h,
7726         * device/include/pic16/stdlib.h,
7727         * device/include/pic16/string.h,
7728         * device/lib/pic16/libc/stdio/printf_tiny.c,
7729         * device/lib/pic16/libc/stdio/printf_small.c,
7730         * device/lib/pic16/libc/stdio/strmgpsim.c,
7731         * device/lib/pic16/libc/stdio/strmmssp.c,
7732         * device/lib/pic16/libc/stdio/strmusart.c,
7733         * device/lib/pic16/libc/stdio/vfprintf.c,
7734         * device/lib/pic16/libc/stdlib/ltoa.c,
7735         * device/lib/pic16/libc/stdlib/putchar.c,
7736         * device/lib/pic16/libc/stdlib/x_ftoa.c,
7737         * device/lib/pic16/libc/stdlib/memchrpgm.c,
7738         * device/lib/pic16/libc/stdlib/memchrram.c,
7739         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
7740         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
7741         * device/lib/pic16/libio/adc/adcbusy.c,
7742         * device/lib/pic16/libio/adc/adcread.c,
7743         * device/lib/pic16/libio/adc/adcsetch.c,
7744         * device/lib/pic16/libio/usart/ubaud.c,
7745         * device/lib/pic16/libio/usart/ubusy.c,
7746         * device/lib/pic16/libio/usart/udrdy.c,
7747         * device/lib/pic16/libio/usart/uopen.c,
7748         * device/lib/pic16/libio/usart/uputc.c,
7749         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
7750         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
7751         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
7752         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
7753         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
7754         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
7755         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
7756         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
7757         specific keywords to double underlined form,
7758         * device/lib/pic16/libc/Makefile.rules,
7759         * device/lib/pic16/libsdcc/Makefile.rules,
7760         * device/lib/pic16/libm/Makefile,
7761         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
7762         to compile with C standard set in Makefile.common
7763         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
7764         rand.c and crc.c in compilation process,
7765         * device/lib/pic16/libsdcc/int/divuint.c,
7766         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
7767         `c' from signed to unsigned,
7768         * device/lib/pic16/startup/crt0.c,
7769         * device/lib/pic16/startup/crt0i.c,
7770         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
7771         keywords to double underlined form, bug fixes in _do_cinit function
7772         which prevented the correct initialization of the .idata segment,
7773         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
7774         core to enter a infinite loop
7775         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
7776
7777 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7778
7779         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
7780
7781 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7782
7783         * device/include/Makefile.in: add support for hc08 subdirectory
7784         * device/include/hc08/: new subdirectory
7785         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
7786         Lucas Loizaga, thanks!
7787         * device/include/hc08/mc68hc908qy.h,
7788         * device/include/hc08/mc68hc908gp32.h,
7789         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
7790         their own directory. Changed internal macro names to use the compiler
7791         reserved namespace. Changed SDCC specific keywords to double
7792         underlined form.
7793         * device/include/math.h,
7794         * device/include/malloc.h,
7795         * device/include/stdarg.h,
7796         * device/include/stdbool.h
7797         * device/include/string.h,
7798         * device/include/tinibios.h,
7799         * device/include/ds400rom.h,
7800         * device/include/8051.h,
7801         * device/include/8052.h,
7802         * device/include/80c51xa.h,
7803         * device/include/at89c55.h,
7804         * device/include/at89S8252.h,
7805         * device/include/at89x51.h,
7806         * device/include/at89x52.h,
7807         * device/include/ds80c390.h,
7808         * device/include/reg764.h,
7809         * device/include/regc515c.h,
7810         * device/include/sab80515.h,
7811         * device/include/mcs51/c8051f000.h,
7812         * device/include/mcs51/c8051f018.h,
7813         * device/include/mcs51/c8051f020.h,
7814         * device/include/mcs51/c8051f040.h,
7815         * device/include/mcs51/c8051f060.h,
7816         * device/include/mcs51/c8051f120.h,
7817         * device/include/mcs51/c8051f300.h,
7818         * device/include/mcs51/c8051f310.h,
7819         * device/include/mcs51/c8051f320.h,
7820         * device/include/mcs51/c8051f330.h,
7821         * device/include/mcs51/c8051f350.h,
7822         * device/include/z180.h: Changed SDCC specific keywords to double
7823         underlined form.
7824
7825 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
7826
7827         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
7828         18F4455,
7829         * (pic16_assignConfigWordValue): disable testing of configuration
7830         register value with config mask,
7831         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
7832         function with port->fun_prefix,
7833         * (genFunction): when generating a naked interrupt function never
7834         create an absolute segment placed in interrupt vector address, place
7835         the actual interrupt function at IVA instead, when an interrupt
7836         function is generated with unspecified interrupt then do not create
7837         the absolute section,
7838         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
7839         code for generating a call to generic pointer get/put function with
7840         a call to function pic16_callGenericPointer(),
7841         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
7842         the call to the generic pointer get/put functions with prefixing the
7843         function name with port->fun_prefix,
7844         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
7845         * src/pic16/main.c (_process_pragma): prefix function with
7846         port->fun_prefix,
7847         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
7848         calling assembler, old 18Fxxxx macro is deprecated,
7849         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
7850         PC_ASMDIR in while condition,
7851         * (findInstruction): add PC_ASMDIR in while condition,
7852         * (buildCallTree): prefix main with port->fun_prefix,
7853         * (pic16_pCode2str): fixed bug that didn't emit the memory access
7854         identifier for variable with banked access in instructions BTFSS,
7855         BTFSC, BCF, BSF, BTG
7856         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
7857         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
7858         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
7859         perform optimization when enviroment variable NO_REG_OPT is set,
7860         * (insideLRBlock): NEW, return 1 if register is inside an
7861         INF_LOCALREGS block,
7862         * (RemoveRegFromLRBlock): remove a register that is completely
7863         eliminated by register optimization, but it is still left in local
7864         register store/restore in/from stack block,
7865         * (Remove2pcodes): after removing register, check to see if it
7866         should be removed from local register store/restore in/from stack
7867         block,
7868         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
7869         DUMMY_READ_VOLATILE,
7870
7871         * device/include/pic16/adc.h: minor prototype modifications and
7872         update,
7873         * device/include/pic16/malloc.h: added GPL notice various
7874         modifications,
7875         * device/include/pic16/stdint.h: NEW, standard header for ints
7876         * device/include/pic16/delay.h: NEW, header for delay functions,
7877         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
7878         delay1mtcy,
7879         * device/include/pic16/signal.h: NEW, header providing helper macros
7880         for implementing signal handlers,
7881         * device/include/pic16/stdio.h: added prototypes for functions,
7882         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
7883         prototypes for stdin and stdout, added macro PUTCHAR to
7884         automatically implement putchar function prototype,
7885         * device/include/pic16/usart.h: modified and updated USART library,
7886         * device/lib/pic16/libio/adc/,
7887         * device/lib/pic16/libio/i2c: some modifications to improve library
7888         performance,
7889         * device/lib/pic16/libc/stdio/: modifications for the new printf*
7890         family of functions,
7891         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
7892         family of functions and other sources,
7893         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
7894         of the PIC18Fxx[28] devices,
7895         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
7896         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
7897         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
7898         _do_cinit function, because the previous failed when local variables
7899         where not placed in the same memory bank,
7900         * device/lib/pic16/libsdcc/char/: various modifications to improve
7901         library performance,
7902         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
7903         information on the new functions of the c library and more...
7904
7905 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7906
7907         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
7908
7909 2005-03-26 Raphael Neider <rneider AT web.de>
7910
7911         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
7912           if condition == CARRY)
7913         * (genCmp): adapted to new genSkipc semantics
7914         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
7915           on rIfx (genCmp was broken)
7916
7917 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7918
7919         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
7920         * src/z80/main.c (_keywords[]),
7921         * src/SDCCglobal.h (struct options),
7922         * src/SDCC.y,
7923         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
7924         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
7925         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
7926         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
7927         always available in leading double underscore form. The C99 support is
7928         mostly missing, but it's a start.
7929         * support/regression/tests/bug-227710.c: fixed nonconforming use of
7930         reserved identifier "__data".
7931
7932 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
7933
7934         * src/mcs51/peeph.def: fixed bug 1170013
7935
7936 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
7937
7938         * device/include/mcs51reg.h: fixed bug 842007
7939
7940 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7941
7942         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
7943         last time.
7944
7945 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7946
7947         * src/port.h (struct PORT),
7948         * src/avr/ralloc.c (avr_assignRegisters),
7949         * src/avr/main.c,
7950         * src/ds390/ralloc.c (ds390_assignRegisters),
7951         * src/ds390/main.c,
7952         * src/hc08/ralloc.c (hc08_assignRegisters),
7953         * src/hc08/main.c,
7954         * src/mcs51/ralloc.c (mcs51_assignRegisters),
7955         * src/mcs51/main.c,
7956         * src/pic/ralloc.c (pic14_assignRegisters),
7957         * src/pic/main.c,
7958         * src/pic16/ralloc.c (pic16_assignRegisters),
7959         * src/pic16/main.c,
7960         * src/xa51/ralloc.c (xa51_assignRegisters),
7961         * src/xa51/main.c,
7962         * src/z80/ralloc.c (z80_assignRegisters),
7963         * src/z80/ralloc.h,
7964         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
7965         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
7966         * src/SDCCcse.h,
7967         * src/SDCCdflow.c (computeDataFlow),
7968         * src/SDCCdflow.h,
7969         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
7970         * src/SDCCloop.h,
7971         * src/SDCCcflow.c (*),
7972         * src/SDCCcflow.h,
7973         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
7974         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
7975         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
7976         immedDom() returning wrong block; probably fixes bug #1160833)
7977
7978 2005-03-20 Borut Razem <borut.razem AT siol.net>
7979
7980         * support/scripts/inc2h.pl: WIN32 port
7981
7982 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
7983
7984         * device/lib/makefile.in: added abs.c and labs.c
7985
7986 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
7987
7988         * device/include/stdint.h: added
7989         * device/lib/abs.c: added
7990         * device/lib/labs.c: added
7991         * device/include/stdlib.h: added abs() and labs() prototypes
7992         * device/lib/libsdcc.lib: added abs and labs
7993         * device/include/float.h,
7994         * device/lib/_fsmul.c,
7995         * device/lib/printf_fast.c,
7996         * device/lib/printf_tiny.c: updated comments
7997
7998 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7999
8000         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
8001         bug #1164313
8002
8003 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8004
8005         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
8006         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
8007
8008 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
8009
8010         * device/lib/printf_large.c: removed inline assembly for portability and
8011           readability. Use printf_fast if speed or size are more important.
8012         * src/pic16/gen.c: removed conditions around use of DEBUGpc
8013         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
8014
8015 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
8016
8017         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
8018         prevent compiler warning
8019
8020 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
8021
8022         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
8023         moved to level 0 and declared as static. Also they are explicit
8024         placed in access bank. This was necessery because some times they
8025         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
8026         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
8027         optimizations. Currently only compare to unsigned char is implemented,
8028         * src/pic16/gen.c: added fReturnIdx array,
8029         * (struct resolvedIfx) is moved to gen.h and made public,
8030         * (struct _G): added sregsAlloc and sregsAllocSet fields,
8031         * (aopForSym): added an optimization to directly store in stack of
8032         the operand of a SEND iCode,
8033         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
8034         but as registers instead (AOP_REG) using the fReturnIdx array,
8035         * (pic16_freeAsmop): remove the freed register from the
8036         _G.sregsAlloc field,
8037         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
8038         a compare of 'WREG',
8039         * (pic16_popGetTempRegCond): changed function prototype, now
8040         function takes also a bitVector argument v which holds the current
8041         set of registers that are allocated for stack access by aopForSym,
8042         registers allocated in aopForSym for accessing stack symbols are not
8043         any more part of the functions usedRegs field,
8044         * (genCall): some times aopOp is called for a stack variable to be
8045         send, aopForSym might perform the push, if this is true make sure
8046         that genCall doesn't push the variable twice by testing _G.resDirect,
8047         * (genFunction): changed testing for unspecified interrupt number
8048         from 256 to INTNO_UNSPEC,
8049         * modified selection scheme of frame pointer generation. Previously
8050         if function did use local registers a frame pointer was generated,
8051         now a frame pointer is generated only if function has arguments
8052         (that need PLUSW2 register access), or has stack arguments, or the
8053         compiler is not instructed to omit the frame pointer,
8054         * (genEndFunction): before restoring local registers that were saved
8055         in the function preamble, also restore the registers that *might*
8056         have been allocated for stack access,
8057         * (genRet): removed some old comments,
8058         * (genCmp, the active (RN's) version): added a call to the
8059         pic16_genCmp_special function to perform the compare with a more
8060         robust and optimized way,
8061         * (genInline): a feature has been added in inline code generation,
8062         which allows a wildcard variable substitution when writing inline
8063         assembly. Code is incomplete and experimental therefore undocumented,
8064         * (genCast): changed order of aopOp for result and right to allow
8065         aopForSym to directly load the result if possible,
8066         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
8067         perform an optimized compare on some selected special occasions,
8068         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
8069         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
8070         generate an IVT any more,
8071         * src/pic16/main.c (pic16_optionsTable): added command line option
8072         --optimize-cmp,
8073         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
8074         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
8075         macros,
8076         * src/pic16/NOTES: Raphael Neider added in list of active developers
8077         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
8078         jumptable_end to prevent bug #,
8079         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
8080         inCond and outCond fields,
8081         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
8082         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
8083         turn off register spilling,
8084         * (packRegsForOneUse): synced with other ports' versions although it
8085         is not used currently,
8086         * (pic16_packRegisters): added an optimization while reading
8087         structure bitfields, some registers may be saved (malloc code is
8088         decreased by 80 bytes)
8089
8090 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
8091
8092         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
8093         left is a bitfield, if yes, then don't optimize assignment. Perhaps
8094         this can be optimized more?
8095
8096 2005-03-10 Raphael Neider <rneider AT web.de>
8097
8098         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
8099           genNearPointerGet): (hopefully) fixed access to bitfields via
8100           pointers (p->bitN = x; and x = p->bitN; failed)
8101
8102 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
8103
8104         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
8105
8106 2005-03-09 Raphael Neider <rneider AT web.de>
8107
8108         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
8109
8110 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
8111
8112         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
8113         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
8114           (regTypeNum): set REG_BIT type if necessary
8115         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
8116         * support/regression/tests/critical.c: check bug 1144613
8117
8118 2005-03-02 Raphael Neider <rneider AT web.de>
8119
8120         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
8121
8122 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8123
8124         * src/avr/ralloc.c (serialRegAssign),
8125         * src/ds390/ralloc.c (serialRegAssign),
8126         * src/hc08/ralloc.c (serialRegAssign),
8127         * src/mcs51/ralloc.c (serialRegAssign),
8128         * src/pic/ralloc.c (serialRegAssign),
8129         * src/pic16/ralloc.c (serialRegAssign),
8130         * src/xa51/ralloc.c (serialRegAssign),
8131         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
8132
8133 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
8134
8135         * src/SDCCast.c (decorateType): fixed bug 1124787
8136
8137 2005-02-20 Hubert Sack <sack AT digiplan.de>
8138         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8139
8140         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
8141         patch #1121755
8142
8143 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8144
8145         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
8146         to keep the correct label reference count when adding/removing references
8147         to labels. A peephole file using this is appended to patch #1144962.
8148
8149 2005-02-14 Raphael Neider <rneider AT web.de>
8150
8151         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
8152         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
8153         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
8154           retrievals of result operand's value on assignment
8155
8156 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
8157
8158         * device/include/pic16/string.h: modified prototype for memccpy()
8159         to memccpy(void *, void *, char, size_t)
8160         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
8161         check whether to omit frame pointer or not,
8162         * (genInline): convert all occurences of "\n" to LF in inline
8163         assembler blocks, this helps formatting the inline text,
8164         * (pic16_loadFSR0): modified prototype,
8165         * (genNearPointerGet, genNearPointerSet): reorganization of code,
8166         removed some 8051 legacy code,
8167         * (genPackBits): enabled handling bitfields exceeding one byte in size,
8168         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
8169         before allocating temporary registers in functions,
8170
8171 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
8172
8173         * support/regression/tests/bitvars.c: corrected the "fix"
8174
8175 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
8176
8177         * support/regression/tests/bitvars.c,
8178         * support/regression/tests/bitwise.c,
8179         * support/regression/tests/rotate.c: "fixed" problems on Alpha
8180
8181 2005-02-10 Raphael Neider <rneider AT web.de>
8182
8183         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
8184           different size for Alpha
8185         * src/pic16/gen.c (genCmpEq) : improved compare with 0
8186
8187 2005-02-09 Raphael Neider <rneider AT web.de>
8188
8189         * src/SDCC.lex(doPragma) : save and restore warning options as well
8190           (also added new stack plus clone- and copyAndFreeSDCCERRG())
8191         * have #pragma less_pedantic set the errorlevel to WARNING
8192           (fixes #1117001)
8193         * (cloneOptimize) : fixed wrong malloc's size
8194         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
8195           facilitate correct handling of #pragma (save|restore)
8196
8197 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
8198
8199         * src/mcs51/gen.c: removed non-standard C nameless struct/union
8200
8201 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
8202
8203         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
8204
8205 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
8206
8207         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
8208
8209 2005-02-02 Raphael Neider <rneider AT web.de>
8210
8211         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
8212         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
8213         * (pic16_storeForReturn): fixed to allow returning function pointers
8214         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
8215         * device/include/pic16/{stddef.h,stdbool.h}: added
8216
8217 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
8218
8219         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
8220
8221 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
8222
8223         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
8224         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
8225          appeared to be required
8226
8227 2005-01-31 Borut Razem <borut.razem AT siol.net>
8228
8229         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
8230           include/mcs51 and include/z80 directories to the package
8231
8232 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8233
8234         * src/hc08/gen.c (genFunction): fixed bug #1112752
8235
8236 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8237
8238         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
8239
8240 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8241
8242         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
8243
8244 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
8245
8246         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
8247
8248 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
8249
8250         * device/include/c8051fxxx.h: removed these 6 files
8251         * device/include/mcs51/c8051fxxx.h: added these 11 new files
8252
8253 2005-01-26 Raphael Neider <rneider AT web.de>
8254
8255         * src/pic16/gen.c (genAssign): fixed assignment from longs
8256           in codespace (were cut to three bytes)
8257         * (genDummyRead): implemented (except for CODESPACE...),
8258           fixed bug #1108575
8259         * src/pic16/glue.c (emitStatistics): beautified
8260         * device/lib/pic16/libm/Makefile: added include path
8261
8262 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8263
8264         * src/z80/gen.c (aopPut): fixed bug #1103902
8265
8266 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8267
8268         * device/lib/expf.c: fixed bug #1095792
8269
8270 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
8271
8272         * device/lib/pic16/libm: added Math library sources
8273
8274 2005-01-24 Raphael Neider <rneider AT web.de>
8275
8276         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
8277           to enable upcast to pCodeOpReg2 (there is no type tag to
8278           differenciate the two and pic16_popGet2p cast into PCOR2)
8279         * src/pic16/main.c (_process_pragma): fixed another malloc bug
8280           (sizeof(sectNames) changed to sizeof(sectName))
8281           Both patches fix segfaults under MinGW.
8282
8283 2005-01-23 Raphael Neider <rneider AT web.de>
8284
8285         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
8286           Safe_[mc]?alloc()'ed variables
8287         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
8288           of (byte sized) temporaries (assign them to WREG for now)
8289         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
8290           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
8291           this might fix SIGSEGVs on MinGW...
8292         * src/SDCCopt.c (killDeadCode): restored original behaviour
8293           (volatile operands might get thrown away though)
8294
8295 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
8296
8297         * src/pic16/gen.c: fixed bug #1106975,
8298         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
8299         pointer update, INTCON is saved, global interrupts are disabled and
8300         restored after updateing TOS.
8301         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
8302         * added function attribute 'shadowregs' to take advantage of shadow
8303         registers,
8304         * added function attribute 'wparam' as an alternative to the wparam
8305         pragma,
8306         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
8307         user declares a non-ISR function as 'shadowregs',
8308         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
8309
8310 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
8311
8312         * .version: bumped version number to 2.4.8
8313         * device/lib/pic16/pics.all: list of PIC18F devices supported by
8314         pic16 port,
8315         * device/lib/pic16/libio/i2c/: I2C module support library,
8316         * device/include/pic16/i2c.h: I2C support library header,
8317         * device/lib/pic16/libc/stdio/: standard IO support sources,
8318         * (printf_small.c): printf_small() source, supports float print,
8319         * (printf_tiny.c): printf_tiny() source, does not support floats,
8320         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
8321         enable global optimizations for entire library source, other
8322         Makefiles in the source tree are also modified to reflect this,
8323         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
8324         function,
8325         * doc/sdccman.lyx: updated to reflect new changes,
8326         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
8327         sym->onStack if-case,
8328         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
8329         sbit, idata, _idata, xdata, _xdata,
8330         * added pragma library, to link an external library, (see doc),
8331         * removed command line options, --pomit-config-words, --pomit-ivt,
8332         --pleave-reset-vector,
8333         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
8334         when calling assembler to reflect memory model used, also define
8335         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
8336         reflect stack model used,
8337         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
8338         on stack return NULL,
8339
8340 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
8341
8342         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
8343           of the operands is volatile. Fixes #1020220
8344
8345 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
8346
8347         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
8348         * (OptimizeRegUsage): make sure that there is really no other flow where
8349           the first pCode is used
8350
8351 2005-01-22 Raphael Neider <rneider AT web.de>
8352
8353         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
8354           to fix #1106967 (pCode->seq are not set up correctly)
8355
8356 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8357
8358         * src/SDCCglue.c (glue): make sure code area is declared before the
8359         static initialization area.
8360
8361 2005-01-21 Raphael Neider <rneider AT web.de>
8362
8363         * device/lib/Makefile.in: fixed test for pic16 install dir
8364         * device/lib/pic16/*/Makefile*: modified compile flags to enable
8365           optimizations
8366         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
8367           added --optimize-goto compiler switch and pragma wparam documentation
8368         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
8369         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
8370           and PRODH closing bug #1071770 (peephole optimizer)
8371
8372 2005-01-19 Raphael Neider <rneider AT web.de>
8373
8374         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
8375           cmdLine buffers (used when calling sdcpp...) are large enough
8376           (MAX_PATH=256 truncates arguments leading to system halts when
8377           used in MinGW...)
8378         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
8379         * (genUminus): rewritten to for efficiency
8380         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
8381           used uninitialized in some cases)
8382         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
8383           copy the third byte from the int -- now assumes 0x80 (data memory)
8384         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
8385           operands (genAddLit expects the iCode's operands to swapped as
8386           well), fixed leftover bytes (crashed for short left operands)
8387         * (pic16_genMinusDec): performance improvements, removed false
8388           PIC14 emitSKPNCs
8389         * (pic16_genMinus): fixed to cope with differently sized operands
8390         * src/pic16/glue.c (pic16_glue): added new banksel optimization
8391           for --obanksel > 1
8392         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
8393         * src/pic16/graph.[ch]: implementation of directed graphs, used by
8394           new banksel optimization
8395         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
8396           analysis for temporary registers (segfaults...)
8397         * src/pic16/peeph.def: added rule
8398
8399 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
8400
8401         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
8402         which converts a float number to its ASCII representation
8403         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
8404         functions to convert the fractional and integer part of a float to ASCII,
8405         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
8406         realloc.c): added _MALLOC_SPEC to explicit place variables in data
8407         ram
8408         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
8409         _STATMEM macros,
8410         * device/include/pic16/adc.h: added GPL info,
8411         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
8412         a pCodeOp as tested operand,
8413         * (genNearPointerGet): optimized bit testing, does not use
8414         intermediate register for bit value, test directly instead with
8415         BTFSS, BTFSC, works only for single bits,
8416         * (genpic16Code): dump the name of the iCode in the asm,
8417         * src/pic16/ralloc.c (decodeOp): removed static declaration and
8418         renamed to pic16_decodeOp,
8419         * (serialRegAssign): do not allocate a temporary register for iCode
8420         sequences that test a single bit for 1/0
8421
8422 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
8423
8424         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
8425         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
8426         access stack and frame pointers. They are initially assigned to
8427         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
8428         accessing SFRs. Updated all occurences of modification of stack or
8429         frame pointer in gen.c and pcode.c,
8430         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
8431         assigning of a literal value to pointers,
8432         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
8433         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
8434         selected
8435
8436 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8437
8438         * doc/sdccman.lyx: update documentation about stack pragma, added
8439         some info for stack memory models
8440
8441 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8442
8443         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
8444
8445 2005-01-08 Raphael Neider <rneider AT web.de>
8446
8447         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
8448           udata sections to fix bug #1097823
8449
8450 2005-01-05 Raphael Neider <rneider AT web.de>
8451
8452         * src/pic16/gen.c (genGenericShift): added handling of differently
8453           sized left operand and result
8454
8455 2005-01-04 Raphael Neider <rneider AT web.de>
8456
8457         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
8458         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
8459           to hold the condition bit)
8460         * added new version of genCmp (old code available via #define)
8461         * added new version of genShiftLeft/genShiftRight in a generic
8462           way, now supports shifting by negative values
8463         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
8464           shiftCount (expected by genGenericShift)
8465         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
8466         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
8467           dump
8468         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
8469           is an invalid literal too...)
8470
8471 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
8472
8473         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
8474         from Raphael Neider,
8475         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
8476         for 8-bit literals. This fixes some literal operands which are sign
8477         extended to 16-bits ints when instruction needs only 8-bits.
8478
8479 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
8480
8481         * device/lib/logf.c: added mcs51 assembly version
8482         * device/lib/expf.c: added mcs51 assembly version
8483         * device/lib/_logexpf.c: new shared asm code for expf and logf
8484         * device/include/math.h: add defines for assembly math library
8485         * device/lib/Makefile.in: build new _logexpf.c
8486         * device/lib/libfloat.lib: use new _logexpf.c
8487
8488 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
8489
8490         * src/pic/device.c
8491         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
8492           device types which have less than 0x7f registers.
8493
8494 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
8495
8496         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
8497
8498 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
8499
8500         * device/lib/printf_fast.c: only build on supported arch.
8501         * device/lib/printf_tiny.c: only build on supported arch.
8502         * device/lib/printf_fast_f.c: only build if asm float lib
8503         * device/lib/_fsget1arg.c: only build if asm float lib
8504         * device/lib/_fsget2args.c: only build if asm float lib
8505         * device/lib/_fsnormalize.c: only build if asm float lib
8506         * device/lib/_fsreturnval.c: only build if asm float lib
8507         * device/lib/_fsrshift.c: only build if asm float lib
8508         * device/lib/_fsswapargs.c: only build if asm float lib
8509         * device/include/stdio.h: don't provide print_fast,
8510           print_fast_f, print_tiny prototypes if --xstack used
8511
8512 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
8513
8514         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
8515         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
8516           to the SOURCES
8517
8518 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
8519
8520         * device/lib/printf_fast_f.c: same as printf_fast, but
8521           with floating point enabled
8522         * device/lib/printf_fast.c: minor tweaks
8523         * device/include/stdio.h: add printf_fast_f
8524
8525 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
8526
8527         * src/SDCCmain.c: make --float-reent default for mcs51
8528         * device/lib/_fsadd.c: added mcs51 assembly version
8529         * device/lib/_fssub.c: added mcs51 assembly version
8530         * device/lib/_fsmul.c: added mcs51 assembly version
8531         * device/lib/_fsdiv.c: added mcs51 assembly version
8532         * device/lib/_fseq.c: added mcs51 assembly version
8533         * device/lib/_fsneq.c: added mcs51 assembly version
8534         * device/lib/_fsgt.c: added mcs51 assembly version
8535         * device/lib/_fslt.c: added mcs51 assembly version
8536         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
8537         * device/lib/Makefile.in: add _fscmp to build
8538         * device/lib/libfloat.lib: add _fscmp to build
8539
8540 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
8541
8542         * device/lib/_fs2slong.c: added mcs51 assembly version
8543         * device/lib/_fs2sint.c: added mcs51 assembly version
8544         * device/lib/_fs2schar.c: added mcs51 assembly version
8545         * device/lib/_fs2ulong.c: added mcs51 assembly version
8546         * device/lib/_fs2uint.c: added mcs51 assembly version
8547         * device/lib/_fs2uchar.c: added mcs51 assembly version
8548         * device/lib/_slong2fs.c: added mcs51 assembly version
8549         * device/lib/_sint2fs.c: added mcs51 assembly version
8550         * device/lib/_schar2fs.c: added mcs51 assembly version
8551         * device/lib/_ulong2fs.c: added mcs51 assembly version
8552         * device/lib/_uint2fs.c: added mcs51 assembly version
8553         * device/lib/_uchar2fs.c: added mcs51 assembly version
8554         * device/include/float.h: added #define to select asm vs c
8555
8556 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
8557
8558         * device/lib/printf_fast.c: improvements to float output
8559         * device/include/float.h: add defines for assembly float library
8560         * device/lib/_fsget1arg.c: receive 1 float arg
8561         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
8562         * device/lib/_fsnormalize.c: normalize a float
8563         * device/lib/_fsreturnval.c: return float, various helper routines
8564         * device/lib/_fsrshift.c: right shift a float's mantissa
8565         * device/lib/_fsswapargs.c: swap 2 floats
8566         * device/lib/Makefile.in: build these 6 new files for mcs51
8567         * device/lib/libfloat.lib: add these 6 files to the library
8568
8569 2004-12-26 Borut Razem <borut.razem AT siol.net>
8570
8571         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
8572           built by gcc 3.4.2
8573
8574 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
8575
8576         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
8577           and fully reentrant and register bank neutral.
8578         * device/lib/printf_fast.c: added float (not enabled by default),
8579           added compact/slower integer (also not enabled by default),
8580           improved size/speed of fast integer code, other minor changes
8581         * device/include/stdio.h, device/lib/Makefile.in,
8582           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
8583
8584 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
8585
8586         * src/pic16/pcode.c: declaring variables other than at the start of a
8587           block is not supported in C by VC6.
8588
8589 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
8590
8591         * applied a previous patch from Raphael Neider that wasn't included
8592         in the previous commits, which fixes infinite loops within jumptable
8593         improvements,
8594         * made some fixes that previous patches introduced
8595
8596 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
8597
8598         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
8599         that fixes an issue with AOP_PCODE asmop's offset,
8600         * (pic16_popCopyReg): update instance field too,
8601         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
8602         function of pic port,
8603         * (genCmp, genAnd, genAssign),
8604         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
8605
8606 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
8607
8608         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
8609         variables initial values to idata section,
8610         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
8611         variables in some functions. This utilizes parmBytes field of iCode
8612         structure to hold the offset of the variable in stack. (might be
8613         able to use the stack field too?)
8614         * applied patch from Raphael Neider # ### , # ###
8615         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
8616         variable initial values in idata section,
8617         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
8618         for static variables with initial value
8619         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
8620         applied fix in while loop from Raphael Neider.
8621
8622 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
8623
8624         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
8625         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
8626         * src/ds390/ralloc.c (serialRegAssign): spill bits
8627         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
8628         * support/Util/SDCCerr.c,
8629         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
8630         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
8631         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
8632
8633 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
8634
8635         * device/include/sdcc-lib.h: inserted LGPL, added includes
8636           asm/ds390/features.h and asm/mcs51/features.h
8637         * device/include/asm/default/features.h,
8638         * device/include/asm/gbz80/features.h,
8639         * device/include/asm/z80/features.h: added empty _AUTOMEM
8640           and _STATMEM
8641         * device/include/asm/ds390/features.h,
8642         * device/include/asm/mcs51/features.h: added files with defines for
8643           _AUTOMEM and _STATMEM indicating automatic and static storage class
8644         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
8645         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
8646         * src/SDCCicode.c (geniCodeCast),
8647         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
8648         * src/SDCCloop.c (loopInduction): removed unused variable lr
8649         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
8650           to convertToFcall to include char modulo (RFE 1065037), added check
8651           if left operand is unsigned and use abs of literal value
8652         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
8653           as it doesn't work after conversion from peephole.def to peephole.rul
8654         * src/mcs51/gen.c (toBoolean): added check for size,
8655           (genModOneByte): optimized code for signed char modulo a literal
8656           power of 2 (thanks to Hubert Sack),
8657           (genRRC): removed unnecessary "clr c",
8658           (genRLC): replaced "add a,acc" with cheaper "rlc a"
8659         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
8660           jump optimization,
8661           swapped rules 256.c and 256.d,
8662           extended 256.d by using new multiple checks (thanks Erik),
8663           added rules 256.e and 256.f,
8664           updated rule 261.a and 261.b to new generated code
8665         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
8666
8667 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8668
8669         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
8670           induction related bugs, including first part of bug #1074377
8671
8672 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
8673
8674         * applied patch from bug-report #1076292,
8675         * applied patches for genAnd and Goto-optimizations for Raphael
8676         Neider,
8677         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
8678         dump a less iCode information,
8679         * src/pic16/device.h (pic16_options_t): added field debgen,
8680         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
8681         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
8682         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
8683         puclic,
8684         * (various functions): added macros FENTRY and FENTRY2 to functions,
8685         to emit function prologue,
8686         * (various functions): fixed indentation,
8687         * (genNearPointerGet): fixed loading of FSR0,
8688         * (genPackBits): applied patch from Raphael Neider to fix updating
8689         of FSR0 and touching only the modified bits,
8690         * src/pic16/genarith.c (various functions): added macros FENTRY to
8691         emit function prologue in comments,
8692         * src/pic16/pcode.h: added functions debugf2, debugf3,
8693         * src/pic16/ralloc.c: partial fix for packForPush caused
8694         segmentation fault,
8695
8696 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8697
8698         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
8699           <stsp AT users.sourceforge.net> with reversed byte order
8700         * support/regression/tests/rotate.c: added (ds390 skips some tests)
8701
8702 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8703
8704         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
8705           bug #1074377
8706         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
8707         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
8708
8709 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
8710
8711         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
8712
8713 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8714
8715         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
8716           conditions,
8717           (setFromConditionArgs): friendly operand parser for peephole rules,
8718           (operandBaseName, operandsNotRelated): new peephole condition
8719           "operandsNotRelated" -- similar to "operandsNotSame", but takes
8720           architecture specific register naming into account, handles n-way
8721           comparisons, and supports quoted literals
8722         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
8723
8724 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8725
8726         * src/mcs51/peeph.def: fixed bug #1076940
8727
8728 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
8729
8730         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
8731
8732 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8733
8734         Adding support for replacing ljmps with sjmps in jumptables
8735         generated for switch statements. For now you need to set the
8736         environment variable SDCC_SJMP_JUMPTABLE to enable this.
8737         Now 4 algorithms for mcs51 jumptable generation are used:
8738         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
8739         addresses loaded pc-relative for up to 112 cases and stack-pushing
8740         target addresses loaded with offset from dptr for up to 256 cases.
8741
8742         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
8743         * src/mcs51/main.c: adapted constants for switch table generation
8744         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
8745
8746 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
8747
8748         * device/lib/printf_large.c (_print_format): fixed bug 1073386
8749         * support/regression/tests/bug1057979.c: added test for bug 1073386
8750
8751 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
8752
8753         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
8754         compilers
8755
8756 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
8757
8758         * src/pic16/device.h,
8759         * src/pic16/genarith.c,
8760         * src/pic16/glue.c,
8761         * src/pic16/main.c,
8762         * src/pic16/pcode.c: applied patches #1068154 and #1070213
8763
8764 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
8765
8766         Large cummulative patch for pic16 port.
8767         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
8768         to call when a stack overflow occurs,
8769         * (malloc.h): added CVS Id tag,
8770         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
8771         variable,
8772         * added libc directory. The current version of LibC contains string
8773         functions, ctype functions and macros and some functions of the
8774         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
8775         be extensively tested in the future. Standard disclaimer here.
8776         Library is not automatically build yet. But one can build it by
8777         invoking 'make' inside the libc directory.
8778         * added ADC library under libio. Preliminary version yet.
8779
8780         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
8781         * src/pic16/gen.c (aopForRemat): asmop size is filled by
8782         aopForRemat() now and not by pic16_aopOp(),
8783         * (pic16_popGetTempReg): removed warning messgae when allocating
8784         temporary registers, its a buggy feature and will be removed,
8785         * (pic16_popGet): set register instance field in AOP_CRY,
8786         * (pic16_outBitC): fixed for results in size greater than 1,
8787         * (genUminusFloat): fixed for pic16, ported code from mcs51,
8788         * (pic16_storeForReturn): optimized return of 0,
8789         * (genCmp): experimental code for new genCmp which uses PIC18's
8790         special compare&skip instructions. Initial tests fail some times
8791         with variables grater than 1 byte in size, so new code is disabled,
8792         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
8793         a single bit,
8794         * (genCast): began a fix to optimize the casting of a bit to another
8795         bit, now assigning a bitfield to another bitfield will fail, sorry,
8796         * src/pic16/main.c: disabled the use of lr-support feature,
8797         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
8798         * added some function prototypes, added function _debugf prototype,
8799         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
8800         bits with offset (case PO_GPR_BIT),
8801         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
8802         command line,
8803         * (isBankInstruction): modified to return 0 for no banking instruction,
8804         and 1 for banking instruction,
8805         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
8806         caused stop processing pCodes after a inline assembly block,
8807         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
8808         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
8809         registers when it shouldn't,
8810         * src/pic16/ralloc.c (allocReg): add preliminary support for
8811         supporting a limited set of temporary registers,
8812
8813 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8814
8815         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
8816           genDataPointerSet): ensure assignments always copy in MSB to LSB
8817           order,
8818           (loadRegFromAop): recognize CLRH optimization,
8819           (genFunction): optimize RECEIVE iCodes in reentrant functions
8820
8821 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8822
8823         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
8824           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
8825           selected.
8826         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
8827         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
8828           contiguous with data
8829
8830 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8831
8832         * device/lib/_gptrget.c (_gptrget),
8833         * device/lib/_gptrgetc.c (_gptrgetc),
8834         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
8835           instead of sjmp to ret
8836         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
8837           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
8838
8839 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
8840
8841         * .version: bumped version to 2.4.7
8842         * device/lib/_gptrget.c (_gptrget): is now _naked
8843         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
8844         * device/lib/_gptrput.c (_gptrput): is now _naked
8845         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
8846           (createFunction): fixed xstack
8847         * src/SDCCglue.c (emitMaps): set allocation required for bit area
8848         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
8849           or bit either,
8850           (geniCodeCritical): store original interrupt state in an iTemp bit
8851           var unless stack-auto
8852         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
8853         * src/SDCCmain.c (setIncludePath): added include/target to search path
8854         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
8855         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
8856           prototype,
8857           (processFuncArgs): put bit vars in bit area
8858         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
8859           unsaveRBank): fixed xstack,
8860           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
8861           (genFunction, genEndFunction): fixed xstack,
8862           (genAssign): optimization don't walk backwards through mem
8863         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
8864         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
8865         * support/regression/Makefile: also make library (for stack-auto) when
8866           making "all" and added "test-mcs51-xstack-auto"
8867         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
8868         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
8869         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
8870         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
8871         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
8872           make-library by MAKE_LIBRARY
8873         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
8874           regression tests for xstack
8875         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
8876         * support/regression/tests/critical.c: test for critical on mcs51
8877
8878 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8879
8880         * support/regression/ports/ucz80/spec.mk: use include and lib files from
8881           built version of sdcc instead of installed version
8882
8883 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
8884
8885         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
8886         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
8887           vprintf.c now
8888         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
8889         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
8890           WARNING: remove device/lib/build/z80/printf.o by hand when
8891           updating from previous build!
8892         * device/lib/z80/printf.c: updated comment
8893         * support/regression/tests/bug1057979.c: test all ports now
8894         * support/regression/tests/bug1065458.c: file added
8895
8896 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8897
8898         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
8899           *_start and *_end symbols for static functions
8900
8901 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
8902
8903         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
8904           and search crt0.o in all library paths,
8905           (setIncludePath): proper handling of --nostdinc,
8906           (setLibPath): proper handling of --nostdlib
8907         * support/regression/Makefile,
8908         * support/regression/ports/ds390/spec.mk,
8909         * support/regression/ports/gbz80/spec.mk,
8910         * support/regression/ports/hc08/spec.mk,
8911         * support/regression/ports/mcs51/spec.mk,
8912         * support/regression/ports/mcs51-large/spec.mk,
8913         * support/regression/ports/mcs51-stack-auto/spec.mk,
8914         * support/regression/ports/z80/spec.mk: use include and lib files from
8915           built version of sdcc instead of installed version
8916         * doc/sdccman.lyx: fixed typo in --nostdinc
8917
8918 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
8919
8920         * src/pic/pcode.c,
8921         * src/pic/device.c,
8922         * src/pic/ralloc.c,
8923         * src/pic/gen.c : added support to generate code for struct bit fields.
8924
8925 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
8926
8927         * as/xa51/xa_version.h,
8928         * device/include/errno.h,
8929         * device/include/regc515c.h,
8930         * device/lib/_itoa.c,
8931         * device/lib/_ltoa.c,
8932         * device/lib/ser_ir_cts_rts.c,
8933         * sim/ucsim/xa.src/glob.cc,
8934         * sim/ucsim/xa.src/inst_gen.cc,
8935         * sim/ucsim/xa.src/xa_bit.cc,
8936         * sim/ucsim/xa.src/xa_sfr.cc,
8937         * sim/ucsim/z80.src/inst_dd.cc,
8938         * sim/ucsim/z80.src/inst_fdcb.cc,
8939         * support/scripts/keil2sdcc.pl,
8940         * src/pic16/pic16.dsp,
8941         * src/pic16/pic16a.dsp: corrected cvs line endings
8942         * device/lib/printf_large.c: fixed bug 1057979
8943         * src/pic16/gen.c: fixed non-C standard code
8944         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
8945         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
8946         * support/regression/ports/mcs51/support.c: reload T1 asap
8947         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
8948           pdata use and clear idata startup behaviour
8949         * support/regression/tests/bug1057979.c: added
8950
8951 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
8952
8953         * device/examples/ds390/ow390/ad26.h,
8954         * device/examples/ds390/ow390/cnt1d.h,
8955         * device/examples/ds390/ow390/crcutil.c,
8956         * device/examples/ds390/ow390/ownet.h,
8957         * device/examples/ds390/ow390/owsesu.c,
8958         * device/examples/ds390/ow390/swt12.h,
8959         * device/examples/ds390/ow390/swtoper.c,
8960         * device/examples/ds390/ow390/temp10.h,
8961         * device/examples/ds390/ow390/thermodl.c,
8962         * device/examples/ds390/tinitalk/tinitalk.dsp,
8963         * device/examples/ds390/tinitalk/tinitalk.dsw,
8964         * device/examples/mcs51/clock/hw.h,
8965         * device/examples/mcs51/simple2/go.bat,
8966         * device/examples/serialcomm/windows/serial.h,
8967         * device/examples/xa51/dummy.c,
8968         * device/examples/xa51/hello.c,
8969         * device/include/80c51xa.h,
8970         * device/include/at89x051.h: corrected cvs line endings
8971
8972 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
8973
8974         * src/pic16/main.c (options): added command line --gstack, to trace
8975         stack over/under flows,
8976         * added pragma 'wparam' to allow passing first byte of function
8977         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
8978         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
8979         call to __gstack_test function and sets up the symbol as extern,
8980         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
8981         * popaop): added call to pic16_testStackOverflow,
8982         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
8983         wparamList list,
8984         * (genCall, genPcall): now all parameters are passed via stack
8985         except in functions that are pass to wparam pragma in which WREG is
8986         used too,
8987         * (genPcall): REENTRANT flag is checked to see if variable prototype
8988         contains reentrant keyword, don't call a non-reentrant function, via
8989         a reentrant function pointer or vice versa, functions are never
8990         passed via WREG,
8991         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
8992         D.Winkler,
8993         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
8994         SIGSEGV when accessing a NULL register stucture,
8995         * (pic16_printGPointerType): modified to handle UPPER modifier for
8996         function initializers, changed prototype of function to simpler one,
8997         * (pic16_printIvalFuncPtr): check to see if function is already
8998         added in externs list,
8999         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
9000         optimized a move from W to SFR with a move to the same register
9001         later after a CALL,
9002         * device/lib/pic16/debug: NEW directory, contains debug features
9003         which are enabled when linking with libdebug.lib, currently command
9004         line option --gstack enables stack pointer tracing for over/under
9005         flow, corresponding sources are in debug/gstack
9006
9007 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
9008
9009         * doc/sdccman.lyx: updated SDCC version,
9010         * (PIC16 port): update list of command line options,
9011         * src/pic16/device.h (structure pic16_options_t): added field gstack
9012         to enable stack overflow tracing on push/pops,
9013         * src/pic16/device.c (statistics structure): added statistics
9014         structure,
9015         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
9016         pic16_dump_int_registers): increase statistics counters for each
9017         * variable which is encountered
9018         * (pic16_dump_usection): emit each .udata variable to its own udata
9019         section,
9020         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
9021         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
9022         parameters via stack, otherwise use old scheme,
9023         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
9024         assembler output file,
9025         * src/pic16/main.c: added command line options --gstack to enable
9026         push/pop tracing for stack overflow,
9027         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
9028         instructions): added size of each instruction,
9029         * (pic16_countInstruction): estimate size of instructions in
9030         the_pFile list, inline assembly blocks are not counted,
9031         * (pic16_FixRegisterBanking): trace previous register usage, when
9032         banksel optimizations is greater than 0, don't emit a redudant
9033         banksel directive,
9034
9035 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
9036
9037         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
9038         * src/pic16/ralloc.c : applied same fix for pic16.
9039         * src/pic/gen.c : tidied it up a little.
9040
9041 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9042
9043         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
9044         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
9045
9046 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9047
9048         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
9049
9050 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9051
9052         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
9053         non-reentrant function __modsint in the interrupt function (thus
9054         corrupting math operations during serial I/O)
9055         * device/lib/ser_ir.c: as above, changed buffersize
9056         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
9057         256.c,d for zeroing
9058         * doc/Makefile: added option -t for rsync
9059
9060 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9061
9062         * src/SDCCast.h (struct ast),
9063         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
9064
9065 2004-10-20 Borut Razem <borut.razem AT siol.net>
9066
9067         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
9068         package
9069
9070 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
9071
9072         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
9073         makefile targets,
9074         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
9075         support functions to replace long sequences of MOVFF's from access
9076         bank registers to stack and vice versa,
9077         * src/pic16/device.h: added new field opt_flags, where optimization
9078         flags can be set to enable certain features,
9079         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
9080         * pBlock, (genFunction, genEndFunction): surroung loop for
9081         saving/loading used registers in stack with PC_INFO pCodes,
9082         INF_LREGS. Code in between can then be optimized by pCode optimizer
9083         to support function calls,
9084         * (genDataPointerSet): fixed bug which loaded float fields in
9085         structures with corrupt data,
9086         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
9087         in a standard way debug info on stderr. Feature used for developing
9088         and debugging only,
9089         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
9090         obsolete chunks of code,
9091         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
9092         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
9093         * pic16/src/pcode.c (pic16_newpCodeInfo,
9094         * (pic16_newpCodeOpLocalRegs),
9095         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
9096         feature,
9097         * (pic16_pCodeConstString): printing of the initial value of a
9098         symbol as a comment is inhibited since parsing was already done by
9099         copyStr and output is corrupt,
9100         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
9101
9102 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9103
9104         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
9105
9106 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
9107
9108         * as/mcs51/lkarea.c: removed old K&R style,
9109           (lnksect): changed check on boundary error,
9110           (lnksect2): changed check on boundary error,
9111           (lnksect2): extend XSTK to end of page if size = 1
9112         * as/mcs51/lkmain.c: removed old K&R style,
9113           (Areas51): create l_IRAM symbol
9114         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
9115         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
9116           model-mcs51-stack-auto, added model-mcs51-xstack-auto
9117         * device/lib/_mullong.c: added version to be compiled with xstack
9118         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
9119         * device/lib/mcs51/crtxclear.asm: clear pdata as well
9120         * device/lib/mcs51/crtxstack.asm: fixed comment
9121         * src/SDCCglue.c: maxInterrupts defaults to 0,
9122           (emitMaps): added pdata,
9123           (createInterruptVect): (re)moved default,
9124           (glue): added pdata,
9125           (glue): moved __start__xstack to XSTK with default size 1
9126         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
9127           and options.float_rent when options.stackAuto is set,
9128           (linkEdit): only write XDATA_NAME if provided on command line
9129         * src/SDCCmem.h,
9130         * src/SDCCmem.c: added pdata
9131         * src/port.h: added pdata_name to PORT
9132         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
9133           (saveRegisters, unsaveRegisters): removed usage of B,
9134           (genMinus): fixed accumulator clash,
9135           (genJumpTab): added comment, this needs another look
9136         * src/mcs51/gen.c: added check for "B in use" paranoia,
9137           added pushB() and popB()
9138         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
9139           chance
9140         * src/avr/main.c,
9141         * src/ds390/main.c,
9142         * src/hc08/main.c,
9143         * src/mcs51/main.c,
9144         * src/pic/main.c,
9145         * src/pic16/main.c,
9146         * src/xa51/main.c,
9147         * src/z80/main.c: (reset_regparms) made void parameter explicit and
9148           added PSEG (PAG,XDATA) or NULL to port specifier
9149         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
9150         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
9151           (_mcs51_genInitStartup): removed __start__xstack equ,
9152           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
9153         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
9154         * src/z80/gen.c (_rleAppend): fixed warnings
9155         * support/regression/tests/zeropad.c: added pdata test
9156         * .version: bumped to 2.4.6
9157
9158 2004-10-17 Borut Razem <borut.razem AT siol.net>
9159
9160         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
9161         as a part of nightly build
9162
9163 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
9164
9165         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
9166         WREG holds the first byte function parameters,
9167         * (aopForSym): take special case for symbols which are in FARSPACE
9168         but in CODESPACE too,
9169         * (assignResultValue): modified to take into account _G.useWreg,
9170         * (genCall): don't use wreg for parameter passing when function is
9171         declared as reentrant, too, added optimization INCF to stack
9172         pointer when stack parameter count is 1,
9173         * (genFunction, genEndFunction): refurnished and fixed to not using
9174         wreg for passing parameters when function has varargs or is
9175         reentrant, fixed bug with symbol name compare for generating
9176         functions in absolute address,
9177         * (pic16_storeForReturn): refurnished,
9178         * (genCmp): began writing a new version of the function, not ready
9179         yet, therefore it is disabled,
9180         * (genAssign): do not read code memory when assigning a function to
9181         a pointer function,
9182         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
9183         array of characters, not pointer,
9184         * (pic16initialComments): in debug mode emit an .ident directive for
9185         the assembler,
9186         * (_process_pragma): emit a new warning type (internal to pic16)
9187         when setting stack to default length, emit a similar warning when
9188         placing a function at absolute address and address is not word aligned
9189         * (_pic16_parseOptions): added 'return TRUE' statement,
9190         * (_pic16_linkEdit): if compiling a source, then add the source's
9191         file object, first in the list of objects to link,
9192
9193 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
9194
9195         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
9196         * src/pic/main.c : removed VC warning.
9197         * src/pic/gen.c : changed comment.
9198
9199 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
9200
9201         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
9202         reference to a deprecated symbol _GPTRREG was causing failure to
9203         link. Thanks G. M. Gallant for the info.
9204
9205 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
9206
9207         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
9208         comments for Bugs item #954788.
9209
9210 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
9211
9212         * src/pic16/device.c (pic16_dump_gsection,
9213         * pic16_groupRegistersInSection): handle symbols declared to be in
9214         access bank differently,
9215         * src/pic16/gen.c (struct _G): added field resDirect,
9216         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
9217         send values read from stack directly to result and don't allocate
9218         temporary values,
9219         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
9220         same registers,
9221         * (pic16_sameRegsOfs): NEW,
9222         * (freeAsmop): if _G.resDirect is set then do not mark registers as
9223         free because they were not allocated from temporary pool,
9224         * pic16_popRegFromString): workaround to fix a problem with
9225         allocating variables twice or never,
9226         * (genGenPointerGet): using PRODL instead of FSR0H,
9227         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
9228         instead of FSR0H,
9229         * (genAssign): take advantage of the _G.resDirect flag,
9230         * (genCast): around line 11844, use mov2f instead of directly
9231         MOVFF'ing between operands to account for literal values,
9232         * src/pic16/genutils.c: some new debug functions for gpsim have been
9233         added,
9234         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
9235         float with integer part only,
9236         * src/pic16/main.c (_process_pragma): handle pragma udata access to
9237         place variables in access bank
9238         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
9239         updated sources to reflect recent changes in gen.c
9240
9241 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
9242
9243         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
9244         sources that searched for headers in installation path, now the
9245         device/include/pic16 is used,
9246         * src/pic16/glue.c (pic16glue),
9247         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
9248         .line directives if not in debug mode, this suppresses assembler's
9249         warnings for ignored directives
9250
9251 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
9252
9253         * src/port.h: made reset_regparms prototype void parameter explicit.
9254         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
9255         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
9256         * doc/sdccman.lyx: documented warning disabling and how to use
9257           printf_large to make it print floats.
9258         * device/include/stdbool.h: NEW
9259         * device/lib/_atof.c,
9260         * device/lib/_divuint.c,
9261         * device/lib/_divulong.c,
9262         * device/lib/expf.c,
9263         * device/lib/printf_large.c,
9264         * device/lib/sincosf.c,
9265         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
9266         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
9267           a completely reentrant lib.
9268
9269 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
9270
9271         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
9272         * device/include/pic16/stdio.h: fixed bug with colon
9273
9274 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
9275
9276         * device/include/pic16/stdio.h,
9277         * device/include/pic16/stdlib.h,
9278         * device/include/pic16/math.h: NEW
9279         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
9280         declared as _naked to reduce overhead
9281         * device/lib/Makefile.in (target port-specific-objects-pic16):
9282         changed * to *.* so to ignore the CVS directory,
9283         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
9284         stacked variables back in stack,
9285         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
9286         corruption
9287
9288 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
9289
9290         * .version: bumped version number to 2.4.5
9291         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
9292         * support/Util/SDCCerr.c (messages structure): added entry for
9293         W_POSSBUG2
9294
9295         Large cumulative patch for pic16 port and libraries.
9296         * device/include/pic16/sdcc-lib.h,
9297         * device/include/pic16/stdarg.h,
9298         * device/include/asm/pic16/features.h,
9299         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
9300         * device/include/pic16/float.h: changes reentrant keyword with
9301         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
9302         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
9303         updated target build-libraries to include objects from gptr,
9304         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
9305         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
9306         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
9307         all function headings,
9308         * src/SDCCmain.c: added global parameter userIncDirsSet,
9309         * (parseCmdLine): when option -I is encountered add directory to
9310         userIncDirsSet too,
9311         * src/version.awk: added space between control and long,
9312         * src/pic16/NOTES: added some notes for the port,
9313         * src/pic16/gen.c: added prototype for mov2fp function,
9314         * (fReturnpic16[]): properly named return value registers,
9315         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
9316         * (aopForSym): added code to handle symbols with onStack flag set,
9317         symbols onStack are allocated PTRSIZE bytes,
9318         * (aopFreeAsmop): handles special case where asmops are stack objects,
9319         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
9320         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
9321         added argument lock to trace flaws in allocating temporary registers
9322         when developing port,
9323         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
9324         * (pic16_popRegFromString): reenabled allocating a direct register
9325         from string,
9326         * (assignResultValue): various beautifications,
9327         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
9328         referenced function argument,
9329         * (genIpush): reenabled to allow stacked arguments, handles only
9330         ic->parmPush iCodes,
9331         * (genCall, genPcall): major changes to allow for variable argument
9332         functions, fixed a bug with falsely restoring stack pointer after
9333         returning from call,
9334         * (genFunction): pending code for critical function,
9335         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
9336         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
9337         * (genNearPointerGet): fixed bug with indirect reading, was always
9338         reading from INDF0
9339         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
9340         pointers,
9341         * (genAddrOf): rewrote code to take address of a stacked function parameter
9342         * (genCast): fixed casting to generic pointer type,
9343         * src/pic16/gen.h: added AOP_STA,
9344         * (struct asmop): added field stk,
9345         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
9346         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
9347         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
9348         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
9349         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
9350         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
9351         generic pointers,
9352         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
9353         and library paths,
9354         * (pic16_port structure): generic pointer size is set to 3,
9355         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
9356         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
9357         compiler warning,
9358         * src/pic16/ralloc.c (allocReg): prevent allocating register when
9359         operand is an iTemp,
9360
9361 2004-09-24 Martin Helmling <mh AT octo-soft.de>
9362
9363         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
9364         * debugger/mcs51/simi.c: addapt new syntax of s51
9365
9366 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
9367
9368         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
9369         * src/pic16/pcode.c: commented out some calls to free() in order to
9370         fix bug #989576,
9371
9372 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9373
9374         * src/SDCCicode.h,
9375         * src/SDCCicode.c (isiCodeInFunctionCall),
9376         * src/avr/ralloc.c (selectSpil),
9377         * src/pic/ralloc.c (selectSpil),
9378         * src/pic16/ralloc.c (selectSpil),
9379         * src/ds390/ralloc.c (selectSpil),
9380         * src/hc08/ralloc.c (selectSpil),
9381         * src/xa51/ralloc.c (selectSpil),
9382         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
9383         stack in the middle of a function call sequence (fixes bug #1020268)
9384         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
9385         costs associated with the minimum switch case.
9386
9387 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9388
9389         * src/SDCC.lex: fixed bug #1030549
9390
9391 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9392
9393         * src/SDCCcse.h (struct cseDef),
9394         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
9395         over a function call if the CSE is derived from a symbol whose
9396         address has been taken (fixes bug #1029883)
9397         * support/regression/tests/bug-1029883: a new regression test for
9398         this bug
9399
9400 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9401
9402         * src/hc08/gen.c (emitinline): fixed bug #1029778
9403         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
9404         to a cast object is no longer a syntax error ("fixes" bug #1030006,
9405         and starts toward RFE #905167)
9406
9407 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
9408
9409         * src/pic16/gen.c (mov2f): New function to move an operand to
9410         another without considering if it is a literal or a register,
9411         * (pic16_sameRegs): don't check if they are both AOP_REG,
9412         * (AccRsh): removed andmask=0 lines,
9413         * (genLeftShift): duplicated to be improved in future versions,
9414         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
9415         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
9416         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
9417         * (pic16initMnemonics): added initialization for POC_INFSNZW,
9418         * (insertBankSwitch): fixed inserting banksel directives algorithm
9419         for instructions that follow a skip instruction, this fixes a report
9420         for broken subtraction code generation,
9421         * src/pic16/ralloc.c (deassignLRs): do not free register if current
9422         iCode is a left op, just in case result and right share the same
9423         registers
9424
9425 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9426
9427         * src/hc08/main.c,
9428         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
9429         preservation of HX
9430         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
9431         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
9432         on 2004-09-12; it was buggy
9433
9434 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
9435
9436         * src/SDCCsymt.h: removed RESULT_CHECK
9437         * src/SDCCast.c,
9438         * src/SDCCglue.c,
9439         * src/SDCCval.c,
9440         * src/pic/glue.c,
9441         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
9442
9443 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
9444
9445         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
9446         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
9447         configuration values no more rejected by compiler, they are assigned
9448         to configuration registers with a warning message instead,
9449         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
9450         the for-loop so last conf register is emitted too,
9451         * (_pic16_initPaths): link library libsdcc.lib by default,
9452         * (_hasNativeMulFor): modified test for multiplication according to
9453         Raphael Neider's remarks. Integer multiplication is also done with
9454         support functions,
9455         * device/include/pic16/pic18fregs.h: corrected type error in while
9456         testing and including 18f6720 header file
9457
9458 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
9459
9460         * src/pic16/device.h (pic16_options): removed field use_crt,
9461         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
9462         until an optimization to handle single bits is added,
9463         * (pic16_loadFSR0): moved before genUnpackBits,
9464         * (genAnd): some white lines removed,
9465         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
9466         leave_reset flags in pic16_options when using crt modules,
9467
9468 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
9469
9470         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
9471           for bugs 898889 & 979599. Also used some safer print instructions.
9472
9473 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
9474
9475         * src/pic16/device.h (pic16_options_t): added field use_crt,
9476         crt_name, no_crt,
9477         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
9478         catch a probable future bug,
9479         * src/pic16/gen.c: aopIdx function commented out,
9480         * (genAssign): commented out old code which used aopIdx,
9481         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
9482         code, added if conditionals to take into account the --use-crt
9483         command line options,
9484         * src/pic16/main.c (pic16_optionsTable): added new command line
9485         options, --use-crt= and --no-crt,
9486         * (_pic16_linkEdit): now the proper crt object is added in the
9487         linker command line except than when --no-crt is specified,
9488         * src/pic16/pcode.c,
9489         * src/pic16/pcode.h: added some structures and functions for a new
9490         optimization scheme to compansate for instruction overhead between
9491         same iCodes, this scheme is currently under development and is not
9492         working in any way,
9493         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
9494         to && operator,
9495         * device/lib/pic16/startup/crt0i.c,
9496         * device/lib/pic16/startup/crt0iz.c: added global char variable
9497         __uflags to force the generation of an idata section
9498
9499 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
9500
9501         * doc/Makefile,
9502         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
9503         * doc/sdccman.lyx: updated sdcc version to 2.4.4
9504
9505 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9506
9507         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
9508         Frieder) and clarified the default code optimization mode
9509
9510 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9511
9512         * src/SDCC.lex (doPragma, process_pragma),
9513         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
9514         "opt_code_size", and "opt_code_balanced"
9515         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
9516         regrouped options by category, added support for category headers
9517         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
9518         and "--opt-code-size"
9519         * doc/sdccman.lyx: documented these new options and pragmas
9520         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
9521         preference into account
9522
9523 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
9524
9525         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
9526           geniCodePreDec): Fixed bug 904237 by generating a warning
9527         * src/SDCCerr.h,
9528         * src/SDCCerr.c: added warning W_SIZEOF_VOID
9529
9530 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
9531
9532         * src/pic/device.c : When no max ram set validate full memory range.
9533         * src/pic/pcode.c,
9534         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
9535
9536 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
9537
9538         * device/lib/_gptrget.c,
9539         * device/lib/_gptrput.c: updated comment
9540         * device/lib/calloc.c,
9541         * device/lib/free.c,
9542         * device/lib/malloc.c,
9543         * device/lib/realloc.c: added LGPL, made them reentrant-safe
9544         * src/SDCCcse.c (cseBBlock),
9545         * src/SDCCicode.c (printOperand, geniCodeArray),
9546         * src/SDCCicode.h (struct operand): fixed bug 868103
9547         * support/regression/tests/bug-868103.c: added
9548         * src/SDCCast.c (searchLitOp),
9549         * src/SDCCcse.h (struct cseDef),
9550         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
9551         * src/SDCCicode.h (struct operand),
9552         * src/SDCCsymt.h (struct sym_link),
9553         * src/avr/gen.c (hasInc),
9554         * src/ds390/gen.c (hasInc),
9555         * src/hc08/gen.c (genPlusIncr, hasInc),
9556         * src/mcs51/gen.c (hasInc),
9557         * src/pic16/glue.c (pic16_printIvalChar),
9558         * src/pic16/ralloc.c (regWithIdx),
9559         * src/xa51/gen.c (hasInc) : removed warnings
9560         * src/SDCCast.c (createBlock): added comment ???
9561         * src/hc08/ralloc.c: updated comments
9562
9563 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9564
9565         * doc/sdccman.lyx: updated section on switch statements, added
9566         section about semaphore locking
9567         * doc/Makefile: added option -info for latex2html
9568         * device/lib/_gptrget.c,
9569         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
9570
9571 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
9572
9573         * src/pic/device.h,
9574         * src/pic/device.c,
9575         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
9576          maxram is less than 0x100.
9577
9578 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
9579
9580         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
9581
9582 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9583
9584         * src/port.h,
9585         * src/mcs51/main.c,
9586         * src/ds390/main.c,
9587         * src/z80/main.c,
9588         * src/hc08/main.c,
9589         * src/pic/main.c,
9590         * src/pic16/main.c,
9591         * src/avr/main.c,
9592         * src/xa51/main.c
9593         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
9594         a jump table is the best form for a switch statement, including
9595         automatic insertion of missing cases to make the case range
9596         continuous. Developed in collaboration with Frieder Ferlemann.
9597
9598 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9599
9600         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
9601         accumulator result if it needs sign extension
9602
9603 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9604
9605         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
9606
9607 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9608
9609         * device/lib/gbz80/printf.c,
9610         * device/lib/z80/printf.c: removed define for NULL
9611
9612 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9613
9614         * as/xa51/xa_link.c,
9615         * device/examples/ds390/ow390/ad26.c,
9616         * device/examples/ds390/ow390/cnt1d.c,
9617         * device/examples/ds390/ow390/counter.c,
9618         * device/examples/ds390/ow390/ds2480.h,
9619         * device/examples/ds390/ow390/ds2480ut.c,
9620         * device/examples/ds390/ow390/findtype.c,
9621         * device/examples/ds390/ow390/gethumd.c,
9622         * device/examples/ds390/ow390/owllu.c,
9623         * device/examples/ds390/ow390/ownetu.c,
9624         * device/examples/ds390/ow390/swt12.c,
9625         * device/examples/ds390/ow390/swtloop.c,
9626         * device/examples/ds390/ow390/temp.c,
9627         * device/examples/ds390/ow390/temp10.c,
9628         * device/examples/ds390/ow390/thermo21.c,
9629         * device/examples/ds390/ow390/tinilnk.c,
9630         * device/examples/ds390/ow390/tstfind.c,
9631         * device/examples/serialcomm/windows/serial.cpp,
9632         * device/examples/serialcomm/windows/test_serialcomm.cpp,
9633         * device/include/reg51.h: fixed line endings for cvs
9634
9635 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9636
9637         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
9638         packRegsForAccUse, packRegisters): new accumulator register
9639         packing algorithm
9640         * support/regression/ports/hc08/support.c (_putchar): suppress
9641         warning of unused variable
9642         * src/SDCCicode.c: added SWAP entry to codeTable
9643
9644 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
9645
9646         * device/lib/sprintf.c: forgot to add this file before previous commit
9647
9648 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
9649
9650         * src/pic16/gen.c (genPackBits): added operand right in function
9651         parameters, load result directly if p_type is POINTER (that is
9652         called by genNearPointerSet)
9653         * (genUnPackBits): added operand left in function parameters,
9654         * (genNearPointerGet, genNearPointerSet): prevent the loading of
9655         FSR0 if accessing bitfields,
9656
9657 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
9658
9659         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
9660           _print_format; updated printf, sprintf, vsprintf
9661         * device/include/asm/default/features.h: corrected comment/define
9662         * device/lib/Makefile.in: added sprintf.c
9663         * device/lib/libsdcc.lib: added sprintf module
9664         * device/lib/printf_large.c,
9665         * device/lib/vprintf.c,
9666         * device/lib/sprintf.c: totally refactored printf_large and vprintf
9667           into these 3 files
9668         * support/regression/Makefile: changed ALL_PORTS into a usefull default
9669         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
9670         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
9671           hc08 test
9672         * support/regression/tests/zeropad.c: define idata as data for hc08
9673
9674 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9675
9676         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
9677         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
9678         labels are referenced at least once (even if a reference is not found)
9679         * src/hc08/gen.c (emitcode): set isComment flag for comments
9680         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
9681         loads), rules 6a..6b (optimize jumps to return)
9682
9683 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9684
9685         * device/lib/acosf.c (acosf),
9686         * device/lib/asinf.c (asinf),
9687         * device/lib/atanf.c (atanf),
9688         * device/lib/ceilf.c (ceilf),
9689         * device/lib/cosf.c (cosf),
9690         * device/lib/coshf.c (coshf),
9691         * device/lib/cotf.c (cotf),
9692         * device/lib/fabsf.c (fabsf),
9693         * device/lib/floorf.c (floorf),
9694         * device/lib/log10f.c (log10f),
9695         * device/lib/logf.c (logf),
9696         * device/lib/sinf.c (sinf),
9697         * device/lib/sinhf.c (sinhf),
9698         * device/lib/sqrtf.c (sqrtf),
9699         * device/lib/tanf.c (tanf),
9700         * device/lib/tanhf.c (tanhf),
9701         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
9702         replaced all instances of "reentrant" in the library functions
9703         defined in math.h with this macro.
9704         * support/regression/tests/float_trans.c: reenabled test for hc08
9705
9706 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
9707
9708         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
9709         erroneously deleted
9710
9711 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9712
9713         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
9714         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
9715         multi-byte volatile operands are used
9716         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
9717         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
9718         initialization to area GSINIT0 so that it would always precede
9719         any static initializers in GSINIT
9720         * support/regression/tests/zeropad.c: fixed idata define for hc08
9721         * support/regression/tests/bug-927659.c,
9722         * support/regression/tests/float_trans.c: disabled tests for hc08
9723         pending missing library routines
9724         * .version: increased version number to 2.4.4 - hc08 port now passes
9725         regression tests
9726
9727
9728 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
9729
9730         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
9731         * Makefile.common.in,
9732         * as/Makefile,
9733         * as/hc08/Makefile.in,
9734         * as/mcs51/Makefile.in,
9735         * as/z80/Makefile.in,
9736         * debugger/mcs51/Makefile.in,
9737         * device/include/Makefile.in,
9738         * device/lib/Makefile.in,
9739         * doc/Makefile,
9740         * link/Makefile,
9741         * link/z80/Makefile.in,
9742         * packihx/Makefile.in,
9743         * sim/ucsim/main_in.mk,
9744         * sim/ucsim/avr.src/Makefile.in,
9745         * sim/ucsim/doc/Makefile.in,
9746         * sim/ucsim/gui.src/serio.src/Makefile.in,
9747         * sim/ucsim/hc08.src/Makefile.in,
9748         * sim/ucsim/s51.src/Makefile.in,
9749         * sim/ucsim/xa.src/Makefile.in,
9750         * sim/ucsim/z80.src/Makefile.in,
9751         * src/Makefile.in,
9752         * support/cpp2/Makefile.in,
9753         * support/librarian/Makefile,
9754         * support/makebin/Makefile: added DESTDIR to the install path proposed
9755         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
9756         * doc/sdccman.lyx: added DESTDIR documentation
9757
9758 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
9759
9760         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
9761         instruction for interrupt handlers, use fast returns when returning
9762         from high priority interrupts
9763
9764 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9765
9766         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
9767         code generation
9768         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
9769         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
9770         bugs, ported much of Bernhard's code from mcs51
9771         * src/mcs51/gen.c (genSend),
9772         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
9773         than one when calling a reentrant function
9774         * device/lib/_mullong.c: defined an alternate struct layout for big
9775         endian ports (hc08)
9776
9777 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9778
9779         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
9780         test
9781
9782 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9783
9784         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
9785         are sane and complete before asking the port its prefered parameter
9786         passing method (fixes bug #1017633)
9787         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
9788         and _ret3
9789
9790 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9791
9792         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
9793         problem in bitfields >= 8 bits.
9794
9795 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9796
9797         * src/SDCCsymt.c: undid changes that were not meant to be committed
9798
9799 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9800
9801         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
9802
9803 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9804
9805         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
9806           copied and wrong bit got inverted
9807
9808 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9809
9810         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
9811         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
9812         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
9813         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
9814         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
9815         assignments to bitfields at known addresses
9816         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
9817         reads from bitfields at known addresses
9818         * src/hc08/ralloc.c (packRegisters),
9819         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
9820         genhc08Code): optimize pointer get values used as conditionals
9821         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
9822         and branch
9823
9824 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9825
9826         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
9827         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
9828         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
9829         as conditionals
9830
9831 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9832
9833         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
9834
9835 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9836
9837         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
9838         related problems
9839
9840 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
9841
9842         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
9843
9844 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9845
9846         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
9847         mcs51 port
9848
9849 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
9850
9851         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
9852
9853 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9854
9855         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
9856         cases use more compact code.
9857
9858 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
9859
9860         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
9861
9862 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9863
9864         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
9865
9866 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9867
9868         * src/SDCCsymt.h,
9869         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
9870         parameter of changePointer() from symbol* to sym_link*
9871         * src/SDCCast.c (decorateType): call changePointer() for CAST op
9872         * src/SDCCsymt.c (compareType): void* type is castable to other
9873         pointers, but not necesarily an exact match.
9874         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
9875         is no longer blindly treated as an exact match.
9876         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
9877
9878 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
9879
9880         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
9881
9882 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
9883
9884         * src/pic/gen.c,
9885         * src/pic/pcode.c,
9886         * src/pic/ralloc.h,
9887         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
9888
9889 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
9890
9891         * src/pic/device.c,
9892         * src/pic/device.h,
9893         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
9894
9895 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9896
9897         * src/mcs51/gen.c (emitcode): fixed bug #992819
9898
9899 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
9900
9901         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
9902           there's no need to make it worse
9903
9904 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9905
9906         * src/mcs51/ralloc.c (deassignLR),
9907         * src/ds390/ralloc.c (deassignLR),
9908         * src/hc08/ralloc.c (deassignLR),
9909         * src/z80/ralloc.c (deassignLR),
9910         * src/pic/ralloc.c (deassignLR),
9911         * src/pic16/ralloc.c (deassignLR),
9912         * src/avr/ralloc.c (deassignLR),
9913         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
9914         rlivePoint): fixed another part of bug #971834
9915
9916 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9917
9918         * src/z80/main.c: enabled "critical" keyword
9919         * src/z80/mappings.i,
9920         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
9921         functions (fixes bug #979646)
9922         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
9923
9924 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9925
9926         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
9927           such as c:\mydir.
9928
9929 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
9930
9931         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
9932           doesn't disable too much optimizations
9933
9934 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
9935
9936         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
9937
9938 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
9939
9940         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
9941
9942 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
9943
9944         * src/pic/gen.c tidied up tabs
9945         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
9946         * src/pic/main.c tidied up tabs
9947         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
9948         * src/pic/pcoderegs.c tidied up tabs
9949         * src/pic/ralloc.c tidied up tabs
9950
9951 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
9952
9953         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
9954         to S_FIXED for pic16 port and when symbol is not in level 0,
9955         allocate for S_REGISTER storage class and pic16 port, too,
9956         * src/pic16/device.h: prototype for checkSym,
9957         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
9958         * (pic16_assignConfigWordValue): test the value and the mask to
9959         validate that the value is suitable for the configuration word,
9960         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
9961         collect extern declared symbols, don't emit symbol twice, check
9962         first if symbol is in publics set first,
9963         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
9964         * added command line '--fstack' which enables an experimental
9965         feature for stack access, too buggy to be used yet...
9966         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
9967         * (pic16_allocDirReg): when register has storage class S_REGISTER
9968         allocate in pic16_dynAccessRegs,
9969         * device/include/pic16/pic18f????.h: modified configuration word
9970         naming convention, words started as CONFIG0H but should be CONFIG1H
9971
9972 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
9973
9974         * device/include/mcs51reg.h: fixed bug 970993
9975
9976 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
9977
9978         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
9979         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
9980         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
9981         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
9982         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
9983         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
9984           error/warning numbers,
9985           added function setWarningDisabled()
9986         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
9987         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
9988           _memcmp.c _memmove.c calloc.c realloc.c free.c
9989         * support/regression/tests/malloc.c: added tests for new functionality
9990         * support/regression/tests/zeropad.c: added tests for truncated initializers
9991           and initialized char arrays starting with '\x0'
9992         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
9993
9994 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
9995
9996         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
9997
9998 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9999
10000         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
10001         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
10002         peephole 177.e. Thanks to anonymous
10003
10004 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
10005
10006         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
10007         function isn't used in the source but referenced as a
10008         variable initializer then declare it as extern in .asm file
10009
10010 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
10011
10012         * .version: increased version number to 2.4.3
10013
10014         Adding version extension according to ChangeLog CVS revision
10015         * src/Makefile.in (target all): added dependency 'version.h'
10016         * (rule version.h): added rule to create version.h from ChangeLog,
10017         * (rule dep): added dependency version.h,
10018         * src/version.awk: AWK script to create version.h
10019         * src/SDCCdwarf2.c (dwWriteModule),
10020         * src/SDCCglue.c (initialComments),
10021         * src/SDCCmain.c (printVersionInfo): modified to write after
10022         version string the version extension number,
10023         * src/SDCCutil.c: included "version.h"
10024         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
10025         number,
10026         * src/SDCCutil.h: added prototype for getBuildNumber
10027
10028         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
10029         includeDirsSet, too,
10030         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
10031         const char [] is found in function prototype...
10032
10033         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
10034         moving to WREG with source is already in WREG,
10035         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
10036         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
10037         * (aopForSym): stack'ed symbols are partially supported, added
10038         if-clause to support symbols in FARSPACE,
10039         * (sameRegs): added test for AOP_ACC to see if registers are same,
10040         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
10041         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
10042         * (pic16_popRegFromString): will not allocate a new register if it
10043         doesn't find one by name, bug may have introduced...
10044         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
10045         * (genIpush): revived to use pic16 port's stack,
10046         * (genAddrOf): added incomplete case for stack'ed operand,
10047         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
10048         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
10049         can handle multibyte operands,
10050         * src/pic16/glue.c (pic16_printIval*): some debug info added,
10051         * (pic16initialComments): added message for MPLAB compatibility
10052         mode enabled,
10053         * src/pic16/main.h: prototype for pic16_mplab_comp,
10054         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
10055         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
10056         * (_pic16_linkEdit): NEW, handles link stage, transferred here
10057         because of increased complexity of procedure,
10058         * (_process_pragma): stack pragma changed to format 'stack pos len',
10059         emit symbol '_stack_end' to conform with gplink,
10060         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
10061         to search for register,
10062         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
10063         PO_GPR_REGISTER,
10064         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
10065         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
10066         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10067         case for PO_GPR_REGISTER,
10068         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
10069         dies, the new era is ahead !...
10070         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
10071         pic16_dynInternalRegs,
10072         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
10073         * (pic16_allocDirReg): minor optimizations and bug fixes,
10074         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
10075
10076         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
10077         load stack and frame pointer with address of 'stack_end' symbol
10078
10079 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
10080
10081         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
10082         without source code but only variable initializers
10083
10084 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
10085
10086         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
10087         external are not declared as extern to reduce overhead while linking
10088
10089 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
10090
10091         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
10092
10093 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
10094
10095         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
10096           Yee Keat for the patch
10097         * src/SDCCast.c (decorateType): fixed bug #979599
10098         * src/ds390/gen.h: removed local fReturnSizeDS390
10099         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
10100         * src/ds390/gen.c (genAnd, genOr, genXor),
10101         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
10102
10103 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
10104
10105         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
10106         add relFilesSet to $3, manipulate $2 to handle linking of object
10107         files without source files in command line,
10108         * device/include/pic16 (all headers): added ID location macros,
10109         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
10110         entries for ID location bytes,
10111         * (pic16_assignIdByteValue): NEW,
10112         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
10113         added field dumpcalltree to pic16_options_t,
10114         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
10115         is used instead of pic16_Gstack_base_addr, check if (ifx) before
10116         emitting rFalseIfx label after check_carry label,
10117         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
10118         pic16_emitDIRegs), NEW
10119         * (pic16glue): dump .calltree file when option --calltree found,
10120         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
10121         * (_pic16_genAssemblerPreamble): emit ID locations after
10122         configuration registers,
10123         * (pic16_linkCmd): modifications of the link command,
10124         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
10125         * (pic16_pCodeInitRegisters): don't init stack registers,
10126         * (pic16_findPrevInstruction): fixed bug,
10127         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
10128         bug with immediate registers,
10129         * (buildCallTree): traces stack push and pop,
10130         * (pct2): dump also stack usage for each function,
10131         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
10132         * (pic16_allocDirReg): various modifications,
10133         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
10134         fixed to 1,
10135
10136 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
10137
10138         * src/pic16/pcode.c: removed buggy double colon
10139
10140 2004-07-01 Borut Razem <borut.razem AT siol.net>
10141
10142         * support/scripts/sdcc.nsi: added include/pic16 to setup
10143
10144 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
10145
10146         * device/lib/Makefile.in: fixed bug in target objects-pic16,
10147         * device/lib/pic16/Makefile: prefixed with dash (-) command under
10148         target 'clean',
10149         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
10150         specific command line arguments. Also added sample lkr script
10151         for placing a variable at a specific memory bank.
10152         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
10153         at a specific memory bank,
10154         * (pic16_dump_isection): fixed bug which caused string literals to
10155         be omitted when dumping idata section,
10156         * (pic16_groupRegistersInSection): added code to handle registers
10157         in specific memory banks,
10158         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
10159         public, all references are renamed too,
10160         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
10161         AOP_DPTR2,
10162         * (pic16_storeForReturn): added case to handle when dest is WREG,
10163         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
10164         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
10165         pic16_rel_udata, check to see if that register is marked as being
10166         a member of a specific memory bank,
10167         * (pic16_printIvalCharPtr): added code to add string literals either
10168         to code or the idata sections,
10169         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
10170         also accept the 'udata' pragma,
10171         * src/pic16/main.h: new structure types sectName and sectSym
10172         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
10173         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
10174         * (pic16_findPrevInstruction): fixed, it returned nothing,
10175         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
10176         instruction combinations,
10177         * (pic16_FixRegisterBanking): heavily reorganised,
10178         * (pic16_AnalyzeBanking): if generating banksel directives is
10179         disabled, then don't call FixRegisterBanking at all,
10180         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
10181         completely removed,
10182         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
10183
10184 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
10185
10186         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
10187         Phuah Yee Keat <yk.phuah AT nestac.com>
10188
10189 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
10190
10191         * src/pic16/glue.c (pic16createInterruptVect): function now emits
10192         correctly the IVT even if it is relocated to some other location
10193
10194 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
10195
10196         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
10197         * device/include/pic16/pic18f2220.h: NEW,
10198         * device/lib/pic16/libdev/pic18f2220.c: NEW,
10199         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
10200         * src/pic16/device.c (struct Pics16): added info for 18f2220,
10201         * src/pic16/device.h (struct pic16_options): added ivt_loc and
10202         nodefaultlibs, ivt_loc is the location of the interrupt vector
10203         table, and nodefaultlibs signs that default libraries should not be
10204         linked in link stage,
10205         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
10206         according to --ivt-loc argument,
10207         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
10208         when pragma stack is found,
10209
10210 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10211
10212         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
10213         256 (range check), 257 (do while), 258.a-f (bit banging
10214         f.e. on 3-wire SPI bus)
10215
10216 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10217
10218         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
10219         variables used exclusively within a loop
10220
10221 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
10222
10223         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
10224
10225 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10226
10227         * src/SDCClrange.c (computeClash): fixed bug #971834
10228
10229 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10230
10231         * src/mcs51/gen.c (genCmp): fixed bug #975903
10232         * src/hc08/gen.c (operandsEqu),
10233         * src/ds390/gen.c (operandsEqu),
10234         * src/z80/gen.c (operandsEqu),
10235         * src/pic/gen.c (operandsEqu),
10236         * src/pic16/gen.c (operandsEqu),
10237         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
10238         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
10239
10240 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10241
10242         * src/SDCCcse.c (cseBBlock): fixed bug #966963
10243
10244 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
10245
10246         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
10247         default case in switch statement,
10248         * glue.c (pic16_initPointer): expr is initialised via decoarteType
10249         to eliminate problem with initialisation of pointers, but problem
10250         still exists,
10251         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
10252         * (emitStaticSegment): removed various lines emitting debug info,
10253         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
10254         added processor registers for utilizing EEPROM,
10255         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
10256         configurable and set 8
10257
10258 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
10259
10260         * .version: increased version number to 2.4.2,
10261
10262         Cumulative patch for pic16 port
10263         * src/pic16/device.c: changed scheme to dump initial values for
10264         variables in idata segment, all print_idata* functions were removed,
10265         now the pic16_printIval* will be called,
10266         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
10267         * _pic16_printPointerType, pic16_printPointerType,
10268         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
10269         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
10270         NEW, similar to the respective functions in SDCCglue.c,
10271         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
10272         way, emitting hex bytes,
10273         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
10274
10275 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10276
10277         * src/avr/ralloc.c (serialRegAssign),
10278         * src/xa51/ralloc.c (serialRegAssign),
10279         * src/pic/ralloc.c (serialRegAssign),
10280         * src/pic16/ralloc.c (serialRegAssign),
10281         * src/hc08/ralloc.c (serialRegAssign),
10282         * src/z80/ralloc.c (serialRegAssign),
10283         * src/ds390/ralloc.c (serialRegAssign),
10284         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
10285
10286 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10287
10288         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
10289         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
10290
10291 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
10292
10293         Cumulative patch for pic16 port:
10294         * src/pic16/device.h (typedef PIC16_device) modified fields for
10295         defining microcontrollers,
10296         * src/pic16/device.c: added new info for all devices in Pics16 array,
10297         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
10298         to be optimised out by the pCode optimiser,
10299         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
10300         specially, bug reported by G.M. Gallant,
10301         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
10302         as force'd so that cannot be optimised out by pCode optimiser,
10303         * src/pic16/pcode.c,
10304         * src/pic16/pcodepeeph.c,
10305         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
10306         they are disabled by default, but can be enabled explicit with
10307         command argument --denable-peeps, for testing,
10308         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
10309         --pomit-ivt in COMPILE_FLAGS
10310
10311 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
10312
10313         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
10314           compilation on MSVC
10315
10316 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
10317
10318         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
10319
10320 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10321
10322         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
10323         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
10324
10325 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
10326
10327         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
10328         would only assign 0x300001 register.
10329
10330 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
10331
10332         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
10333         in COMPILE_FLAGS. Thanks to G. Gallant for report.
10334
10335 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10336
10337         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
10338         for ds80c400
10339         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
10340         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
10341         added peephole 254 (left shift), 255 (jump table)
10342
10343 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
10344
10345         * device/lib/Makefile.in: removed comment line with model-pic16,
10346         * (target port-specific-objects-pic16): the libraries and objects
10347         are copied to the build directory form the device/lib/pic16/bin
10348         directory
10349
10350         Cumulative patch concerning pic16 port:
10351         * library directory has been re-organized,
10352         * added support for PIC18F1220,
10353         * added headers and library sources for chips 18f1220,18f6520,
10354         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
10355
10356         * configuration registers setting has changed, now each supported
10357         device has a complete description of the registers it uses,
10358         * all initialisations are moved to idata sections, these section
10359         can be absolute or relocatable,
10360         * fixed initialisation of codespace variables,
10361         * fixed warning about PCLATU and gpsim,
10362         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
10363         * (genAssign): use table reads when assigning from variables in codespace,
10364         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
10365         char/int variables placed in codespace,
10366         * (pic16_emitConfigRegs): NEW, emits a list with configuration
10367         registers set in .asm file, no need for --pomit-config-words anymore,
10368         * (pic16glue): some 8051 legacy segments are commented out
10369         (to be removed completely),
10370         * added support for alternative assembler and linker with --asm=
10371         and --link= command line arguments,
10372         * peepholes are disabled automatically in the port, no need to
10373         specify on command line,
10374         * port supports natively char/int/long multiplication, but converts
10375         all divisions to support functions,
10376         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
10377         to the file set in variable $2,
10378         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
10379         strings in ASCII format and not in hex,
10380         * ralloc.c (serialRegAssign): added a triplet of conditional calls
10381         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
10382         allocate proper register if iCodes aren't temporary,
10383
10384 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
10385
10386         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
10387
10388 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
10389
10390         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
10391         is commented out
10392
10393 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10394
10395         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
10396         computed address is reused
10397         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
10398         multi-byte bitfields
10399
10400 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
10401
10402         * src/z80/gen.c: (genArrayInit): must check for pointers too
10403
10404 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
10405
10406         * support/regression/tests/zeropad.c: never meant to commit the
10407           nestedstruct test: removed, added check for GCC version
10408
10409 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
10410
10411         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
10412         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
10413         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
10414           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
10415           bugs 928906 and 954082 half-empty initializers
10416         * src/SDCCsymt.h,
10417         * src/SDCCsymt.c (getAllocSize): added for above fix
10418         * src/z80/gen.c (genArrayInit): fixed bug 741044
10419         * support/regression/tests/zeropad.c: added tests
10420
10421 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
10422
10423         * src/pic16/device.c (pic16_dump_section): corrected bug which
10424         caused some symbols of the libraries to be misplaced
10425
10426 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
10427
10428         * src/pic16/glue.c,
10429         * src/pic16/ralloc.h,
10430         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
10431         to fix conflict with pic port
10432
10433 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
10434
10435         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
10436         externs configuration variables,
10437         * src/pic16/ralloc.h,
10438         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
10439         prototype in header, commented out some debug messages
10440
10441 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
10442
10443         * src/pic16/glue.c,
10444         * src/pic16/main.c,
10445         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
10446         for gpasm COFF object generation. Thanks to D. Hawkins for
10447         his patch info
10448
10449 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10450
10451         * src/ds390/main.c,
10452         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
10453         Brock for spotting this)
10454         * src/ds390/gen.c (genEndFunction),
10455         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
10456         interrupt handler and critical. Disable push/pop optimizations when
10457         peephole optimizations disabled.
10458
10459 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
10460
10461         Updated pic16 library sources and headers.
10462         * device/lib/pic16/pic18f*/ ,
10463         * device/include/pic16/*.h: modified to handle structured SFR
10464         definitions
10465
10466 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
10467
10468         * src/port.h (PORT structure): added hook initPaths, now each
10469         port can declare its own default search paths,
10470         which can been seen with the --print-search-dirs option,
10471         see pic16 port for example,
10472         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
10473         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
10474         * (doPrintSearchDirs): NEW, replaces in a central manner the
10475         printing of search dirs which was split in set*Paths functions,
10476         * (main): added call to port->initPaths and doPrintSearchDirs,
10477         * src/avr/main.c,
10478         * src/ds390/main.c,
10479         * src/hc08/main.c,
10480         * src/izt/i186.c,
10481         * src/izt/tlcs900h.c,
10482         * src/mcs51/main.c,
10483         * src/pic/main.c,
10484         * src/pic16/main.c: modified port structures to reflect addition of
10485         initPaths hook,
10486
10487         * src/pic16/device.c (regCompare): registers are finally sorted by name,
10488         * (pic16_dump_section): for registers in same address reserve memory once,
10489         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
10490         to no_banksel,
10491         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
10492         result is greater in size than right or left,
10493         * (pic16_genUMult8X8_8): there are some cases where the result can
10494         be 16 bits size, so handle these,
10495         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
10496         * (pic16_outBitC): modified to emit pcodes,
10497         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
10498         or not,
10499         * (genDivOneByte): implemented algorithm to divide 8-bits,
10500         * (genCmp): uncommented goto, but issues still exist,
10501         * (genAnd): fixed a bug with variables >8bits,
10502         * (genPackBits): optimization added that uses BCF/BSF to change a
10503         single bit,
10504         * (genAssign): fixed bug when assigning floating point literals,
10505         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
10506         __sdcc_gsinit_startup label,
10507         * src/pic16/main.c (_pic16_init): removed search directory
10508         initialisations,
10509         * (_pic16_initPaths): NEW, used to initialise search directories,
10510         * (_hasNativeMulFor): support functions for all except char/int
10511         multiplication, and char division,
10512         * (PIC16_port struct): modified entry for native mul support,
10513         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
10514         no_banksel option,
10515         * (buildCallTree): call to register_usage is ifdef'ed out,
10516
10517 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10518
10519         * device/include/string.h: applied Stas Sergeev's patch to make this
10520         header file compatible with the preprocessor -Wundef option
10521         * src/SDCCmain.c (main): abort compilation if preprocessor reports
10522         failure (fixes bug #941458)
10523
10524 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10525
10526         * src/SDCCopt.c (killDeadCode): fixed bug #907733
10527         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
10528         that the variable, not the function, should be static
10529         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
10530         to be consistent with non-literal case
10531
10532 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10533
10534         * src/SDCCast.c (isConformingBody): fixed bug #949967
10535         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
10536         convilong): fixed bug #952086
10537
10538 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10539
10540         * src/SDCCmem.c (allocVariables): fixed bug #955321
10541
10542 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10543
10544         * src/hc08/main.c (_hc08_genAssemblerEnd),
10545         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
10546         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
10547         completely eliminated the use of a temporary file
10548         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
10549         when more than one file linked
10550         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
10551
10552 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10553
10554         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
10555         which fixes bug #543481
10556         * support/regression/tests/bug-751703.c: fixed comments left from a
10557         cut and paste error
10558         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
10559         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
10560         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
10561         scopes
10562         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
10563         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
10564         are now changed to underscores in moduleName
10565
10566 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10567
10568         * as/mcs51/lkmem.c: better fix for bug #954173
10569
10570 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
10571         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10572
10573         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
10574         * device/include/c8051f000.h,
10575         * device/include/c8051f120.h,
10576         * device/include/c8051f300.h,
10577         * device/include/c8051f310.h,
10578         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
10579         PWM16) and detab'ed
10580
10581 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10582
10583         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
10584         and mailing lists, doc'ed --no-peep-comments, removed reference
10585         to knoppix (newest version has no LyX/LaTeX), other minor changes
10586         * src/SDCCglue.c (glue): save 2 bytes stack space with
10587         option --main-return. The ljmp could probably be avoided too
10588
10589 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10590
10591         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
10592
10593 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10594
10595         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
10596         * src/SDCCopt.c (isLocalWithoutDef),
10597         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
10598         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
10599         (credit to Maarten Brock for patch #949363, on which this is based)
10600         * support/regression/tests/bug-751703.c: some test cases of extern used
10601         within inner scopes.
10602
10603 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10604
10605         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
10606         SPEC_STRUCT
10607         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
10608         struct definitions
10609         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
10610         dwWriteLabel): fix to create valid debugger symbols even when
10611         the module name has non-alphanumeric symbols in it
10612         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
10613         when a variable's allocation has been optimized away
10614
10615
10616 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10617
10618         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
10619         * src/hc08/main.c,
10620         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
10621         * src/mcs51/main.c,
10622         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
10623         * src/ds390/main.c,
10624         * src/z80/gen.c (z80_emitDebuggerSymbol),
10625         * src/z80/main.c,
10626         * src/pic/gen.c (pic14_emitDebuggerSymbol),
10627         * src/pic/main.c,
10628         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
10629         * src/pic16/main.c,
10630         * src/avr/gen.c (avr_emitDebuggerSymbol),
10631         * src/avr/main.c,
10632         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
10633         * src/xa51/main.c,
10634         * src/SDCCdebug.c (emitDebuggerSymbol),
10635         * src/SDCCdebug.h,
10636         * src/port.h: added a debugger struct to the port struct. Added a
10637         callback for defining debugger symbols
10638
10639         * src/SDCCast.c (createLabel),
10640         * src/SDCC.y (labeled_statement): mark all compiler generated labels
10641         with isitmp = 1
10642         * src/SDCCicode.h,
10643         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
10644         iCode back to the ast for the function
10645
10646         * src/hc08/ralloc.c (hc08_assignRegisters),
10647         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
10648         unneeded fields from the regs struct.
10649         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
10650         pushReg() & pullReg() functions instead of emitcode()
10651
10652         * src/hc08/gen.c (genLabel, genhc08Code),
10653         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
10654
10655         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
10656         debugger hooks
10657
10658         * src/hc08/gen.c (genEndFunction, genhc08Code),
10659         * src/hc08/gen.h,
10660         * src/mcs51/gen.c (genEndFunction, gen51Code),
10661         * src/mcs51/gen.h,
10662         * src/ds390/gen.c (genEndFunction, gen390Code),
10663         * src/ds390/gen.h,
10664         * src/z80/gen.c (genEndFunction, genZ80Code),
10665         * src/z80/gen.h,
10666         * src/z80/z80.h,
10667         * src/pic/gen.c (genEndFunction, genpic14Code),
10668         * src/pic/gen.h,
10669         * src/pic16/gen.c (genEndFunction, genpic16Code),
10670         * src/pic16/gen.h,
10671         * src/avr/gen.c (genEndFunction, genAVRCode),
10672         * src/avr/gen.h,
10673         * src/xa51/gen.c (genEndFunction, genXA51Code),
10674         * src/xa51/gen.h,
10675         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
10676         specific code to cdbFile.c and out of the backend code generators
10677
10678         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
10679         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
10680         starting address is now 0
10681
10682         * as/hc08/asm.h,
10683         * as/hc08/m08pst.c,
10684         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
10685         assembler directive for DWARF support
10686         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
10687
10688         * src/src.dsp,
10689         * src/Makefile.in,
10690         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
10691
10692 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10693
10694         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
10695         and inappropriate peephole optimization in jump tables
10696
10697 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10698
10699         * as/hc08/m08pst.c,
10700         * src/SDCCglue.c: sdccopt works for the hc08 port now
10701
10702 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
10703
10704         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
10705
10706 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10707
10708         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
10709
10710 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10711
10712         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
10713         rules
10714         * src/SDCCmain.c,
10715         * src/SDCCglobl.h,
10716         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
10717         comments from the peephole optimizer replacement rules
10718         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
10719         symbols
10720         * src/SDCCcse.c (updateSpillLocation),
10721         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
10722         equivalents
10723         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
10724         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
10725         objects far pointers
10726
10727 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10728
10729         * src/SDCCsymt.h: a missing part of my last change
10730         * src/pic/ralloc.c (regTypeNum),
10731         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
10732
10733 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10734
10735         * src/SDCCicode.h,
10736         * src/SDCCicode.c (aggrToPtrDclType),
10737         * src/SDCCptropt.h,
10738         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
10739         ptrPseudoSymConvert),
10740         * src/pic/ralloc.c (regTypeNum),
10741         * src/pic16/ralloc.c (regTypeNum),
10742         * src/hc08/ralloc.c (regTypeNum),
10743         * src/ds390/ralloc.c (regTypeNum),
10744         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
10745         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
10746
10747 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10748
10749         * link/z80/lkmain.c (afile),
10750         * as/hc08/lkmain.c (afile),
10751         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
10752         prevent a pointer problem when a filename has no directory and
10753         no extension specified.
10754
10755 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10756
10757         * link/z80/lkmain.c (afile): allow periods in directory names
10758         * link/z80/lkmain.c (afile),
10759         * as/mcs51/lkmain.c (afile),
10760         * as/hc08/lkmain.c (afile): allow linker script file to have an
10761         extension other than ".lnk"
10762         * link/z80/lklex.c (getfid),
10763         * link/z80/lkmain.c (parse),
10764         * as/mcs51/lklex.c (getfid),
10765         * as/mcs51/lkmain.c (parse),
10766         * as/hc08/lklex.c (getfid),
10767         * as/hc08/lkmain.c (parse): Support comments in the linker script
10768         file on lines by themselves and after filenames
10769
10770 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10771
10772         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
10773
10774 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10775
10776         * src/z80/peeph-z80.def: removed some peephole rules that don't
10777         work with multibyte arithmetic (fixed bug #937126)
10778         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
10779         to registers and not global variables
10780         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
10781         geniCodePreInc, geniCodePostDec, geniCodePreDec,
10782         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
10783         checking for assignments not internally generated (fixed bug #931895)
10784         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
10785         structure member (fixed bug #930072)
10786
10787 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10788
10789         * src/SDCCmain.c (linkEdit),
10790         * src/hc08/main.c (_hc08_parseOptions),
10791         * as/hc08/Makefile.in,
10792         * as/hc08/aslink.h,
10793         * as/hc08/asm.h,
10794         * as/hc08/m08pst.c,
10795         * as/hc08/lkrloc.c (relr, rele),
10796         * as/hc08/lkarea.c (lnkarea)
10797         * as/hc08/lkmain.c (afile, parse),
10798         * as/hc08/lkelf.c: support for ELF output
10799         * as/hc08/lks19.c (s19),
10800         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
10801
10802 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10803
10804         * as/mcs51/lkihx.c: Fixed bug #899105.
10805
10806 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10807
10808         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
10809         .dsp files from Unix to DOS.
10810
10811 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10812
10813         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
10814         function pointers; we have been compliant for several months now.
10815         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
10816         change that was accidently commented out
10817         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
10818         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
10819         bug #922319
10820
10821 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10822
10823         * src/hc08/gen.c: output of all of the internal debugging information
10824         is now controlled by the D() macro; it is disabled by default
10825
10826 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10827
10828         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
10829         harder to keep the same registers during a CAST iCode
10830         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
10831         long via int can be done in a single cast, if the signedness is
10832         correct.
10833         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
10834         putchar() in tinibios.c in ds390's library
10835
10836 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
10837
10838         * src/SDCCast.c (decorateType): fixed bug #898889,
10839         cast result of a literal complement too
10840         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
10841         fixed check for bitfields
10842
10843 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
10844
10845         * src/SDCCicode.c (geniCodeLogic): made it static,
10846         (geniCodeLogicAndOr): added in order to fix bug #905492,
10847         (ast2iCode): fixed bug #905492
10848         * support/regression/tests/bug-905492.c: added
10849         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
10850         (processParms): fixed bug #927659: don't copy parms, this will clear
10851         decorated flag
10852         * support/regression/tests/bug-927659.c: added
10853
10854 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
10855
10856         * src/SDCCast.c (addCast): don't cast float to char
10857         * device/lib/libsdcc.lib: added _memmove
10858
10859 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
10860
10861         * device/lib/large/Makefile: fixed parallel execution by
10862         replacing `make` by `$(MAKE)`
10863
10864 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10865
10866         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
10867         offsets (fixes bug #923936)
10868
10869 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
10870
10871         * device/lib/small/Makefile: fixed parallel execution by
10872         replacing `make` by `$(MAKE)`
10873
10874 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
10875
10876         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
10877
10878 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
10879
10880         * src/pic/gen.c (genCpl): multi-byte complements were not working.
10881         * src/regression/Makefile: Regression test was not running.
10882
10883 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
10884
10885         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
10886         complement if possible
10887         * src/SDCCval.c (valComplement),
10888         * src/SDCCicode.c (operandOperation): fixed complement of literal
10889         * support/regression/tests/onebyte.c (testComplement): added
10890
10891 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
10892
10893         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
10894         return an optimized tree; actually replace actParm with the new tree
10895         * src/SDCCast.h: added some parantheses to remove side effects
10896         * support/regression/tests/bug-920866.c
10897
10898 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
10899         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
10900         Bit operands were not being handled properly in the pic14 port.
10901         (now src/regression/add.c passes again).
10902
10903 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10904
10905         * src/SDCC.y (labeled_statement): case and default no longer require
10906         a following statement (RFE #893037)
10907
10908 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10909
10910         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
10911         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
10912         disabled (fixes bug #916294)
10913         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
10914         "mov a,acc"; patch provided by Lenny Story
10915         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
10916
10917 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10918
10919         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
10920         functions
10921         * src/ds390/gen.c (genFunction, genEndFunction),
10922         * src/ds390/ralloc.c (ds390_assignRegisters),
10923         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
10924         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
10925         pushed if there are parameters passed on the stack. Also, a cleaner
10926         way to decide if r0/r1 should be pushed/popped. (Together they fix
10927         bug #918693)
10928
10929 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10930
10931         * doc/sdccman.lyx,
10932         * device/lib/mcs51/crtpagesfr.asm,
10933         * device/lib/mcs51/crtxinit.asm,
10934         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
10935         to avoid confusion with Si Lab's SFRPAGE register.
10936
10937 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10938
10939         * src/SDCCglue.c (emitMaps): allow public sfr variables
10940         * src/SDCCglue.c (initialComments): include compiler build date
10941         with compiler version and put the timestamp of the generated
10942         assembly file on a serperate line to be less confusing.
10943         * src/port.h: added genInitStartup hook
10944         * src/avr/main.c,
10945         * src/ds390/main.c,
10946         * src/hc08/main.c,
10947         * src/pic/main.c,
10948         * src/pic16/main.c,
10949         * src/xa51/main.c,
10950         * src/z80/main.c: genInitStartup initialize as NULL (default to
10951         historical behaviour)
10952         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
10953         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
10954         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
10955         library instead of hard coding it into the compiler.
10956         * support/regression/ports/mcs51-stack-auto/spec.mk,
10957         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
10958         * device/lib/mcs51/Makefile,
10959         * device/lib/small/Makefile,
10960         * device/lib/large/Makefile,
10961         * device/lib/mcs51/crtpagesfr.asm,
10962         * device/lib/mcs51/crtstart.asm,
10963         * device/lib/mcs51/crtxclear.asm,
10964         * device/lib/mcs51/crtxinit.asm,
10965         * device/lib/mcs51/crtclear.asm,
10966         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
10967         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
10968         and into user configurable files.
10969         * device/lib/clean.mk: clean mcs51 directory too
10970         * support/regression/tests/longlit.c: added static to T1 declaration
10971         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
10972         accesses in the initialization code
10973
10974 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10975
10976         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
10977         OSCTRIMVAL as noted in bug #916008
10978
10979 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10980
10981         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
10982         in loops with multiple exits (reported as incorrect registers
10983         used by Martin Helmling in Sdcc-user list)
10984
10985 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10986
10987         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
10988         made ds390 register extensions look less like error messages
10989
10990 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10991
10992         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
10993         reported by Adam Wozniak in Sdcc-user list
10994
10995 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
10996
10997         * src/SDCCast.c (decorateType): fixed with bug and promotion in
10998         arithmetic optimizations, added debug output
10999
11000 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
11001
11002         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
11003         * sdcc.spec: updated and split sdcc into 3 rpms
11004         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
11005         needed for literals of LEFT_OP and '+'
11006         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
11007         introduced RESULT_TYPE_NOPROM
11008         (geniCodeMultiply): fixed logic for decision if mul is optimized to
11009         left shift
11010         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
11011         limited promotion to int only for '*'
11012         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
11013
11014 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
11015
11016         * src/pic16/gen.c (genSkip),
11017         (genc16bit2lit), (gencjneshort): commented out
11018         (is_LitOp): new helper function, checks operand type
11019         (genCmpEq): rewritten
11020
11021 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
11022
11023         * support/regression/tests/bug-908454.c: added
11024
11025 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
11026
11027         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
11028         * src/SDCCicode.c (usualBinaryConversions): op needs int type
11029         (geniCodeCast): cosmetic, don't preserve bit storage class
11030         (geniCodeLeftShift): added promotion
11031         (geniCodeLogic): fixed regression
11032         * src/SDCCsymt.c (computeTypeOr): accept bits too
11033         (compareType): 2nd part of fix for bug #908454, needed for bitfields
11034
11035 2004-03-07  Borut Razem <borut.razem AT siol.net>
11036
11037         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
11038
11039 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
11040
11041         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
11042         version of pic16_genPackRegisters which does not check if ic is a
11043         CAST operator,
11044         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
11045         function cause string1.c regression test fails
11046
11047 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
11048
11049         * sim/ucsim/configure.in,
11050         * sim/ucsim/configure,
11051         * sim/ucsim/doc/Makefile.in: use docdir
11052         * src/SDCC.y: fixed sbit atrributes
11053         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
11054         * src/SDCCast.c (decorateType): |^& need special promotion handling
11055         * src/SDCCast.h,
11056         * src/SDCCsymt.h: moved definition of RESULT_TYPE
11057         * src/SDCCsymt.h (computeType),
11058         * src/SDCCicode.c: computeType() needs op
11059         * src/SDCCsymt.c (checkTypeSanity),
11060         * doc/sddman.lyx: "plain" bitfields are unsigned
11061         * src/SDCCsymt.c (computeTypeOr): added
11062         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
11063         |^& ops
11064         * src/SDCCval.c (val*): computeType() needs op
11065         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
11066         * support/regression/tests/onebyte.c: added tests for |^&
11067
11068 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
11069
11070         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
11071         for writing icode into asm output.
11072
11073 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
11074
11075         * src/pic16/device.c: added some debug lines enabled
11076         with macro DEBUG_CHECK,
11077         * src/pic16/genarith.c: more debug in genPlus,
11078         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
11079         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
11080         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
11081         * (aopForSym): onStack symbols are re-placed in data memspace,
11082         and onStack flag is cleared,
11083         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
11084         copy temporary pcodeop,
11085         * (genPcall): added warning for not updating PCLATU,
11086         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
11087         always true for pic16 port,
11088         * (genMultOneWord): NEW, supports integer multiplication,
11089         * (genMult): modified to call genMultOneWord,
11090         * (ifxForOp): added warning when return NULL,
11091         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
11092         flag is set before call to operandFromSymbol for implicit
11093         added structures,
11094         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
11095         options.intlong_rent are set by default,
11096         * (_hasNativeMulFor): modified to allow port generation of integer
11097         multiplication,
11098         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
11099         set regtype to REG_SFR for all registers, restricting seting the
11100         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
11101
11102 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11103
11104         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
11105         more than 500 times in the regression tests
11106
11107 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11108
11109         * support/Util/SDCCerr.h,
11110         * support/Util/SDCCerr.c,
11111         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
11112         enumerator_list),
11113         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
11114         for symbol conflicts.
11115         * support/valdiags/tests/enum.c,
11116         * support/valdiags/tests/tentdecl.c,
11117         * support/valdiags/tests/struct.c: expect possible error messages
11118         referring to original symbol definitions.
11119         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
11120         * src/SDCCsymt.h,
11121         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
11122
11123 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
11124
11125         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
11126
11127 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
11128
11129         * src/pic16/ralloc.c (newReg): fixed bug #908929
11130
11131 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11132
11133         * src/ds390/gen.c: added missing #include "main.h"
11134
11135 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
11136
11137         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
11138         checking if symbol is already in set,
11139         * src/pic16/device.h: prototype for checkAddSym,
11140         * src/pic16/gen.c: (_G): added entry interruptvector,
11141         * (assignResultValue): removed some commented out lines,
11142         * (genFunction): check for ISR via sym->type, absolute section for
11143         interrupt code is created via a new pBlock, the goto instruction is
11144         placed now correctly at the interrupt vector position, changed all
11145         references from ivec to _G.interruptvector,
11146         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
11147         is the interrupt is a high priority one, same for return from ISR,
11148         * src/pic16/glue.c: changed all calls of addSetHead for publics and
11149         externs to calls of checkAddSym,
11150         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
11151         pic16_pcode_verbose flag is set,
11152         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
11153         * src/pic16/pcoderegs.c: message about how many registers are saved
11154         will only be emitted if pic16_pcode_verbose flag is set,
11155
11156 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11157
11158         * src/ds390/ralloc.h,
11159         * src/ds390/ralloc.c (ds390_regWithIdx),
11160         * src/ds390/gen.c (emitcode),
11161         * src/ds390/main.h,
11162         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
11163         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
11164         ds390operandCompare, getRegsRead, getRegsWritten,
11165         initializeAsmLineNode): customized instruction size calculation for
11166         ds390, started basis for some register optimizations
11167         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
11168         corresponding assembly output
11169         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
11170         missing push/pop of r0/r1. Optimized push/pops
11171
11172 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11173
11174         * src/mcs51/main.c (instructionSize): fixed ACALL size
11175         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
11176
11177 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
11178
11179         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
11180         the sorting of rlist with NULL elements
11181         * (print_idataType, print_idata): NEW to create idata sections
11182         * src/pic16/device.h: idataSymSet new variable
11183         * src/pic16/gen.c (genFunction): fixed some bugs in string
11184         comparing, improved the absolute section creation for ISRs,
11185         added FSR0L/FSR0H in registers that are saved in an ISR,
11186         * (genInline): fixed the processing of inline snippets,
11187         now they undergo no process by the peephole optimizer
11188         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
11189         are placed in idataSymSet,
11190         * (pic16emitStaticSeg): extern symbols are added in externs,
11191         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
11192         switching when aboslute variables are placed in access bank memory
11193         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
11194         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
11195         commented out with #if,
11196         * (pic16_packRegisters): reintroduce the check for CAST because some
11197         symbols are not correctly handled,
11198         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
11199         pCodeInstruction instead of pCode,
11200         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
11201         pCodeAsmDir definition,
11202         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
11203         directive, then the argument directive is emitted without the leading
11204         tab, hack for inline labels which must be in the first column,
11205         * (compareLabel,pic16_findNextInstruction),
11206         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
11207         * (insertBankSwitch): modified for the new pCodeAsmDir,
11208
11209 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11210         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
11211
11212         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
11213         instance,
11214         * (pushSide): commented out with #if,
11215         * (assignResultValue): fixed some typos in saving
11216         registers,
11217         * (genPcall): FIXED and sync'ed with genCall,
11218         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
11219         * (genNearPointerGet): fixed to handle some more cases,
11220         implementation scheme via table reads,
11221         * (genConstPointerGet): modified to access code memory correct,
11222         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
11223         and improved to handle some cases
11224         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
11225         instead of "RETLW" for init data
11226         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
11227         not IN_DIRSPACE, work around to reduce bank switching when aboslute
11228         variables are placed in access bank memory (<0x80 and >=0xf80),
11229         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
11230         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
11231         TBLWT_POSTDEC,TBLWT_PREINC
11232         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
11233         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
11234         directives
11235         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
11236         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
11237         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
11238         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
11239
11240 2004-02-29  Borut Razem <borut.razem AT siol.net>
11241
11242         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
11243         support/Util/findme.h, support/Util/system.h: enhance binary relative
11244         search for lib and include by using findProgramPath()
11245
11246 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11247
11248         * src/SDCCpeeph.h,
11249         * src/SDCCpeeph.c (pcDistance),
11250         * src/port.h,
11251         * src/mcs51/ralloc.h,
11252         * src/mcs51/ralloc.c (mcs51_regWithIdx),
11253         * src/mcs51/main.h,
11254         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
11255         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
11256         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
11257         size calculation port specific, started basis for some register
11258         optimizations
11259         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
11260         missing push/pop of r0/r1. Optimized push/pops
11261         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
11262         * device/lib/_modsint.c (_modsint),
11263         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
11264         and stack version so regression tests pass
11265
11266 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
11267
11268         * src/Makefile.in (dep): include SLIBOBJS in dependency check
11269         * src/SDCCast.c (decorateType): catch another small optimization
11270         with '?' operator
11271         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
11272         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
11273         modified to finally use computeType() all over SDCC,
11274         see Feature Request #877103
11275         * src/SDCCval.h: cosmetic
11276         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
11277         valCompare(); regression tested in muldiv.c
11278         * support/regression/tests/muldiv.c (testMod): mod sign follows
11279         dividend only
11280
11281 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
11282
11283         * src/SDCCast.c (decorateType): fixed bug #902362
11284         * doc/INSTALL.txt: fixed install instructions for win32
11285
11286 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
11287
11288         * device/include/Makefile.in (install): fixed by replacing spaces
11289         by tabs
11290         * doc/README.txt,
11291         * doc/INSTALL.txt: updated for release
11292         * doc/sdccman.lyx: added warning for --xstack being buggy
11293
11294 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
11295
11296         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
11297         to eliminate build warnings.
11298         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
11299
11300 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
11301            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11302
11303         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
11304         removed -penable-stack, added comment for stack pragma, added
11305         warning for not initializing the stack/frame registers, removed
11306         comment at interrupts section
11307
11308         Stack is made permanent, there is no ability to disable stack usage.
11309         * src/pic16/device.h,
11310         * src/pic16/device.c: removed all references to USE_STACK macro,
11311         * src/pic16/device.c (pic16_dump_section): when no elements in
11312         rlist, free rlist before return,
11313         * (pic16_dump_int_registers): NEW, internal registers are a new set
11314         of general purpose registers reused by each function,
11315         * (checkAddReg): returns 1 if registers is added to set,
11316         * (pic16_groupRegistersInSection): when a registers is of type
11317         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
11318         * src/pic16/device.h: memRange and Assigned Memory are deleted,
11319         SRCASECMP macro is moved here from device.c
11320         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
11321         PO_PCLATU, PO_PRODL, PO_PRODH,
11322         * (pic16_pCodeOpType, genMinus,
11323         changed compares to "a" register, with AOP_ACC,
11324         * (pic16_genPlus): fixed some bugs and indented properly,
11325         * (pic16_addSign): changed size to size+offset in the MOVWF
11326         instruction,
11327         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
11328         multiply 8-bit operand by literal, result is 8-bit,
11329         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
11330         multiply 2 8-bit operand, result is 8-bit,
11331         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
11332         genUMult8X*_16,
11333         * src/pic16/gen.c: changed accUse to contain WREG only,
11334         * (pic16_emitcomment): renamed to pic16_emitpcomment,
11335         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
11336         true, do not use immediate addressing any more unless sym is a
11337         pointer in codespace,
11338         * (aopForRemat): do not use immediate addressing when symbol not in
11339         codespace and when symbol's address is requested,
11340         * (aopOp): for-loop in if(sym->accUse) is modified for the new
11341         accUse size (= 1),
11342         * (aopGet): added case for AOP_ACC and don't return "accumulator
11343         bug" but WREG instead,
11344         * (popGetTempReg): pushes contents of temporary register in stack,
11345         * (popReleaseTempReg): pops contents of temporary register from
11346         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
11347         * (pic16_popGet): separated case AOP_ACC to return register WREG
11348         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
11349         or PO_IMMEDIATE and initializes their instance/offset appropriately,
11350         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
11351         the use of immediate pointers to certain cases only.
11352
11353         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
11354         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
11355         * (assignResultValue, genCall, genRet): modified to use the new
11356         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
11357         genPcall is still broken,
11358         * (genFunction): added code to create 'A' type pBlocks when
11359         interrupt functions are generated, code not extensively tested yet,
11360         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
11361         * (genEndFunction): modified so ISRs pop stored registers from stack,
11362         * (genMultOneByte): cleanup,
11363         * (AccRsh): added flag andmask, to and result with appropriate mask,
11364         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
11365         * (genDataPointerGet): fixed and reenabled its use,
11366         * (genNearDataPointerGet): bugs fixed,
11367         * (genDataPointerSet): bugs fixed,
11368         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
11369         pic16_DumpSymbol, pic16_DumpOp,
11370         * src/pic16/genutils.h: function prototypes for the above functions,
11371         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
11372         pointers,
11373         * (pic16emitRegularMap): many many many improvements, but needs a
11374         major cleanup,
11375         * src/pic16/main.c: enable_stack in pic16_options is removed,
11376         * (_pic16_parseOptions): removed command line options -penable-stack,
11377         * (_process_pragma): emit stack symbol only when stack pragma is
11378         processed,
11379         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
11380         redirected to FSR0L/FSR0H pair,
11381         * (pic16_get_op, pic16_get_op2): modifications and improvements,
11382         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
11383         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
11384         for immediates,
11385         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
11386         * (dumpPicOptype): NEW,
11387         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
11388         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
11389         with movff instruction,
11390         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
11391         added pic16_int_regs, some packRegsFor* functions are commented out,
11392         because produce errors,
11393         * src/pic16/NOTES: minor modifications
11394
11395 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11396
11397         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
11398         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
11399         --pack-iram.
11400         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
11401         * as/mcs51/lkaomf51.c: fixed bug #895763
11402
11403 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
11404
11405         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
11406
11407 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11408
11409         * doc/sdccman.lyx: added details about the HC08 storage classes and
11410         interrupts, fixed the register usage info for z80 & gbz80
11411
11412 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
11413
11414         * doc/sdccman.lyx: added more pic16 port documentation
11415         * device/include/pic16/: added header pic18fregs.h
11416
11417 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
11418
11419         * doc/sdccman.lyx: added Vangelis' contribution
11420
11421 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11422
11423         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
11424         extend to the next CALL or PCALL, not just to the next CALL.
11425
11426 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
11427
11428         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
11429
11430 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11431
11432         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
11433         bug #895752 and a better fix for bug #716790
11434
11435 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11436
11437         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
11438
11439 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11440
11441         * doc/sdccman.lyx: minor changes, minor changed
11442
11443 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
11444
11445         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
11446         which can't handle SDCC_NEWONEBYTEOPS,
11447         (geniCodeMultiply): removed conversion from mult to shift for pic14
11448         and pic16
11449
11450 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11451
11452         * src/hc08/gen.h,
11453         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
11454         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
11455         thus fixing bug #895406
11456
11457 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
11458
11459         * device/lib/_modsint.c,
11460         * device/lib/_modslong.c: sign follows divisor only
11461         * src/hc08/gen.c (genMultOneByte): if result size is 1,
11462         signs or signedness can be ignored
11463         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
11464         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
11465         added optimization for IFX,
11466         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
11467         arguments;
11468         reenabled optimization for IFX, which was removed on 2004-01-11
11469         * src/SDCCast.h: added return type IFX
11470         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
11471         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
11472         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
11473         SDCC_OLDONEBYTEOPS selects the old behaviour
11474         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
11475         changed again and commented promotion rule
11476         * src/SDCCval.c (valDiv): promotion no longer necessary
11477         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
11478         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
11479         rewritten
11480         * support/regression/tests/onebyte.c: added
11481
11482 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
11483
11484         * gen.c (genInline): reverted to old code for assemnling inline
11485         code because of bug reported James Chadd
11486
11487 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
11488
11489         * ralloc.h: missing declarations from previous patch,
11490         seems that patch for ralloc.h was never applied, fixed
11491
11492 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11493            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
11494
11495         * pcode.c,
11496         * pcode.h,
11497         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
11498         indirect addressing. Marked FSR0 as deprecated
11499         * gen.c (pointerCode): commented out, not needed now
11500         (pic16_popGet2p): new MOVFF helper function
11501         (genGenPointerGet),
11502         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
11503         (shiftRLong): removed duplicate debugging info
11504
11505 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11506
11507         * src/ds390/gen.c (genNearPointerGet),
11508         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
11509         optimization with bits, but not bitfields.
11510         * src/ds390/ralloc.c (packRegisters),
11511         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
11512
11513 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
11514
11515         * src/SDCCcse.c (algebraicOpts): copy operands before modification
11516
11517 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11518
11519         * src/SDCCsymt.h,
11520         * src/SDCCicode.c (operandFromSymbol),
11521         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
11522         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
11523         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
11524         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
11525         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
11526         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
11527         bug #892038
11528         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
11529         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
11530         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
11531         * src/SDCCsymt.c (newSymbol),
11532         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
11533         enumerator_list),
11534         * src/SDCCval.h,
11535         * src/SDCCval.c (newiList): fixed bug #885705
11536
11537 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11538
11539         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
11540         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
11541
11542 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11543
11544         * device/include/c8051f120.h,
11545         * device/include/c8051f300.h,
11546         * device/include/c8051f310.h: added/updated header files for Silicon
11547         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
11548         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
11549         in new section Submitting patches
11550
11551 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11552
11553         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
11554         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11555         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11556         genGenPointerSet),
11557         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
11558         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11559         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11560         genGenPointerSet),
11561         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
11562         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11563         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11564         genGenPointerSet),
11565         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
11566         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11567         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11568         genGenPointerSet): fixed bug #892400
11569         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
11570         to eliminate build warnings.
11571         * src/SDCCast.c (processParms),
11572         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
11573         fixed bug 751859
11574         * support/valdiag/valdiag.py: added GCC to the list of defines active
11575         when compiling with gcc
11576
11577 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11578
11579         * support/Util/SDCCerr.h,
11580         * support/Util/SDCCerr.c,
11581         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
11582         with an incomplete type (fixed bug #883734)
11583         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
11584
11585 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11586
11587         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
11588
11589 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11590
11591         * src/SDCCast.c (decorateType),
11592         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
11593         function pointer implementation
11594         * support/regression/tests/funptrs.c: added tests to verify both forms
11595         of function pointers work correctly. Added tests to verify parameters
11596         are passed in the correct order.
11597
11598 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
11599
11600         * device.c (regCompare): registers are sorted by ascending
11601         address and increasing size,
11602         * main.c (_pic16_finaliseOptions): removed the declaration
11603         of compiler macro MCU. Now a macro of the format pic18fxxxx
11604         will be defined from the command line
11605
11606 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11607             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
11608
11609         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
11610         PCOP_RLCF was overwritten!
11611         * gen.c (genSkip): commented out calls to pic16_emitcode,
11612         * (genCmpEQ): fixed "long" compares, only high word did get compared,
11613         * (genlshTwo),
11614         * (genRRC): added debugging info,
11615         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
11616         overwritten while shifting,
11617         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
11618         overwritten while shifting,
11619         * (AccLsh),
11620         * (AccRsh),
11621         * (shiftLLeftOrResult),
11622         * (shiftRLeftOrResult),
11623         * (shiftRLong),
11624         * (shiftLLong): Implemented with pic16_emitpcode
11625         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
11626         * (genLeftShift): Fixed bug, operand for shift by variable always
11627         was "and"ed with 0x0f,
11628         * (genLeftShiftLiteral),
11629         * (genrshTwo),
11630         * (genRightShiftLiteral): added debugging info,
11631         * (genrshFour): added comment,
11632         * (genRightShift): determined signedness from operand "left"
11633         instead of "result"
11634
11635 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11636
11637         * src/SDCCicode.c (geniCodeParms),
11638         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
11639         function pointers, fixed function pointer bugs #861242 and #861896
11640
11641 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11642
11643         * device/include/c8051f000.h,
11644         * device/include/c8051f120.h,
11645         * device/include/c8051f300.h: added header files for Silicon
11646         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
11647
11648 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
11649
11650         * src/SDCCast.c (processParams): added new type flow and restructured
11651         (gatherAutoInit): added new type flow
11652         (addCast): cosmetic changes
11653         (getLeftResultType): added new type flow for array indices, patch
11654         provided by Stas, see FR #877103
11655         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
11656         array index patch by Stas
11657         * src/SDCCast.h: added prototype getResultTypeFromType()
11658         * src/SDCCval.h,
11659         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
11660         * src/pic/glue.c (pic14emitStaticSeg),
11661         * src/pic16/glue.c (pic16emitStaticSeg),
11662         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
11663         for initialization of symbols
11664         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
11665         * support/Util/SDCCerr.h:
11666         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
11667         * .version: bumped version number to 2.3.8
11668         * device/include/Makefile.in (install),
11669         * doc/Makefile (install): changed to 'rm `find ...`' construct to
11670         avoid warnings
11671
11672 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
11673
11674         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
11675         Slade Rich fixed an optimization bug
11676         * src/pic/pcodepeep.c,
11677         * src/pic/pcoderegs.c
11678         * doc/Makefile (install): added test for directory
11679
11680 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11681
11682         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
11683         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
11684         * src/pic/ralloc.c (getRegPtr, getRegGpr),
11685         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
11686         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
11687         * as/mcs51/asexpr.c (term),
11688         * as/hc08/asexpr.c (term): fixed bug #887146
11689
11690 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11691
11692         * src/z80/gen.c (genMult): handle single byte result product
11693         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
11694         DUMMY_READ_VOLATILE (fixed bug #886367)
11695
11696 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
11697
11698         * support/regression/tests/libmullong.c: fixed logic, on little endian
11699         hosts we ended without a mullong_wrapper()
11700
11701 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11702
11703         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
11704         virus/worm forged address usage.
11705
11706 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
11707
11708         Fixed promotion, it should be done on AST level:
11709         * src/SDCCast.c (addCast): added promotion to int
11710         (decorateType): updated call to upCast()
11711         * src/SDCCicode.c (geniCodeLeftShift): removed call to
11712         usualUnaryConversions()
11713
11714 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
11715
11716         * support/regression/tests/literalop.c (mulWrapper): Added a
11717         wrapper to remove integer overflow warnings.
11718
11719         * support/regression/tests/float_trans.c: Made work on host.
11720
11721         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
11722         location of sz80.
11723
11724         * support/regression/generate-cases.py (main): Changed from inline
11725         to a main method.
11726
11727         * doc/Makefile (install): Changed to depth first to get rid of
11728         missing directory install warning.
11729
11730         * as/Makefile (install-doc): Made work on Mac.
11731
11732 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
11733
11734         * src/SDCCast.c: added an additional type flow in decorateType() of
11735         opposite direction, see feature request #860006; it's enabled at runtime
11736         by setting the environment variable SDCC_NEWTYPEFLOW
11737         * src/SDCCast.h: changed prototype of decorateType()
11738         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
11739         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
11740         'char' to 'int' can be omitted, if both operands are 'unsigned char';
11741         see feature request #877103
11742         * src/SDCCval.c: updated call of decorateType()
11743         (valBitwise): fixed bug #882876
11744         (valMinus): added promotion
11745         (valLogicAndOr): result is unsigned
11746         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
11747         * src/SDCCsymt.c (computeType),
11748         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
11749         must not cause an unsigned operation
11750         * src/pic/glue (pic14emitRegularMap),
11751         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
11752
11753 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
11754
11755         * src/pic/pcode.c (PCodeID): commented out left over debug code
11756
11757 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
11758
11759         * support/valdiag/tests/overflow.c: added shift tests
11760         * src/pic/device.c,
11761         * src/pic/gen.c,
11762         * src/pic/gen.h,
11763         * src/pic/glue.c,
11764         * src/pic/main.c,
11765         * src/pic/pcode.c,
11766         * src/pic/pcode.h,
11767         * src/pic/pcodepeep.c,
11768         * src/pic/pcoderegs.c,
11769         * src/pic/ralloc.c,
11770         * src/pic/ralloc.h: applied patch from Slade Rich;
11771         added support for multiple code pages and multiple RAM banks on the
11772         PIC 14 port. The ASM files now no longer simply assume all the
11773         code / RAM are in the same page / bank. This means the linker can
11774         safely allocate code/RAM of separate ASM files to different pages/banks.
11775         * doc/sdccman.lyx: added Slade's tips
11776         * src/mcs51/peeph.def: fixed bug #880768
11777
11778 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11779
11780         * src/hc08/ralloc.c (rematStr): fixed bug #879282
11781         * src/SDCCast.c (decorateType): fixed bug #880197
11782
11783 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
11784
11785         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
11786         getopt.h.
11787
11788         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
11789         strtof is not part of C89 and isn't included with Mac OS X.
11790
11791 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11792
11793         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
11794         shiftL2Left2Result): fixed bug #879326
11795         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
11796         (genMultOneByte): fixed bug in signed vs unsigned multiplication
11797         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
11798         address fetch for clr instruction
11799         * device/lib/hc08/_mulint.c: created optimized assembly version
11800         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
11801
11802 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
11803
11804         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
11805         proposed in FR #877103
11806
11807 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
11808
11809         * src/SDCCval.c (cheapestVal): added missing checks
11810         * src/SDCCicode.c (usualBinaryConversions): fixed condition
11811         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
11812
11813 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
11814
11815         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
11816         equal operands
11817
11818 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
11819
11820         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
11821         loaded with the linker search paths (-L arguments) and the libraries
11822         to be linked with the current source (-l arguments). Changes
11823         currently will affect only the pic16 port.
11824         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
11825         include path the port specific paths and port specific libraries,
11826         * gplink command now contains the $3 argument,
11827         * src/pic16/device.h,
11828         * src/pic16/device.c,: structure PIC_device is made public and
11829         renamed to PIC16_device, the same for variable Pics which is renamed
11830         to Pics16. Updated all references to them.
11831         * src/pic16/glue.c (pic16glue): corrected bug with code
11832         initialization which bypassed the variable initializations block.
11833
11834         * device/lib/pic16/Makefile.rules: removed --penable-stack from
11835         COMPILE_FLAGS and added the --nostdinc option
11836
11837 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11838
11839         * device/include/mc68hc908jb8.h: Register defs for another member
11840         of the hc08 family. Contributed by Bjorn Bringert - thanks!
11841
11842 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
11843
11844         Documenting changes from previous commits.
11845         * configure.in (version 1.56),
11846         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
11847         when generating output files to configure the pic16 library,
11848         but now I've commented it out, since gputils aren't installed in the
11849         SF compile farm, so library won't compile
11850
11851         * device/lib/Makefile.in (version 1.56): initially I've added in
11852         target 'all' the prerequestive 'model-pic16' so it compiled the
11853         pic16 library, but now I've commented it out for the same reasons
11854         above,
11855         * added targets 'model-pic16' and 'objects-pic16' to compile the
11856         library
11857         * added target 'port-specific-objects-pic16' to handle the
11858         generated libraries and copy them into the build/ directory
11859         * added target 'clean-intermediate-pic16' to clean intermediate
11860         files into pic16 directory
11861         * in target 'installdirs' added line to create directory pic16 in
11862         the installation path
11863
11864         * device/include/Makefile.in (version 1.11): in target 'install'
11865         added lines to copy all header files to installation path,
11866         * in target 'installdirs' added line create directory for pic16
11867         headers in the installation path
11868
11869 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
11870
11871         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
11872          a function call
11873
11874 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
11875
11876         * configure,
11877         * device/lib/configure.in,
11878         * device/lib/configure: fixed for autoconf 2.57
11879
11880 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11881
11882         * src/z80/main.c (_parseOptions): fixed the portmode= command line
11883         option so that it actually works. Made it specific to the z80, since
11884         the gbz80 doesn't have these kinds of I/O ports.
11885
11886 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11887
11888         * device/include/z180.h,
11889         * device/lib/_memcpy.c,
11890         * device/lib/_memmove.c,
11891         * device/lib/_mulint.c,
11892         * device/lib/ser_ir.c,
11893         * device/lib/ser_ir_cts_rts.c,
11894         * device/lib/_strcmp.c,
11895         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
11896         * src/z80/main.c (_process_pragma): add support for pragmas bank and
11897         portmode; added deprecation warning for bank= and protmode= forms.
11898         Also, guard against buffer overflow.
11899         * src/z80/gen.c (aopGet): generate better code for sfr banked read
11900
11901 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11902
11903         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
11904         changed interrupt vector table generation to only emit declared vectors.
11905         * device/include/Makefile.in: added missing backslash
11906         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
11907
11908 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
11909
11910         Mainly changes to support compilation of the device libraries
11911         * src/pic16/device.c: stack is allocated via symbol and not
11912         via literal number. The symbol is placed in the corresponding
11913         position of the data ram
11914         * (pic16_dump_section): relocatable and absolute uninitialized
11915         data are now emitted in sorted order to reduce section naming,
11916         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
11917         weren't marked as being in the access bank,
11918
11919 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
11920
11921         Added portion of GNU PIC Library under the directory
11922         device/include/pic16 and device/lib/pic16. These files
11923         contain the declarations of SFRs for the PIC18Fxx2 devices.
11924         The directory is initialized via configure from toplevel.
11925
11926 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
11927
11928         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
11929         the spilllocations to be compared correctly
11930
11931 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
11932
11933         * src/SDCCast.c (decorateType): fixed bug introduced today
11934
11935 2004-01-12  Borut Razem <borut.razem AT siol.net>
11936
11937         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
11938         doc/sdccman.lyx: upper case pragmas are deprecated
11939
11940 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
11941
11942         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
11943         in simpler and even better code
11944
11945 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
11946
11947         * src/SDCCicode.c (operandOperation): fixed bug #874819
11948         * src/SDCCast.c (decorateType): fixed
11949         char foo (unsigned long ul) { return ul > 0; }
11950
11951 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11952
11953         * doc/sdccman.lyx: Moved and added some sections, small changes
11954         all over. Telling LaTeX to be less strict with word spacing
11955         to better keep the right margin. Changed some notes about
11956         maintainance of the ports in section 3.2.1 - is it OK like this?
11957
11958 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
11959
11960         SDCC source changes:
11961         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
11962         convilong): modified to inform the pic16 port that builtin functions
11963         are external
11964
11965         PIC16 PORT specific changes:
11966         * src/pic16/device.c pic16_dump_equates() added,
11967         processor registers declared internally by the port are emitted in
11968         the translation as equates,
11969         * src/pic16/gen.c: inline code is passed unprocessed to the
11970         translation,
11971         * (pic16_popGetLit2): fnuction modified to take second operand as
11972         pCodeOp pointer and not as literal,
11973         * (popRegFromIdx): prefixed with pic16_,
11974         * (pic16_popCombine2): modified to receive already allocated pCode
11975         operands,
11976         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
11977         * (genFunction): initializes local stack frame and pushes on stack
11978         all the registers used by this function,
11979         * (genEndFunction): restores all registers from stack and restores
11980         stack frame,
11981         * src/pic16/glue.c (pic16emitRegularMap): various changes and
11982         improvements,
11983         * (pic16glue): changed the program startup sequence,
11984         * added new dbName code 'A' for functions placed in absolute section
11985         * src/pic16/main.c: added function attribute _naked,
11986         * added pragma 'code' to place a fnuction at an absolute address,
11987         * added command line arguments --debug-ralloc and --pcode-verbose,
11988         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
11989         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
11990         * (pic16_newpCodeOpLit2): modified to take the second operand as
11991         pCodeOp pointer,
11992         * (pic16_printpBlock): modified to emit each function in a separate
11993         section,
11994         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
11995         UPPER for immediate operands,
11996         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
11997         instruction,
11998         * src/pic16/peeph.def: all peepholes with movff are commented out,
11999         because there is a problem in the pcode peep optimizer,
12000         * src/pic16/ralloc.c: the register allocator can now reuse local
12001         function symbols for another function. This saves register usage.
12002         * src/pic16/ralloc.h: added flag isLocal in structure regs,
12003
12004         Added file src/pic16/NOTES with information about program writing on
12005         the current port version.
12006
12007 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12008
12009         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
12010         and peephole 252 (array access)
12011
12012 2004-01-09  Borut Razem <borut.razem AT siol.net>
12013
12014         * src/SDCCmain.c : fixed #872250: -l command line defined library
12015           files are scanned before standard library files
12016
12017 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12018
12019         * src/SDCCast.c (decorateType): fixed bug #874046
12020
12021 2004-01-09  Borut Razem <borut.razem AT siol.net>
12022
12023         * support/scripts/sdcc.nsi: remove previous installation
12024
12025 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12026
12027         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
12028         bytes for last interrupt vector (mcs51)
12029         * sdcc.spec: fixed typo
12030
12031 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12032
12033         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
12034         gen51Code): more efficient parameter receive for --model-large
12035         ("bug" #845294)
12036
12037 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12038
12039         * src/ds390/main.c,
12040         * src/z80/main.c: added missed needLinkerScript flags (more than
12041         one port structure defined in these file)
12042         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
12043         bug #795325
12044
12045 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
12046
12047         * src/SDCCmain.c: removed various references to DEFAULT_PORT
12048         * src/port.h: added flag needLinkerScript in port->linker
12049         structure to inform whether to create a .lnk file or not,
12050         * src/avr/main.c,
12051         * src/ds390/main.c,
12052         * src/hc08/main.c,
12053         * src/mcs51/main.c,
12054         * src/pic/main.c,
12055         * src/pic16/main.c,
12056         * src/xa51/main.c,
12057         * src/z80/main.c: changed appropriately to configure
12058         needLinkerScript flag
12059         * src/pic/gen.c,
12060         * src/pic16/gen.c (genAddrOf): fixed bug #863624
12061         * src/pic/glue.c: added variable udata_section_name to
12062         override default uninitialized data segment definition for
12063         devices only with SHAREBANK memory (reported from Erik Epetrich)
12064         * (pic14emitOverlay): modified to emit a commented overlay segment
12065         directive when no overlay data exist
12066         * (picglue): modified to emit uninitialized data segment
12067         according to udata_section_name
12068         * src/pic/main.c (_pic14_parseOptions): added command line
12069         options --udata-section-name=[name] to override default
12070         udata definition name
12071         * modified _linkCmd and _asmCmd to include compiler passed
12072         arguments via -W option
12073         * src/pic16/main.c: added $l in _asmCmd, changed extension for
12074         object file from '.rel' to '.o' in port->linker structure,
12075         changed size of fptr from 2 to 3 in port structure
12076
12077 2004-01-07  Borut Razem <borut.razem AT siol.net>
12078
12079         * support/scripts/sdcc.nsi: update PATH
12080         * support/scripts/sdcc.ico: craeted
12081
12082 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
12083
12084         * device/include/Makefile.in: fix install
12085         * doc/Makefile: fix install
12086
12087 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12088
12089         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
12090         in bug #860505
12091         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
12092         how the function variable allocation summary is displayed; also
12093         include information about variables allocated to the overlay
12094         segment
12095
12096 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12097
12098         * as/mcs51/lkmain.c: Help about -Y option
12099         * as/mcs51/lkarea.c: Fixed gcc warnings
12100
12101 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
12102
12103         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
12104         fixed warning
12105         * support/valdiag/tests/overflow.c: added
12106         * src/SDCCast.c (decorateType),
12107         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
12108         LEFT_OP (left shift)
12109
12110 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12111
12112         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
12113         (default behaviour).
12114
12115 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12116
12117         A python script to validate compiler diagnostic messages. It can be
12118         used to verify that sdcc complains about bad c source code and
12119         gives a good location of the error.
12120         * support/valdiag/Makefile,
12121         * support/valdiag/valdiag.py,
12122         * support/valdiag/tests/*
12123
12124 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12125
12126         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
12127         * src/SDCCsymt.c (newEnumType),
12128         * src/SDCCsymt.h
12129         * support/Util/SDCCerr.c,
12130         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
12131         enum related bugs.
12132         * support/regression/tests/enum.c: added test for enum values that
12133         require at least 2 bytes of storage.
12134
12135 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
12136
12137         * src/common.h: added ifndef/define/endif macros
12138         around the header file.
12139         Bug reported from Jesus Calvino-Fraga
12140
12141 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
12142
12143         * sdcc.spec: updated
12144         * device/include/Makefile.in: don't install CVS directories
12145         * device/lib/Makefile.in: added removal of CVS directories after install
12146         * doc/Makefile: fixed install, added local_icons
12147         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
12148         * src/mcs51/gen.c (genRightShift): fixed bug #870788
12149         * src/ds390/gen.c (genRightShift): fixed bug #870788
12150         * src/SDCCast.c (decorateType): fixed bug #870781
12151
12152 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
12153
12154         PIC16 port related changes:
12155         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
12156         added variable stackPos,
12157
12158         * gen.c: genCall, assignResultValue: added support for
12159         pushing/retrieving function parameters to/from stack,
12160         genFunction,genEndFunction: setup stack frame for the
12161         generated function,
12162         genAddrOf: will be changed according to bug 863624
12163
12164         * added files genutils.c and genutils.h which contain gen*
12165         debugged and optimised functions extracted from gen.c
12166
12167         * glue.c: added variable 'externs' which holds extern symbols,
12168         pic16emitRegularMap: is modified to properly handle relocatable
12169          symbols under the new scheme,
12170         pic16createInterruptVect: is modified
12171         pic16printPublics: is modified to emit 'global' assembler directives,
12172         added pic16_printExterns to print extern symbols,
12173         pic16glue: initializes stack/frame pointer in the beginning of
12174         the assembly output. Temporary hack, will be corrected later,
12175         because gplink yet does not support stack and SDCC does not
12176         yet support a type of crt0.o object to create the final binary.
12177
12178         * Removed many lines that contain 8051 legacy code.
12179         * The code is finally placed under a 'code' directive.
12180         * Added port specific options.
12181
12182         * _process_pragma: simplified since now we do not need *special*
12183         include file to define SFR registers. But a separate header
12184         will be needed. This will be developed later.
12185         * _pic16_parseOptions: added, parses port specific options:
12186         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
12187         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
12188         --preplace-udata-with=
12189
12190         * _pic16_setDefaultOptions: modified to initialize section names,
12191         but hack is temporarly out of order since it needs improvement.
12192         * _pic16_genAssemblerPreamble: configuration words are emitted by
12193         their address instead of their name. This part is incomplete and
12194         supports only the 18Fxx2 devices. Other devices will emit an error
12195         during assembly since they do not contain the same set of config
12196         registers
12197         * _pic16_genIVT: is modified,
12198
12199         * pcode.c: added definitions for some hardware registers that are needed
12200         for stack support
12201         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
12202         All PCI entries are updated. Now LFSR is supported.
12203         * Removed pic16_pciTRIS is mentioned by mdubuc in source
12204         * added pic16_newpCodeOpLit2 to support instructions with
12205         two literal arguments
12206         * pic16_pCode2str: corrected code that emits assembler instructions
12207         with two literal operands and those that have an access bit modifier
12208         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
12209         this fixes a bug which caused some labels to be lost, when an
12210         assembler directive was added, i.e. banksel,
12211         * pic16_FixRegisterBanking: improved logic that causes the insertion
12212         of bank switching,
12213         * InlineFunction: functions that are called once, are not any more
12214         inlined. This can be a port option in the future,
12215
12216         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
12217
12218         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
12219         hold the corresponding uninitialized symbols,
12220         * pic16_allocProcessorRegister: registers have explicit marked the
12221         accessBank field,
12222         * pic16_allocInternalRegister: registers are explicit marked as
12223         not used,
12224         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
12225         processing list, so bit registers were lost,
12226         *
12227
12228         * ralloc.h: added field 'accessBank' and original symbol operand
12229         in register definition,
12230         * removed the field isMapped from register definition,
12231
12232         ** Several functions have been removed from various sources:
12233         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
12234         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
12235         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
12236         pic16_assignRelocatableRegisters
12237
12238         ** others have been introduced:
12239         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
12240         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
12241
12242 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
12243
12244         * support/scripts/inc2h.pl: changed definition of BIT_AT
12245         to emit 'sbit at' instead of 'bit at'. This was a request.
12246
12247         PIC16 port related preliminary changes:
12248         * gen.c: prefixed function popRegFromString with
12249         pic16_ and all references to it corrected
12250         * pcode.c: all pic16_pc_* hardware registers prefixed
12251         with underscore (_),
12252         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
12253         * ralloc.c: newReg(): when register is REG_SFR then
12254         set address to rIdx,
12255         pic16_allocProcessorRegister(): marks register wasUsed=0
12256         pic16_writeUsedRegs(): added a call to assign processor
12257         registers via pic16_assignFixedRegisters
12258
12259 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12260
12261         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
12262         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
12263         variables in unused register banks.  Also the SSEG is placed
12264         wherever there is enough space for it, and IDATA can be anywhere
12265         in internal RAM.  For now compile using -Wl-Y[stack_size].
12266         The mem file is different for this option as well, since it
12267         makes no sense of talking about DSEG lenght.
12268
12269 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
12270
12271         * src/SDCClrange.c: fixed bug 869095 that caused segfault
12272         in certain cases, e.g. when ROM assignment, patch provided
12273         from Albert den Haan.
12274
12275 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
12276
12277         Many signedness and type propagation fixes:
12278         * src/SDCCicode.c: made geniCodeCast() static
12279         replaced SPEC_ by IS_ (cosmetic)
12280         (operandOperation): fixed div and mod operation
12281         (usualBinaryConversions): added support for promotion of char
12282         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
12283         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
12284         (geniCodeAdd): an array index will stay unsigned, even if promoted
12285         from char to int
12286         (geniCodeArray): ditto
12287         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
12288         * src/SDCCsymt.c (computeType): added more support for char;
12289         promotion of char is selectable by promoteCharToInt, fixed signedness
12290         for all cases
12291         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
12292         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
12293         * src/SDCCval (val*): replaced signedness calculation by
12294         computeType()
12295         rearranged if-branches (cosmetic)
12296         (valShift): added warning W_SHIFT_CHANGED
12297         (valCompare): fixed problem with different types
12298         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
12299         * support/regression/tests/literalop.c: added many cases
12300         * support/regression/tests/ast_constant_folding.c: changed finally to
12301         'unsigned int'
12302         * .version: new year, new version: 2.3.7
12303         * src/SDCCmain.c (main): applied patch #866468
12304         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
12305         provided by Scott Bronson
12306         * doc/sdccman.lyx: updated documentation for sdcdb
12307         updated and added chapter tips
12308
12309 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12310
12311         * src/SDCCsymt.h: missing from yesterday's commits
12312
12313 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12314
12315         * src/SDCC.y (struct_or_union_specifier),
12316         * support/Util/SDCCerr.c,
12317         * support/Util/SDCCerr.h: verify that struct & union tags are used
12318         as declared.
12319
12320 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12321
12322         * src/SDCCglobl.h: missing from yesterday's commits
12323
12324 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12325
12326         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
12327         sft_attributes, struct_declaration, parameter_declaration,
12328         type_name, start_block, declaration_list),
12329         * src/SDCC.lex (check_type): support redefinition of typedef names
12330
12331 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12332
12333         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
12334         aligned xdata arrays. Erik helped me with the if clause.
12335
12336 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12337
12338         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
12339         warning
12340
12341 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12342
12343         * src/SDCCast.h,
12344         * src/SDCCast.c (newAst_),
12345         * src/SDCCicode.h,
12346         * src/SDCCicode.c (ast2iCode, newiCode),
12347         * src/SDCCglobl.h,
12348         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
12349         expr, statement, expression_statement, selection_statement,
12350         iteration_statement, expr_opt, jump_statement): foundation for tracking
12351         sequence points
12352         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
12353         point code too)
12354
12355 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12356
12357         * support/Util/SDCCerr.c,
12358         * src/SDCCast.h,
12359         * src/SDCCast.c (createCase, createDefault, decorateType),
12360         * src/SDCClabel.c (labelUnreach),
12361         * src/SDCC.y (labeled_statement, jump_statement): More improvements
12362         to error messages.
12363         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
12364         (with thanks to Stas Sergeev)
12365         * device/include/time.h,
12366         * device/lib/time.c (CheckTime): suppress unreachable code warning
12367
12368 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12369
12370         * src/SDCCast.c (createIvalCharPtr),
12371         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
12372         bug #753752)
12373         * support/regression/tests/nullstring.c: tests for these two bugs
12374
12375 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12376
12377         * support/Util/SDCCerr.h,
12378         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
12379         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
12380         about storage class and 'at' used inside struct or union
12381         * src/SDCCBBlock.c (iCodeFromeBBlock),
12382         * src/SDCCcse.c (ifxOptimize),
12383         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
12384         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
12385         printIval, emitStaticSeg, emitOverlay),
12386         * src/SDCClabel.c (deleteIfx),
12387         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
12388         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
12389         gatherAutoInit, processParms),
12390         * support/Util/SDCCerr.h,
12391         * support/Util/SDCCerr.c (werrorfl): Support for better error location
12392         reporting for post-parse errors.
12393
12394 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12395
12396         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
12397         implicit casts via union; they don't work on big endian systems
12398         (possible fix for bug #861138)
12399
12400 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12401
12402         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
12403         * src/mcs51/main.c: fixed the fix for bug #737001
12404
12405 2003-12-15  Borut Razem <borut.razem AT siol.net>
12406
12407         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
12408
12409 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12410
12411         * support/makebin/makebin.c: put output in binary mode
12412
12413 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12414
12415         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
12416         xdata and data memory on startup. Set the environment variable
12417         SDCC_NOGENRAMCLEAR to disable this.
12418         * src/mcs51/peephole.def,
12419         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
12420         (allows non-interrupt and interrupt code to safely compete for a resource
12421         without the non-interrupt code having to disable interrupts)
12422
12423 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12424
12425         * src/SDCCicode.c (geniCodeAdd),
12426         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
12427         with valFromType if type might be a pointer and host is big endian).
12428         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
12429         types, not just integer types.
12430         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
12431         multiply defined with mismatching "at" address.
12432
12433 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12434
12435         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
12436         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
12437         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
12438         with embedded nulls (fixed bug #753752)
12439
12440 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12441
12442         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
12443         Apparently this did not see much testing (endless loop)
12444
12445 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12446
12447         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
12448
12449 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12450
12451         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
12452         gracefully handle NULL memmap pointers
12453
12454 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12455
12456         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
12457         instead of deleting the iCode when an operand is volatile
12458         * src/z80/gen.c (genDummyRead),
12459         * src/mcs51/gen.c (genDummyRead),
12460         * src/ds390/gen.c (genDummyRead),
12461         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
12462         not just IC_RIGHT
12463         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
12464         * src/SDCC.y: fixed bug #850420
12465
12466 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12467
12468         Applied z80 i/o port patch from Peter Townson and fixed some operators
12469         to better handle operands in A register.
12470         * device/include/z180.h
12471         * src/SDCC.y
12472         * src/SDCCglue.c
12473         * src/z80/gen.c
12474         * src/z80/gen.h
12475         * src/z80/main.c
12476         * src/z80/peeph-z80.def
12477         * src/z80/peeph.def
12478         * src/z80/z80.h
12479
12480 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12481
12482         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
12483
12484 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12485
12486         * device/lib/hc08/_mullong.c: Removed extra #endif
12487
12488 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12489
12490         * sim/ucsim/hc08.src/inst.cc,
12491         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
12492         carries from x to h
12493         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
12494         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
12495         * device/include/stdarg.h: fixed varargs for hc08
12496         * device/lib/Makefile.in,
12497         * device/lib/hc08/Makefile,
12498         * device/lib/hc08/_mulint.c,
12499         * device/lib/hc08/_mullong.c: fixed some endian problems
12500
12501 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12502
12503         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
12504         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
12505         * device/lib/_gptrget.c,
12506         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
12507
12508 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12509
12510         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
12511         * src/SDCCast.c (astErrors): fixed bug #846007
12512         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
12513
12514 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12515
12516         * src/SDCCast.c (decorateType): disabled a transformation I added in
12517         revision 1.188 (access to fields of a structure at an absolute address);
12518         it breaks with bitfields, extern declarations, and gcse analysis.
12519         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
12520         could be assigned through a pointer, so don't complain.
12521         * src/SDCCast.c (astErrors),
12522         * src/SDCCast.h,
12523         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
12524
12525 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
12526
12527         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
12528         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
12529         output of __config directives, since gpasm now supports them
12530         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
12531         pre-processor macro, i.e. -DMCU=p18f452
12532         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
12533         and modified to handle 'cast' icode similarly to '=' icode
12534         * src/pic16/device.h (typedef struct PIC_device): added field
12535         'extMIface' to indicate that chip has external memory interface
12536         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
12537         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
12538         18F8720
12539
12540 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12541
12542         * src/SDCC.y (pointer): fixed bug #846006
12543         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
12544         * src/SDCCast.c (decorateType): fixed bug #846009
12545         * src/ds390/peeph.def,
12546         * src/ds390/gen.c (genAnd, genOr),
12547         * src/mcs51/peeph.def,
12548         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
12549
12550 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12551
12552         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
12553         * src/SDCCdflow.c
12554         * src/SDCCcse.c
12555         * src/SDCCcse.h
12556         * src/SDCCBBlock.h
12557         * src/SDCCBBlock.c
12558
12559 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
12560
12561         fixed bug #845089
12562         * src/SDCCbitv.h,
12563         * src/SDCCbitv.c: added function to free a bitvector
12564         * src/SDCClrange.h,
12565         * src/SDCClrange.c: added function to recompute the liveranges
12566         * src/avr/ralloc.c,
12567         * src/ds390/ralloc.c,
12568         * src/hc08/ralloc.c,
12569         * src/mcs51/ralloc.c,
12570         * src/pic/ralloc.c,
12571         * src/pic16/ralloc.c,
12572         * src/xa51/ralloc.c,
12573         * src/z80/ralloc.c: recompute the liveranges after register packing
12574
12575 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
12576
12577         * src/SDCCloop.c (newInduction): fixed bug #845630
12578
12579 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12580
12581         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
12582         inadvertantly left behind from my 2003-11-12 change
12583
12584 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12585
12586         Updated headers I neglected to commit yesterday.
12587         * src/SDCClrange.h,
12588         * src/SDCCicode.h
12589
12590 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12591
12592         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
12593         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
12594         * src/SDCCopt.c (eBBlockFromiCode),
12595         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
12596         the creation of the key hash table from the sequencing so it can be used
12597         earlier (for some GCSE bug fixes still pending)
12598
12599 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12600
12601         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
12602         * support/regression/tests/addsub.c: testing genPlus shortcut
12603
12604 2003-11-15  Borut Razem <borut.razem AT siol.net>
12605
12606         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
12607
12608 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12609
12610         * src/SDCCcse.c (cseBBlock): fixed bug #527779
12611         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
12612         ordering is immaterial.
12613         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
12614
12615 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12616
12617         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
12618         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
12619         (SIGSEV) of bug #840381
12620         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
12621         unlink new file before rename if new and old filenames are the same)
12622
12623 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12624
12625         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
12626         uninitialized variables) for the mcs51. Set environment variable
12627         SDCC_GENRAMCLEAR to test.
12628         xdata initialization slightly shorter
12629
12630 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12631
12632         * src/SDCCsymt.h,
12633         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
12634         #838241 & 780691 (basicly the same bug)
12635         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
12636         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
12637
12638 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
12639
12640         * src/SDCCmain.c (linkEdit): "fix" #834252
12641
12642 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12643
12644         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
12645         * src/SDCCast.h,
12646         * src/SDCC.y: fixed bug #819403
12647
12648 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12649
12650         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
12651         the reentrant attribute.
12652         * src/hc08/gen.c (genPackBits): added missing stack readjustment
12653         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
12654         simulation
12655         * src/SDCCast.c (decorateType): fixed bug with storage class not being
12656         updated during pointer dereference; f.e. ~(((char *)1)*) was being
12657         erroneously reduced to a literal.
12658         * src/hc08/ralloc.c (packRegisters, rematStr),
12659         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
12660         some cases
12661
12662 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12663
12664         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
12665         * doc/sdccman.lyx: changed from 'article' to 'book'
12666         * doc/Makefile: readded test_suite_spec and cdbfileformat
12667
12668 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
12669
12670         * device/include/stdlib.h: include malloc.h to comply with ANSI
12671         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
12672
12673 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12674
12675         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
12676         * doc/clean.mk: also remove *.out files
12677         * doc/sdccman.lyx: some additions, larger top/bottom margins
12678
12679 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12680
12681         * src/SDCC.y: fixed bug #837365
12682         * support/regression/tests/bitopcse.c
12683         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
12684         a symbol (might be valop instead)
12685         * device/lib/Makefile.in: added errno.c to HC08SOURCES
12686         * device/lib/clean.mk: added hc08 to the cleaning list
12687
12688 2003-11-04  Borut Razem <borut.razem AT siol.net>
12689
12690         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
12691           made 2003-11-04
12692         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
12693           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
12694           malloc is declared in standard stdlib.h
12695
12696 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12697
12698         * device/lib/hc08/Makefile: need to clean .rel not .o files
12699         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
12700
12701 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12702
12703         * src/port.h,
12704         * src/hc08/main.c,
12705         * src/mcs51/main.c,
12706         * src/ds390/main.c,
12707         * src/z80/main.c,
12708         * src/avr/main.c,
12709         * src/pic/main.c,
12710         * src/pic16/main.c,
12711         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
12712         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
12713         tests (which uses the port's oclsExpense function)
12714         * src/SDCC.y,
12715         * src/SDCCast.c,
12716         * src/SDCCicode.c,
12717         * src/hc08/gen.c,
12718         * src/ds390/gen.c,
12719         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
12720
12721 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12722
12723         * src/SDCCcse.c (ifxOptimize),
12724         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
12725         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
12726         deleting the IFX iCode.
12727         * src/hc08/ralloc.c: reduced unneeded slocs
12728         * src/hc08/gen.c: fixed bug in asmopToBoolean
12729
12730 2003-11-04  Borut Razem <borut.razem AT siol.net>
12731
12732         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
12733           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
12734           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
12735           transferred to configure
12736
12737 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
12738
12739         Use headers defined in the C[++] standards:
12740         * sim/ucsim/gui.src/serio.src/fileio.cc
12741         * sim/ucsim/gui.src/serio.src/frontend.cc
12742         * sim/ucsim/gui.src/serio.src/main.cc
12743         * sim/ucsim/gui.src/serio.src/posix_signal.cc
12744         * support/Util/NewAlloc.c
12745         * as/hc08/lklibr.c
12746         * as/mcs51/lklibr.c
12747         * as/z80/aslist.c
12748         * as/z80/assym.c
12749
12750 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12751
12752         * Added MSVC projects for hc08 assembler and linker:
12753         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
12754         /as/hc08/link_hc08.dsp
12755
12756 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
12757
12758         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
12759
12760 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
12761
12762         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
12763
12764 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12765
12766         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
12767
12768 2003-10-31  Borut Razem <borut.razem AT siol.net>
12769
12770         * support/cpp2/cpplib.h,
12771           support/cpp2/cpplib.c,
12772           support/cpp2/cpplex.c,
12773           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
12774           to switch _asm block preprocessing on / off. Default is
12775           #pragma preproc_asm +
12776
12777 2003-10-31  Borut Razem <borut.razem AT siol.net>
12778
12779         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
12780           when outputting comment blocks (when executed with -C option) and
12781           _asm (SDCPP specific) blocks
12782
12783 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12784
12785         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
12786
12787 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
12788
12789         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
12790
12791 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
12792
12793         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
12794         * src/SDCCast.c (decorateType): fixed bug #832664
12795
12796 2003-10-31  Borut Razem <borut.razem AT siol.net>
12797
12798         * support/cpp2/cpplex.c: fixed for SDCPP:
12799           comments(when executed with -C option) and _asm blocks
12800           were included even if they where in skipped #if block.
12801           Applied solution from GCC cpp 3.3.2
12802
12803 2003-10-31  Borut Razem <borut.razem AT siol.net>
12804
12805         * src/SDCC.lex: sdcc now understands both formats:
12806           '# <line_number> <file_name>' and
12807           '#line <line_number> <file_name>'
12808         * support/cpp2/cppmain.c: sdcpp now generates the standard
12809           '# <line_number> <file_name>' instead of former
12810           '#line <line_number> <file_name>'
12811
12812 2003-10-30  Borut Razem <borut.razem AT siol.net>
12813
12814         * support/cpp2/cpphash.h,
12815         * support/cpp2/cpplib.h
12816         * support/cpp2/cpplex.c,
12817         * support/cpp2/cppmain.c,
12818         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
12819
12820 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12821
12822         Fixed a number of problems revealed by bug #827883.
12823         * src/SDCCloop.c (loopInvariants): Spill location of the
12824         result operand should be recomputed if extracted from
12825         a loop. Also, don't extract assignments of an iTemp
12826         from a literal.
12827         * src/SDCCast.c (isConformingBody): loop reversal should
12828         not occur if the control variable is involved with a
12829         relational operator.
12830
12831 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
12832
12833         * .version: bumped to 2.3.6 to reflect the big improvements
12834         made by Erik and Klaus. Thanks!
12835
12836 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
12837
12838         Replaced the livrange code.
12839         * src/SDCClrange.c: added new LR code
12840         * src/SDCCloop.c,
12841         * src/SDCCBBlock.h: removed remainig parts from old LR code
12842         * src/ds390/ralloc.c,
12843         * src/ds390/gen.c: minor fixes to make it work with new code
12844
12845 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12846
12847         * as/hc08/asm.h,
12848         * as/hc08/lkrloc.c,
12849         * src/hc08/gen.c,
12850         * src/hc08/ralloc.c: Fix various warnings related to the hc08
12851         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
12852         (tweaked fix for bug #818696)
12853
12854 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12855
12856         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
12857
12858 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12859
12860         * src/SDCCmain.c,
12861         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
12862         * src/mcs51/gen.c (gencjneshort),
12863         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
12864         more efficient (per Scott Bronson's suggestion)
12865
12866 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12867
12868         Extended the semantics of the critical keyword to include
12869         individual statements. See RFE #827755 and #799831
12870         * src/SDCC.y
12871         * src/SDCCicode.c
12872         * src/SDCCopt.c
12873         * src/SDCCast.c
12874         * support/Util/SDCCerr.c
12875         * support/Util/SDCCerr.h
12876         * src/mcs51/gen.c
12877         * src/ds390/gen.c
12878         * src/hc08/gen.c
12879
12880 2003-10-19  Borut Razem <borut.razem AT siol.net>
12881
12882         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
12883
12884 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12885
12886         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
12887         Fixed bug #818696
12888         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
12889         and predecrement operand is displayed
12890
12891 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
12892
12893         * src/SDCCval.c (valMinus): fixed bug #826041
12894
12895 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12896
12897         Some hc08 related updates that I missed earlier
12898         * sim/ucsim/stypes.h
12899         * support/regression/ports/hc08/spec.mk
12900
12901 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12902
12903         New target "hc08" for the Motorola 68hc08 family of micros
12904
12905         * configure
12906         * configure.in
12907         * Makefile
12908         * src/hc08/*
12909         * src/SDCCmain.c
12910         * src/port.h
12911         * sim/ucsim/hc08.src/*
12912         * sim/ucsim/configure.in
12913         * src/ucsim/configure
12914         * sim/ucsim/packages_in.mk
12915         * as/hc08/*
12916         * as/Makefile
12917         * device/include/mc68hc908qy.h
12918         * device/lib/hc08/*
12919         * device/lib/Makefile.in
12920         * support/regression/ports/hc08/*
12921         * support/regression/Makefile
12922
12923 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12924
12925         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
12926         regression test
12927         * src/ds390/gen.c (genCast): fixed bug #821957
12928
12929 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
12930
12931         * device/lib/logf.c: "fixed" overlay bug
12932         * support/regression/ports/host/spec.mk: added m library
12933         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
12934         * support/regression/tests/float_trans: added (for Eric)
12935
12936 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
12937
12938         * src/mcs51/gen.c (genCpl): fixed bug
12939         http://sf.net/mailarchive/message.php?msg_id=6263915
12940
12941 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
12942
12943         * src/SDCCast.c (decorateType): added extended constant folding
12944         * src/SDCCsymt.c (computeType): cleanup
12945         * src/SDCCval.c (valShift): minor optimization
12946         * support/regression/tests/ast_constant_folding.c: added
12947
12948 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12949
12950         * src/SDCCmain.c: removed some unintended changes
12951
12952 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12953
12954         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
12955         * src/z80/gen.c: fixed part of bug #817589
12956         * src/SDCCsymt.c (checkFunction): fixed bug #817895
12957
12958 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
12959
12960         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
12961         * src/SDCCcflow.c
12962         * src/SDCCcse.c
12963         * src/SDCCdflow.c
12964         * src/SDCClabel.c
12965         * src/SDCClrange.c
12966         * src/SDCCmem.c
12967         * src/SDCCopt.c
12968         * src/SDCCpeeph.c
12969         * src/SDCCset.c
12970         * src/avr/ralloc.c
12971         * src/ds390/ralloc.c
12972         * src/izt/ralloc.c
12973         * src/mcs51/ralloc.c
12974         * src/pic/ralloc.c
12975         * src/pic16/ralloc.c
12976         * src/xa51/ralloc.c
12977         * src/z80/ralloc.c
12978         * src/z80/gen.c: removed unused label "release:"
12979
12980 2003-10-06  Borut Razem <borut.razem AT siol.net>
12981
12982         * src/SDCC.lex: removed definition of unused variables
12983           save_optimize and save_options
12984
12985 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
12986
12987         * clean.mk: removed '=' in "-maxdepth=1"
12988         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
12989         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
12990
12991 2003-10-06  Borut Razem <borut.razem AT siol.net>
12992
12993         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
12994           my_unput() replaced by unput()
12995
12996 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
12997
12998         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
12999         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
13000         type-punned pointer will break strict-aliasing rules"
13001         Old LR behaviour is again default; Klaus' LR can be choosen by
13002         defining the environment variable LRKLAUS
13003         * src/SDCCBBlock.h
13004         * src/SDCCloop.c
13005         * src/SDCClrange.c
13006         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
13007         * clean.mk: fixed removal of files in bin/CVS/
13008         * device/lib/clean.mk: fixed removal of directories small and large
13009         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
13010         * src/SDCCicode.c,
13011         * src/SDCCval.c: removed superflous test for pedantic
13012
13013 2003-10-05  Borut Razem <borut.razem AT siol.net>
13014
13015         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
13016           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
13017           message "unmatched #pragma SAVE and #pragma RESTORE"
13018
13019 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13020
13021         * doc/sdccman.lyx: various additions and updates (interrupts, inline
13022           assembly, critical functions, atomic, nojtbound)
13023
13024 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
13025
13026         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
13027         * src/SDCCBBlock.h
13028         * src/SDCCloop.c
13029         * src/SDCCloop.h
13030         * src/SDCClrange.c
13031
13032 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13033
13034         * src/z80/gen.h,
13035         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13036         * src/mcs51/gen.h
13037         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13038         * src/ds390/gen.h
13039         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13040         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
13041         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
13042
13043 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13044
13045         * src/z80/gen.c (genRet): fixed bug #524753
13046         * src/z80/gen.c (genCast): fixed internal error on cast from
13047         pointer to long
13048         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
13049         fix for bug #477835 to the z80
13050         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
13051         for tracking iCodes in the peephole optimizer for z80
13052
13053 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13054
13055         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
13056         the other part of bug #814548
13057         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
13058
13059 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
13060
13061         * src/SDCCcse.c: fixed part of bug #814548
13062
13063 2003-09-28  Borut Razem <borut.razem AT siol.net>
13064
13065         * src/asm.c: rewrite of printILine() to use temporary file instead
13066           a pipe
13067         * src/xa51/main.c: commented out declaration of int rewinds
13068
13069 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13070
13071         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
13072
13073 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13074
13075         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
13076         * src/asm.c (printILine): Fixed bug #811015
13077
13078 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13079
13080         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
13081         freeing.
13082
13083 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13084
13085         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
13086         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
13087         to correctly handle general case of AOP_PAIRPTR
13088         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
13089
13090 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13091
13092         * src/mcs51/ralloc.c (fillGaps),
13093         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
13094         register positioning bug)
13095
13096 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
13097
13098         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
13099
13100 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13101
13102         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
13103         genCodePointerGet, genGenPointerGet, genFarPointerSet,
13104         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
13105         (ralloc doesn't intentionally do this now, but perhaps later)
13106         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
13107         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
13108         register positioning bugs (Fixed bug #762602 and #795325)
13109         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
13110         (Fixed bug #808779)
13111         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
13112         lines that --i-code-in-asm generates
13113
13114 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13115
13116         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
13117         trying to fclose a FILE* that was already closed.
13118
13119 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13120
13121         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
13122         of const struct should be treated as if const themselves)
13123
13124 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
13125
13126         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
13127
13128 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13129
13130         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
13131         Unix (/n) and DOS (/r/n) line terminations.
13132
13133 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13134
13135         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
13136         bug #613775
13137
13138 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13139
13140         * src/mcs51/gen.c (genFunction, genEndFunction),
13141         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
13142         and restore of EA so that stack offsets to parameters are
13143         correct when using both critical and reentrant/stack-auto.
13144         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
13145         size (can be triggered in error if sloc is shared between
13146         different sized objects)
13147         * device/include/float.h: fixed macros to explicitly use
13148         unsigned long where needed
13149
13150 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
13151
13152         Feature req. 799831: added code to allow nesting of critical functions
13153         * src/mcs51/gen.c (genFunction, genEndFunction)
13154         * src/ds390/gen.c (genFunction, genEndFunction)
13155
13156 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13157
13158         * src/SDCCsymt.c (sclsFromPtr),
13159         * src/SDCCsymt.h,
13160         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
13161         support for standard C idiom of memory mapped variables; for
13162         example, *((xdata int*)0x1234) = 1 is now internally equivalent
13163         to xdata int at 0x1234 tempvar = 1.
13164         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
13165         provided by Akiya ISHIDA
13166
13167 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
13168
13169         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
13170         * src/SDCCval.c (constVal): added reduction from int to char
13171         * src/SDCCval.c (valMult, valDiv): fixed sign handling
13172         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
13173         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
13174         to ignore the sign
13175         * support/regression/tests/shifts.c: fixed
13176
13177 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13178
13179         * src/z80/gen.c (genXor): Fixed bug #805445
13180
13181 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13182
13183         Fixed bug #621531 (const & volatile confusion in the type chain).
13184         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
13185         refer to the const or volatile state of the pointer itself.
13186
13187         * src/SDCCast.c
13188         * src/SDCCglue.c
13189         * src/SDCCicode.c
13190         * src/SDCCsymt.c
13191         * src/SDCCval.c
13192         * src/SDCC.y
13193         * src/SDCCsymt.h
13194         * src/pic/gen.c
13195         * src/pic/ralloc.c
13196         * src/pic16/gen.c
13197         * src/pic16/ralloc.c
13198         * support/regression/tests/const.c
13199
13200 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13201
13202         When checking for duplicated modules, use absolute paths
13203         instead of relative paths.  Files changed:
13204
13205         * as/mcs51/lklib.c
13206         * link/z80/lklib.c
13207
13208 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13209
13210         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
13211
13212 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13213
13214         * device/include/string.h: added size_t typedef, changed
13215         prototypes to use size_t, eliminated separate reentrant and
13216         non-reentrant declarations, added _memmove declaration
13217         * device/lib/_memcpy.c: changed to use size_t instead of int,
13218         changed /4 to >>2 to avoid division library call
13219         * device/lib/_memcmp.c,
13220         * device/lib/_memset.c,
13221         * device/lib/_strncat.c,
13222         * device/lib/_strncpy.c,
13223         * device/lib/_strncmp.c: changed to use size_t instead of int
13224         * device/lib/_memmove.c: new file (fixed bug #772294)
13225         * device/lib/Makefile.in: added _memmove.c
13226         * device/lib/z80/asm_strings.s: fixed bug #772290
13227         * support/regression/tests/bitfields.c: attempt to fix host assertion
13228         failure on amd64-unknown-linux2.2
13229
13230 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13231
13232         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
13233         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
13234         * as/z80/asmain.c (main): fixed bug #801766
13235
13236 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
13237
13238         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
13239         compilers
13240
13241 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13242
13243         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
13244         reported in bug #800609
13245
13246 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
13247
13248         * Top header beautifications in src/pic16 directory:
13249           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
13250           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
13251           pcoderegs.h, ralloc.c, ralloc.h
13252         * main.c: added top header and GPL license notice
13253         * pcode.c: fixed the if-conditional warning
13254
13255 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
13256
13257         * device/lib/_mullong.c: replaced int by short for gcc
13258
13259 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13260
13261         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
13262         and JUMPTABLE iCodes properly now (worked by accident before)
13263         * src/mcs51/gen.c (leftRightUseAcc),
13264         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
13265         iCode properly now. Use getSize instead of nRegs since a & b
13266         aren't part of the nRegs tally.
13267
13268 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
13269
13270         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
13271         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
13272           before instructions that use the _STATUS register
13273
13274 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
13275
13276         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
13277         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
13278         fetching of the pointer
13279         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
13280         copied from genNearPointerSet()
13281         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
13282         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
13283         If they pop r0/r1 they must be called in the opposite order than aopOp().
13284         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
13285         (resp. --stack-auto), prepared for --xstack
13286
13287 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13288
13289         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
13290
13291 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13292
13293         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
13294         these ports have their own __sdcc_external_start()
13295
13296 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
13297
13298         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
13299         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
13300         type for bits was changed. It resulted in bit variables becoming
13301         global, which is not permitted in PIC 14 assembly output.
13302
13303 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13304
13305         * doc/sdccman.lyx: various additions and updates. Rearranged sections
13306
13307 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13308
13309         Z80 and MCS51 linkers complaint if a public symbol is defined
13310         in more than one library module:
13311
13312         * as/mcs51/lklib.c
13313         * link/z80/lklib.c
13314         * as/mcs51/Makefile.in
13315
13316 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13317
13318         A few small changes that speed up the peephole optimizer.
13319
13320         * src/SDCCpeeph.c
13321
13322 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13323
13324         Try to make the peephole optimizer smarter by maintaining
13325         an association between the assembly source code and the
13326         iCodes that originated them. Put this information to use
13327         with a new peephole rule condition "notVolatile" so that
13328         the rules can be aggressive yet still safe.
13329
13330         * src/SDCCpeeph.c
13331         * src/SDCCpeeph.h
13332         * src/mcs51/gen.c
13333         * src/mcs51/peeph.def
13334
13335 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13336
13337         Fixed bug #741761
13338
13339         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
13340         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
13341         if the left or right operand symbols have the accuse flag set.
13342
13343 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13344
13345         Changed the type of the result of the ! (NOT) operator to char;
13346         previously it returned the same type as the source. This allows
13347         us to eliminate all the genFloatNot functions (all of its target
13348         implementations were very buggy) since !float can use the same
13349         code as !long now.
13350
13351         * src/SDCCicode.c (ast2iCode): ! returns char
13352         * src/mcs51/gen.c (genNot, genNotFloat),
13353         * src/ds390/gen.c (genNot, genNotFloat),
13354         * src/z80/gen.c (genNot, genNotFloat),
13355         * src/pic/gen.c (genNot, genNotFloat),
13356         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
13357
13358 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
13359
13360         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
13361         1. Interrupt would not compile properly. Ensure PCLATH register is saved
13362            during interrupts. Ensure WSAVE is located at a shared bank address.
13363         2. Fixed page selection in some places
13364         3. Fixed BTFSS/C to where necessary use registers directly and not simply
13365            the registers name strings.
13366         4. Fixed "signed / unsigned compare" compiler warnings.
13367         5. The PIC port manages its own allocation of the general purpose
13368            registers, but makes no attempt to reuse them. As a result when
13369            compiling it soon runs out of general purpose registers. Some
13370            additional code was added to the files pcode.c and device.c to walk
13371            through the function call tree and rename the registers so that they
13372            get reused.
13373
13374         * src/pic/device.c
13375         * src/pic/gen.c
13376         * src/pic/glue.c
13377         * src/pic/pcode.c
13378         * src/pic/pcode.h
13379         * src/pic/ralloc.c
13380         * src/pic/ralloc.h
13381         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
13382         genPlus() & genMinus() when the result is the same as left or right
13383
13384 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13385
13386         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
13387
13388 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13389
13390         Made bitfield a distinct type from bit so that bitfields
13391         convert as per ANSI C and bits retain their traditional
13392         boolean style behaviour. Implemented bitfield support in
13393         the z80 port.
13394
13395         * src/SDCCsymt.h,
13396         * src/SDCCsymt.c,
13397         * src/SDCCast.c,
13398         * src/cdbFile.c,
13399         * src/mcs51/gen.c,
13400         * src/ds390/gen.c: bit v bitfield split
13401         * src/z80/gen.c: New support for bitfields
13402         * support/regression/tests/bitfields.c: reenabled z80,
13403         added more tests
13404
13405 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13406
13407         Rules 246.x, 247.x relate to bitfields, the others speed up
13408         access to xdata mapped I/O devices.
13409
13410         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
13411
13412 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13413
13414         Cleaned up genPackBits and genUnpackBits and added two helper
13415         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
13416         for literal assignments in genPackBits (thanks to Frieder for
13417         reminding me).
13418
13419         * src/mcs51/gen.c
13420         * src/ds390/gen.c
13421
13422 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13423
13424         Fixed bug #748310 (pointer to function type mishandled when the
13425         function name is omitted). Also fixed a SIGSEGV when a function
13426         attribute (reentrant, etc) is used on a non-function or on a
13427         function but misplaced before the parameter list.
13428
13429         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
13430         bug #748310
13431         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
13432         * support/Util/SDCCerr.h,
13433         * support/Util/SDCCerr.c: Added func attr misuse error msg
13434
13435 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
13436
13437         Fixed bug #787649 by anonymous
13438         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
13439         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
13440
13441 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13442
13443         Fixed numerous bitfield problems.
13444
13445         * src/SDCC.y: More bitfield related error checking
13446         * src/SDCCsymt.h,
13447         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
13448         * support/Util/SDCCerr.h,
13449         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
13450         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
13451         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
13452         * support/regression/tests/bitfields.c: tests added
13453
13454 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13455
13456         Made the constant following the "interrupt" keyword optional. If
13457         omitted, the function will not automatically be given an entry
13458         in the interrupt vector table (similar to #pragma NOIV, but
13459         less syntacticly kludgy). The interrupt number is also now
13460         range checked. Also fixed a bug in the high order bit example
13461         in the manual.
13462
13463         * src/SDCC.y
13464         * src/SDCCmem.c
13465         * src/SDCCglue.c
13466         * src/SDCCsymt.h
13467         * support/Util/SDCCerr.c
13468         * support/Util/SDCCerr.h
13469         * doc/sdccman.lyx
13470
13471 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
13472
13473         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
13474         * src/SDCCicode.c (operandOperation): rewritten some ops
13475         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
13476         * src/SDCCsymt.c (computeType): literals are handled the same way as any
13477         other type
13478         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
13479         be re-activated by defining REDUCE_LITERALS)
13480         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
13481         unsigned, but are signed by default
13482         * src/SDCCval.c (constVal): rearranged
13483         * src/SDCCval.c (valMod): preliminary fix
13484         * src/SDCCval.c (valCastLiteral): use TYPE_* types
13485         * support/regression/literalop.c: added, work in progress
13486
13487 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13488
13489         Generate warnings for useless declarations like "char data;"
13490         that don't do what new users expect.
13491
13492         * src/SDCC.y
13493         * support/Util/SDCCerr.h
13494         * support/Util/SDCCerr.c
13495
13496 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
13497
13498         * src/SDCCval.c (valMult): fix overflow detection of negative int
13499
13500 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13501
13502         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
13503
13504         Changes to support big endian targets:
13505
13506         * src/ports.h
13507         * src/SDCCglue.c
13508         * src/avr/main.c
13509         * src/ds390/main.c
13510         * src/izt/i186.c
13511         * src/mcs51/main.c
13512         * src/pic/main.c
13513         * src/pic16/main.c
13514         * src/xa51/main.c
13515         * src/z80/main.c
13516
13517 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
13518
13519         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
13520         * device/lib/time.c: fixed warning "integer overflow in expression"
13521
13522 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
13523
13524         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
13525         * src/SDCCval.c (constVal): changed default to signed; hex and octal
13526         constants are unsigned; added recognition of "u" flag for unsigned
13527         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
13528         * src/SDCCval.c (valDiv, valMod): fixed signdness
13529         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
13530         signedness of modulo, left and right shift
13531         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
13532         * support/Util/SDCCerr.h: added warning W_INT_OVL
13533         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
13534         * src/SDCCast.c (ast_print): improved output of constants
13535
13536 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13537
13538         Fixed some warnings when building with MSVC:
13539
13540         * as/mcs51/asdata.c
13541         * as/z80/asdata.c
13542         * as/mcs51/asm.h
13543         * as/z80/asm.h
13544         * link/z80/aslink.h
13545         * link/z80/lkdata.c
13546         * link/z80/lkeval.c
13547         * link/z80/lkgb.c
13548         * link/z80/lkihx.c
13549         * link/z80/lks19.c
13550         * link/z80/lksym.c
13551         * support/cpp2/cpplib.c
13552         * src/ds390/gen.c
13553         * src/mcs51/gen.c
13554
13555 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
13556
13557         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
13558
13559 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13560
13561         * support/librarian/clean.mk: Do not remove Makefile.
13562         * support/librarian/Makefile: added.
13563
13564 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13565
13566         Added librarian to MSVC build:
13567         * all.dsp
13568         * sdcc.dsw
13569         * support/librarian/librarian.dsp
13570
13571         'configure' not needed for librarian, removed:
13572         * support/librarian/configure
13573         * support/librarian/configure.in
13574         * support/librarian/config_in.h
13575         * support/librarian/Makefile.in
13576
13577         Hopefully these ones built the librarian and the rest of sdcc properly:
13578         * Makefile
13579         * Makefile.common.in
13580
13581         Messed up 'configure', so revert to previous version:
13582         * configure
13583         * configure.in
13584
13585 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
13586
13587         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
13588         there, while the mantissa of a double is "only" 53 bits wide.
13589
13590 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13591
13592         Adding sdcclib to the build.  MSVC project coming soon.
13593         Files added/changed:
13594
13595         * support/librarian/clean.mk
13596         * support/librarian/configure
13597         * support/librarian/configure.in
13598         * support/librarian/config_in.h
13599         * support/librarian/Makefile.bcc
13600         * support/librarian/Makefile.in
13601         * support/librarian/sdcclib.c
13602         * Makefile.bcc
13603         * Makefile
13604         * Makefile.common.in
13605         * configure
13606         * configure.in
13607
13608 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13609
13610         Linker now complaints if linked modules have conflicting options, for
13611         example, one compiled using --model-large and another one compiled with
13612         --model-small.  The following files were modified:
13613
13614         * as/mcs51/asdata.c
13615         * as/mcs51/aslink.h
13616         * as/mcs51/asm.h
13617         * as/mcs51/asmain.c
13618         * as/mcs51/asout.c
13619         * as/mcs51/i51pst.c
13620         * as/mcs51/lkdata.c
13621         * as/mcs51/lklibr.c
13622         * as/mcs51/lkmain.c
13623         * as/z80/asdata.c
13624         * as/z80/asm.h
13625         * as/z80/asmain.c
13626         * as/z80/asout.c
13627         * as/z80/z80pst.c
13628         * link/z80/aslink.h
13629         * link/z80/lkdata.c
13630         * link/z80/lklibr.c
13631         * link/z80/lkmain.c
13632         * src/SDCCglue.c
13633
13634 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13635
13636         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
13637         as/mcs51/lklibr.c: Generate a warning when a library is not found.
13638
13639 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
13640
13641         * src/z80/mappings.i: fix _mul[us][int,long] entries
13642
13643 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13644
13645         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
13646
13647 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
13648
13649         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
13650         * support/regression/tests/bitopcse.c: added
13651         fixed warning:
13652         * src/avr/gen.c:
13653         * src/pic/gen.c:
13654         * src/pic16/gen.c:
13655         * src/z80/gen.c:
13656         * src/xa51/gen.c:
13657
13658 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13659
13660         added support for new library format to z80, gbz80 linkers:
13661         *link/z80/aslink.h
13662         *link/z80/lklex.c
13663         *link/z80/lklib.c
13664         *link/z80/lklist.c
13665
13666 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
13667
13668         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
13669         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
13670
13671 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
13672
13673         added DUMMY_READ_VOLATILE:
13674         * src/SDCC.y:
13675         * src/avr/gen.c:
13676         * src/xa51/gen.c:
13677         * src/z80/gen.c:
13678         * src/pic/gen.c:
13679         * src/pic16/gen.c:
13680         * src/mcs51/gen.c:
13681         * src/ds390/gen.c:
13682         * src/SDCCcse.c (algebraicOpts): many improvements
13683         * src/SDCCcse.h: removed algebraicOpts()
13684         * src/SDCCicode.c (picDummyRead): added
13685
13686 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13687
13688         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
13689         "Insufficient space in data memory".
13690
13691 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13692
13693         * src/mcs51/gen.c: fixed bug #771358
13694         * src/z80/gen.c: fixed bug #759087
13695
13696 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
13697
13698         * src/pic16/glue.c: minor cleanup by Vangelis
13699
13700 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13701
13702         * device/include/regc515c.h: fixed #758477
13703         * device/lib/_gptrget.c: saving some cycles in generic pointer get
13704         * device/lib/_gptrput.c: saved a few bytes
13705         * my tab spacing is 8, yours too?)
13706         * device/lib/_ser.c: process RX bytes earlier than TX bytes
13707         * device/lib/serial.c: process RX bytes earlier than TX bytes
13708         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
13709
13710 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13711
13712         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
13713
13714 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13715
13716     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
13717
13718 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
13719
13720         * device/lib/Makefile.in: bad fix, reverted to 1.43
13721
13722 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
13723
13724         * device/lib/Makefile.in: added missing z80 object files
13725
13726 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
13727
13728         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
13729         pic16 progress by Vangelis:
13730         * src/SDCCglobl.h:
13731         * src/SDCCmain.c:
13732         * src/pic/Makefile:
13733         * src/pic:
13734         * pic/Makefile:
13735         * pic16/device.c:
13736         * pic16/device.h:
13737         * pic16/gen.c:
13738         * pic16/gen.h:
13739         * pic16/genarith.c:
13740         * pic16/glue.c:
13741         * pic16/main.c:
13742         * pic16/pcode.c:
13743         * pic16/pcode.h:
13744         * pic16/pcodepeep.c:
13745         * pic16/peeph.def:
13746
13747 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13748
13749     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
13750
13751 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13752
13753     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
13754     added gbz80 build to MSVC project.
13755     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
13756     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
13757     from 8051 stuff and setup so it links using a .lnk file.
13758
13759 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13760
13761     * support/librarian/sdcclib.c: sdcc librarian.
13762     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
13763     with sdcclib.
13764
13765 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13766
13767     * as/mcs51/lkmain.c: properly handle extensions in function afile.
13768
13769 2003-07-02  Borut Razem <borut.razem AT siol.net>
13770
13771         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
13772         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
13773         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
13774         src/xa51/main.c, src/z80/main.c:
13775         virtualization of glue() function: each port has it's own glue function,
13776         which is accessed by do_glue function pointer in PORT.general structure
13777
13778 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
13779
13780         * DS800C400 fun, improved ROM interface and tinibios.
13781
13782 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
13783
13784         * More support for DS80C400. Now includes beginning of interface to ROM.
13785
13786 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
13787
13788         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
13789
13790 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13791
13792         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
13793
13794 2003-06-19  Borut Razem <borut.razem AT siol.net>
13795
13796         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
13797
13798 2003-06-19  Borut Razem <borut.razem AT siol.net>
13799
13800         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
13801         fixed Z80 port - crt0.o: cannot open.
13802
13803 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
13804
13805         * support/Util/MySystem.c (merge_command): revert bad fix
13806
13807 2003-06-18  Borut Razem <borut.razem AT siol.net>
13808
13809         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
13810
13811 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13812
13813         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
13814         option --use-stdout sends errors to stdout instead of stderr.
13815
13816 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
13817
13818         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
13819
13820 2003-06-15  Borut Razem <borut.razem AT siol.net>
13821
13822         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
13823         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
13824         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
13825         fixed width array of pointers replaced with sets;
13826         multiple include and lib paths ared transferred to preprocessor and linker
13827         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
13828         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
13829         fixed width array of pointers
13830         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
13831         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
13832         fixupPath(), getPathDifference()
13833         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
13834         fixed width array of pointers
13835
13836 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
13837
13838         * src/pic16/ralloc.c: fix warnings
13839         * src/pic16/pcode.c: fix warning
13840
13841 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
13842
13843          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
13844         know all the details, but essentially this set of changes enable
13845         the pic16 port to generate movff instructions and generate assembler
13846         directives,
13847         * src/SDCCmain.c:
13848         * src/pic16/gen.c:
13849         * src/pic16/glue.c:
13850         * src/pic16/pcode.c:
13851         * src/pic16/device.c:
13852         * src/pic16/main.c:
13853         * src/pic16/pcode.h:
13854         * src/pic16/pcoderegs.c:
13855         * src/pic16/ralloc.c:
13856         * src/pic16/ralloc.h:
13857
13858 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13859
13860         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
13861         added option --vc, so sdcc errors and warnings are compatible with
13862         Microsoft Visual Studio.
13863
13864 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13865
13866         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
13867           device/lib/libfloat.lib: added atof function.
13868
13869 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
13870
13871         * doc/sdccman.lyx: updated to Lyx 1.3
13872         * doc/cdbfileformat.lyx: updated to Lyx 1.3
13873         * doc/test_suite_spec.lyx: updated to Lyx 1.3
13874         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
13875
13876 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
13877
13878         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
13879
13880 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13881
13882         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
13883           additions to the "related tools/documentation" section
13884
13885 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
13886
13887         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
13888
13889 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
13890
13891         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
13892         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
13893
13894 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
13895
13896         * doc/sdccman.lyx: fix double dash and other minor things
13897         * doc/Makefile: fix double dash
13898
13899 2003-05-28  Karl Bongers(patches from Martin Helmling)
13900         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
13901           condition and ignore commands.
13902
13903 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13904
13905         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
13906           is in parts still quite out of date, I did changes as far as I felt makes sense
13907           for a non-native english speaker.
13908           Please feel free to add to the manual or to correct my changes.
13909         * doc/Makefile: undid touching the date of intermediate tex files.
13910
13911 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13912
13913         * doc/sdccman.lyx: Manual has an index now
13914
13915 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
13916
13917         Finalize muluint/mulsint and mululong/mulslong merging:
13918         * device/lib/_mulint.c
13919         * device/lib/_mullong.c
13920         * device/lib/gbz80/mul.s
13921         * device/lib/gbz80/stubs.s
13922         * device/lib/z80/mul.s
13923         * device/lib/z80/stubs.s
13924         * src/SDCCsymt.c (initCSupport)
13925
13926 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13927
13928         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
13929         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
13930           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
13931           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
13932           instead of /Zm500.
13933
13934 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13935
13936         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
13937           the regression tests I'm not brave enough to enable 245.b, 245.c
13938         * doc/sdccman.lyx: added latex preamble for hyperref package.
13939           Using pdflatex this will give you a hyperlinked pdf file with
13940           bookmarks. (prepend '%' before /usepackage if this breaks something)
13941
13942 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13943
13944          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
13945
13946 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
13947
13948         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
13949
13950 2003-05-21    <johan AT balder>
13951
13952         * src/SDCCglue.c (printIval): fixed bug #739934
13953
13954 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
13955
13956         Applied patch from bug 737905 (renamed yylineo to mylineno):
13957         * src/altlex.c
13958         * src/SDCCast.c
13959         * src/SDCglobl.h
13960         * src/SDCC.lex
13961         * src/SDCCsymt.c
13962         * src/SDCCval.c
13963         * src/pic16/pcode.c: Cleaned warnings
13964         * src/pic16/pcodeflow.c: Cleaned warnings
13965         * src/pic16/pcoderegs.c: Cleaned warnings
13966
13967 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
13968
13969         * src/pic16/pcode.c: Cleaned warnings
13970         * src/pic16/pcodepeep.c: Cleaned warnings
13971         * src/pic16/ralloc.c: Cleaned warnings
13972
13973 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
13974
13975         * doc/sdccman.lyx: fixed bug 739745
13976         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
13977
13978 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
13979
13980         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
13981         it can be defined with CFLAGS when running configure
13982         * src/SDCCmain.c: fixed compiling + linking with object files
13983
13984 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
13985
13986         * configure.in: configure for pic16 port,
13987             added --disable-pic16-port
13988         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
13989         * src/SDCCmain.c: linkOptions is changed to set *,
13990             added if/endif conditional macros to remove options help
13991             messages from optionsTable when a port is not configured, added
13992             support for the PIc16 port in the ports table, when executing
13993             the compiler with no port specified on command line, a default
13994             port is selected with the new macro DEFAULT_PORT which is
13995             defined in port.h, in setDefaultOptions() linkOptions is removed
13996             from initialization assignment, since now it is a set,
13997             parseCmdLine uses setParseWithComma for linkOptions, in
13998             linkEdit() linkOptions are accessed with new function indexSet()
13999             which returns the i'th item of a set variable. See SDCCset.c, in
14000             linkEdit() when calling buildCmdLine(), added linkOptions as
14001             last argument. Now users can pass arguments to gplink via the
14002             -Wl option, main() uses pic16glue() to glue up pic16 programs
14003         * src/SDCCpeeph.c: various changes to support pic16
14004         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
14005             return the i'th item of the set
14006         * src/SDCCset.h: added function prototype for indexSet()
14007         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
14008         * src/clean.mk: added pic16 in CLEANALLPORTS variable
14009         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
14010             added macro DEFAULT_PORT
14011         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
14012         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
14013             generated
14014         * src/pic16/glue.c: commented out some error producing lines
14015         * src/pic16/main.c: __config directives are commented out to stop
14016             gpasm complaining and test the linkage with gplink, _linkCmd and
14017             _asmCmd changed to be more gplink and gpasm friendly
14018         * src/pic16/peeph.def: peep rule 3 is commented out, since it
14019             produced an error when parsed, peep rule 12 is added to utilize
14020             movff, but it is commented out since the pCode does not support
14021             yet a command with 2 address arguments
14022
14023 2003-05-18    <johan AT balder>
14024
14025         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
14026         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
14027 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
14028
14029         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
14030   Added feature to script commands from file.
14031
14032 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
14033
14034         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
14035         * src/SDCCutil.c: include ctype.h for win32
14036
14037 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
14038
14039         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
14040
14041 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
14042
14043         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
14044   Fixed so you can set breakpoints prior to run, run does not stop
14045   on entry now.  Add tbreak.  Other enhancements and fixes for use
14046   with ddd.
14047
14048 2003-05-12  Borut Razem <borut.razem AT siol.net>
14049
14050         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
14051
14052 2003-05-11  Borut Razem <borut.razem AT siol.net>
14053
14054         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
14055         the path of bin directory, so that PATH is the only env. variable, which has to be set
14056         in case of standard installation.
14057         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
14058         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
14059         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
14060
14061 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
14062
14063         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
14064         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
14065         temp files are in the port dir; clean the gen/test directory when
14066         generating new test.c
14067         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
14068         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
14069         * support/regression/tests/zeropad.c: added
14070
14071 2003-05-09    <johan AT balder>
14072
14073         * src/SDCCglue.c: fixed bug #597940
14074
14075 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
14076
14077         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
14078   cache sfr, optimize next,step, fix off by one sourceline,
14079   support ddd list function.
14080         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
14081
14082 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
14083
14084         * support/regression/HTMLgen.py: added compare_s2f()
14085         * support/regression/Makefile: redo 1.27
14086         * support/regression/generate-cases.py: redo 1.5
14087
14088 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
14089
14090         * support/regression/tests/float.c: workaround 33 bit hex constant
14091         * support/regression/tests/simplefloat.c: fix division for host
14092
14093 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
14094
14095         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
14096         that tame's the PIC's over-aggressive optimizer.
14097
14098 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14099
14100          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
14101          support for MSVC.
14102
14103 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
14104
14105         Initial support for DS80C400. "Hello world" runs on TINIm400
14106         (with polled I/O).
14107
14108 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
14109
14110          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
14111          * Some notes on ddd usage added in debugger/README
14112          Martin Helmling adding more features and fixes for ddd GUI debugger.
14113          Code added for nexti, stepi, up, down, and other adjustments.
14114
14115 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
14116
14117         * src/pic/pCodepeep.c non-wildcard asmops are now handled
14118         * src/pic/peeph.def Added two rules to optimize carry manipulation
14119         * src/pic/* removed debug printfs
14120
14121 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
14122
14123         * debugger/mcs51/cmd.c: added header newalloc.h
14124
14125 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
14126
14127         * as/Makefile: new EXEEXT
14128         * as/z80/Makefile: remove trailing slash of BUILDIR
14129         * as/z80/clean.mk: new EXEEXT
14130         * Makefile.common.in: add to CFLAGS (and others), don't replace it
14131         * support/cpp2/Makefile.in: new EXEEXT
14132         * src/pic/glue.c (pic14emitRegularMap): fixed warning
14133
14134 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
14135
14136         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
14137         EXEEXT was introduced to fix all related problems with targets
14138         "clean", "install" and "uninstall"; a couple of further flaws
14139         especially with "clean" have been fixed too
14140         * as/mcs51/Makefile.in
14141         * as/mcs51/clean.mk
14142         * as/z80/Makefile
14143         * Makefile
14144         * clean.mk
14145         * debugger/mcs51/Makefile.in
14146         * debugger/mcs51/clean.mk
14147         * link/z80/Makefile
14148         * link/z80/Makefile.in
14149         * link/z80/clean.mk
14150         * link/Makefile
14151         * packihx/Makefile.in
14152         * packihx/clean.mk
14153         * sim/ucsim/Makefile
14154         * sim/ucsim/clean.mk
14155         * sim/ucsim/avr.src/Makefile.in
14156         * sim/ucsim/avr.src/clean.mk
14157         * sim/ucsim/s51.src/Makefile.in
14158         * sim/ucsim/s51.src/clean.mk
14159         * sim/ucsim/xa.src/Makefile.in
14160         * sim/ucsim/xa.src/clean.mk
14161         * sim/ucsim/z80.src/Makefile.in
14162         * sim/ucsim/z80.src/clean.mk
14163         * sim/ucsim/main_in.mk
14164         * sim/ucsim/packages_in.mk
14165         * sim/ucsim/gui.src/Makefile.in
14166         * sim/ucsim/gui.src/serio.src/Makefile.in
14167         * sim/ucsim/gui.src/serio.src/clean.mk
14168         * src/Makefile.in
14169         * src/clean.mk
14170         * support/cpp2/Makefile.in
14171         * support/cpp2/clean.mk
14172         * support/makebin/Makefile
14173         * support/makebin/clean.mk
14174         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
14175         * doc/sdccman.lyx: --program-suffix no longer needed
14176
14177 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
14178
14179          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
14180          Martin Helmling added support for ddd GUI debugger.
14181          Code added to display assembly, set variables, and other commands
14182          to interface to ddd.
14183
14184 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
14185
14186         * as/Makefile: fix target clean
14187         * as/clean.mk: fix target clean
14188         * as/z80/clean.mk: fix target clean
14189
14190 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
14191
14192         * Makefile.common.in: added  AT EXEEXT AT
14193         * configure.in: removed all mingw32 stuff
14194         * configure: rebuilt from configure.in
14195         * doc/sdccman.lyx: updated section "installation"
14196         * support/scripts/sdcc_mingw32: adapted to configure
14197         * support/scripts/sdcc_cygwin_mingw32: added
14198
14199 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
14200
14201         * src/pic Added object file support for the PIC port
14202         * src/pic Applied patch from Craig Franklin (this started the object file support)
14203         * src/regression Updated the PIC regression tests for object files
14204
14205 2003-04-20  Borut Razem <borut.razem AT siol.net>
14206
14207         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
14208           lklex.c: In function `getfid':
14209           lklex.c:203: warning: array subscript has type `char'
14210         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
14211           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
14212         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
14213           stack handling macros
14214
14215 2003-04-19  Borut Razem <borut.razem AT siol.net>
14216
14217         * "handling space characters in file path" task:
14218         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
14219         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
14220         * support/Util/MySystem.h: make it self-sufficient
14221         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
14222           src/z80/main.c, sdcc/as/mcs51/lklex.c:
14223           handling space characters in file path
14224         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
14225           (it will be used by assemblers, which have their own includes, e.g. gpasm)
14226         * support/Util/MySystem.c: handling space characters in executable's path
14227
14228 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
14229
14230         * as/z80/Makefile: fix permanent rebuild of z80
14231         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
14232         * support/regression/tests/bitfields.c: added Johan's bitfields.c
14233
14234 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
14235
14236         * src/SDCCopt.c: add special case optimization to replace modulo by
14237           a power of two with a bitwise AND.
14238
14239 2003-04-18    <johan AT balder>
14240
14241         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
14242
14243 2003-04-17    <johan AT balder>
14244
14245         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
14246         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
14247
14248 2003-04-13  Borut Razem <borut.razem AT siol.net>
14249
14250         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
14251         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
14252           fixed mingw problem in adl_NORMALIZE_PATH
14253
14254 2003-04-12  Borut Razem <borut.razem AT siol.net>
14255
14256         * fixed "#pragma SAVE/RESTORE can not be nested":
14257         * src/SDCC.lex: reworked pragma handling functions
14258         * sdcc/src/SDCCglobl.h: reworked stack handling macros
14259         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
14260
14261 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
14262
14263         * src/SDCCutil.c (pathEquivalent): defined but not used
14264         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
14265         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
14266         * configure: rebuilt from configure.in
14267         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
14268         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
14269         * device/include/Makefile.in: replace sdcc_datadir
14270         * device/lib/Makefile.in: replace sdcc_datadir
14271         * Makefile.common.in: add LDFLAGS from configure
14272         * packihx/Makefile.in: use LDFLAGS
14273         * src/Makefile.in: use LDFLAGS
14274         * support/cpp2/Makefile.in: add LDFLAGS from configure
14275         * support/makebin/Makefile: use LDFLAGS
14276         * .version: bumped version number to 2.3.5
14277
14278 2003-04-12  Borut Razem <borut.razem AT siol.net>
14279
14280         * completed "different paths" task:
14281         * src/SDCCmacro.c: fixed bug in handling quotes
14282         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
14283         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
14284
14285 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
14286
14287         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
14288
14289 2003-04-11 kevin Vigor <kevin AT vigor.nu>
14290
14291         * ds390/gen.c ds390/peeph.def: fix bug 706781
14292
14293 2003-04-11  Borut Razem <borut.razem AT siol.net>
14294
14295         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
14296
14297 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
14298
14299         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
14300         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
14301          set - this bit used to not be set...).
14302         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
14303           bad code in PIC Port
14304         * src/regression/and2.c added to test bug 609268
14305         * src/regression/Makefile added and2.c to regression test
14306
14307
14308 2003-04-08    <johan AT CP255758-A>
14309
14310         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
14311         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
14312         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
14313
14314 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
14315
14316         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
14317         fix bug #487815
14318         * support/cpp2/Makefile.in: fix bug #487815
14319         * configure: rebuilt from configure.in
14320         * Makefile.common.in: docdir changed, new path suffixes
14321         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
14322         * sdcc_vc_in.h: reflect changes from sdccconf.h
14323         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
14324         * src/SDCCutil.h: remove BINDIR hack
14325         * doc/sdccman.lyx: update new path hierarchy
14326
14327 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14328
14329         * src/SDCCpeeph.c: added okToRemoveSLOC test
14330
14331 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14332
14333         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
14334
14335 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14336
14337         * src/SDCCpeeph.c: added labelIsReturnOnly test
14338         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
14339
14340 2003-04-05    <johan AT balder>
14341
14342         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
14343         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
14344         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
14345         * src/SDCCast.c: fixed a warning
14346         * src/SDCCast.h: fixed a warning
14347         * src/SDCCicode.c (operandFromAst): fixed a warning
14348
14349 2003-04-04    <johan AT balder>
14350
14351         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
14352         * src/SDCCast.c (decorateType): fixed bug #715076
14353         * src/SDCC.y: fixed bug #702907
14354
14355 2003-04-03    <johan AT balder>
14356
14357         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
14358         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
14359         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
14360         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
14361         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
14362
14363 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
14364
14365         * _decdptr.c: fix return values
14366         * _gptrget.c: fix return values
14367         * _gptrgetc.c: fix return values
14368         * _gptrput.c: fix return values
14369         * _mulint.c: fix return values
14370         * as/z80/Makefile: fix 'make -j' problem
14371
14372 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
14373
14374         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
14375         * configure.in: big cleanup, updated to autoconf 2.5x
14376         * configure: rebuilt from configure.in
14377         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
14378         * sdcc_vc_in.h: reflect changes from sdccconf.h
14379         * doc/Makefile: fixed a flaw in "make install"
14380
14381 2003-04-02    <johan AT balder>
14382
14383         * src/ds390/gen.c (genCmp): no comments
14384         * src/mcs51/gen.c (genCmp): no comments
14385         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
14386         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
14387
14388 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
14389
14390         * support/regression/generate-cases.py: place generated file in given sub directory
14391         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
14392         * support/regression/Makefile: improvements for 'make -j';
14393         side effect: it's simpler and faster now
14394
14395 2003-03-31  Borut Razem <borut.razem AT siol.net>
14396
14397         * src/z80/main.c: link-{port} and as-{port} defined without path
14398         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
14399
14400 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
14401
14402         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
14403
14404 2003-03-30  Borut Razem <borut.razem AT siol.net>
14405
14406         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
14407           changed type of list parameter to set
14408         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
14409         * src/port.h: changed type of do_assemble() parameter to set
14410         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
14411           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
14412           definition of "cppoutfilename" macro with NULL value in preProcess()
14413         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
14414         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
14415         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
14416           replaced with set *binPathSet
14417         * shash_add() deallocates the item, if allready exsists, before adding the new one
14418         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
14419
14420 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
14421
14422         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
14423           a nested for loop bug in the PIC port
14424         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
14425           for loops
14426
14427 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
14428
14429         * support/Util/dbuf.h: remove C++ stuff to make it portable
14430
14431 2003-03-28  Borut Razem <borut.razem AT siol.net>
14432
14433         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
14434           literal strings in stringLiteral()
14435         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
14436         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
14437           to the project
14438
14439 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
14440
14441         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
14442
14443 2003-03-26    <johan AT balder>
14444
14445         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
14446         * src/ds390/gen.c (saveRegisters): catched symbol abuse
14447         * src/SDCCast.c (decorateType): fixed " -v < 3"
14448
14449 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
14450
14451         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
14452         Added Lenny Story's debug infrastructure changes:
14453         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
14454         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
14455         * src/cdbFile.c: added
14456         * src/SDCCdebug.c: added
14457         * src/SDCCdebug.h: added
14458         * src/SDCCast.c (createFunction)
14459         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
14460         * src/SDCCmain.c (parseCmdLine, main)
14461         * src/SDCCmem.c (redoStackOffsets)
14462         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
14463         * src/SDCCsymt.h
14464         * src/common.h
14465         * src/avr/gen.c (genAVRCode)
14466         * src/ds390/gen.c (gen390Code)
14467         * src/mcs51/gen.c (gen51Code)
14468         * src/pic/gen.c (genpic14Code)
14469         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
14470         * src/xa51/gen.c (genXA51Code)
14471         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
14472
14473 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14474
14475         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
14476         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
14477
14478 2003-03-22    <johan AT balder>
14479
14480         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
14481
14482 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
14483
14484         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
14485         * doc/cdbfileformat.lyx: added, written by Lenny Story
14486         * doc/Makefile: added cdbfileformat.lyx
14487         * doc/clean.mk: added cdbfileformat.lyx
14488
14489 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
14490
14491         * src/mcs51/peeph.def: fix bug #705773
14492
14493 2003-03-20    <johan AT balder>
14494
14495         An sfr/sbit can have an "at #" AND an initializer
14496         * src/SDCCsymt.c (checkSClass):
14497         * src/SDCCmem.c (allocGlobal):
14498         * src/SDCCmem.c (allocLocal):
14499         * src/SDCCast.c (createBlock):
14500
14501 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
14502
14503         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
14504
14505 2003-03-16    <johan AT balder>
14506
14507         Undid the hackup of const and volatile, the problem is much bigger
14508         * src/SDCC.y:1.65
14509         * src/SDCCast.c:1.171
14510         * src/SDCCglue.c:1.138
14511         * src/SDCCicode.c:1.146
14512         * src/SDCCsymt.c:1.150
14513         * src/SDCCval.c:1.65
14514
14515 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
14516
14517         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
14518         * src/ds390/gen.c (genAddrOf): fixed bug #704087
14519
14520 2003-03-13    <johan AT balder>
14521
14522         Hackup const and volatile modifiers in type chains a bit:
14523         * src/SDCC.y:1.63
14524         * src/SDCCast.c:1.169
14525         * src/SDCCglue.c:1.136
14526         * src/SDCCicode.c:1.143
14527         * src/SDCCsymt.c1.146
14528         * src/SDCCsymt.h1.59
14529         * src/SDCCval.c:1.63
14530
14531 2003-03-12    <johan AT balder>
14532
14533         * src/SDCCBBlock.h: more LRH debugging junk
14534         * src/SDCCcflow.h: more LRH debugging junk
14535         * src/SDCCloop.c: more LRH debugging junk
14536         * src/SDCC.y (struct_declaration): fixed bug #697590
14537         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
14538         * src/ds390/gen.c (aopForRemat): fixed bug #700031
14539         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
14540
14541 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14542         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
14543         test function names must now match exactly).
14544         * src/SDCCcse.c: added special case in findCheaperOp to allow
14545         extending a short integer. Makes less awful code for bug 700121 test case.
14546
14547 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14548
14549         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
14550         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
14551
14552 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14553
14554         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
14555         actually called (operandsNotEqual() was called for all
14556         operandsNotEqualX tests).
14557
14558 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14559
14560         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
14561         with shorter literals. Fixes bug 700121.
14562
14563 2003-03-11    <johan AT balder>
14564
14565         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
14566
14567 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
14568
14569         * src/SDCCloop.c (mergeRegions): an evil beast is dead
14570         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
14571
14572 2003-03-10  Borut Razem <borut.razem AT siol.net>
14573
14574         * src/SDCCmain.c: pipe preprocessor's output
14575         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
14576         * sdcc_vc_in.h: define pclose as _pclose for WIN32
14577         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
14578         which closes all pipes in pipeSet set
14579         * src/SDCCset.c: free deleted item in function deleteSetItem()
14580         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
14581         moved from z80 to src subproject
14582         * .version: increased version number to 2.3.4
14583
14584 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
14585
14586         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
14587         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
14588         * support/regression/ports/xa51/spec.mk: fix typo
14589
14590 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
14591
14592         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
14593
14594 2003-03-09  Borut Razem <borut.razem AT siol.net>
14595
14596         * src/SDCCmain.c: pipe preprocessor's output
14597         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
14598         * sdcc_vc_in.h: define pclose as _pclose for WIN32
14599         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
14600         which closes all pipes in pipeSet set
14601         * src/SDCCset.c: free deleted item in function deleteSetItem()
14602         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
14603         moved from z80 to src subproject
14604
14605 2003-03-09  Borut Razem <borut.razem AT siol.net>
14606
14607         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
14608         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
14609         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
14610         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
14611         * src/SDCCglobl.h: unification of WIN32 native definitions
14612
14613 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14614
14615         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
14616
14617 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
14618
14619         * src/configure.in:   check for endianess (even while cross-compiling)
14620         * src/configure:      check for endianess (even while cross-compiling)
14621         * src/configure_in.h: check for endianess (even while cross-compiling)
14622         * src/avr/gen.c:        remove old endianess stuff
14623         * src/mcs51/gen.c:      remove old endianess stuff
14624         * src/ds390/gen.c:      remove old endianess stuff
14625         * src/pic/gen.c:        remove old endianess stuff
14626         * src/pic/genarith.c:   remove old endianess stuff
14627         * src/pic/glue.c:       fix endianess check
14628         * src/pic16/gen.c:      remove old endianess stuff
14629         * src/pic16/genarith.c: remove old endianess stuff
14630         * src/pic16/glue.c:     fix endianess check
14631         * src/xa51/gen.c:       remove old endianess stuff
14632         * src/z80/gen.c:        fix endianess check
14633         * src/SDCCglue.c:       fix endianess check
14634         * src/ds390/peeph.def: fix bug 700036
14635
14636 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
14637
14638         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
14639         * src/configure: find appropriate data-types on host for SDCC's int and long
14640         * src/configure.in: find appropriate data-types on host for SDCC's int and long
14641         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
14642         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
14643
14644 2003-03-07    <johan AT balder>
14645
14646         Just a big NOOP:
14647                 some minor cleanups before the big shot
14648                 OP_DEFS and OP_USES now use Kevin's protection
14649                 new option --nolabelopt
14650
14651         * src/SDCCBBlock.c:
14652         * src/SDCCast.c,:
14653         * src/SDCCcflow.c:
14654         * src/SDCCcse.c:
14655         * src/SDCCicode.c:
14656         * src/SDCCicode.h:
14657         * src/SDCClabel.c:
14658         * src/SDCCloop.c:
14659         * src/SDCCmain.c:
14660         * src/ds390/ralloc.c:
14661         * src/mcs51/ralloc.c:
14662         * src/pic/ralloc.c:
14663         * src/xa51/ralloc.c:
14664         * src/z80/ralloc.c:
14665
14666 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
14667
14668         * src/pic/pcode.c (get_op): fix 64 bit warnings
14669         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
14670         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
14671         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
14672         * support/regression/tests/malloc.c: fix 64 bit warnings
14673
14674 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
14675
14676         * src/mcs51/gen.c (genMinus): fixed bug 696436
14677
14678 2003-03-02  Borut Razem <borut.razem AT siol.net>
14679
14680         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
14681
14682 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
14683
14684         * configure.in: test for mkstemp
14685         * sdccconf_in.h: add HAVE_MKSTEMP
14686
14687 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
14688
14689         * device/include/ctype.h: removed warning while using --stack-auto
14690         * device/include/malloc.h: removed warning while using --stack-auto
14691         * device/include/string.h: removed warning while using --stack-auto
14692
14693 2003-02-23  Borut Razem <borut.razem AT siol.net>
14694
14695         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
14696         because NDEBUG is defined (see man assert)
14697         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
14698
14699 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14700
14701         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
14702         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
14703
14704 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14705
14706         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
14707         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
14708
14709 2003-02-18    <johan AT balder>
14710
14711         * as/mcs51/asmain.c (asmbl): module can start with a digit
14712         * as/z80/asmain.c (asmbl): module can start with a digit
14713
14714 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
14715
14716         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
14717         * src/asm.c: fix pipe() for Mingw32
14718
14719 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
14720
14721         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
14722         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
14723         make -V work again; --c1mode reads now from stdin
14724         * doc/sdccman.lyx: added --c1mode
14725         * support/Util/SDCCerr.c: new messages for c1 mode
14726         * support/Util/SDCCerr.h: new messages for c1 mode
14727         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
14728
14729 2003-02-15    <johan AT balder>
14730
14731         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
14732
14733 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
14734
14735         * doc/sdccman.lyx: Environment variables, -o and other minor things
14736
14737 2003-02-14    <johan AT balder>
14738
14739         * src/xa51/main.c: before anyone really tries to use it :)
14740
14741         * Install doc's in share/sdcc/doc
14742         * removed some obsolete files
14743         * Do a proper make distclean and uninstall
14744         M Makefile.common.in
14745         R sdccbuild.sh
14746         M as/Makefile
14747         M device/include/Makefile.in
14748         M device/lib/Makefile.in
14749         M doc/sdccman.lyx
14750         M link/Makefile
14751         M sim/ucsim/doc/Makefile.in
14752         M src/clean.mk
14753         R src/avr/peeph.rul
14754         R src/xa51/peeph.rul
14755         M support/cpp2/Makefile.in
14756         M support/makebin/Makefile
14757
14758
14759 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
14760
14761         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
14762
14763 2003-02-10  Borut Razem <borut.razem AT siol.net>
14764
14765         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
14766         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
14767         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
14768         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
14769         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
14770         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
14771         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
14772         src/z80/Makefile.bcc: Borland Makefile cleanup
14773         * as/z80/Makefile.bcc: Added Borland Makefile
14774         * support/cpp2/borland.h: Removed
14775
14776 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
14777
14778         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
14779         * src/SDCC.lex: new pragma NOIV
14780         * src/SDCCglobl.h: new pragma NOIV
14781         * src/SDCCmem.c: new pragma NOIV
14782
14783 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
14784
14785         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
14786
14787 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
14788
14789         * src/SDCCmain.c: signal handling is switched off by --debug
14790         * doc/Makefile: small fix for install; use clean.mk again
14791         * doc/clean.mk: clean *.pdf and *.html too
14792
14793 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
14794
14795         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
14796         * device/lib/printfl.c: fix a ds390 bug by making it portable
14797         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
14798         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
14799         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
14800         * debugger/mcs51/cmd.c: converted multi-line string literals
14801         * sim/ucsim/globals.cc: converted multi-line string literals
14802         * src/SDCCmain.c: introduced signal handler to remove temp files
14803         * doc/Makefile: small tweaks, implement clean
14804         * doc: removed generated files
14805
14806 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14807
14808         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
14809         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
14810         Address Record is not correctly generated for DS390."
14811
14812 2003-02-02  Borut Razem <borut.razem AT siol.net>
14813
14814         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
14815         * as/mcs51/asm.h: fixed compilation with Borland C
14816         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
14817         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
14818         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
14819         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
14820         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
14821         src/z80/Makefile.bcc: delete $(LIB) only if exist
14822         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
14823
14824 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
14825
14826         * device/include/malloc.h: introduced NULL
14827         * device/include/string.h: introduced NULL
14828         * device/include/stdlib.h: introduced NULL
14829         * device/lib/_memcpy.c: removed NULL
14830         * device/lib/_strcat.c: removed NULL
14831         * device/lib/_strchr.c: removed NULL
14832         * device/lib/_strcmp.c: removed NULL
14833         * device/lib/_strcpy.c: removed NULL
14834         * device/lib/_strcspn.c: removed NULL
14835         * device/lib/_strlen.c: removed NULL
14836         * device/lib/_strncat.c: removed NULL
14837         * device/lib/_strncmp.c: removed NULL
14838         * device/lib/_strncpy.c: removed NULL
14839         * device/lib/_strpbrk.c: removed NULL
14840         * device/lib/_strrchr.c: removed NULL
14841         * device/lib/_strspn.c: removed NULL
14842         * device/lib/_strstr.c: removed NULL
14843         * device/lib/_strtok.c: removed NULL
14844         * device/lib/malloc.c: removed NULL, include own header
14845
14846 2003-02-02    <johan AT balder>
14847
14848         * 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
14849         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
14850         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
14851         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
14852         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
14853         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
14854
14855 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14856
14857         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
14858         area 'DATA'"
14859
14860 2003-02-01    <johan AT balder>
14861
14862         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
14863
14864 2003-01-31    <johan AT CP255758-A>
14865
14866         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
14867
14868 2003-01-30    <johan AT balder>
14869
14870         * src/SDCCBBlock.c: automatic bug detection
14871         * src/SDCCicode.c: automatic bug detection
14872
14873 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14874
14875         * src/SDCCglobl.h:   now --xram-size 0 works
14876         * src/SDCCmain.c:    now --xram-size 0 works
14877
14878 2003-01-29    <johan AT balder>
14879
14880         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
14881
14882 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14883
14884         * as/mcs51/aslink.h: Added options --xram-size and --code-size
14885         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
14886         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
14887         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
14888         * src/SDCCglobl.h:   Added options --xram-size and --code-size
14889         * src/SDCCmain.c:    Added options --xram-size and --code-size
14890
14891 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
14892
14893         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
14894         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
14895
14896 2003-01-27    <johan AT balder>
14897
14898         * src/SDCC.y: fixed bug #613764
14899
14900 2003-01-26    <johan AT balder>
14901
14902         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
14903         * src/SDCCsymt.h: fixed bug #673374
14904         * src/SDCCglue.c: fixed bug #661910
14905         * src/SDCCast.c: fixed bug #458099 and 673374
14906
14907 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
14908
14909         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
14910         * as/mcs51/strcmpi.h: added
14911         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
14912         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
14913         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
14914         * as/mcs51/assym.c: strcmpi -> as_strcmpi
14915         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
14916         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
14917         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
14918         * as/mcs51/Makefile.aslink: new module strcmpi
14919         * as/mcs51/Makefile.asx8051: new module strcmpi
14920         * as/mcs51/Makefil.bcc: new module strcmpi
14921         * as/mcs51/Makefile.in: new module strcmpi
14922         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
14923
14924 2003-01-26    <johan AT balder>
14925
14926         * src/SDCCglue.c: reverted back to 1.124
14927         * src/SDCCast.c: reverted back to 1.156
14928         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
14929
14930 2003-01-25    <johan AT balder>
14931
14932         * src/SDCCglue.c: A better fix for bug #661910
14933         * src/SDCCast.c: A better fix for bug #661910
14934         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
14935
14936 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
14937
14938         * src/Makefile.in: remove spawn.o
14939         * src/SDCCmain.c: remove spawn.h
14940         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
14941         * src/spawn.c: removed
14942         * src/spawn.h: removed
14943         * support/regression/ports/ds390/spec.mk: link with -r
14944
14945 2003-01-24    <johan AT CP255758-A>
14946
14947         * src/ds390/gen.c (aopOp): fixed bug #667458
14948         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
14949         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
14950         (createIvalCharPtr): an ival doesn't always have a storage class anymore
14951
14952 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
14953
14954         * src/mcs51/peeph.def: better assembler identation by Frieder
14955         * src/mcs51/gen.c: better assembler identation by Frieder
14956
14957 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
14958
14959         * as/z80/string.h: removed for gcc 3.2
14960         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
14961         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
14962
14963 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
14964
14965         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
14966         * src/SDCCpeeph.c (replaceRule): fix bug #663503
14967         * support/regression/Makefile: separate temp files for ports
14968         * support/regression/generate-cases.py: separate temp files for ports
14969         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
14970         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
14971
14972 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
14973
14974         * moved tinitalk to device/examples/ds390
14975
14976 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
14977
14978         * as/mcs51/lkmem.c: rflag is for DS390
14979         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
14980         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
14981                          (linkEdit): move mem- and map-files the same way as ihx-files
14982         * src/z80/main.c (_setDefaultOptions): removed --generic
14983         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
14984         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
14985         * src/pic/glue.c (picglue): --c1mode works again
14986         * src/pic16/glue.c (pic16glue): --c1mode works again
14987         * src/asm.c (printCLine): fix #660034
14988
14989 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
14990
14991         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
14992         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
14993         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
14994         * as/mcs51/lkmem (summary): better fix for sp problem
14995         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
14996         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
14997         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
14998                                               remove --stack-after-data
14999
15000 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
15001
15002         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
15003         * src/SDCCutil.c (join): ugly bug: missing '\0'
15004         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
15005
15006 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
15007
15008         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
15009         * src/port.h: typo
15010         * src/pic/main.c (_asmCmd): gpasm supports -o
15011         * src/z80/main.c: more general macros
15012         * device/lib/Makefile.in: remove intermediate files
15013
15014 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
15015
15016         * .version: Bumped version number to 2.3.3
15017         * src/SDCCBBlock.c: new option -o
15018         * src/SDCCglobl.h: new option -o
15019         * src/SDCCglue.c: new option -o
15020         * src/SDCCmain.c: new option -o
15021         * src/asm.c: new option -o
15022         * src/ds390/main.c: new option -o
15023         * src/pic/glue.c: new option -o
15024         * src/pic/pcode.c: new option -o
15025         * src/pic/ralloc.c: new option -o
15026         * src/pic16/glue.c: new option -o
15027         * src/pic16/pcode.c: new option -o
15028         * src/pic16/ralloc.c: new option -o
15029         * src/z80/main.c: new option -o
15030         * device/lib/Makefile.in: use -o
15031         * support/regression/ports/ds390/spec.mk: use -o
15032         * support/regression/ports/gbz80/spec.mk: use -o
15033         * support/regression/ports/mcs51/spec.mk: use -o
15034         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
15035         * support/regression/ports/z80/spec.mk: use -o
15036         * support/regression/ports/ucz80/spec.mk: use -o
15037         * support/regression/ports/xa51/spec.mk: use -o
15038         * support/regression/fwk/lib/timeout.c: fix usage string
15039
15040 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
15041         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
15042
15043 2003-01-07    <johan AT balder>
15044
15045         * src/SDCCast.c (decorateType): fixed bug #600035
15046
15047 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
15048         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
15049         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
15050         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
15051         * src/pic/pcode.c: outcommented unused variable to remove warnings
15052         * src/pic/ralloc.c: outcommented unused variable to remove warnings
15053
15054 2003-01-06    <karl AT turbobit.com>
15055         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
15056    regression tests.
15057
15058 2003-01-06    <johan AT balder>
15059
15060         * src/SDCCicode.c: fixed array add
15061
15062 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
15063         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
15064         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
15065
15066 2003-01-04    <johan AT balder>
15067
15068         * src/SDCCval.c (getNelements): fixed the initialized array of structures
15069
15070 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15071         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
15072
15073 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
15074         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
15075         * support/regression/tests/bug-524697.c: fit mem usage into 8032
15076
15077 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
15078         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
15079
15080 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
15081         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
15082
15083 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
15084         * src/mcs51/main.c: removed {bindir}{sep} from aslink
15085
15086 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15087
15088     * in /sdcc/as/mcs51/ changed these files in order to create an
15089     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
15090     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
15091     following files to include the previous two files: aslink.dsp,
15092     Makefile.aslink, Makefile.bcc, and Makefile.in.
15093
15094     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
15095     .adb instead of .cdb
15096
15097 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15098
15099         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
15100         value from option --iram-size.
15101
15102 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15103
15104         * /sdcc/as/mcs51/lklist.c: added boundary check before using
15105         dram[] array.
15106
15107 2002-09-18    <wiml AT hhhh.org>
15108
15109         * SDCClrange.h: exposed setFromRange() and setToRange()
15110         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
15111           packRegsForAccUse() (bug 542397)
15112         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
15113           multiple times and emitting the fetch operations more than once
15114           added aopGetUsesAcc() function to allow binary operators to
15115           fetch their operands in the correct order; made genMinus() emit
15116           compact code for X = LITERAL - Y
15117
15118 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15119         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
15120         sprintf() in line 1267.
15121
15122 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15123         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
15124         like ports.
15125
15126 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15127         Changes to aslink (All the changes are marked with 'JCF'):
15128
15129         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
15130         summary().
15131
15132         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
15133         area BSEG.  Also moves, if possible, the DATA area down into the internal
15134         ram so more space is available.
15135
15136         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
15137         sflag.
15138
15139         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
15140         not bytes.  Function summary() which creates a memory usage summary
15141         file with extension .mem.  Reports of overlaping stack and small stack
15142         size.  If the space for the stack is less than 16 bytes aslink trows a
15143         warning.
15144
15145         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
15146         the 8051.  Option 'y' for memory summary output file.
15147
15148         Changes to sdcc (All the changes are marked with 'JCF'):
15149
15150         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
15151
15152         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
15153         overlaying area for it (uses RegBankUsed[4]).
15154
15155         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
15156         bank zero as used by default.  By default aslink locates the stack
15157         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
15158         the creation of the .mem file.  Delegates the allocation of data area
15159         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
15160         the begining of the stack area to aslink.
15161
15162         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
15163         glue() in SDCCglue.c creates an area for it.
15164
15165 2002-09-03  Borut Razem <borut.razem AT siol.net>
15166         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
15167         sdcc/src/pic/glue.c:
15168         introduced atexit() handler for teporay files removal in case of
15169         errors, assertions, ...
15170
15171 2002-08-29  Borut Razem <borut.razem AT siol.net>
15172         * sdcc/support/cpp2/auto-host_vc_in.h:
15173         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
15174         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
15175         Maybe there is a similar problem with BORLANDC? It should be checked!
15176
15177         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
15178         corrected improper use of assert: the assignment to clr variable was done inside the assert.
15179         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
15180         was not executed, and the compiler (cl) launched a warning:
15181         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
15182
15183 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
15184         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
15185
15186 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
15187         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
15188
15189         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
15190           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
15191           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
15192           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
15193           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
15194           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
15195           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
15196         - added Release configuration in VS projects
15197         - review of compiler an linker options
15198         - VC .exe files are generated in bin_vc directory, not to interfere
15199           with binaries generated from other projects (cygwin, mingw, bcc ...)
15200
15201         * sdcc/src/yacc.dsp: added
15202
15203         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
15204         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
15205         and insert the version number definitions from .version
15206
15207         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
15208
15209         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
15210         added - genarate auto-host.h using auto-host_vc_in.h as template
15211
15212         * sdcc/sdcc_vc.h,
15213         removed from CVS, generated automatically
15214
15215 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
15216         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
15217
15218 2002-08-11  Borut Razem <borut.razem AT siol.net>
15219         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
15220
15221 2002-08-10  Borut Razem <borut.razem AT siol.net>
15222         * src/SDCCmain.c (main):
15223         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
15224         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
15225         The consequence was that some temporary files were not removed.
15226
15227         * src/SDCCglue.c:
15228         unification of code in functions tempfilename() and tempfile():
15229         function tempnam() is defined in Visual Studio 6.0 and .NET
15230
15231         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
15232
15233         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
15234           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
15235         - removed compiler command line option /WX: Treats all warnings as errors
15236         - update a list of source files, included into the project
15237
15238         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
15239           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
15240         changed project type to Generic Project so that can be correcly converted to VS.NET project
15241
15242         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
15243
15244         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
15245
15246         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
15247
15248         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
15249         added return 0 statements after assert() to make compiler happy
15250
15251         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
15252         added newline in the def file to keep MSC compiler satisfied
15253
15254         * sdcc/src/z80/gen.c:
15255         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
15256           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
15257         - solved MSC error in function aopDump()
15258
15259         * sdcc_vc.h: define PREFIX as "\\sdcc"
15260
15261 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
15262         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
15263
15264 2002-06-22  Scott Dattalo <scott AT dattalo.com>
15265         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
15266         - Rewrote the register banking algorithm.
15267         - Added pCode live-range analysis to registers (for now, only non-used and
15268         singly-used registers optimized away)
15269
15270         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
15271
15272         * 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.
15273
15274 2002-05-10  Scott Dattalo <scott AT dattalo.com>
15275         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
15276
15277 2002-04-22  Michael Hope  <michaelh AT vroom>
15278
15279         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
15280
15281         * configure.in (DD_COPT): Added include support required for gbdk.
15282
15283         * .version: Bumped version number just to increase it.
15284
15285         * src/SDCCmain.c: Added -nostdinc to the default options.
15286
15287 2002-04-15  Michael Hope  <michaelh AT vroom>
15288
15289         * device/lib/z80/printf.c (sprintf): Added.
15290
15291         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
15292
15293         * src/z80/peeph.def: Added transpose redundent load rule.
15294
15295         * src/z80/main.c: Added force callee saves for jaune.
15296
15297         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
15298
15299         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
15300
15301 2002-03-28  Johan Knol  <johan AT balder>
15302
15303         * src/SDCCval.c: fixed bug #532436
15304
15305 2002-03-14  Scott Dattalo <scott AT dattalo.com>
15306         * /src/port.h:
15307         Added "char *Processor" field to the port structure.
15308
15309         * /src/SDCCmain.c:
15310         Added -p option. Allows port dependent processor to be specified.
15311
15312         * all ports:
15313         Initialized the new field char *Processor field to NULL in all ports
15314
15315         * /src/pic/*:
15316         Compiler generated registers for interrupt context saving
15317         were not getting allocated.
15318
15319 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
15320
15321         * /src/SDCCast.c:
15322         Fixed left shift. Will promote the left side of a left shift
15323         if a) left shifting more than size of operand or b) when assigned
15324         to something size > size of left side
15325
15326 2002-03-14  Scott Dattalo <scott AT dattalo.com>
15327         * src/pic/*
15328         tons of changes. Register allocation has been
15329         rewritten. Added customization for the various PICs. Flow
15330         analysis is restructured. ...
15331
15332         * src/pic/device.h:
15333         Added
15334
15335         * src/pic/device.c:
15336         Added. device.c is a PIC port hack to accomodate variations
15337         in PIC devices.
15338
15339 2002-03-13  Michael Hope  <michaelh AT vroom>
15340
15341         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
15342
15343 2002-03-04  johanknol  <johanknol AT manik>
15344
15345         * /src/SDCCval.c: fixed
15346
15347         const unsigned char arr[][2] = { { 0, 1 } };
15348         t18.c:1: error: Initializer element is not constant
15349
15350 2002-03-04  bela  <bela AT manik>
15351
15352         * /device/include/mcs51reg.h:
15353         ds89c420 register definition update
15354
15355 2002-03-03    <johan AT FRIJA>
15356
15357         * support/Util/SDCCerr.c: did something, but don't no why anymore
15358
15359         * support/regression/tests/bug-524691.c: made it a little less shy
15360
15361         * src/SDCCast.c (decorateType): fixed bug #524697
15362
15363         * src/SDCCast.c: made some lineno improvements
15364
15365         * src/SDCCval.c (getNelements): changed warning to error
15366
15367         * src/SDCCglue.c (printIvalArray): changed warning to error
15368
15369         * src/SDCCicode.c: fixed a warning for mingw
15370
15371         * src/SDCCast.c (decorateType): fixed the << promotion for ops
15372
15373         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
15374
15375 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
15376
15377         * src/ds390/peeph.def:
15378         Added some more peephole rules
15379
15380         * src/ds390/gen.c: Various fixes & enhancements
15381
15382         * src/SDCClrange.c, src/SDCClrange.h:
15383         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
15384
15385         * src/ds390/ralloc.c:
15386         various fixes & enhancements (ds390) specific
15387
15388         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
15389         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
15390         from rallocs.
15391
15392         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
15393
15394 2002-03-02    <johan AT FRIJA>
15395
15396         * src/SDCCast.c (decorateType): fixed bug #524708
15397
15398         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
15399
15400         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
15401
15402 2002-03-01  Michael Hope  <michaelh AT vroom>
15403
15404         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
15405
15406         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
15407
15408 2002-03-01    <johan AT FRIJA>
15409
15410         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
15411
15412         * src/SDCCast.c (decorateType): fixed bug #524209
15413
15414         * src/SDCCval.c (valNot): fixed bug #524195
15415
15416 2002-02-26    <johan AT balder>
15417
15418         * src/xa51/gen.c: fixed a warning
15419
15420         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
15421
15422         * src/SDCCast.c (decorateType): fixed bug #522534
15423
15424 2002-02-23    <johan AT balder>
15425
15426         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
15427
15428 2002-02-22    <johan AT balder>
15429
15430         * src/SDCCast.c: fixed bug #514865
15431
15432         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
15433
15434 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
15435
15436         * sdcc/src/SDCCloop.c:
15437         Previous fix was not good. basic blocks that have "break" or "return" are
15438         not really partof a loop , but live ranges used in these blocks should
15439         be live thru the entire loop, so set partOfLoop but don't add them to
15440         loop region
15441
15442 2002-02-21    <johan AT FRIJA>
15443
15444         * src/SDCCcse.c: fixed bug #514308
15445
15446 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
15447
15448         * src/SDCCloop.c:
15449         Fixed BUG #519583. If a conditional block ended in a return/break
15450         statement inside a loop, it was not being considered part of the loop.
15451
15452         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
15453
15454 2002-02-10  Karl Bongers <karl AT turbobit.com>
15455
15456         * debugger/*:
15457         Fixed up SDCDB debugger somewhat.  Updated debugger/README
15458         with lots of comments and notes.
15459
15460         * device/examples/test2.c:
15461         Fix bug, "red" variable not being initialized(compiler complained).
15462
15463         * device/examples/Makefile, examples/test3.c:
15464         Add Makefile in device/examples folder, compiles test3.c
15465         for use as a multiple module SDCDB test case.
15466
15467         * sim/ucsim/cmd.src/cmdset.cc:
15468         Took out debug printfs in ucsim "next" command.
15469
15470         * sim/ucsim/xa.src:
15471         Karl and Johan start ucsim XA support.  Most dissassembly working,
15472         about 75% emulation done(plenty of work remaining).
15473
15474         * sim/ucsim/z80.src:
15475         Add Z80 support to ucsim, add test-ucz80 regression test,
15476         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
15477         Notice z80 compiler fails on examples/test3.c/crc code.
15478
15479 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
15480
15481         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
15482         Added support for --parms-in-bank1
15483
15484         * src/ds390/peeph.def:
15485         added a few more peephole optimzations
15486
15487         * src/ds390/main.c:
15488         1) added __builtin_inp & __builtin_outp used to read in data of given length
15489            from a memory mapped port
15490         2) added __builtin_memcmp
15491         3) added __builtin_swapw swap bytes of a short
15492
15493         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
15494         1) handle multiple send & receives from register bank1
15495         2) ralloc can now allocate DPTR1 to some liveRanges
15496
15497         * src/SDCCsymt.c, src/SDCCsymt.h:
15498         changes to handle multiple sends & receives
15499
15500         * src/SDCCptropt.h:
15501         added some pointer arithmetic optimization
15502
15503         * src/SDCCptropt.c:
15504         added some pointer arithmetic optimizations but not stable yet so not
15505         called from anywhere (will get this working shortly)
15506
15507         * src/SDCCopt.c: fixed for multiple sends & receives
15508
15509         * src/SDCCmain.c:
15510         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
15511         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
15512            set preprocessor defines (depending on options)
15513
15514         * src/SDCCicode.c, src/SDCCicode.h:
15515         changes made to handle multiple sends & receives
15516
15517         * src/SDCCglobl.h:
15518         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
15519
15520         * src/SDCCcse.c, src/SDCCcse.h:
15521         added function findbackward def (to be used in upcoming optimization)
15522
15523         * src/SDCCcflow.c, src/SDCCcflow.h:
15524         added function returnAtEnd - to determine if a basic block terminates with
15525         a RETURN iCode
15526
15527         * src/SDCCast.c, src/SDCCast.h:
15528         added option parms-in-bank1
15529
15530         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
15531         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
15532         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
15533         adjusted for --parms-in-bank1 option
15534
15535         * device/include/string.h:
15536         donot redefine "reentrant" keyword
15537
15538         * device/include/ds80c390.h: Added some more SFRs
15539
15540 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
15541
15542         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
15543
15544 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
15545
15546         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
15547
15548 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
15549
15550         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
15551
15552 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
15553
15554         * Added --xram-movc option
15555
15556 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
15557
15558         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
15559
15560 2002-01-11  Johan Knol
15561
15562         * Added math lib of Jesus Calvino-Fraga
15563
15564 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
15565
15566         * src/SDCCmain.c (processFile): fix processing of ../../src.c
15567         * support/regression/Makefile: new target test-mcs51-stack-auto
15568         * support/regression/ports/mcs51-stack-auto/spec.mk: added
15569
15570 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
15571
15572         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
15573
15574 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
15575
15576         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
15577
15578 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
15579
15580         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
15581
15582         * src/SDCCglue.h: add definition for printIvalChar()
15583
15584 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
15585
15586         * src/SDCCast.c: fix #498138 by Johan
15587
15588         * src/SDCCglue.c: fix #498138 by Johan
15589
15590 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
15591
15592         * support/regression/Makefile: fix clean
15593
15594         * support/regression/ports/ds390/support.c: fix transmission of last character
15595
15596 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
15597
15598         * /sdcc/src/ds390/gen.c:
15599         a) improved computing address of stack variable
15600         b) took out some #if 0 code
15601         c) improved parmBytes adjustment
15602         d) improved genPlusIncr & genMinusIncr
15603         e) genCmp could generate bad code (when left assigned to DPTR)
15604         f) Fixed bug in hasInc
15605
15606         * /sdcc/src/ds390/ralloc.c:
15607         a) packRegsForSupport could mess up live information (Fixed)
15608         b) packRegsDPTRuse could be incorrect for left & right shift
15609
15610         * /sdcc/src/mcs51/ralloc.c:
15611         packRegsForSupport could mess up the live information (Fixed)
15612
15613         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
15614
15615         * /sdcc/src/SDCCast.c:
15616         can reverse a loop even if function call is present as long
15617         as the loop control variable is local & is not passed as parameter
15618
15619 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15620
15621         * /sdcc/ChangeLog: *** empty log message ***
15622
15623         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
15624         More builtin function additions for TININative
15625
15626         * /sdcc/src/ds390/ralloc.c:
15627         Had broken the regression testsuite
15628
15629         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
15630
15631         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
15632         Added funcattr hasStackParms will be set for reentrant functions when there
15633         are paramteres on the stack, this helps in minimizing frame pointer generation
15634         typeFromStr can handle function pointers now
15635
15636         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
15637         *** empty log message ***
15638
15639 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15640
15641         * /src/ds390/gen.c, /src/ds390/main.c:
15642         More builtin function additions for TININative
15643
15644         * /src/ds390/ralloc.c:
15645         Had broken the regression testsuite
15646
15647         * /src/SDCCast.c: Fixed a bug in dumptree
15648
15649         * /src/SDCCsymt.c, /src/SDCCsymt.h:
15650         Added funcattr hasStackParms will be set for reentrant functions when there
15651         are paramteres on the stack, this helps in minimizing frame pointer generation
15652         typeFromStr can handle function pointers now
15653
15654         * /doc/builtins.txt, /doc/TININative.txt:
15655         *** empty log message ***
15656
15657
15658 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15659
15660         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
15661         ALPHA version for -mTININative
15662
15663         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
15664         updated to reflect changes in the port structure
15665
15666         * /src/port.h:
15667         added function do_assemble (similar to do_link) if non-null this function
15668         will be called to do assembly (-mTININative) requires a multi command
15669         assembly
15670         added function genAssemblerEnd will be called to generate assembler Epilogue
15671
15672         * /src/SDCCsymt.c:
15673         added _JavaNative to debug info printing
15674
15675         * /src/SDCCmain.c: added option --tini-libid
15676         added port->do_assemble function (-mTININative) has a multi command assemble
15677
15678         * /src/SDCCglue.c: Disabled "constExpr" check
15679         added port->genAssemblerEnd function
15680
15681         * /src/SDCCglobl.h: Added option --tini-libid value
15682
15683         * /src/SDCCast.h:
15684         tookout optimizeCompare from the header (has no external references)
15685
15686         * /src/SDCCast.c: made one more function "static"
15687
15688 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
15689
15690         * src/z80/mappings.i: Added z80asm support.
15691
15692         * src/z80/main.c: Added z80asm support on --asm=z80asm
15693
15694         * src/z80/gen.c: Fixed asm portability issues.
15695
15696         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
15697
15698         * src/SDCCglue.c (printExterns): Added global/extern split.
15699
15700 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
15701
15702         * support/regression/Makefile: added test for mcs51 model large
15703
15704         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
15705
15706         * support/regression/ports/gbz80/spec.mk: added -mgbz80
15707
15708 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
15709
15710         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
15711
15712 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
15713
15714         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
15715
15716         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
15717
15718 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
15719
15720         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
15721
15722         * support/regression/tests/simplefloat.c: Port to mcs51.
15723
15724 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
15725         * support/regression/tests/bug-485362.c: Added.
15726
15727         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
15728
15729         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
15730
15731         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
15732
15733         * src/z80/gen.c (aopDump): Added a dump function.
15734
15735 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
15736         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
15737
15738         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
15739
15740         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
15741
15742         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
15743
15744         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
15745
15746         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
15747
15748         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
15749
15750         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
15751
15752         * support/regression/ports/ds390/support.c: Use tinibios.
15753
15754         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
15755
15756 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
15757
15758         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
15759         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
15760
15761         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
15762
15763         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
15764
15765 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
15766
15767         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
15768
15769         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
15770         (packRegsForIYUse): Created and optimised.
15771
15772 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
15773
15774         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
15775 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
15776
15777         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
15778
15779         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
15780
15781         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
15782
15783 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15784
15785         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
15786
15787         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
15788
15789 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15790
15791         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
15792
15793         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
15794
15795         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
15796
15797 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
15798
15799         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
15800         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
15801         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
15802
15803         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
15804
15805         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
15806         (genNotFloat): Added.
15807         (genUminusFloat): Added.
15808
15809         * device/lib/z80/Makefile: Added floating pt stubs.
15810
15811         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
15812
15813         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
15814
15815         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
15816
15817 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15818
15819         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
15820
15821         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
15822
15823         * sdcc/support/regression/Makefile: Add port ds390.
15824
15825         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
15826
15827         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
15828
15829         * sdcc/support/regression/ports/ds390/spec.mk: Added.
15830
15831         * sdcc/support/regression/ports/ds390/support.c: Added.
15832
15833         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
15834
15835         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
15836
15837         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
15838
15839 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
15840
15841         * device/include/malloc.h: Added z80 and gbz80 support.
15842
15843         * device/lib/gbz80/heap.s: Added.
15844
15845         * device/lib/z80/heap.s: Added.
15846
15847         * device/lib/malloc.c: Added z80 and gbz80 support.
15848
15849         * support/regression/tests/malloc.c (testMalloc): Added.
15850
15851         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
15852
15853         * support/regression/tests/bug-478094.c: Added.
15854
15855         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
15856
15857 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
15858
15859         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
15860
15861         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
15862
15863         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
15864
15865         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
15866
15867         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
15868
15869 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
15870
15871         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
15872
15873 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
15874
15875         * support/regression/tests/bug-477927.c: Added.
15876
15877         * src/z80/peeph.def: Added minor rules.
15878
15879         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
15880
15881         * src/z80/peeph.def: Added jump optimisation modification.
15882
15883 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
15884
15885         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
15886
15887 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
15888
15889         * support/regression/tests/funptrs.c: Added.
15890
15891 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
15892
15893         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
15894
15895 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
15896
15897         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
15898
15899         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
15900
15901         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
15902         (movLeft2ResultLong): Created.
15903
15904         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
15905         (joinPushes): Added.  Joins two char pushes into a word push.
15906
15907 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
15908
15909         * support/cpp2/Makefile.in (install): Added creation of dest dir.
15910
15911         * support/makebin/Makefile (install): Added creation of dest dir.
15912
15913 2001-10-24 Karl Bongers <karl AT turbobit.com>
15914
15915         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
15916
15917 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
15918
15919         * src/z80/ralloc.c: Turned off faulty pack for one use.
15920
15921         * src/z80/peeph-gbz80.def: Removed redundent restart options.
15922
15923         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
15924
15925 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
15926
15927         * support/regression/Makefile: Improved clean
15928
15929         * support/regression/ports/gbz80/spec.mk: Added clean
15930
15931         * support/regression/ports/host/spec.mk: Added clean
15932
15933         * support/regression/ports/z80/spec.mk: Added clean
15934
15935         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
15936
15937         * support/regression/ports/mcs51/timeout.c: little improvements
15938
15939 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
15940
15941         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
15942
15943         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
15944
15945         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
15946
15947 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
15948
15949         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
15950
15951         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
15952
15953 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
15954         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
15955
15956         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
15957
15958         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
15959
15960         * src/mcs51/main.c (_linkCmd): Added bin path to command.
15961
15962         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
15963
15964         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
15965
15966         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
15967
15968         * support/regression/tests/longor.c: Added.
15969
15970 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
15971
15972         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
15973
15974         * as/mcs51/aslink.h: define PATH_MAX
15975
15976         * as/mcs51/asm.h: define PATH_MAX
15977
15978         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
15979
15980         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
15981
15982         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
15983
15984         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
15985
15986         * src/SDCCglobl.h: define PATH_MAX
15987
15988         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
15989
15990         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
15991
15992 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
15993
15994         * src/z80/gen.c (gencjneshort): Fixed
15995
15996         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
15997
15998 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
15999
16000         * support/regression/tests/bug-469671.c: Added.
16001
16002         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
16003
16004 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
16005
16006         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
16007
16008         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
16009
16010 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
16011
16012         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
16013
16014         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
16015
16016         * src/device/lib/_mullong.c : removed hint: nooverlay bug
16017
16018         * src/device/lib/_divuint.c : removed hint: nooverlay bug
16019
16020         * src/device/lib/_divulong.c: removed hint: nooverlay bug
16021
16022         * src/device/lib/_moduint.c : removed hint: nooverlay bug
16023
16024         * src/device/lib/_modulong.c: removed hint: nooverlay bug
16025
16026 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
16027
16028         * 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.
16029
16030         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
16031
16032         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
16033
16034 2001-10-07    <johan AT FRIJA>
16035
16036         * device/lib/gets.c (gets): fixed the return value.
16037
16038 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
16039         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
16040
16041         * 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.
16042
16043         * 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.
16044
16045         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
16046
16047         * src/pic/gen.c: Removed Safe_strdup.
16048
16049         * configure.in: Added option to enable libgc support.
16050
16051         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
16052         (bitVectUnion): Optimised.
16053         (bitVectIntersect): Optimised.
16054         (bitVectBitsInCommon): Optimised.
16055         (bitVectCplAnd): Optimised.
16056
16057         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
16058
16059 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16060
16061         * src/SDCCmain.c: distinguish between assembler debug and plain options
16062
16063         * src/avr/main.c:   remove standard assembler options
16064
16065         * src/ds390/main.c: remove standard assembler options
16066
16067         * src/mcs51/main.c: remove standard assembler options
16068
16069         * src/port.h: removed "PENDING" comment
16070
16071 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16072
16073         * src/device/lib/_mulint.c  : new, with assember functions
16074
16075         * src/device/lib/_mullong.c : new, with assember functions
16076
16077         * src/device/lib/_divuint.c : with assember functions
16078
16079         * src/device/lib/_divsint.c : with assember functions
16080
16081         * src/device/lib/_divulong.c: with assember functions
16082
16083         * src/device/lib/_divslong.c: with assember functions
16084
16085         * src/device/lib/_moduint.c : with assember functions
16086
16087         * src/device/lib/_modsint.c : with assember functions
16088
16089         * src/device/lib/_modulong.c: with assember functions
16090
16091         * src/device/lib/_modslong.c: with assember functions
16092
16093         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
16094
16095         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
16096
16097         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
16098                                       replaced _mululong.c and _mulslong.c by _mullong.c
16099
16100 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16101
16102         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
16103
16104 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
16105
16106         * src/SDCCglue.c: test, if win32api is available for MINGW
16107
16108 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
16109
16110         * src/SDCCsymt.c: no more _modifier in printTypeChain()
16111         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
16112         * support/regression/ports/gbz80/spec.mk: removed GENERIC
16113         * support/regression/ports/host/spec.mk: removed GENERIC
16114         * support/regression/ports/mcs51/spec.mk: removed GENERIC
16115         * support/regression/ports/z80/spec.mk: removed GENERIC
16116
16117 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
16118
16119         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
16120
16121         * support/regression/tests/bug-467035.c: Created.
16122
16123 2001-10-01    <johan AT FRIJA>
16124
16125         * src/SDCC.y: fixed bug #466586 part 1
16126
16127 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
16128
16129         * SDCCicode.c: z80 has no generic pointers
16130         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
16131
16132 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
16133
16134         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
16135
16136 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
16137
16138         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
16139
16140         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
16141
16142 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
16143
16144         * configure.in: Fixed up so that ucsim is only configured once.
16145
16146         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
16147
16148         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
16149         (getPathDifference): As above.
16150
16151         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
16152
16153         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
16154
16155 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
16156         * .version: Updated to 2.3.1
16157
16158         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
16159         Added copyright header.
16160
16161         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
16162         (assemble): Added support for macro based assembler commands.
16163         (linkEdit): Added support for macro based linker commands.
16164         (preProcess): Changed the pre-processor to use macros.
16165         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
16166         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
16167
16168         * device/lib/z80/crt0.s: Added module name for debugging.
16169
16170 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
16171
16172         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
16173
16174         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
16175
16176         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
16177
16178         * src/Makefile.in: Added SDCCmacro and SDCCutil
16179
16180 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
16181
16182         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
16183
16184 2001-09-16    <johan AT FRIJA>
16185
16186         * 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.
16187
16188 2001-09-15    <johan AT FRIJA>
16189
16190         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
16191         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
16192
16193 2001-09-11    <johan AT FRIJA>
16194
16195         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
16196
16197 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
16198
16199         * support/regression/tests/bug-460444.c: Added test case.
16200
16201         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
16202         (genCast): Added justification for all of the asserts.
16203
16204 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
16205
16206         * support/regression/support.c: _xdata replaced by xdata
16207
16208         * support/regression/spec.mk: removed _generic
16209
16210 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
16211
16212         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
16213
16214         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
16215         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
16216
16217         * src/z80/peeph.def: Added a rule to optimise shift then compare.
16218
16219         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
16220
16221         * support/regression/tests/bug-460010.c: Added test case.
16222
16223         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
16224
16225 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
16226
16227         * support/regression/Makefile: inter-port-clean adjusted for mcs51
16228
16229         * support/regression/testfwk.c: removed workaround for bug #436344
16230
16231         * support/regression/tests/bp.c: use less memory with mcs51
16232
16233         * support/regression/tests/bug-441448.c: use less memory
16234
16235         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
16236
16237         * support/regression/collate-results.py: typo
16238
16239 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
16240
16241         * support/regression/tests/fetchoverlap.c: Added new test case.
16242
16243         * support/regression/tests/bp.c: Added new test case.
16244
16245         * support/regression/tests/bug-448984.c: Added new test case.
16246
16247         * support/regression/tests/pow2shifts.c: Added new test case.
16248
16249         * src/z80/gen.c: Turned off the noise it normally generates for the release.
16250         (genlshTwo): Fixed right shift for count > 8.
16251
16252         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
16253
16254 2001-09-08    <johan AT FRIJA>
16255
16256         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
16257
16258 2001-09-07    <johan AT FRIJA>
16259
16260         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
16261
16262         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
16263
16264 2001-09-06    <johan AT FRIJA>
16265
16266         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
16267         * bernhard noted me at this: "() equals to (void)" (1.38)
16268
16269 2001-09-05    <johan AT FRIJA>
16270
16271         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
16272
16273 2001-09-04    <johan AT FRIJA>
16274
16275         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
16276
16277
16278 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
16279
16280         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
16281
16282 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
16283
16284         * link/z80/aslink.h: Fixed path for PATH_MAX
16285
16286 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
16287
16288         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
16289
16290         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
16291
16292         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
16293
16294         * 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.
16295
16296 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
16297
16298         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
16299         (genCmp): Fixed up genCmp for the GB with longs.
16300
16301         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
16302
16303         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
16304
16305         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
16306
16307         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
16308
16309 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
16310
16311         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
16312
16313 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
16314
16315         * 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.
16316
16317         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
16318
16319 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
16320
16321         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
16322
16323         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
16324
16325 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
16326
16327   * sim/ucsim/configure:    little improvement of Cygwin-detection
16328   * sim/ucsim/configure.in: little improvement of Cygwin-detection
16329   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
16330   * support/regression/tests/bug-221100.c: small changes for mcs51
16331   * support/regression/tests/bug-221168.c: small changes for mcs51
16332   * support/regression/tests/bug-227710.c: small changes for mcs51
16333   * support/regression/tests/staticinit.c: small changes for mcs51
16334   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
16335   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
16336   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
16337
16338 $Revision$