* as/hc08/clean.mk,
[fw/sdcc] / ChangeLog
1 2008-05-16 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * src/SDCC.lex (check_type),
4         * src/SDCC.y (type_specifier2 TYPE_NAME): fixed bug 1925942
5         * as/hc08/clean.mk,
6         * as/mcs51/clean.mk,
7         * as/z80/clean.mk: also clean *.dep
8         * device/lib/pic16/libsdcc/stack/Makefile,
9         * sim/ucsim/libtool: removed as they are rebuild by configure
10         * src/clean.mk: removed izt, so Makefile is not deleted for distclean
11
12 2008-05-13 Maarten Brock <sourceforge.brock AT dse.nl>
13
14         * src/SDCCast.c (fixupInline, createFunction): save currBlockno in
15           fixupInline instead of createFunction to fix bug 1864577
16           (inlineFindMaxBlockno): removed, use global blockNo
17         * src/SDCCglobl.h: added blockNo
18         * src/z80/peep.c,
19         * src/z80/peep.h: modified properties
20         * support/regression/tests/bug1864577.c: new, added
21
22 2008-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
23
24         * as/mcs51/asdata.c,
25         * as/mcs51/asm.h: added org_cnt
26         * as/mcs51/asmain.c (main, asmbl): fixed bug 1957716, changed old K&R to ANSI
27         * as/mcs51/asout.c: changed old K&R to ANSI
28         * as/mcs51/Makefile.in: use common identifiers
29         * as/hc08/asdata.c,
30         * as/hc08/asexpr.c,
31         * as/hc08/asm.h,
32         * as/hc08/asmain.c,
33         * as/hc08/asout.c,
34         * as/hc08/Makefile.bcc,
35         * as/hc08/Makefile.in: synchronized with as/mcs51/*
36         * sdcc_vc_in.h: added define __func__
37         * src/SDCCast.c (expandInlineFuncs): applied patch 1957148 to fix bug 1717305,
38           Thanks Ruud van Silfhout
39         * support/regression/tests/bug1717305.c: new, added
40
41 2008-05-05 Borut Razem <borut.razem AT siol.net>
42
43         * support/regression/Makefile.in,
44           support/regression/fwk/lib/testfwk.c,
45           support/regression/ports/ds390/spec.mk,
46           support/regression/ports/hc08/spec.mk,
47           support/regression/ports/mcs51-common/spec.mk,
48           support/regression/ports/pic14/spec.mk,
49           support/regression/ports/pic16/spec.mk,
50           support/regression/ports/ucz80/spec.mk,
51           support/regression/ports/z80/spec.mk:
52           added INC_DIR and LIBDIR paths
53         * src/ds390/gen.c: removed duplicated selicolon
54
55 2008-05-04 Borut Razem <borut.razem AT siol.net>
56
57         * support/regression/Makefile.in,
58           support/regression/fwk/lib/testfwk.c,
59           support/regression/ports/ds390/spec.mk,
60           support/regression/ports/hc08/spec.mk,
61           support/regression/ports/mcs51-common/spec.mk,
62           support/regression/ports/mcs51-large/spec.mk,
63           support/regression/ports/mcs51-medium/spec.mk,
64           support/regression/ports/mcs51-small/spec.mk,
65           support/regression/ports/mcs51-stack-auto/spec.mk,
66           support/regression/ports/mcs51-xstack-auto/spec.mk,
67           support/regression/ports/pic14/spec.mk,
68           support/regression/ports/pic16/spec.mk,
69           support/regression/ports/ucz80/spec.mk:
70           added possibility to define the sdcc binary directory SDCC_BIN_PATH
71           used to run regeression tests
72
73 2008-05-01 Raphael Neider <rneider AT web.de>
74
75         * doc/sdccman.lyx, support/scripts/inc2h-pic16.pl: updated list of
76           supported devices and instructions to add new ones
77
78 2008-05-01 Raphael Neider <rneider AT web.de>
79
80         * device/include/pic16/adc.h,
81           device/lib/pic16/libio/adc/adcbusy.c,
82           device/lib/pic16/libio/adc/adcopen.c,
83           device/lib/pic16/libio/adc/adcsetch.c: support old 18f242 and new
84           18f2455 style ADC devices, based on patch #1776197
85         * device/lib/pic16/libio/adc/adcclose.c,
86           device/lib/pic16/libio/adc/adcconv.c,
87           device/lib/pic16/libio/adc/adcread.c: cosmetic changes
88         * device/include/pic16/{pic18f2331.h,pic18f2431.h},
89           device/lib/pic16/libdev/{pic18f2331.c,pic18f2431.c}: reuse 18f4331
90         * device/include/pic16/pic18f4431.h,
91           device/lib/pic16/libdev/pic18f4431.c: remove outdated comments
92         * device/lib/pic16/libio/adc.ignore: forbid unhandled devices
93
94 2008-05-01 Raphael Neider <rneider AT web.de>
95
96         * src/pic16/device.h: removed unused field PIC16_device.sfrRange,
97           moved xinst flag into pic16_options_t
98         * src/pic16/device.c (default_device, pic16_list_devices,
99           pic16_find_device): removed references to sfrrange
100         * src/pic16/gen.c (genFunction),
101           src/pic16/glue.c (pic16initialComments),
102           src/pic16/main.c (pic16_optionsTable),
103           src/pic16/ralloc.c (newReg, pic16_writeUsedRegs): updated references
104           to xinst
105         * device/include/pic16/pic16devices.txt: removed sfrrange lines
106
107 2008-04-29 Raphael Neider <rneider AT web.de>
108
109         * src/pic16/devices.inc,
110           device/include/pic16/pic16devices.txt: replaced compiled-in list
111           of devices with a variant parsed at runtime
112         * src/pic16/device.c: added support for parsing pic16devices.txt,
113           clean up
114         * src/pic16/device.h: removed (now) unused fields from PIC_device
115         * src/pic16/main.c: removed #pragma maxram,
116           (_pic16_initPaths): removed bogus generation of search paths,
117           setup the port proper only after the search paths (for
118           pic16devices.txt) are set up,
119           (_pic16_finaliseOptions): moved processor dependant code here
120           from _pic16_initPaths(), clean up
121         * src/pic16/ralloc.c (pic16_init_stack),
122         * src/pic16/ralloc.h,
123         * src/pic16/pcode.c: clean up
124         * device/include/Makefile.in,
125           support/scripts/sdcc.nsi: also install/package pic16devices.txt
126         * support/scripts/inc2h-pic16.pl: updated instructions
127
128 2008-04-29 Raphael Neider <rneider AT web.de>
129
130         * device/include/pic16/{pic18f2480.h, pic18f2580.h, pic18f4423.h,
131           pic18f4480.h, pic18f4523.h, pic18f4580.h, pic18f6585.h, pic18f8585.h},
132           device/lib/pic16/libdev/{pic18f2480.c, pic18f2580.c, pic18f4423.c,
133           pic18f4480.c, pic18f4523.c, pic18f4580.c, pic18f6585.c, pic18f8585.c}:
134           added missing family members and 18f2480/2580/4480/4580 family
135         * device/include/pic16/{pic18f2423.h, pic18f2523.h}: use 18f4523.h
136         * device/include/pic16/pic18f2525.h: use 18f4620.h
137         * device/include/pic16/pic18f6680.h: use 18f8680.h
138         * device/include/pic16/pic18fregs.h,
139           device/lib/pic16/pics.all,
140           src/pic16/devices.inc: add new devices
141         * device/lib/pic16/libdev/{pic18f2423.c, pic18f2523.c}: use 18f4523.c
142         * device/lib/pic16/libdev/pic18f2525.c: use 18f4620.c
143         * device/lib/pic16/libdev/pic18f6680.c: uso 18f8680.c
144         * device/lib/pic16/libio/{adc.ignore, i2c.ignore, usart.ignore}:
145           prevent attempting to build the libio for some new devices
146
147 2008-04-29 Raphael Neider <rneider AT web.de>
148
149         * debugger/mcs51/Makefile.in: fixed paths to sources
150
151 2008-04-25 Borut Razem <borut.razem AT siol.net>
152
153         * as/link/lklibr.c: moved from as/link/z80/lklibr.c
154         * as/link/hc08/lklibr.c, as/link/mcs51/lklibr.c: deleted
155         * as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
156         * as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
157           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
158           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
159           as/link/z80/linkz80.dsp: lklibr.c moved
160         * doc/INSTALL.txt: binary archives in bz2 format
161         * support/cpp/auto-host_vc_in.h: CPP2 replaced with CPP
162
163 2008-04-23 Maarten Brock <sourceforge.brock AT dse.nl>
164
165         * src/SDCCglue.c (printIvalType, printIvalBitFields): fixed bug 1856409
166         * support/regression/tests/bug1856409.c: new, added
167
168 2008-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
169
170         * src/z80/peep.c,
171         * src/mcs51/peep.c: Use werror for error messages.
172         * src/SDCCicode.c (geniCodeConditional),
173         * src/SDCCsymt.c (structElemType): fixed bug 1839321
174         * src/z80/Makefile.bcc,
175         * src/z80/z80.dsp: added src/z80/peep.c/h
176         * support/regression/tests/bug1839321.c: new, added
177
178 2008-04-20 Raphael Neider <rneider AT web.de>
179
180         * device/include/pic16/pic18f2455.h: added bitfields for port C
181
182 2008-04-20 Philipp Klaus Krause <pkk AT spth.de>
183
184         * src/z80/peep.c: Use werror for error messages.
185
186 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
187
188         * src/z80/peep.h (declaration of notUsed()),
189         * src/z80/main.c (enabled notUsed() for z80 port, documented z80_port
190           struct),
191         * src/z80/z80.h (added dependency on peep.h),
192         * src/z80/peep.c (definition of notUsed()): Implemented RFE #1880202
193           for Z80.
194
195 2008-04-19 Philipp Klaus Krause <pkk AT spth.de>
196
197         * src/SDCCpeeph.c (added support for notUsed()),
198         * src/mcs51/main.c (added dependency on peep.h, documented mcs51_port
199           struct),
200         * src/port.h (removed dependency on mcs51/peep.h, added declaration
201           for notUsed()): Implemented generic (that is not port-specific) part
202           of RFE #1880202.
203
204 2008-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
205
206         * as/link/mcs51/lkmem.c (summary2): fixed bug 1796077
207         * device/lib/libsdcc.lib,
208         * device/lib/Makefile.in,
209         * support/regression/ports/mcs51-xstack-auto/spec.mk,
210         * device/lib/calloc.c: renamed to _calloc.c
211         * device/lib/free.c: renamed to _free.c
212         * device/lib/malloc.c: renamed to _malloc.c
213         * device/lib/realloc.c: renamed to _realloc.c
214         * src/ds390/gen.c (aopGet, aopPut, genPlusBits, genDataPointerSet,
215           genNearPointerSet, genPagedPointerSet): synchronized with mcs51/gen.c
216         * src/ds390/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq, ifxForOp,
217           genAnd, genOr, genXor, genIfx, gen390Code): fixed bug 1509084
218         * src/mcs51/gen.c (popForBranch, genIfxJump, genCmp, genCmpEq,
219           ifxForOp, genAnd, genOr, genXor, genNearPointerGet,
220           genPagedPointerGet, genFarPointerGet, genCodePointerGet,
221           genGenPointerGet, genIfx, gen51Code): fixed bug 1509084
222         * src/ds390/gen.c,
223         * src/mcs51/gen.c: throughout cosmetic changes for syncing both
224         * src/SDCCsymt.h: updated IS_OP_RUONLY, IS_OP_ACCUSE
225         * support/regression/tests/bug1509084.c: new, added
226
227 2008-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
228
229         * device/include/mcs51/cc2510fx.h: added _XPAGE
230         * device/include/mcs51/compiler.h: cosmetic changes
231
232 2008-03-31 Maarten Brock <sourceforge.brock AT dse.nl>
233
234         * sdcc.dsw: adapted for moved cpp2, added dependency for as_z80 on
235           config
236
237 2008-03-31 Borut Razem <borut.razem AT siol.net>
238
239         * support/cpp2 renamed to support/cpp
240         * support/cpp2/libiberty/filenames.h, support/cpp2/libiberty/hex.c,
241           support/cpp2/libiberty/splay-tree.c,
242           support/cpp2/libiberty/splay-tree.h, support/cpp2/libcpp/macro.c,
243           support/cpp2/libcpp/directives.c,
244           support/cpp2/libcpp/include/cpplib.h,
245           support/cpp2/libcpp/include/symtab.h,
246           support/cpp2/libcpp/include/line-map.h,
247           support/cpp2/libcpp/line-map.c, support/cpp2/libcpp/files.c,
248           support/cpp2/libcpp/init.c, support/cpp2/libcpp/traditional.c,
249           support/cpp2/libcpp/expr.c, support/cpp2/libcpp/internal.h,
250           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/system.h,
251           support/cpp2/libcpp/charset.c: SDCPP synchronized with GCC CPP
252           release version 4.3.0
253         * configure.in, configure, Makefile.in, Makefile.bcc:
254           adapted for moved cpp2
255
256 2008-03-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
257
258         * device/include/hc08/mc68hc908jkjl.h: committed fix for bug #1929739,
259           thanks Alejandro Pustowka <alejo_pustowka AT yahoo.com.mx>
260
261 2008-03-30 Maarten Brock <sourceforge.brock AT dse.nl>
262
263         * src/SDCCloop.c (loopInvariants): applied fix for bug 1717943, thanks
264           Robert Larice
265         * support/regression/tests/bug1717943.c: new, added
266
267 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
268
269         * src/z80/gen.c (assignResultValue): Reverted reversal of order of
270           bytewise return value assignments introduced in last commit.
271
272 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
273
274         * src/z80/gen.c (emitDebug, assignResultValue, genPlus, genMinus,
275           genMult, genJumpTab):
276           Use 16-bit instructions for addition in some additional cases,
277           implemented RFEs #1914251, #1914245, #1922090, #1921382, #1918323.
278
279 2008-03-30 Philipp Klaus Krause <pkk AT spth.de>
280
281         * src/z80/ralloc.c (serialRegAssign, allocReg, tryAllocatingRegPair):
282           Implemented RFE #1921450, changed some debug messages.
283
284 2008-03-30 Borut Razem <borut.razem AT siol.net>
285
286         * Small Device C Compiler 2.8.0 released
287         * .version, doc/sdccman.lyx: changed sdcc version to 2.8.1
288         * support/scripts/sdcc.nsi: added finish page; this version
289           was used for 2.8.0 release
290         * doc/knownbugs.html: removed; magically generated by the build
291           process using gen_known_bugs.pl from now on
292
293 2008-03-23 Borut Razem <borut.razem AT siol.net>
294
295         * src/pic/gen.h: Q&D solution for the bug, found by Jim Paris
296           and reverted it, since it was already fixed by Raphael ;-)
297         * doc/knownbugs.html: updated for RC2
298
299 2008-03-22 Raphael Neider <rneider AT web.de>
300
301         * src/SDCCicode.c (getPtrType): avoid unnecessary extra assignments
302           for PIC16 targets
303
304 2008-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
305
306         * src/mcs51/gen.c (adjustArithmeticResult): fixed bug 1839299
307         * support/regression/tests/bug1839277.c: added related testBug1839299
308
309 2008-03-21 Maarten Brock <sourceforge.brock AT dse.nl>
310
311         * src/ds390/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign),
312         * src/mcs51/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign):
313           fixed bug 1839277
314         * src/mcs51/gen.c: throughout only output hex constants
315         * src/SDCCicode.c (getPtrType, geniCodeCast): fixed code size regression
316         * support/regression/tests/bug1839277.c: new, added
317
318 2008-03-21 Philipp Klaus Krause <pkk AT spth.de>
319
320         * src/z80/ralloc.c (callFuncByName): Used // instead of /**/ to fix
321           compilation warning about nested comments.
322
323 2008-03-20 Maarten Brock <sourceforge.brock AT dse.nl>
324
325         * src/SDCCsymt.c (comparePtrType): fixed bug 1921073
326         * support/regression/tests/bug1921073.c: new, added
327
328 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
329
330         * src/z80/SDCCpeeph.c.c (callFuncByName):
331           Commented function parameters.
332
333 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
334
335         * src/z80/ralloc.c (packRegsForAccUse2):
336           disabled a broken accumulator packing optimization (fixed #1292721).
337         * support/regression/tests/bug-1292721: Regression test for #1292721.
338
339 2008-03-16 Raphael Neider <rneider AT web.de>
340
341         * src/pic/gen.c (SetIrp,genNearPointerGet,genNearPointerSet):
342           fixed code bloat regression using a variant of patch #1915618
343
344 2008-03-16 Borut Razem <borut.razem AT siol.net>
345
346         * support/scripts/sdcc.nsi: added section debugging macros, added SDCC
347           icon, changed startup menu for release distribution, code cleaning,
348           create url files instead links in startup menu
349
350 2008-03-16 Maarten Brock <sourceforge.brock AT dse.nl>
351
352         * src/SDCCcse.c (algebraicOpts): fixed bug 1579949
353         * support/regression/tests/bug1579949.c: new, added
354
355 2008-03-14 Paul Stoffregen <paul AT pjrc.com>
356
357         * device/lib/printf_fast.c: fixed bug 1255403
358
359 2008-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
360
361         * doc/sdccman.lyx: enhanced paragraph about bankswitching for mcs51
362         * src/cdbFile.c (cdbWriteBasicSymbol): fixed bug 1909409 for locals
363
364 2008-03-14 Borut Razem <borut.razem AT siol.net>
365
366         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated link-xx and aslink
367           command line options
368         * as/link/hc08/lkmain.c: converted tabs to spaces so that the usage
369           is correctly displayed
370         * as/link/z80/lkmain.c: usage line commented out
371
372 2008-03-13 Borut Razem <borut.razem AT siol.net>
373
374         * doc/sdccman.lyx: corrected to be able to convert to PDF,
375           updated the list pf supported pic14 devices
376
377 2008-03-12 Maarten Brock <sourceforge.brock AT dse.nl>
378
379         * doc/sdccman.lyx: added paragraph about bankswitching for mcs51
380
381 2008-03-12 Borut Razem <borut.razem AT siol.net>
382
383         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated command line options,
384           fixed documentation request #1718191
385         * as/hc80/asmain.c, as/mcs51/asmain.c: added option -c to usage
386         * doc/sdccman.lyx: added description of --no-std-crt0 gbz80
387           command line option
388
389 2008-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
390
391         * src/SDCCast.c (isConformingBody): fixed bug 1505811, thanks Robert Larice
392         * support/regression/tests/bug1505811.c: new, added
393
394 2008-03-09 Raphael Neider <rneider AT web.de>
395
396         * device/include/pic16/pic18f2620.h,
397         * device/include/pic16/pic18f4620.h,
398         * device/lib/pic16/libdev/pic18f2620.c,
399         * device/lib/pic16/libdev/pic18f4525.c,
400         * device/lib/pic16/libdev/pic18f4620.c: merged 18f2525/2620/4525/4620
401           family to consistently use pic18f4620.[ch], fixes #1832562
402
403 2008-03-09 Borut Razem <borut.razem AT siol.net>
404
405         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
406           changed sdcc version to 2.8.0
407         * knownbugs.html: regenerated
408         * support/scripts/gen_known_bugs.pl: added number of open bugs
409
410 2008-03-09 Raphael Neider <rneider AT web.de>
411
412         * src/pic16/gen.c (pic16_mov2w_volatile): NEW, read volatile operands,
413           (genOr): read volatile operand even if the result is known,
414           closes #1511838
415           (genOr,genXor): removed unused legacy code,
416           (genDummyRead): use pic16_mov2w_volatile()
417
418 2008-03-08 Borut Razem <borut.razem AT siol.net>
419
420         * src/SDCCglue.c: fixed bug #1864582: multiple definition of char
421           cons w. --model-large
422         * support/regression/staticinit.c: added regression test for bug
423           #1864582
424
425 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
426
427         * src/ds390/gen.c (pushSide, genPcall),
428         * src/hc08/gen.c (pushSide, genPcall): synchronized with mcs51
429         * src/mcs51/gen.c: cosmetic changes
430         * support/regression/fwk/include/testfwk.h: added macro reentrant
431         * support/regression/tests/bug1908493.c: new, added
432
433 2008-03-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
434
435         * src/SDCCdebug.c:, as/link/lkaomf51.c: Fixed bug 1909409: Pdata in OMF file
436
437 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
438
439         * src/mcs51/gen.c (pushSide, genPcall): fixed bug 1908493
440         * src/SDCCmain.c (preProcess): removed -DSDCC_PARMS_IN_BANK1 because it is
441           already set in ds390/main.c and mcs51/main.c
442
443 2008-03-07 Raphael Neider <rneider AT web.de>
444
445         * src/regression/init0.c: new test for initialized arrays of function
446           pointers
447         * src/regression/Makefile: made a bit more flexible, added init0.c
448         * src/pic/glue.c (emitIvals): hacky fix for initializing from function
449           pointers, closes #1427663
450
451 2008-03-05 Borut Razem <borut.razem AT siol.net>
452
453         * dos/sdccman.lyx: docummented predefined macros SDCC_REVISION,
454           SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT
455
456 2008-03-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
457
458         * support/librarian/sdcclib.c:Added feature request 1908061:
459           Synchronise sdcclib commands with ar.
460
461 2008-03-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
462
463         * src/SDCCmain.c: added predefined macros SDCC_REVISION (RFE #1907229),
464           and (depending on corresponding compiler option) SDCC_PARMS_IN_BANK1,
465           SDCC_FLOAT_REENT, SDCC_INT_LONG_REENT
466         * device/include/mcs51/compiler.h: removed umlauts, added double
467           underscore
468
469 2008-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
470
471         * src/SDCCptropt.c (ptrPseudoSymConvert): fixed bug 1536762
472         * support/regression/tests/bug1536762.c: new, added
473         * src/SDCCutil.c,
474         * src/SDCCutil.h: added getBuildDate()
475         * src/SDCCmain.c (printVersionInfo),
476         * src/SDCCglue.c (initialComments): use getBuildDate() instead of
477           __DATE__
478         * src/*/ralloc.c: removed IS_OP_RUONLY macro
479         * src/ds390/ralloc.c (packRegisters),
480         * src/mcs51/ralloc.c (packRegisters),
481         * src/z80/ralloc.c (packRegisters): applied fix for bug 1618050, thanks
482           Robert Larice
483         * support/regression/tests/bug1618050.c: new, added
484         * src/SDCCsymt.h: fixed typo in DECLSPEC2TXT
485         * support/regression/fwk/include/testfwk.h,
486         * support/regression/tests/bug1838000.c: moved _AUTOMEM and _STATMEM to
487           testfwk.h
488
489 2008-03-04 Raphael Neider <rneider AT web.de>
490
491         * src/pic/gen.c: removed unused prototypes, prevent internal errors
492           on accessing OP_SYM_TYPE(op)
493         * src/pic/gen.h: removed unused prototype of genMinusDec()
494         * src/pic/genarith.c (genMinus): cosmetic changes, rewritten to
495           fix #1876953 (invalid subtraction code), removed unused code
496
497 2008-03-03 Raphael Neider <rneider AT web.de>
498
499         * src/pic/gen.c,
500         * src/pic/gen.h,
501         * src/pic/genarith.c,
502         * src/pic/ralloc.c,
503         * src/pic/ralloc.h: removed AOP_R0, AOP_R1, AOP_DPTR, AOP_DPTR2,
504           AOP_ACC, and *_IDX and adjusted code, removed unused legacy code
505
506 2008-03-03 Raphael Neider <rneider AT web.de>
507
508         * src/pic/device.c (find_device): search user-specified paths first
509           for pic14devices.txt, fixes #1900827
510
511 2008-03-02 Borut Razem <borut.razem AT siol.net>
512
513         * support/scripts/sdcc.nsi: fixed bug in IsNT, LogicLib-isation of
514           AddToPath and RemoveFromPath
515
516 2008-03-01 Borut Razem <borut.razem AT siol.net>
517
518         * support/scripts/sdcc.nsi: reverted MULTIUSER page since it didn't
519           work correctly, added debugging support if -DSDCC.DEBUG command line
520           option is defined
521
522 2008-02-28 Borut Razem <borut.razem AT siol.net>
523
524         * doc/sdccman.lyx: cosmetic changes
525
526 2008-02-28 Maarten Brock <sourceforge.brock AT dse.nl>
527
528         * src/mcs51/ralloc.c (fillGaps): fixed bug 1839671
529         * doc/sdccman.lyx: fixed unmeant removal of spaces
530
531 2008-02-27 Borut Razem <borut.razem AT siol.net>
532
533         * support/scripts/sdcc.nsi: corrected installation directory for
534           current user installation mode
535         * doc/README.txt: added Philipp Klaus Krause to the developers list
536
537 2008-02-27 Maarten Brock <sourceforge.brock AT dse.nl>
538
539         * src/mcs51/gen.c (genUnpackBits): don't generate ifxJump, instead
540           return ifx condition
541           (genNearPointerGet, genPagedPointerGet, genFarPointerGet,
542           genCodePointerGet, genGenPointerGet): cleanup aop before generating
543             ifxJump to fix bug 1838000
544         * src/SDCCsymt.c (aggregateToPointer): fix problem for xstack
545         * support/regression/tests/bug1838000.c: new, added
546         * device/include/mcs51/cc1110.h: new, added, thanks to Pravin Angolkar
547
548 2008-02-26 Borut Razem <borut.razem AT siol.net>
549
550         * src/SDCCast.c, doc/sdccman.lyx: fixed RFE #1901171: inerger promotion
551           of casted varargs
552         * support/scripts/sdcc.nsi: added MULTIUSER page,
553           NSIS upgraded to version 2.35
554
555 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
556
557         * src/mcs51/ralloc.c (isSpiltOnStack): fixed bug 1565152
558         * support/regression/tests/bug1565152.c: new, added
559
560 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
561
562         * src/mcs51/gen.c (genPagedPointerSet): fixed bug 1670148
563         * support/regression/ports/mcs51-xstack-auto/spec.mk: added expf.c
564         * support/regression/tests/bug1670148.c: new, added
565
566 2008-02-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
567
568         * device/include/mcs51/at89c51ed2.h: fixed bug 1901469.
569
570 2008-02-24 Borut Razem <borut.razem AT siol.net>
571
572         * src/SDCCast.c, src/SDCCast.h: fixed bug #1874922: explicit typecast
573           is ineffective for unsigned char parameter
574
575 2008-02-24 Maarten Brock <sourceforge.brock AT dse.nl>
576
577         * src/SDCCast.c (expandInlineFuncs): fixed bug 1875869
578         * src/SDCCglue.c (printIvalBitFields): fixed bug 1806631
579         * support/regression/tests/bitopcse.c: removed hc08 exception, see testfwk.h
580         * support/Util/MySystem.c (my_system): output errorcode when verbose
581
582 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
583
584         * src/z80/gen.c (genMult): Rewrote 8-bit multiplication by constant,
585           implements #1898231
586
587 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
588
589         * device/lib/z80/mul.s: Rewrote __muluchar_rrx_s, to improve 8-bit mult.,
590           implements #1896290
591
592 2008-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
593
594         * src/SDCCast.c (createIvalStruct): fixed bug 1466761
595
596 2008-02-21 Borut Razem <borut.razem AT siol.net>
597
598         * support/regression/Makefile.in,
599           support/regression/ports/ds390/spec.mk,
600           support/regression/ports/hc08/spec.mk,
601           support/regression/ports/mcs51-common/spec.mk,
602           support/regression/ports/pic14/spec.mk,
603           support/regression/ports/pic16/spec.mk,
604           support/regression/ports/ucz80/spec.mk,
605           support/regression/ports/xa51/spec.mk:
606           added CFLAGS when compiling timeout
607
608 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
609
610         * support/regression/tests/bugs-1596270-1736867.c: Regression test for
611           #1596270, #1736867
612
613 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
614
615         * src/SDCClrange.c (findPrevUse): fixed bug 1888147
616         * support/regression/tests/bug1888147.c: new, added
617
618 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
619
620         * src/z80/gen.c: fixed bugs #1596270, #1736867
621
622 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
623
624         * src/z80/gen.c: fixed bug in register pair loading when swapping register
625           contents, mostly fixes #1596270
626
627 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
628
629         * src/z80/peeph.def,
630         * src/z80/peeph-z80.def: moved peephole that breaks gbz80 to z80-specific
631           peepholes, fixes #1806565
632
633 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
634
635         * src/SDCCpeeph.c (operandBaseName): added check for @Ri
636         * src/mcs51/peeph.def (rule 177.c): added operandsNotRelated(%1 %3)
637           fixes bug 1739475, thanks Robert Larice
638           (rule 271): new, added
639
640 2008-02-18 Borut Razem <borut.razem AT siol.net>
641
642         * sim/ucsim/s51.src/Makefile.in: fixed error made in previous commit
643
644 2008-02-17 Maarten Brock <sourceforge.brock AT dse.nl>
645
646         * src/SDCCmain.c (linkEdit): emit -z when using --debug for z80
647
648 2008-02-17 Raphael Neider <rneider AT web.de>
649
650         * src/pic16/genarith.c,
651         * src/pic16/gen.c,
652         * src/pic16/gen.h,
653         * src/pic16/genutils.c: removed unused legacy code,
654           removed unused fields from struct asmop and struct _G
655
656 2008-02-17 Raphael Neider <rneider AT web.de>
657
658         * src/pic16/gen.c (AccRsh): cosmetic changes,
659           (shiftR1Left2ResultSigned,shiftR1Left2Result,shiftL1Left2Result,
660           genRightShiftLiteral): fixed to work with SFRs as result by
661           assigning only once to result,
662           removed a lot of unused/excluded code fragments
663
664 2008-02-17 Raphael Neider <rneider AT web.de>
665
666         * device/include/pic/pic16f88.h,
667         * device/include/pic/pic16f886.h,
668         * device/include/pic/pic16f887.h: added TRISA6 and TRISA7
669
670 2008-02-17 Borut Razem <borut.razem AT siol.net>
671
672         * src/z80/peeph.def: applied patch
673           #1893626: Optimize tail calls on Z80, thanks to Philipp Krause
674         * src/z80/gen.c, src/z80/peeph.def: applied patch
675           #1893510: Improve logical left shift on Z80, thanks to Philipp Krause
676         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
677           sim/ucsim/s51.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
678           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
679           sim/ucsim/main_in.mk: renamed libutil.a to libucsimutil.a in order to
680           enable compilation on Mac OS X 10.5 (Leopard) and XCode v3.0
681
682 2008-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
683
684         * as/link/mcs51/aslink.dsp: removed SDK define
685         * as/link/z80/clean.mk: brought in sync with other ports
686         * as/link/z80/lklibr.c (SdccLib, fndsym): handle the dflag here too
687         * as/hc08/Makefile.bcc,
688         * as/mcs51/Makefile.bcc,
689         * as/z80/Makefile.bcc: noice.c was moved to as/asxxsrc/
690         * src/z80/main.c (_setValues): use the now capitalized -Z,
691           (z80_port, gbz80_port): generate debug information when asked
692
693 2008-02-16 Borut Razem <borut.razem AT siol.net>
694
695         * as/z80/asmain.c, as/z80/asm.h, as/z80/asdata.c,
696           as/link/z80/lkmain.c, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
697           as/z80/Makefile.in. as/z80/Makefile.bcc:
698           applied patch #1893393: patch for as-z80 and link-z80 to generate
699           cdb, thanks to Armin Diehl
700         * as/*/asnoice.c, as/hc08/as_hc08.dsp, as/hc08/Makefile.in,
701           as/mcs51/asx8051.dsp, as/mcs51/Makefile.in:
702           asnoice.c moved to as/asxxsrc/asnoice.c
703         * src/z80/peeph-gbz80.def: applied patch
704           #1880235: Z80 return peephole, thanks to Philipp Krause
705
706 2008-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
707
708         * .version,
709         * doc/sdccman.lyx: bumped version to 2.7.5
710         * src/SDCCsymt.c (compareType, comparePtrType): fixed bug 1281583
711
712 2008-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
713
714         * device/include/pic16/stdlib.h,
715         * device/lib/pic16/libc/stdlib/ltoa.c,
716         * device/lib/pic16/libc/stdio/vfprintf.c: ascii strings are char*
717
718 2008-02-13 Borut Razem <borut.razem AT siol.net>
719
720         * src/SDCCmain.c, src/SDCCglue.c: fixed --c1mode
721         * src/pic16/glue.c, src/SDCCast.c, src/SDCCast.h, src/SDCCBBlock.c,
722           src/SDCCcse.c, src/SDCCglue.c, src/SDCCicode.c, src/SDCCloop.c,
723           src/SDCCopt.c,  src/SDCCval.c:
724           fixed bug #1890273: SDCC Warning 154 shows wrong filename
725
726 2008-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
727
728         * src/SDCCsymt.c (compareType): fixed bug 1309013
729
730 2008-02-09 Borut Razem <borut.razem AT siol.net>
731
732         * src/SDCCval.c, src/SDCCval.h:
733           code cleaning, added function constChrVal()
734         * src/SDCCglue.c, src/pic/glue.c, src/pic16/glue.c, src/SDCCast.c, src/SDCC.y:
735           call constChrVal() instead constVal()
736
737 2008-02-01 Maarten Brock <sourceforge.brock AT dse.nl>
738
739         * src/SDCCast.c (resolveSymbols): added reentrancy check for parameters
740           of function pointer
741         * src/SDCCerr.h,
742         * src/SDCCerr.c: changed warning W_NONRENT_ARGS to error E_NONRENT_ARGS
743         * support/regression/tests/absolute.c: added TestStruct TestVar (see also
744           bug 1859853)
745
746 2008-02-01 Raphael Neider <rneider AT web.de>
747
748         * device/include/pic/pic16f886.h,
749         * device/include/pic/pic16f887.h: added RA6 and RA7
750
751 2008-01-24 Raphael Neider <rneider AT web.de>
752
753         * device/include/pic/pic16f88.h: added RA6 and RA7
754         * device/lib/pic/libdev/disabled_pic16f886.c,
755         * device/lib/pic/libdev/disabled_pic16f887.c: renamed and enabled
756
757         * src/pic16/devices.inc,
758         * device/include/pic16/pic18f2423.h,
759         * device/include/pic16/pic18f2523.h,
760         * device/include/pic16/pic18fregs.h,
761         * device/lib/pic16/pics.all
762         * device/lib/pic16/libdev/pic18f2423.c,
763         * device/lib/pic16/libdev/pic18f2523.c: added 18f2423 and 18f2523
764         * device/lib/pic16/libio/i2c.ignore,
765         * device/lib/pic16/libio/usart.ignore,
766         * device/lib/pic16/libio/adc.ignore: ignore new devices
767
768 2008-01-23 Maarten Brock <sourceforge.brock AT dse.nl>
769
770         * src/SDCCast.c (createRMW): fixed bug 1582651
771
772 2008-01-20 Borut Razem <borut.razem AT siol.net>
773
774         * src/SDCCcse.c: partially fixed enhancement request
775           #1793872 - multiply by -1 not collapsed
776         * support/regression/tests/arithcsi.c: added regression test
777
778 2008-01-19 Maarten Brock <sourceforge.brock AT dse.nl>
779
780         * as/mcs51/asx8051.dsp: removed define SDK
781         * as/mcs51/i51mch.c (machine): fixed bug 1865114
782         * device/include/asm/ds390/features.h: fixed bug with ds390 & stack-auto
783         * as/link/lklex.c,
784         * as/link/mcs51/lkmain.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
785           cosmetic changes, brought more in sync, changed old K&R to ANSI
786
787 2008-01-13 Borut Razem <borut.razem AT siol.net>
788
789         * support/scripts/sdcc.nsi: added Uninstall/reinstall page, ...
790         * src/SDCCicode.c: fixed bug #1870216 - Error 122: dividing by zero
791
792 2007-12-30 Borut Razem <borut.razem AT siol.net>
793
794         * src/pic16/gen.c: fixed implementation of bitwise operations for
795           pic16 target
796         * support/regression/tests/bitwise.c: added test cases
797
798 2007-12-29 Borut Razem <borut.razem AT siol.net>
799
800         * src/SDCCasm.[ch]: renamed from asm[ch], use dbuf_getline(), ...
801         * src/src.dsp, src/Makefile.bcc, src/Makefile.in, src/common.h,
802           src/SDCCglue.c, src/xa51/main.c: asm.[ch] renamed to SDCCasm.[ch]
803         * support/Util/dbuf_string.[ch]: added function dbuf_getline()
804         * src/ds390/gen.c, src/hc08/gen.c, src/mcs51/gen.c, src/pic16/gen.c,
805           src/pic/gen.c, src/z80/gen.c, src/xa51/gen.c, src/pic16/ralloc.c,
806           src/pic16/pcode.[ch]: added const qualifier
807         * as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
808           as/mcs51/Makefile.bcc, as/mcs51/Makefile.in, as/mcs51/asx8051.dsp,
809           as/z80/Makefile.bcc, as/z80/Makefile.in, as/z80/as_gbz80.dsp,
810           as/z80/as_z80.dsp: added dbuf.[ch] and dbuf_string[ch] to project
811         * as/asxxsrc/aslex.c: use dbuf_getline()
812         * as/hc08/asdata.c, as/hc08/asexpr.c, as/hc08/asm.h, as/hc08/m08adr.c,
813           as/mcs51/asdata.c, as/mcs51/asexpr.c, as/mcs51/asm.h,
814           as/mcs51/i51adr.c, as/z80/asdata.c, as/z80/asexpr.c, as/z80/aslist.c,
815           as/z80/asm.h, as/z80/z80adr.c:
816           changed type of ib and ip to const char *
817
818 2007-12-28 Borut Razem <borut.razem AT siol.net>
819
820         * as/asxxsrc/aslex.c: moved from as/mcs51/aslex.c;
821           introduced (readlin) - long lines are turuncated
822         * as/hc08/as_hc08.dsp, as/mcs51/asx8051.dsp, as/z80/as_gbz80.dsp,
823           as/z80/as_z80.dsp, as/hc08/Makefile.in, as/mcs51/Makefile.in,
824           as/z80/Makefile.in: moved aslex.c to asxxsrc
825         * as/hc08/aslex.c, as/z80/aslex.c: deleted
826         * as/hc08/asmain.c, as/mcs51/asmain.c:
827           added missing initialization of a_addr field
828         * support/regression/tests/long_asm_line.c: added regtest for long
829           assembler line
830
831 2007-12-22 Borut Razem <borut.razem AT siol.net>
832
833         * src/SDCC.lex: fixed bug #1852894: # character hangs the compiler
834
835 2007-12-20 Maarten Brock <sourceforge.brock AT dse.nl>
836
837         * src/SDCCsymt.c (computeType): fixed bug, thanks Fan Weiguang
838
839 2007-12-16 Borut Razem <borut.razem AT siol.net>
840
841         * device/include/pic16/stdbool.h: removed, since already exists in
842          device/include/; this also fixes bitopcse.c regression test for pic16
843          target
844         * support/regression/fwk/inclusw/testfwk.h: added macro ASSERT_FAILED
845         * src/pic16/glue.c: fixed bug #1851855: generic static pointer
846           dereference doesn't work; covered by regression test bug1399290
847
848 2007-12-05 Borut Razem <borut.razem AT siol.net>
849
850         * doc/sdccman.lyx: fixed bug #1844509 - Correction to Manual 4.6.9
851           Adding new PIC16
852
853 2007-12-01 Borut Razem <borut.razem AT siol.net>
854
855         * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc:
856           corrected handling of the highest_valid_address
857
858 2007-11-17 Raphael Neider <rneider AT web.de>
859
860         * src/pic/main.c (_asmCmd): include debug arguments (-g as $3)
861         * src/pic/glue.c (picglue): emit .file if --debug is given
862
863 2007-11-17 Raphael Neider <rneider AT web.de>
864
865         * src/pic16/genarith.c (pic16_genPlus, pic16_genMinus): take special
866         care when left or right operand resides in result, fixes #1830220
867
868 2007-11-17 Borut Razem <borut.razem AT siol.net>
869
870         * src/SDCCglue.c, src/pic16/glue.c: reverted fix for bug
871           #983491 - "Merge duplicate strings function is ineffective"
872         * support/regression/tests/bug-983491.c: regtest disabled
873         * as/asxxsrc: created
874           as/asxxsrc/assym.c, as/asxxsrc/strcmpi.c: moved
875           as/hc08/assym.c, as/mcs51/assym.c, as/strcmpi.c,
876           as/z80/assym.c, as/hc08/asstore.c, as/mcs51/asstore.c: deleted
877           as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
878           as/hc08/asm.h, as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
879           as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
880           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
881           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
882           as/link/z80/linkz80.dsp, as/mcs51/Makefile.bcc, as/mcs51/Makefile.in,
883           as/mcs51/asm.h, as/mcs51/asx8051.dsp, as/z80/Makefile.bcc,
884           as/z80/Makefile.in, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
885           as/z80/Makefile.as_hc08, as/mcs51/Makefile.asx8051: modified
886           created as/asxxsrc directory, assym.c and strcpi.c moved into it
887
888 2007-11-15 Maarten Brock <sourceforge.brock AT dse.nl>
889
890         * device/include/stdarg.h: added and removed some casts
891         * src/SDCCsymt.c (compareType): Fully check types between generic and
892           non-generic pointers, also accept ptr-ptr to void-ptr assignments
893
894 2007-11-13 Borut Razem <borut.razem AT siol.net>
895
896         * support/regression/tests/bug-1817005.c:
897           added regtest for bug #1817005 - as-z80 chokes on long labels
898
899 2007-11-12 Borut Razem <borut.razem AT siol.net>
900
901         * as\z80\asmain.c, as\z80\asm.h, as\z80\assym.c, as\z80\asdata.c,
902           as\z80\asout.c, as\z80\aslist.c:
903           fixed bug #1817005 - as-z80 chokes on long labels
904
905 2007-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
906
907         * as/hc08/asmain.c,
908         * as/z80/asmain.c: cosmetic changes
909         * as/hc08/alloc.h,
910         * as/mcs51/alloc.h,
911         * as/z80/alloc.h: removed
912         * as/hc08/assym.c,
913         * as/mcs51/assym.c: replaced alloc.h with stdlib.h
914         * as/link/aslink.h: added LKDIRSEP and, LKDIRSEPSTR
915         * as/link/hc08/Makefile.in,
916         * as/link/mcs51/Makefile.in,
917         * as/link/z80/Makefile.in: added -DUNIX to CFLAGS
918         * as/link/lklex.c,
919         * as/link/mcs51/lkarea.c,
920         * as/link/mcs51/lkmain.c: cosmetic changes
921         * as/link/hc08/lklibr.c,
922         * as/link/z80/lklibr.c,
923         * as/link/mcs51/lklibr.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
924           used cygwin_conv_to_full_posix_path,
925           added warnings, cosmetic changes, brought more in sync
926           changed old K&R into ANSI function declarations
927         * as/link/z80/lklibr.c (loadAdb): added
928         * as/link/z80/lkmain.c: removed -- option from usage text
929
930 2007-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
931
932         * src/mcs51/gen.c (outBitC): optimized for no result
933
934 2007-10-31 Borut Razem <borut.razem AT siol.net>
935
936         * src/SDCCsymt.c: fixed (hopeful properly) bug
937           #1805702 - order of extern matters
938         * support/regression/tests/bug-1805702.c: enabled regtest for bug
939           #1805702
940
941 2007-10-29 Borut Razem <borut.razem AT siol.net>
942
943         * src/SDCCsymt.c: reverted bad fixed of bug #1805702
944           - order of extern matters
945         * support/regression/tests/bug-1805702.c: disabled regtest for bug
946           #1805702
947
948 2007-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
949
950         * src/ds390/peeph.def: replaced 24bitModeAndPortDS390 by
951           24bitMode, portIsDS390
952         * src/mcs51/gen.c (genOr): optimized for RFE 1750727
953         * src/SDCCpeeph.c (flat24bitModeAndPortDS390): removed
954           (notVolatileVariable): also check sloc names,
955           (callFuncByName): moved ftab[] out of function and sorted it by use
956
957 2007-10-28 Maarten Brock <sourceforge.brock AT dse.nl>
958
959         * device/include/stdarg.h: fixed bug in va_start macro for --xstack
960         * src/hc08/gen.c (aopForRemat): aop->aopu.aop_immd.from_cast_remat not set,
961           aop->aopu.aop_immd.aop_immd2 not filled with (generic) pointer type
962         * src/SDCCicode.c (geniCodeCast): fixed bug 880197
963         * support/regression/tests/bug-880197.c: new, added
964
965 2007-10-28 Borut Razem <borut.razem AT siol.net>
966
967         * support/regression/Makefile.in,
968           support/regression/ports/mcs51-large/spec.mk,
969           support/regression/ports/mcs51-xstack-auto/spec.mk,
970           support/regression/ports/mcs51-stack-auto/spec.mk,
971           support/regression/ports/mcs51-medium/spec.mk,
972           support/regression/ports/mcs51-common/spec.mk,
973           support/regression/ports/mcs51-common/*,
974           support/regression/ports/mcs51-small/*:
975           mcs51 renamed to mcs51-common, created mcs51-small
976         * src/SDCCsymt.c: fixed bug #1805702 - order of extern matters
977         * support/regression/tests/bug-1805702.c: added regtest for bug
978           #1805702
979
980 2007-10-26 Maarten Brock <sourceforge.brock AT dse.nl>
981
982         * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b,
983           added new rules 265 - 270
984         * support/regression/tests/bug1721024.c:new, added
985         * support/regression/Makefile.in: renamed test-mcs51 to test-mcs51-small,
986           introduced new test-mcs51 to run all mcs51 tests
987
988 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
989
990         * support/regression/tests/bug1816470.c: new, added
991
992 2007-10-21 Maarten Brock <sourceforge.brock AT dse.nl>
993
994         * src/SDCCast.c (resultTypePropagate): do propagate for LEFT_OP, do not
995           propagate for *,+,- with float, fixed bug 1816470
996           (decorateType): cast to resultTypeProp instead of resultType
997
998 2007-10-19 Borut Razem <borut.razem AT siol.net>
999
1000         * src/pic16/glue.c: fixed bug #983491 - "Merge duplicate strings
1001           function is ineffective" for pic16 tareget
1002         * support/scripts/listerr.c: corrected include path
1003         * device/lib/_itoa.c: fixed bug #1806402 - _itoa and _uitoa leak to
1004           adjacent memory
1005
1006 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
1007
1008         * support/regression/tests/using.c: new, added
1009         * support/regression/tests/vaargs.c: fixed and enabled test
1010
1011 2007-10-18 Borut Razem <borut.razem AT siol.net>
1012
1013         * src/SDCCglue.c: fixed bug #983491 - Merge duplicate strings function
1014           is ineffective
1015         * support/regression/tests/bug-983491.c: added regtest for bug #983491
1016
1017 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
1018
1019         * doc/sdccman.lyx: documented option --Werror
1020         * src/SDCCsymt.c (checkFunction): fixed bug 1815418 by setting
1021           RegBankUsed[] earlier
1022
1023 2007-10-14 Maarten Brock <sourceforge.brock AT dse.nl>
1024
1025         * device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
1026         * src/pic/glue.c,
1027         * src/SDCCval.c,
1028         * src/SDCCast.c,
1029         * src/SDCCast.h: replaced AST_LIT_VALUE with AST_FLOAT_VALUE and
1030           AST_ULONG_VALUE
1031         * src/SDCCast.c (decorateType): improved optimization of tri-op
1032         * src/SDCCerr.c (vwerror, setWError),
1033         * src/SDCCerr.h,
1034         * src/SDCCmain.c (parseCmdLine): added option --Werror to treat all
1035           warnings as errors, thanks Stas Sergeev for PATCH 1813211
1036
1037 2007-10-13 Maarten Brock <sourceforge.brock AT dse.nl>
1038
1039         * src/mcs51/gen.c (leftRightUseAcc): use macro IS_OP_ACCUSE
1040         * src/SDCCast.c (decorateType): optimize bit=cond?1:0, RFE 1738430
1041         * support/regression/tests/bug-223113.c,
1042         * support/regression/tests/bug-426632.c,
1043         * support/regression/tests/bug-468811.c,
1044         * support/regression/tests/bug-477835.c,
1045         * support/regression/tests/bug-478094.c,
1046         * support/regression/tests/bug-499644.c,
1047         * support/regression/tests/bug-524209.c,
1048         * support/regression/tests/bug-524211.c,
1049         * support/regression/tests/packcast.c,
1050         * support/regression/tests/structidx.c: added empty tests
1051         * support/regression/tests/bug-607243.c: enabled test
1052
1053 2007-10-06 Borut Razem <borut.razem AT siol.net>
1054
1055         * .version, doc/sdccman.lyx: bumped version to 2.7.4 to indicate the full
1056            support of universal binaries on Mac OS X
1057
1058 2007-10-02 Borut Razem <borut.razem AT siol.net>
1059
1060         * src/SDCCval.h: unified double2ul macro for all platforms
1061         * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
1062         * support/regression/tests/bitwise.c: added regtest for bug #1777758
1063
1064 2007-09-30 Borut Razem <borut.razem AT siol.net>
1065
1066         * src/SDCCval.h: fixed bug #1739860 - sdcc does not work correctly on some
1067           platforms
1068         * sdcc_vc_in.h: enabled warnings
1069         * src/hc08/gen.c: fixed MSVC warning C4146: unary minus operator applied to
1070           unsigned type, result still unsigned
1071         * src/mcs51/peep.c: fixed gcc warning: suggest parentheses around && within ||
1072
1073 2007-09-28 Raphael Neider <rneider AT web.de>
1074
1075         * src/pic/device.c (find_device): prevent buffer underflow error
1076         * src/pic/pcoderegs.c (OptimizeRegUsage): avoid dereferencing
1077           the just destroyed list entry
1078
1079 2007-09-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1080
1081         * doc/sdccman.lyx: there's a dedicated wiki page for cmake and sdcc, thanks
1082           Alexander Neundorf
1083
1084 2007-09-18 Borut Razem <borut.razem AT siol.net>
1085
1086         * src/SDCCval.c: fixed MSVC warning C4146: unary minus operator
1087          applied to unsigned type, result still unsigned
1088
1089 2007-09-17 Borut Razem <borut.razem AT siol.net>
1090
1091         * src/SDCC.y, src/SDCCast.c, src/SDCCcse.c, src/SDCCglue.c,
1092           src/SDCCicode.c, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCval.c,
1093           src/SDCCval.h, src/hc08/gen.c, src/avr/gen.c, src/ds390/gen.c,
1094           src/mcs51/gen.c, src/pic/gen.c, src/pic/genarith.c, src/pic/glue.c,
1095           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/genarith.c,
1096           src/pic16/genutils.c, src/pic16/glue.c, src/pic16/main.c,
1097           src/z80/gen.c, src/z80/ralloc.c:
1098           fixed bug #1739860 - sdcc does not work correctly on some platforms
1099           (not finished)
1100           introduced and used ulFromVal(), double2ul(), used strtod() instead sscanf()
1101
1102 2007-09-17 Raphael Neider <rneider AT web.de>
1103
1104         * src/pic16/device.c: reverted to previous version
1105         * device/lib/pic16/Makefile.common.in: quieten gpasm via -Wa,-q
1106
1107 2007-09-16 Raphael Neider <rneider AT web.de>
1108
1109         * src/pic16/device.c (pic16_dump_usection): do not reserve 0 bytes,
1110           as this raises a ton of gpasm warnings, just emit a second label
1111         * src/pic16/devices.inc,
1112         * device/lib/pic16/pics.all,
1113         * device/lib/pic16/libdev/pic18f2585.c,
1114         * device/lib/pic16/libdev/pic18f2680.c,
1115         * device/lib/pic16/libdev/pic18f2682.c,
1116         * device/lib/pic16/libdev/pic18f2685.c,
1117         * device/lib/pic16/libdev/pic18f4585.c,
1118         * device/lib/pic16/libdev/pic18f4680.c,
1119         * device/lib/pic16/libdev/pic18f4682.c,
1120         * device/lib/pic16/libdev/pic18f4685.c,
1121         * device/include/pic16/pic18f2585.h,
1122         * device/include/pic16/pic18f2680.h,
1123         * device/include/pic16/pic18f2682.h,
1124         * device/include/pic16/pic18f2685.h,
1125         * device/include/pic16/pic18f4585.h,
1126         * device/include/pic16/pic18f4680.h,
1127         * device/include/pic16/pic18f4682.h,
1128         * device/include/pic16/pic18f4685.h,
1129         * device/include/pic16/pic18fregs.h: added 18f2585, 18f2680,
1130           18f2682, 18f2685, 18f4585, 18f4680, 18f4682, 18f4685,
1131           patch contributed by Anton Strobl, applied with changes
1132
1133 2007-09-16 Raphael Neider <rneider AT web.de>
1134
1135         * device/include/pic16/pic18f2431.h,
1136         * device/include/pic16/pic18f25j10.h,
1137         * device/include/pic16/pic18f4431.h,
1138         * device/include/pic16/pic18f45j10.h: adopted common include style
1139         * device/include/pic16/pic18f1320.h,
1140         * device/include/pic16/pic18f2320.h,
1141         * device/include/pic16/pic18f2525.h,
1142         * device/include/pic16/pic18f4320.h,
1143         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
1144         * device/include/pic16/pic18fregs.h: prepared for automatic include
1145           file selection by having DEVICE.h for every DEVICE
1146         * device/lib/pic16/libdev/pic18f2320.c,
1147         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
1148
1149         * device/lib/pic16/configure.in,
1150         * device/lib/pic16/configure: use rm -rf instead of rmdir
1151         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
1152         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
1153
1154 2007-09-09 Borut Razem <borut.razem AT siol.net>
1155
1156         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
1157           distingush between i386 and ppc Mac OS X versions
1158
1159 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
1160
1161         * src/mcs51/gen.c (genReceive): fixed bug 1788177
1162         * support/regression/tests/bug1788177.c: new, added
1163
1164 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1165
1166         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
1167         * device/include/mcs51/lint.h added keyword __naked
1168
1169 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
1170
1171         * src/pic16/glue.c,
1172         * src/pic/glue.c,
1173         * src/SDCCmem.h: removed maxRegBank
1174         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
1175           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
1176         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
1177         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
1178           name and behaviour to handle banked functions
1179           (scan4op): and use it to fix bug 1786213
1180
1181 2007-09-03 Raphael Neider <rneider AT web.de>
1182
1183         * device/include/pic16/pic18f248.h,
1184         * device/include/pic16/pic18f258.h,
1185         * device/include/pic16/pic18f448.h,
1186         * device/lib/pic16/libdev/pic18f248.c,
1187         * device/lib/pic16/libdev/pic18f258.c,
1188         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
1189           added T0CONbits, fixes #1786891
1190
1191 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
1192
1193         * src/ds390/gen.c (genFarPointerSet),
1194         * src/hc08/ralloc.c (packRegisters),
1195         * src/mcs51/ralloc.c (packRegisters),
1196         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
1197           bug 1750318
1198         * src/SDCCicode.h: POINTER_SET can be true for literals too
1199         * support/regression/tests/bug1750318.c: new, added
1200
1201 2007-08-23 Borut Razem <borut.razem AT siol.net>
1202
1203         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
1204           library versions without the completition functionality
1205
1206 2007-08-22 Raphael Neider <rneider AT web.de>
1207
1208         * device/include/pic16/pic18f1220.h,
1209         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
1210
1211 2007-08-12 Borut Razem <borut.razem AT siol.net>
1212
1213         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
1214
1215 2007-08-11 Borut Razem <borut.razem AT siol.net>
1216
1217         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
1218           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
1219           support/Util/SDCCerr.[ch] moved to src
1220         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
1221           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
1222           device/examples/ds390/tinitalk/tinitalk.dsp,
1223           device/examples/serialcomm/windows/serialcomm.dsp,
1224           support/librarian/librarian.dsp:
1225           removed linking of unused odbc32.lib and odbccp32.lib
1226         * support/scripts/winres.h:
1227           added for compilation with Visual C++ 2005 Express Edition
1228
1229 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1230
1231         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
1232           and CKCON1.
1233
1234 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1235
1236         * sdccconf_in.h: update the endian test so that SPARC Solaris
1237           does not throw syntax errors
1238
1239 2007-08-06 Borut Razem <borut.razem AT siol.net>
1240
1241         * doc/sdccman.lyx: removed two index entries which prevented the
1242           generation of sdcc doc archive
1243
1244 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1245
1246         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
1247           instead of lyx 1.5.0.
1248
1249 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1250
1251         * device/include/hc08/mc68hc908apxx.h: new header contributed by
1252           Lucas Loizaga, with minor modifications. Thanks!
1253
1254 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1255
1256         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
1257           in sdcclib.
1258
1259 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1260
1261         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
1262           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
1263           with acall/ajmp.
1264
1265 2007-07-22 Borut Razem <borut.razem AT siol.net>
1266
1267         * configure.in, configure: re-introduced .version
1268         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
1269           the version reverted to 2.7.0
1270
1271 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
1272
1273         * configure.in,
1274         * doc/sdccman.lyx: bumped version to 2.7.3
1275         * device/include/mcs51/compiler.h: fixed elif->else
1276         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
1277         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
1278           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
1279            enable accuse for bit operands
1280         * src/SDCCmain.c (printVersionInfo),
1281         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
1282           environment descriptor
1283         * src/SDCCutil.h: added getBuildEnvironment
1284         * src/SDCCglue.c (initialComments): use getBuildEnvironment
1285         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
1286         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
1287         * support/regression/tests/bug1348008.c,
1288         * support/regression/tests/bug1496419.c,
1289         * support/regression/tests/bug1503067.c,
1290         * support/regression/tests/preproc.c: added empty tests
1291
1292 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1293
1294         * support/regression/tests/bug1678803.c: new, added
1295
1296 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
1297
1298         * as/link/aslink.h,
1299         * as/link/hc08/lkihx.c,
1300         * as/link/hc08/lkrloc.c,
1301         * as/link/mcs51/lkihx.c,
1302         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
1303           ihxExtendedLinearAddress
1304         * as/link/mcs51/lkrloc.c (relr),
1305         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
1306           acall/ajmp, see bug 830513
1307
1308 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
1309
1310         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
1311           (cseBBlock): remember aggr2ptr has been used
1312         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
1313           (geniCodeAssign): fixed bug 868103
1314         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
1315           added operandSize prototype
1316         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
1317           (genDataPointerSet): use max of size of right and result,
1318           (gencjne): added parameter useCarry for optimization,
1319           (genCmpEq): use carry if appropriate,
1320           (genXor): check if operand already in carry
1321         * support/regression/tests/bug-868103.c: enabled test
1322
1323 2007-07-12 Raphael Neider <rneider AT web.de>
1324
1325         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
1326
1327 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
1328
1329         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
1330           from Robert Larice, thanks
1331         * support/regression/tests/bitopcse.c,
1332         * support/regression/tests/bitvars.c,
1333         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
1334         * support/regression/tests/bug-927659.c: enabled test for z80
1335         * support/regression/tests/bug1738367.c: added extra tests by Frieder
1336         * support/regression/tests/bug1745717.c: new, added
1337         * support/regression/tests/literalop.c,
1338         * support/regression/tests/nullstring.c: removed storage definitions that
1339           are now in testfwk.h
1340
1341 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
1342
1343         * device/include/stdbool.h: do not define __bool_true_false_are_defined
1344           and bool for targets that do not fully support it.
1345         * support/regression/tests/bug1546986.c,
1346         * support/regression/tests/bug1723128.c,
1347         * support/regression/tests/bug1734654.c,
1348         * support/regression/tests/bug1738367.c,
1349         * support/regression/tests/constantRange.c: only use bool if allowed
1350
1351 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
1352
1353         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
1354           Larice, also handle function pointers
1355         * support/regression/tests/bug1749275.c: new, added
1356
1357 2007-07-03 Borut Razem <borut.razem AT siol.net>
1358
1359         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
1360           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
1361           #1746528: SDCC should ignore ':' in inline assembler comments
1362         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
1363
1364 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
1365
1366         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
1367         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
1368
1369 2007-06-29 Borut Razem <borut.razem AT siol.net>
1370
1371         * src/SDCCmain.c: fixed bug
1372           #1744746: SDCC #4867: broken option --xram-size
1373
1374 2007-06-28 Borut Razem <borut.razem AT siol.net>
1375
1376         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
1377           find out the endianess of host machine for ucsim
1378
1379 2007-06-27 Borut Razem <borut.razem AT siol.net>
1380
1381         * support/regression/generate-cases.py: corrected the file name
1382           in warning
1383         * configure.in, configure, sdccconf_in.h: find out the endianess of
1384           host machine
1385         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
1386           negative size
1387
1388 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
1389
1390         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
1391
1392 2007-06-26 Borut Razem <borut.razem AT siol.net>
1393
1394         * support/regression/generate-cases.py: display warning if function
1395           list is empty; implemented more flexible rule for detection of
1396           testing functions, allowing return type 'void' in the same line as
1397           the function name in the function definition
1398         * support/regression/tests/bug-1654060.c: corrected test
1399         * support/librarian/sdcclib.c: fixed warning:
1400           format '%s' expects type 'char *', but argument 2 has type 'int'
1401
1402 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1403
1404         * support/librarian/sdcclib.c: Added feature Requests [1510635]
1405           Multiple infiles for sdcclib.
1406
1407 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1408
1409         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
1410           bug 1731741
1411
1412 2007-06-18 Borut Razem <borut.razem AT siol.net>
1413
1414         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
1415           how to handle comments, so they have to be removed by the
1416           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
1417         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
1418           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
1419           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
1420           table driven option hadling
1421
1422 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1423
1424         * src/SDCCast.c (decorateType),
1425         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
1426           iCode to ast level to fix bug 1738367
1427         * support/regression/tests/bug1738367.c: new, added
1428
1429 2007-06-15 Raphael Neider <rneider AT web.de>
1430
1431         * src/pic16/devices.inc,
1432         * device/lib/pic16/pics.all,
1433         * device/include/pic16/pic18fregs.h,
1434         * device/include/pic16/pic18f[24][45]20.h,
1435         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
1436           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
1437         * device/lib/pic16/Makefile.in: faster cleanup
1438
1439 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1440
1441         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
1442
1443 2007-06-13 Raphael Neider <rneider AT web.de>
1444
1445         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
1446
1447 2007-06-12 Raphael Neider <rneider AT web.de>
1448
1449         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
1450           suppress bit defines if NO_BIT_DEFINES is #define'd
1451         * device/include/pic/pic*.h: recreated all headers to include
1452           conditional bit defines
1453         * device/include/pic/pic16f886.h,
1454         * device/include/pic/pic16f887.h: fixed based on newer .inc file
1455         * device/include/pic/recreate.sh: script to recreate the complete
1456           device library files based on the currently supported devices
1457
1458 2007-06-12 Borut Razem <borut.razem AT siol.net>
1459
1460         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
1461           support/regression/Makefile.in, support/scripts/build.mak,
1462           support/scripts/Makefile.snapshot:
1463           use new svn URL scheme
1464         * doc/sdccman.lyx: SDCC Wiki moved to
1465           http://sdcc.wiki.sourceforge.net/
1466
1467 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1468
1469         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
1470         * support/regression/tests/bug1734654.c: added
1471
1472 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1473
1474         * src/SDCCast.c (decorateType): optimized '?' for equal operands
1475         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
1476           with literal operands
1477
1478 2007-06-10 Borut Razem <borut.razem AT siol.net>
1479
1480         * as/link/z80/lklibr.c: fixed mingw build warning
1481           lklibr.c:575: warning: implicit declaration of function 'tolower'
1482         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
1483           src/z80/main.c: move target specific options from src/SDCCmain.c
1484           to src/<target>/main.c
1485
1486 2007-06-09 Borut Razem <borut.razem AT siol.net>
1487
1488         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
1489           removed unused swap_sense; removed outBitCLong, replaced with outBitC
1490         * support/regression/tests/bug-1294691.c: added
1491
1492 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
1493
1494         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
1495           can also be static, fixes bug 1733438
1496         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
1497           have absolute address too
1498           (computeType): added optimization for 'cond ? true : false'
1499         * support/regression/tests/absolute.c: added test for static absolute var
1500
1501 2007-06-08 Raphael Neider <rneider AT web.de>
1502
1503         * src/regression/Makefile: suppress parallel builds, allow easy
1504           switching between pic14/pic16 ports
1505         * src/regression/picregs.h: added pic14/16 header file switch
1506         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
1507           inline.c,nestfor.c,string1.c}: include "picregs.h"
1508
1509 2007-06-07 Borut Razem <borut.razem AT siol.net>
1510
1511         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
1512           permanent solution to suppress GCC 4.2.0 c++ warning:
1513           deprecated conversion from string constant to `char *'
1514           use 'const char *' where ever required
1515         * support/regression/generate-cases.py: implemented more flexible rule
1516           for detection of testing functions, allowing white-spaces surrounding
1517           the function name and the 'void' parameter.
1518         * support/regression/tests/constantRange.c,
1519           support/regression/tests/scott-compare3.c: fixed failing regression
1520           tests, uncovered by implementation of more flexible rule for detection
1521           of testing functions
1522
1523 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
1524
1525         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
1526
1527 2007-06-04 Borut Razem <borut.razem AT siol.net>
1528
1529         * configure.in, configure, config_vc.awk: sdcc version number is now
1530           stored in configure.in; removed .version
1531         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
1532           doc/INSTALL.txt: version bumped to 2.7.2
1533         * sim/ucsim/configure.in, sim/ucsim/configure:
1534           use "read" to read from .version
1535
1536 2007-06-03 Borut Razem <borut.razem AT siol.net>
1537
1538         * */Makefile.in: removed annoying warning:
1539           Makefile:xx: Makefile.dep: No such file or directory
1540
1541 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1542
1543         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
1544           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
1545         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
1546         * src/SDCCast.c (resultTypePropagate): propagate for '!',
1547           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
1548           bugfix: only use newBoolLink for bit result type
1549         * src/SDCCicode.c (geniCodeLogic): added param tree,
1550           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
1551           (geniCodeLogicAndOr): use IS_BIT,
1552           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
1553           (ast2iCode): added tree param to geniCodeLogic for comparisons
1554         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
1555         * support/regression/tests/bug1723128.c: added test NotZero
1556
1557 2007-06-01 Borut Razem <borut.razem AT siol.net>
1558
1559         * SDCPP synchronized with GCC CPP release version 4.2.0,
1560           currently the latest release:
1561         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1562           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
1563           support/cpp2/cppdefault.h, support/cpp2/except.h,
1564           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
1565           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
1566           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1567           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
1568           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
1569           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
1570           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
1571           support/cpp2/opts.h, support/cpp2/output.h,
1572           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
1573           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
1574           support/cpp2/system.h, support/cpp2/version.c,
1575           support/cpp2/Makefile.in: modified
1576         * support/cpp2/opts-common.c: added
1577         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
1578         * device/lib/pic16/libdev/pic18f[24]5j10.c:
1579           search for included source file in local directory
1580         * sim/ucsim/configure, sim/ucsim/configure.in:
1581           temporary solution to suppress GCC 4.2.0 c++ warning:
1582           deprecated conversion from string constant to `char *'
1583
1584 2007-06-01 Raphael Neider <rneider AT web.de>
1585
1586         * device/lib/pic/libdev/pic12f683.c,
1587         * device/include/pic/pic12f683.h: added GPIO bits
1588
1589 2007-06-01 Raphael Neider <rneider AT web.de>
1590
1591         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
1592           quotation marks, clarified role of PIC14 vs. PIC16 ports
1593         * src/pic16/devices.inc,
1594         * device/include/pic16/pic18fregs.h,
1595         * device/include/pic16/pic18f[24][45]j10.h,
1596         * device/lib/pic16/pics.all,
1597         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
1598           18f24j10, 18f25j10, 18f44j10, and 18f45j10
1599         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
1600           for new devices as they are not yet supported by gputils
1601
1602 2007-05-31 Borut Razem <borut.razem AT siol.net>
1603
1604         * Small Device C Compiler 2.7.0 released
1605         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
1606           changed sdcc version to 2.7.1
1607         * support/scripts/sdcc.nsi: added How to create WIN32 release
1608           setup.exe package
1609
1610 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
1611
1612         * doc/sdccman.lyx: documented initialization and allocation of absolute
1613           variables, bit parameter passing, the need for function pointers to be
1614           reentrant and alpha quality support of inline and retrict
1615
1616 2007-05-26 Borut Razem <borut.razem AT siol.net>
1617
1618         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
1619           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
1620         * docs/knownbugs.html: updated
1621
1622 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
1623
1624         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
1625           thanks Jan Waclawek
1626         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
1627           AOP_CRY and ruonly
1628           (gencjneshort): optimized when left is AOP_DIR
1629         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
1630           initializing unions in a struct/array
1631         * support/regression/fwk/include/testfwk.h: added defines for data, near
1632           and far for host and z80
1633         * support/regression/tests/bug1723128.c: new, added
1634
1635 2007-05-22 Borut Razem <borut.razem AT siol.net>
1636
1637         * doc/knownbugs.html: updated
1638
1639 2007-05-21 Raphael Neider <rneider AT web.de>
1640
1641         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
1642           error message instead
1643         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
1644
1645 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1646
1647         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
1648
1649 2007-05-21 Raphael Neider <rneider AT web.de>
1650
1651         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
1652           closes #1722392
1653         * src/regression/gpsim_assert.h,
1654         * src/regression/Makefile,
1655         * src/regression/pcodeopt.c: regression test for the above fix
1656
1657 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1658
1659         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
1660           jumps to self, fixed bug 1717281
1661
1662 2007-05-10 Borut Razem <borut.razem AT siol.net>
1663
1664         * support/scripts/gen_known_bugs.pl: cosmetic fix
1665         * doc/knownbugs.html: generated by gen_known_bugs.pl
1666
1667 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1668
1669         * src/SDCCast.c (createFunction): also generate non-inlined version of
1670           function for functions declared as "static inline"
1671         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
1672           function can be inlined after non-inlined version generated.
1673
1674 2007-05-10 Borut Razem <borut.razem AT siol.net>
1675
1676         * support/scripts/gen_known_bugs.pl: added script
1677           which generates knownbugs.html
1678
1679 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
1680
1681         * doc/knownbugs.html: updated for release 2.7.0
1682
1683 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1684
1685         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
1686
1687 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
1688
1689         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
1690           (throughout): updated generating comments
1691         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
1692           (throughout): updated generating comments
1693         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
1694           rule instead of at the second, or it might skip lines when removing the
1695           complete match
1696         * support/regression/tests/bug1714204.c: changed test to foo
1697
1698 2007-05-08 Borut Razem <borut.razem AT siol.net>
1699
1700         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
1701           thanks to SDCC Distributed Compile Farm members,
1702           added Z80 and GBZ80 command line options
1703         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
1704
1705 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
1706
1707         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
1708         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
1709         * support/regression/tests/longlit.c: modified to be tested at all and
1710           to pass the actual test
1711
1712 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1713
1714         * device/include/mcs51/uPSD33xx.h: Added.
1715
1716 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
1717
1718         * device/lib/_gptrput.c,
1719         * device/lib/_gptrget.c: removed old code,
1720          (_gptrgetWord),
1721         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
1722         * support/regression/tests/bug1714204.c: new, added
1723
1724 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1725
1726         * support/regression/tests/regtrack.c: test was never executed
1727           because of the regression test being picky about white spaces.
1728         * device/lib/mcs51/crtclear.asm: added comment
1729
1730 2007-05-06 Raphael Neider <rneider AT web.de>
1731
1732         * device/lib/pic/Makefile.rules,
1733         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
1734           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
1735
1736 2007-05-06 Raphael Neider <rneider AT web.de>
1737
1738         * src/pic16/device.h,
1739         * src/pic16/main.h,
1740         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
1741           _pic16_setDefaultOptions): removed/reordered command-line args
1742         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
1743           devices, regrouped command line args, environment variables),
1744           clarified sone points, added sections on how to add devices to the
1745           PIC14/PIC16 ports
1746
1747 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
1748
1749         * src/z80/peeph.def: fixed bug in rule 2
1750
1751 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
1752
1753         * src/port.h: added TARGET_MCS51_LIKE
1754         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
1755           take advantage of it too
1756         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
1757           (shiftR2Left2Result): Optimized: don't check shifting by 0
1758         * src/z80/peeph-z80.def,
1759         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
1760           modifications, see patch 1700823
1761         * src/mcs51/peep.c (): fixed bug 1712928
1762         * support/regression/tests/bug1712928.c: new, added
1763
1764 2007-05-05 Borut Razem <borut.razem AT siol.net>
1765
1766         * device/lib/pic16/Makefile.common.in,
1767           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
1768           removed bash dependencies
1769
1770 2007-05-01 Borut Razem <borut.razem AT siol.net>
1771
1772         * src/SDCCicode.c:
1773           fixed bug #1710507: --i-code-in-asm makes compile fail
1774           all iCode comments are now one liners
1775         * src/mcs51/gen.c: fixed memory leak
1776
1777 2007-05-01 Raphael Neider <rneider AT web.de>
1778
1779         * device/lib/pic/libdev/*.c
1780         * device/include/pic/*.h: regenerated all device libs from updated
1781           .inc files
1782         * support/scripts/inc2h.pl: documented usage, now uses strict to
1783           catch more bugs
1784
1785 2007-04-30 Borut Razem <borut.razem AT siol.net>
1786
1787         * doc/sdccman.lyx:
1788           fixed bug #1669175: Problem with space in output paths
1789           documented how to use paths with spaces for Windows users
1790
1791 2007-04-29 Borut Razem <borut.razem AT siol.net>
1792
1793         * Fixed svn:eol-style and svn:keywords properties
1794         * src/SDCCval.c: fixed bug
1795           #1592871: Segfault with "large" const arrays of characters
1796           replaced recursion with iteration
1797         * Removed svn:executable property from non-executable files
1798
1799 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
1800
1801         * src/mcs51/gen.c (genRet): fixed bug 1707003
1802
1803 2007-04-27 Raphael Neider <rneider AT web.de>
1804
1805         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
1806           createReachingDefinitions,assignValnums,pic16_destructDF,
1807           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
1808           prevent NULL pointer dereferences
1809         * device/lib/pic/libdev/pic16f886.c,
1810         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
1811           prevent building them, gputils do not really support them yet
1812
1813 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1814
1815         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
1816           helps printf_small. 32 bytes more __idata mem.
1817
1818 2007-04-27 Raphael Neider <rneider AT web.de>
1819
1820         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
1821           return early when pb or pb->pcHead is NULL (patch #1708427)
1822         * src/regression/empty.c,
1823         * src/regression/Makefile: added test with empty functions
1824         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
1825
1826 2007-04-27 Borut Razem <borut.razem AT siol.net>
1827
1828         * src/SDCCast.c: fixed feature request
1829           #1547512: Redundant strings linked when using sizeof("abc")
1830
1831 2007-04-23 Borut Razem <borut.razem AT siol.net>
1832
1833         * doc/sdccman.lyx, src/SDCCmain.c:
1834           peep-hole comments are generated only if --fverbose-asm option is
1835           specified and --no-peep-comments is not, as proposed by Frieder.
1836         * support/regression/Makefile.in: compile regression tests with
1837           --fverbose-asm option so one can "grep" whether a new (or an old)
1838           peephole is (still) applied; requested by Frieder.
1839
1840 2007-04-23 Kevin Buettner <kevin AT buettner.to>
1841
1842         * device/include/pic/pic16f886.h,
1843         * device/include/pic/pic16f887.h,
1844         * device/lib/pic/libdev/pic16f886.c,
1845         * device/lib/pic/libdev/pic16f887.c,
1846         * device/include/pic/pic14devices.txt,
1847         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
1848
1849 2007-04-23 Kevin Buettner <kevin AT buettner.to>
1850
1851         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
1852           fixes #1704666
1853
1854 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1855
1856         * device/lib/_memset.c: assembler version for mcs51
1857
1858 2007-04-22 Borut Razem <borut.razem AT siol.net>
1859
1860         * support/scripts/listerr.c: program to create the list of errors and
1861           warnings list from - added
1862         * doc/sdccman.lyx: removed the note
1863           "For list of warnings and corresponding codes, see err_warn.txt"
1864         * src/SDCCsymt.c: fixed bug #1699804:
1865           Bug with some uses of sizeof(static local array) (MCS51)
1866         * support/regression/tests/bug-1699804.c: added
1867
1868 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
1869
1870         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
1871           (main): added option -i,
1872           (asmbl, case S_INCL): use search_path_fopen,
1873           mostly from patch 1579668 by Peter Miller, thanks
1874         * src/z80/main.c: fixed typo --callee-saves-bc
1875         * device/include/mcs51/compiler.h: added sfrword for Tasking
1876
1877 2007-04-20 Borut Razem <borut.razem AT siol.net>
1878
1879         * src/z80/main.c: replaced reserved keyword asm with asmblr
1880
1881 2007-04-19 Borut Razem <borut.razem AT siol.net>
1882
1883         * src/port.h: use const pointers to strings
1884         * src/SDCCargs.h: declared getStringArg() and getIntArg()
1885         * src/pic16/main.c: include SDCCargs.h
1886         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
1887           const char, since the strings are dynamically allocated
1888         * src/SDCCmain.c: options.code_seg and options.const_seg are
1889           dynamically allocated; check port specific command line options
1890           before the general ones
1891         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
1892
1893 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
1894
1895         * device/include/ds400rom.h,
1896         * device/lib/ds390/lcd390.c,
1897         * device/lib/ds390/memcpyx.c,
1898         * device/lib/ds390/rtc390.c,
1899         * device/lib/ds400/ds400rom.c,
1900         * device/lib/ds400/memcpyx.c,
1901         * device/lib/hc08/_ret.c: more replacements of keywords with their
1902           double underscore equivalents
1903         * device/lib/ds390/Makefile.in,
1904         * device/lib/ds400/Makefile.in,
1905         * device/lib/gbz80/Makefile.in,
1906         * device/lib/hc08/Makefile.in,
1907         * device/lib/mcs51/Makefile.in,
1908         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
1909
1910 2007-04-17 Borut Razem <borut.razem AT siol.net>
1911
1912         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
1913           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
1914           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
1915           to --fverbose-asm, to be gcc'ish
1916
1917 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
1918
1919         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
1920
1921 2007-04-17 Borut Razem <borut.razem AT siol.net>
1922
1923         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
1924         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
1925           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
1926           with their double underscore equivalent
1927
1928 2007-04-14 Borut Razem <borut.razem AT siol.net>
1929
1930         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
1931           source"
1932
1933 2007-04-13 Borut Razem <borut.razem AT siol.net>
1934
1935         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
1936           C99 standard
1937         * device/examples/serialcomm/windows/serial.[ch],
1938           device/examples/serialcomm/windows/test_serialcomm.cpp:
1939           updated by Bela Torok
1940         * device/examples/serialcomm/windows/serialcomm.dsw,
1941           device/examples/serialcomm/windows/serialcomm.dsp: added
1942
1943 2007-04-13 Jan Waclawek <wek AT efton.sk>
1944
1945         * doc/sdccman.lyx: additions and changes at various places
1946           (submitted as #1697136).
1947           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
1948
1949 2007-04-10 Borut Razem <borut.razem AT siol.net>
1950
1951         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
1952           LyX file format changed to 245
1953         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
1954           "FreeWare" replaced with "free open source"
1955
1956 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
1957
1958         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
1959
1960 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
1961
1962         * device/include/pic16/pic18fregs.h,
1963         * device/lib/_bp.c,
1964         * device/lib/_decdptr.c,
1965         * device/lib/_divsint.c,
1966         * device/lib/_divslong.c,
1967         * device/lib/_divuint.c,
1968         * device/lib/_divulong.c,
1969         * device/lib/_fs2schar.c,
1970         * device/lib/_fs2sint.c,
1971         * device/lib/_fs2slong.c,
1972         * device/lib/_fs2uchar.c,
1973         * device/lib/_fs2uint.c,
1974         * device/lib/_fs2ulong.c,
1975         * device/lib/_fsadd.c,
1976         * device/lib/_fscmp.c,
1977         * device/lib/_fsdiv.c,
1978         * device/lib/_fseq.c,
1979         * device/lib/_fsget1arg.c,
1980         * device/lib/_fsget2args.c,
1981         * device/lib/_fsgt.c,
1982         * device/lib/_fslt.c,
1983         * device/lib/_fsmul.c,
1984         * device/lib/_fsneq.c,
1985         * device/lib/_fsnormalize.c,
1986         * device/lib/_fsreturnval.c,
1987         * device/lib/_fsrshift.c,
1988         * device/lib/_fssub.c,
1989         * device/lib/_fsswapargs.c,
1990         * device/lib/_gptrget.c,
1991         * device/lib/_gptrgetc.c,
1992         * device/lib/_gptrput.c,
1993         * device/lib/_logexpf.c,
1994         * device/lib/_modsint.c,
1995         * device/lib/_modslong.c,
1996         * device/lib/_moduint.c,
1997         * device/lib/_modulong.c,
1998         * device/lib/_mulint.c,
1999         * device/lib/_mullong.c,
2000         * device/lib/_schar2fs.c,
2001         * device/lib/_ser.c,
2002         * device/lib/_setjmp.c,
2003         * device/lib/_sint2fs.c,
2004         * device/lib/_slong2fs.c,
2005         * device/lib/_spx.c,
2006         * device/lib/_uchar2fs.c,
2007         * device/lib/_uint2fs.c,
2008         * device/lib/_ulong2fs.c,
2009         * device/lib/asincosf.c,
2010         * device/lib/atanf.c,
2011         * device/lib/calloc.c,
2012         * device/lib/ds390/tinibios.c,
2013         * device/lib/ds400/tinibios.c,
2014         * device/lib/expf.c,
2015         * device/lib/free.c,
2016         * device/lib/hc08/_mulint.c,
2017         * device/lib/logf.c,
2018         * device/lib/malloc.c,
2019         * device/lib/printf_fast.c,
2020         * device/lib/printf_tiny.c,
2021         * device/lib/printfl.c,
2022         * device/lib/realloc.c,
2023         * device/lib/ser_ir.c,
2024         * device/lib/serial.c,
2025         * support/regression/tests/libmullong.c: replaced all special keywords
2026           with their double underscore equivalent
2027         * support/regression/ports/mcs51-xstack-auto/spec.mk,
2028         * device/lib/Makefile.in: compile libs with --std-c99 instead of
2029           --std-sdcc99
2030         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
2031           (genRet): if the bit-symbol is ruonly it already is in the carry
2032         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
2033         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
2034         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
2035           type UCHAR if dest is not bit
2036
2037 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
2038
2039         * device/include/math.h,
2040         * device/lib/cotf.c,
2041         * device/lib/expf.c,
2042         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
2043
2044 2007-04-01 Borut Razem <borut.razem AT siol.net>
2045
2046         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
2047           fixed bug #1692042: input buffer overflow...scanner uses REJECT
2048         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
2049           gcc_unreachable() called internal_error()...
2050
2051 2007-03-30 Raphael Neider <rneider AT web.de>
2052
2053         * src/pic/ralloc.c (isData): suppress garbage debug output
2054
2055 2007-03-28 Borut Razem <borut.razem AT siol.net>
2056
2057         * doc/sdccman.lyx:
2058           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
2059           is developed, built and used worldwide, and the word "night" doesn't
2060           make any sense.
2061
2062 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
2063
2064         * device/include/mcs51/C8051F360.h: new, added
2065         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
2066
2067 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2068
2069         * src/SDCC.y (declaration_specifiers, function_specifier),
2070         * support/Util/SDCCerr.c,
2071         * support/Util/SDCCerr.h,
2072         * src/SDCCsymt.h,
2073         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
2074           inline keyword
2075         * src/SDCCmem.c (deallocParms),
2076         * src/SDCCast.c: support for function inlining, not quite complete
2077         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
2078           'restrict' qualifier
2079
2080 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2081
2082         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
2083           (saveRBank, unsaveRBank): don't save bits,
2084           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
2085         * support/regression/tests/bug1535242.c: new, added
2086         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
2087           thanks Alexey Shamrin <shamrin AT gmail.com>,
2088           made assert.h header ANSI compliant (added a check for NDEBUG macro,
2089           removed header guard)
2090         * .version,
2091         * sdcc.spec: bumped version to 2.6.5
2092         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
2093
2094 2007-03-22 Borut Razem <borut.razem AT siol.net>
2095
2096         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
2097           fixed bug #1653671: sdcdb integration into ddd is broken
2098
2099 2007-03-22 Raphael Neider <rneider AT web.de>
2100
2101         * src/pic/gen.c (popGetExternal): augmented to also create references
2102           to external variables (not only labels),
2103           (genCall): comment on plan to reduce PAGESEL overhead,
2104           (genFunction, genEndFunction): also save/restore FSR around interrupt
2105           handling code, removed lots of unused code
2106           (genDivOneByte): release acquired temp register
2107         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
2108           of popGetExternal
2109         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
2110           for registers that need to be saved during interrupts (FSR, STATUS,
2111           PCLATH; W needs special handling), currently only FSR is used
2112
2113 2007-03-22 Raphael Neider <rneider AT web.de>
2114
2115         * device/include/pic/pic14devices.txt: 16f688 has only one config word
2116
2117 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2118
2119         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
2120
2121 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2122
2123         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
2124
2125 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
2126
2127         * as/link/aslink.h: added LKOBJEXT
2128         * as/link/hc08/link_hc08.dsp,
2129         * as/link/hc08/Makefile.bcc,
2130         * as/link/hc08/Makefile.in,
2131         * as/link/mcs51/aslink.dsp,
2132         * as/link/mcs51/Makefile.bcc,
2133         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
2134         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
2135         * as/link/lkaomf51.c: merged and moved
2136         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
2137         * as/link/z80/lkdata.c,
2138         * as/link/lkdata.c: merged and moved
2139         * as/link/hc08/lkmain.c,
2140         * as/link/mcs51/lkmain.c: cosmetic changes
2141         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
2142         * as/link/lklex.c: use LKOBJEXT
2143         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
2144           ANSI-fied functions, removed bubble-sorts
2145         * as/link/z80/lksym.c           as/link/lksym.c: merged,
2146           ANSI-fied functions
2147         * as/link/z80/linkgbz80.dsp,
2148         * as/link/z80/linkz80.dsp,
2149         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
2150           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
2151         * as/link/z80/lkhead.c,
2152         * as/link/z80/lklex.c: deleted
2153         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
2154         * as/link/z80/lkmain.c: added copyfile()
2155
2156 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2157
2158         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
2159
2160 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2161
2162         * device/lib/_strlen.c: assembler version for mcs51
2163
2164 2007-03-13 Raphael Neider <rneider AT web.de>
2165
2166         * device/include/pic16/pic18f2221.h,
2167         * device/include/pic16/pic18f2321.h,
2168         * device/include/pic16/pic18f2331.h,
2169         * device/include/pic16/pic18f4221.h,
2170         * device/include/pic16/pic18f4321.h,
2171         * device/include/pic16/pic18f4331.h: fixed config byte location names
2172         * support/scripts/inc2h-pic16.pl: removed debug output, emit
2173           consistently named config byte locations
2174
2175 2007-03-13 Borut Razem <borut.razem AT siol.net>
2176
2177         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
2178           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
2179           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
2180           as/link/z80/Makefile.in, as/z80/Makefile.in:
2181           introduced LDFLAGS
2182
2183 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2184
2185         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
2186         * device/lib/printf_large.c: pointer was converted to generic
2187         pointer for mcs51 models other than model-small (Maarten noticed)
2188
2189 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2190
2191         * device/include/mcs51/ADuC84x.h: Added.
2192
2193 2007-03-10 Borut Razem <borut.razem AT siol.net>
2194
2195         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
2196           fixed RFE #1624219: double backslashes in filenames;
2197           functions hexEscape(), octalEscape() and copyStr() moved from
2198           SDCCval.c to SDCCutil.c and made them glovbally available
2199
2200 2007-03-09 Borut Razem <borut.razem AT siol.net>
2201
2202         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
2203           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
2204           1673361: Missaligned comments in output files
2205
2206 2007-03-09 Raphael Neider <rneider AT web.de>
2207
2208         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
2209
2210 2007-03-09 Raphael Neider <rneider AT web.de>
2211
2212         * src/pic/gen.c,
2213         * src/pic/glue.c,
2214         * src/pic/ralloc.c: suppress undesired debug output
2215         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
2216
2217 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2218
2219         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
2220
2221 2007-03-07 Borut Razem <borut.razem AT siol.net>
2222
2223         * device/lib/pic16/libdev/pic18f[24][34]31.c:
2224           search include files in the current directory
2225
2226 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
2227
2228         * src/SDCCglue.c (emitMaps, glue),
2229         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
2230           absolute xdata
2231         * support/regression/tests/absolute.c: added xdata test
2232
2233 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
2234
2235         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
2236           added condition to macro, fixes bug 1666080
2237
2238 2007-03-02 Raphael Neider <rneider AT web.de>
2239
2240         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
2241
2242 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2243
2244         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
2245         be cleared. Unconditionally set __XPAGE
2246         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
2247
2248 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2249
2250         * src/SDCCglobl.h,
2251         * src/SDCCmain.c,
2252         * src/mcs51/gen.c,
2253         * src/mcs51/rtrack.c,
2254         * src/ds390/gen.c,
2255         * doc/sdccman.lyx: added --no-gen-comments
2256         * src/mcs51/peeph.def: added 192.b, disabled 185
2257
2258 2007-02-25 Raphael Neider <rneider AT web.de>
2259
2260         * src/pic16/gen.c (genCast): fixed typo
2261         * device/lib/pic16/Makefile.subdir: only install existing files
2262         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
2263
2264 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
2265
2266         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
2267         * device/lib/mcs51/crtclear.asm,
2268         * device/lib/mcs51/crtxclear.asm: renumbered labels
2269         * device/lib/mcs51/Makefile.in: added crtcall.asm
2270         * doc/sdccman.lyx: documented mcs51 crt* library startup code
2271         * src/mcs51/gen.c (movc): removed,
2272           (aopGet, genPlusBits): clear a after loading the carry (possibly from
2273             acc.x or psw.x),
2274           (toCarry, genSend, genRet): added function toCarry,
2275           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
2276           (assignBit, genAssign, genCast): added function assignBit
2277         * src/mcs51/Makefile.bcc: added rtrack.c
2278         * src/mcs51/ralloc.h: made valueKnown a bitfield
2279         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
2280           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
2281           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
2282         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
2283         * src/z80/gen.c: added AOP_IS_PAIRPTR,
2284           (_pop): only pop valid pairs, see gencjneshort,
2285           (gencjneshort): return pair that still needs to be popped, restructured,
2286           (gencjne, genCmpEq): call _pop
2287
2288 2007-02-23 Raphael Neider <rneider AT web.de>
2289
2290         * device/include/pic/pic14devices.txt: 16f684 has only one config word
2291
2292 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2293
2294         * device/include/mcs51/P89LPC925.h: Added.
2295
2296 2007-02-18 Raphael Neider <rneider AT web.de>
2297
2298         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
2299
2300 2007-02-17 Borut Razem <borut.razem AT siol.net>
2301
2302         * support/cpp2/directives.c, support/cpp2/version.c:
2303           synchronized with GCC CPP 4.1.2
2304
2305 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2306
2307         * src/mcs51/rtrack.h,
2308         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
2309           by checking the strings passed by emitcode() to the assembler.
2310           Feel free to change. This in part addresses RFE #482179.
2311           Set environment variable SDCC_RTRACK to enable.
2312         * src/mcs51/gen.c: inserted hooks
2313         * src/mcs51/ralloc.h: added two members to struct regs
2314         * support/regression/tests/regtrack.c: added
2315
2316 2007-02-14 Borut Razem <borut.razem AT siol.net>
2317
2318         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
2319         * Makefile.in: applied patch from Makefile related part of
2320           #1469393: Compiler does not initialize static data
2321
2322 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2323
2324         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
2325           for better fix of bug 1273984, compiles pic16 rand.c
2326
2327 2007-02-12 Borut Razem <borut.razem AT siol.net>
2328
2329         * src/pic16/main.c: fixed pic16 standard library directory bug
2330
2331 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2332
2333         * src/hc08/gen.c (genSwap): fix swap regression test
2334
2335 2007-02-10 Borut Razem <borut.razem AT siol.net>
2336
2337         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
2338           with same scope
2339         * support/regression/tests/bug-1654060.c: added regression test for
2340           #1654060
2341
2342 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
2343
2344         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
2345         bit moves in return statement
2346
2347 2007-02-09 Borut Razem <borut.razem AT siol.net>
2348
2349         * src/SDCC.y: fixed bug #1654060 typedef within function causes
2350           syntax error
2351
2352 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
2353
2354         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
2355         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
2356
2357 2007-02-07 Raphael Neider <rneider AT web.de>
2358
2359         * src/pic16/devices.inc,
2360         * device/include/pic16/pic18fregs.h,
2361         * device/include/pic16/pic18f[24][34]31.h,
2362         * device/lib/pic16/libdev/pic18f[24][34]31.c,
2363         * device/lib/pic16/pics.all: added 18f[24][34]31 family
2364         * device/lib/pic16/libio/i2c.ignore: do not build i2c
2365
2366 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
2367
2368         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
2369           can this have lived here for so many years?
2370         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
2371           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
2372         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
2373
2374 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
2375
2376         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
2377         appended by loop induction must be at the very end of the eBBlock
2378
2379 2007-02-05 Kevin Vigor
2380
2381         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
2382
2383 2007-02-05 Borut Razem <borut.razem AT siol.net>
2384
2385         * support/regression/fwk/lib/timeout.c: native WIN32 port,
2386           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
2387
2388 2007-02-03 Borut Razem <borut.razem AT siol.net>
2389
2390         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
2391           applied patch #1646602 option to set default signedness of char to
2392           unsigned, added -funsigned-char command line option,
2393           thanks to Gunther Jehle
2394         * device/lib/Makefile.in: added the -f option to rm so it doesn't
2395           prompt for file deletion a few hundred times (especially the
2396           subversion files, which have ro permissions so it asks for
2397           confirmation), thanks to Simon McAuliffe;
2398           added {} + option to find in order to remove multiple files from a
2399           single rm commad
2400
2401 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2402
2403         * device/include/mcs51/SST89x5xRDx.h: Added.
2404
2405 2007-02-02 Raphael Neider <rneider AT web.de>
2406
2407         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
2408         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
2409
2410 2007-02-01 Raphael Neider <rneider AT web.de>
2411
2412         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
2413           config words again
2414
2415 2007-01-31 Borut Razem <borut.razem AT siol.net>
2416
2417         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
2418           if compiled with GCC. Thanks to Raphael Neider
2419
2420 2007-01-31 Raphael Neider <rneider AT web.de>
2421
2422         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
2423             operand names, handles name and (name + n) for all n,
2424           (sameBank): restructured, also check bank allocation policy,
2425         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
2426           (pic14_operandsAllocatedInSameBank): check whether to operands
2427             will be allocated into the same bank (i.e., section) to reduce
2428             BANKSEL overhead, queried from pcode.c:sameBank,
2429           (pic14printLocals): reintroduced clustering registers into a single
2430             section: all compiler generated symbols will now reside in one
2431             bank (per file), reducing BANKSEL overhead and code size,
2432           (showAllMemmaps): use local dbuf where possible
2433
2434 2007-01-29 Raphael Neider <rneider AT web.de>
2435
2436         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
2437           (call_libraryfunc): retrieve/create symbol and mark as used,
2438           (genFunction): mark defined functions as non-extern and add again
2439            to code memmap for later output
2440         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
2441           (pic14printLocals): reworked for new symbol emission,
2442           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
2443           showAllMemmaps): reworked symbol output using dbufs, added handling
2444             of string literals (still incomplete),
2445           (picglue): removed symbol emission, moved into showAllMemmaps,
2446           (emitSymbolSet): new workhorse for symbol output,
2447           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
2448
2449 2007-01-29 Borut Razem <borut.razem AT siol.net>
2450
2451         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
2452           component contains the extension separator.
2453
2454 2007-01-28 Borut Razem <borut.razem AT siol.net>
2455
2456         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
2457           on WIN32
2458         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
2459           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
2460           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
2461           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
2462           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
2463           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
2464           src/z80/gen.c, support/Util/MySystem.c:
2465           accept slash and backslash as directory separator on WIN32 and
2466           Cygwin ports
2467
2468 2007-01-28 Raphael Neider <rneider AT web.de>
2469
2470         * src/pic16/devices.inc,
2471         * device/include/pic16/pic18f[24][23]21.h,
2472         * device/include/pic16/pic18fregs.h,
2473         * device/lib/pic16/libdev/pic18f[24][23]21.c,
2474         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
2475         * device/lib/pic16/libio/adc.ignore,
2476         * device/lib/pic16/libio/i2c.ignore,
2477         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
2478           family, as gputils do not yet support the devices
2479         * device/lib/pic16/Makefile.subdir: ignore errors on install
2480         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
2481           headers and libraries from gputils .inc files
2482
2483 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2484
2485         * doc/sdccman.lyx: add printf_fast_f precision limitation note
2486
2487 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2488
2489         * doc/sdccman.lyx: add printf benchmarks
2490
2491 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
2492
2493         * device/lib/printf_fast.c: fix %c, char promoted to int
2494         * device/lib/printf_tiny.c: fix %c, char promoted to int
2495
2496 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
2497
2498         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
2499
2500 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2501
2502         * support/regression/tests/swap.c: 64 bit hosts failed
2503         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
2504
2505 2007-01-25 Raphael Neider <rneider AT web.de>
2506
2507         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
2508           based on absolute register address, patch by Alex Blond
2509
2510 2007-01-22 Raphael Neider <rneider AT web.de>
2511
2512         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
2513           emitted, do not emit them again...
2514
2515 2007-01-22 Raphael Neider <rneider AT web.de>
2516
2517         * src/regression/bank1.c, src/regression/compare6.c,
2518           src/regression/add.c: cosmetic changes
2519         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
2520         * src/pic/gen.c: fixed global zero and one,
2521           (aopForSym): removed unued code,
2522           (aopGet): assert aop is defined, check and use `index' of
2523             pCodeImmd operands (fixes #1630908),
2524         * src/pic/pcode.c (get_op): added output of generic pointer tag,
2525           (register_reassign): prevent accidental register unification,
2526           (ReuseReg): cosmetic changes (also above)
2527         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
2528           pic14emitStaticSeg): do not emit initialized data,
2529           (printIval*): replaced with working versions,
2530           (pic14createInterruptVect,picglue): use idata for initialized data,
2531             now init data should work in all modules (not only main()),
2532         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
2533
2534 2007-01-21 Borut Razem <borut.razem AT siol.net>
2535
2536         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
2537           use -fPIC or -fpic if they are supported and not ignored
2538         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
2539         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
2540
2541 2007-01-20 Borut Razem <borut.razem AT siol.net>
2542
2543         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
2544           implemented RFE #1470316: allow "$" in variable names
2545
2546 2007-01-20 Raphael Neider <rneider AT web.de>
2547
2548         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
2549
2550 2007-01-20 Raphael Neider <rneider AT web.de>
2551
2552         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
2553         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
2554         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
2555         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
2556           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
2557         * device/lib/pic/libdev/pic*.c,
2558         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
2559         * device/lib/pic/libdev/Makefile.in: show progress
2560
2561 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
2562
2563         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
2564         * support/scripts/sdcc_cygwin_mingw32,
2565         * support/scripts/sdcc_mingw32,
2566         * support/scripts/build.mak: replaced --datadir by --datarootdir for
2567         conformance with autoconf 2.6
2568
2569 2007-01-19 Raphael Neider <rneider AT web.de>
2570
2571         * src/pic/device.c (register_map): fixed list construction
2572         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
2573           (genMod): removed case for genModbits,
2574           (genModbits): removed as now unused/unimplemented
2575         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
2576
2577 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2578
2579         * support/regression/tests/swap.c: added in response to #1638622
2580         * doc/sdccman.lyx: synced version, minor changes
2581
2582 2007-01-18 Borut Razem <borut.razem AT siol.net>
2583
2584         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
2585           thanks to Gunther Jehle
2586         * src/asm.c: don't die if the file drfined in #line couldn't be opened
2587         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
2588           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
2589           use filename in lineno instead.
2590         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
2591           print the file name in ast_print()
2592
2593 2007-01-18 Borut Razem <borut.razem AT siol.net>
2594
2595         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
2596           defined in MSVC
2597         * src/SDCC.lex: stringLiteral() returns const char pointer,
2598           EOF detection in stringLiteral(), fixed asmbuf memory leak,
2599           fixed column counting
2600         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
2601           accept const char pointer as parameter
2602         * src/SDCCdwarf2.c: corrected buffer size
2603
2604 2007-01-17 Borut Razem <borut.razem AT siol.net>
2605
2606         * support/Util/dbuf_string.c: fixed for amd64
2607
2608 2007-01-15 Borut Razem <borut.razem AT siol.net>
2609
2610         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
2611           removed terminal symbol ELIPSIS, since it was never generated by the
2612           lexer and it was wrongly used in parameter_identifier_list rule
2613
2614 2007-01-15 Raphael Neider <rneider AT web.de>
2615
2616         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
2617             code page and data banking description
2618         * src/pic/genarith.c,
2619         * src/pic/gen.h: removed bit arithmetic functions,
2620             updated exit(1) to exit(EXIT_FAILURE)
2621         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
2622         * device/include/pic16/pic18f2455.h,
2623         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
2624             TRISD and TRISE, fixed/added some bit names
2625         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
2626         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
2627             updated pic18f2455.{c,h} instead of duplicating them
2628
2629 2007-01-14 Borut Razem <borut.razem AT siol.net>
2630
2631         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
2632           Cannot debug files that contain spaces in the path name
2633           by converting spaces in asm file name to underscores
2634
2635 2007-01-13 Borut Razem <borut.razem AT siol.net>
2636
2637         * doc/sdccman.lyx: fixed format errors
2638
2639 2007-01-10 Borut Razem <borut.razem AT siol.net>
2640
2641         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
2642           codeseg/constseg #pragma fail
2643         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
2644         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
2645           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
2646           suppoprt/cpp2/sdcpp.[ch]: house cleaning
2647
2648 2007-01-09 Borut Razem <borut.razem AT siol.net>
2649
2650         * get rid of diagnistic.[ch], pretty-print.[ch],
2651           c-pretty-print.[ch], ... used just for error, warning, ...
2652           message formatting
2653         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
2654           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
2655           suppoprt/cpp2/pretty-print.[ch]:
2656           removed
2657         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
2658           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
2659           suppoprt/cpp2/sdcpp.dsp:
2660           changed
2661
2662 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
2663
2664         * device/lib/printf_large.c (output_float): removed recursion,
2665           use smaller buffer on stack for mcs51,
2666           fixed bug printing 1.96
2667         * support/regression/tests/snprintf.c: added test
2668
2669 2007-01-07 Borut Razem <borut.razem AT siol.net>
2670
2671         * use dynamic memory buffers instead temporary files
2672         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
2673           added
2674         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
2675           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
2676           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
2677           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
2678           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
2679           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
2680           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
2681           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
2682           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
2683           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
2684           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
2685           support/Util/dbuf.c, support/Util/dbuf.h:
2686           modified
2687         * .version, sdcc.spec: bumped version to 2.6.4
2688
2689 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
2690
2691         * src/port.h: added TARGET_Z80_LIKE macro
2692         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
2693           output PSEG location if --xram-loc or --xstack-loc was used
2694         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
2695
2696 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
2697
2698         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
2699         * as/as_z80.dsp,   as/z80/as_z80.dsp,
2700         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
2701         * sdcc.dsw: moved project files into subdir
2702         * as/hc08/as_hc08.dsp,
2703         * as/hc08/Makefile.bcc,
2704         * as/hc08/Makefile.in,
2705         * as/mcs51/Makefile.bcc,
2706         * as/mcs51/Makefile.in,
2707         * as/z80/Makefile.bcc,
2708         * as/z80/Makefile.in,
2709         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
2710         * as/hc08/asm.h,
2711         * as/mcs51/asm.h,
2712         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
2713         * as/hc08/asmain.c,
2714         * as/hc08/assym.c,
2715         * as/mcs51/asmain.c,
2716         * as/mcs51/assym.c,
2717         * as/z80/assym.c: removed include "strcmpi.h"
2718         * as/hc08/strcmpi.c,
2719         * as/hc08/strcmpi.h,
2720         * as/mcs51/strcmpi.c,
2721         * as/mcs51/strcmpi.h,
2722         * support/Util/strcmpi.c,
2723         * support/Util/strcmpi.h: removed files
2724         * as/strcmpi.c: added as_strncmpi()
2725
2726 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2727
2728         * sdcc.dsw: Added some dependencies on project config.dsp
2729
2730 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
2731
2732         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
2733           with [di]ram_start to fix a regresion
2734
2735 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
2736
2737         * configure.in: added missing mcs51 in status output
2738         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
2739         directory
2740         * debugger/mcs51/clean.mk (distclean): remove config.h
2741         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
2742         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
2743         options.h, s-options-h and options.c
2744         * support/cpp2/clean.mk: unused, removed
2745         * Makefile.common.in,
2746         * main_in.mk,
2747         * as/Makefile.in,
2748         * as/hc08/Makefile.in,
2749         * as/hc08/clean.mk,
2750         * as/mcs51/Makefile.in,
2751         * as/mcs51/clean.mk,
2752         * as/z80/clean.mk,
2753         * as/z80/conf.mk,
2754         * as/z80/Makefile.in,
2755         * as/z80/clean.mk,
2756         * as/link/Makefile.in,
2757         * as/link/hc08/Makefile.in,
2758         * as/link/hc08/clean.mk,
2759         * as/link/mcs51/Makefile.in,
2760         * as/link/mcs51/clean.mk,
2761         * as/link/z80/Makefile.in,
2762         * as/link/z80/clean.mk,
2763         * as/link/z80/conf.mk,
2764         * debugger/mcs51/Makefile.in,
2765         * debugger/mcs51/clean.mk,
2766         * device/include/Makefile.in,
2767         * device/lib/Makefile.in,
2768         * device/lib/mcs51/Makefile.in,
2769         * device/lib/pic/Makefile.in,
2770         * device/lib/pic/Makefile.common.in,
2771         * device/lib/pic/Makefile.subdir,
2772         * device/lib/pic/Makefile.rules,
2773         * device/lib/pic16/libio/Makefile.in,
2774         * device/lib/pic16/Makefile.subdir,
2775         * device/lib/pic16/libdev/Makefile.in,
2776         * device/lib/pic16/Makefile.rules,
2777         * device/lib/pic16/Makefile.common.in,
2778         * sim/ucsim/avr.src/Makefile.in,
2779         * sim/ucsim/main_in.mk,
2780         * sim/ucsim/cmd.src/Makefile.in,
2781         * sim/ucsim/doc/Makefile.in,
2782         * sim/ucsim/gui.src/Makefile.in,
2783         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
2784         * sim/ucsim/gui.src/serio.src/Makefile.in,
2785         * sim/ucsim/hc08.src/Makefile.in,
2786         * sim/ucsim/libltdl/Makefile.in,
2787         * sim/ucsim/s51.src/Makefile.in,
2788         * sim/ucsim/sim.src/Makefile.in,
2789         * sim/ucsim/sim.src/conf.mk,
2790         * sim/ucsim/xa.src/Makefile.in,
2791         * sim/ucsim/z80.src/Makefile.in,
2792         * src/Makefile.in,
2793         * src/clean.mk,
2794         * src/port.mk,
2795         * support/cpp2/Makefile.in,
2796         * support/librarian/Makefile.in,
2797         * support/librarian/clean.mk,
2798         * support/makebin/Makefile.in,
2799         * support/makebin/clean.mk,
2800         * support/packihx/Makefile.in,
2801         * support/regression/Makefile.in,
2802         * support/regression/ports/ds390/spec.mk,
2803         * support/regression/ports/gbz80/spec.mk,
2804         * support/regression/ports/hc08/spec.mk,
2805         * support/regression/ports/mcs51/spec.mk,
2806         * support/regression/ports/mcs51-large/spec.mk,
2807         * support/regression/ports/mcs51-medium/spec.mk,
2808         * support/regression/ports/mcs51-xstack-auto/spec.mk,
2809         * support/regression/ports/pic14/spec.mk,
2810         * support/regression/ports/pic16/spec.mk,
2811         * support/regression/ports/mcs51-stack-auto/spec.mk,
2812         * support/regression/ports/ucz80/spec.mk,
2813         * support/regression/ports/xa51/spec.mk,
2814         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
2815         adding a slash after $(top_builddir) and/or adding @datarootdir@
2816         * configure.in,
2817         * debugger/mcs51/configure.in,
2818         * device/lib/pic/configure.in,
2819         * device/lib/pic16/configure.in,
2820         * sim/ucsim/configure.in,
2821         * support/cpp2/configure.in,
2822         * support/packihx/configure.in: changed AC_PREREQ to 2.60
2823         * configure,
2824         * debugger/mcs51/configure,
2825         * device/lib/pic/configure,
2826         * device/lib/pic16/configure,
2827         * sim/ucsim/configure,
2828         * support/cpp2/configure,
2829         * support/packihx/configure: generated with autoconf 2.60
2830
2831 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
2832
2833         * as/link/hc08/lkihx.c (newArea),
2834         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
2835
2836 2007-01-02 Borut Razem <borut.razem AT siol.net>
2837
2838         * doc/sdccman.lyx: documented #pragma sdcc_hash
2839         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
2840           initialized to 0
2841         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
2842
2843 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
2844
2845         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
2846         empty 'while'-loop to work correctly, see regression test 'while.c'
2847         * support/regression/tests/while.c: added
2848
2849 2007-01-01 Borut Razem <borut.razem AT siol.net>
2850
2851         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
2852           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
2853           support/cpp2/libcpp/sdcpp.c:
2854           sdcpp specific pragma/directive/option handling moved to sdcpp.c
2855         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
2856         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
2857
2858 2006-12-31 Borut Razem <borut.razem AT siol.net>
2859
2860         * SDCPP synchronized with GCC CPP release version 4.1.1,
2861           currently the latest release:
2862         * support/cpp2/libcpp, support/cpp2/libcpp/include,
2863           support/cpp2/libcpp/include/cpp-id-data.h
2864           support/cpp2/libiberty/fopen_unlocked.c
2865           support/cpp2/libiberty/md5.c
2866           support/cpp2/md5.h
2867           support/cpp2/opt-functions.awk
2868           support/cpp2/opt-gather.awk
2869           support/cpp2/optc-gen.awk
2870           support/cpp2/opth-gen.awk:
2871           added
2872         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
2873           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
2874           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
2875           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
2876           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
2877           support/cpp2/diagnostic.h, support/cpp2/except.h,
2878           support/cpp2/hwint.h, support/cpp2/input.h,
2879           support/cpp2/intl.h, support/cpp2/move-if-change,
2880           support/cpp2/opts.c, support/cpp2/opts.h,
2881           support/cpp2/output.h, support/cpp2/prefix.c,
2882           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
2883           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
2884           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
2885           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
2886           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
2887           support/cpp2/version.c:
2888           modified
2889         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
2890           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
2891           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
2892           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
2893           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
2894           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
2895           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
2896           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
2897           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
2898           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
2899           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
2900           moved
2901         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
2902           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
2903           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
2904           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
2905           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2906           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
2907           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
2908           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
2909           support/cpp2/hashtable.h, support/cpp2/line-map.c,
2910           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
2911           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
2912           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
2913           support/cpp2/system.h:
2914           deleted / moved
2915
2916 2006-12-31 Borut Razem <borut.razem AT siol.net>
2917
2918         * configure.in, configure: fixed bug #1538756: configure dies if bison
2919           and flex are not installed, 2nd try
2920
2921 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
2922
2923         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
2924         400.x for better code in RFE 899102
2925
2926 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
2927
2928         * src/SDCCpeeph.c (deadMove),
2929         * src/port.h,
2930         * src/mcs51/peep.h: renamed 'op' by 'reg'
2931         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
2932         (scan4op): small change for removeDeadMove(), added support for
2933         'callee saves' and/or PACLL function calls,
2934         (removeDeadMove): added, removes superflous 'mov r%1,%2',
2935         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
2936         left in new dispatcher mcs51DeadMove()
2937         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
2938         removeDeadMove()
2939         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
2940
2941 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2942
2943         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
2944           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
2945
2946 2006-12-30 Borut Razem <borut.razem AT siol.net>
2947
2948         * support/cpp2/spacs.h: deleted from svn
2949         * configure.in, configure: fixed bug #1538756: configure dies if bison
2950           and flex are not installed
2951
2952 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
2953
2954         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
2955           with this z80 passes printf float test when enabled
2956         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
2957
2958 2006-12-28 Borut Razem <borut.razem AT siol.net>
2959
2960         * support/cpp2/config.in, support/cpp2/configure.in,
2961           support/cpp2/configure, support/cpp2/Makefile.in:
2962           fix for the solaris build
2963
2964 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2965
2966         * src/SDCC.y (type_specifier2, pointer),
2967         * src/SDCCsymt.h,
2968         * src/SDCCsymt.c (mergeSpec, checkSClass),
2969         * support/Util/SDCCerr.c,
2970         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
2971         * support/valdiag/valdiag.py: Allow test cases to specify
2972           required language standard
2973         * support/valdiag/tests/restrict.c: New file to test restrict keyword
2974         * support/valdiag/tests/tentdecl.c: Supress empty source file error
2975
2976 2006-12-27 Borut Razem <borut.razem AT siol.net>
2977
2978         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
2979         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
2980           mbchar removed
2981         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
2982           fixed for borland C
2983         * support/cpp2/libiberty/Makefile.bcc: updated
2984         * src/pic16/main.c: fixed #pragma udata handling
2985         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
2986
2987 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
2988
2989         * src/SDCCpeeph.c: made labelHashEntry global,
2990         made pcDistance, FBYNAME static,
2991         (pcDistance): made static, use isComment and isLabel,
2992         (deadMove): added,
2993         (getLabelRef): added, extracted from labelRefCount(),
2994         (labelRefCount): use new getLabelRef(),
2995         (callFuncByName): made static, added deadMove,
2996         use isComment and isLabel,
2997         (newPeepRule): made static, set isLabel,
2998         (isLabelDefinition): added parameter isPeepRule to allow '%' in
2999         labels from peephole rules,
3000         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
3001         when isComment or isLabel is set
3002         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
3003         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
3004         to make them global
3005         * src/mcs51/peep.h: added
3006         * src/mcs51/peep.c: added, implements mcs51DeadMove()
3007         * src/port.h: added peep->deadMove to port structure
3008         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
3009         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
3010         deadMove, finally removed no. 1 and 2
3011         * src/mcs51/gen.c,
3012         * src/pic/gen.c,
3013         * src/z80/gen.c,
3014         * src/z80/ralloc.c,
3015         * src/pic16/gen.c,
3016         * src/ds390/gen.c,
3017         * src/hc08/gen.c: mark lines with isComment or isLabel
3018         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
3019         * .version,
3020         * sdcc.spec: bumped version to 2.6.3
3021
3022 2006-12-26 Borut Razem <borut.razem AT siol.net>
3023
3024         * support/cpp2/Makefile.in: added dependency on options.h
3025         * configure: regenerated
3026         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
3027         * support/cpp2/Makefile.in: added vasprintf.c
3028
3029 2006-12-25 Borut Razem <borut.razem AT siol.net>
3030
3031         * SDCPP synchronized with GCC CPP release version 3.4.6,
3032           the latest release before 4.x:
3033         * support/cpp2/Makefile.in, support/cpp2/config.h,
3034           support/cpp2/configure, support/cpp2/configure.in,
3035           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
3036           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
3037           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
3038           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
3039           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
3040           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
3041           support/cpp2/cpptrad.c, support/cpp2/except.h,
3042           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
3043           support/cpp2/hwint.h, support/cpp2/intl.h,
3044           support/cpp2/line-map.c, support/cpp2/line-map.h,
3045           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
3046           support/cpp2/output.h, support/cpp2/prefix.c,
3047           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
3048           support/cpp2/system.h, support/cpp2/version.c:
3049           modified
3050         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
3051           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
3052           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
3053           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
3054           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
3055           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
3056           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
3057           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
3058           support/cpp2/move-if-change, support/cpp2/opts.c,
3059           support/cpp2/opts.h, support/cpp2/opts.sh,
3060           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
3061           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
3062           support/cpp2/win32, support/cpp2/win32/dirent.c,
3063           support/cpp2/win32/dirent.h:
3064           added
3065         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
3066         * support/cpp2/sdcpp.h: renamed from sdcc.h
3067         * sdcppinit.c: deleted
3068
3069 2006-12-23 Borut Razem <borut.razem AT siol.net>
3070
3071         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
3072           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
3073           preproc.c: an other try to fix bug #982435: introduced
3074           -pedantic-parse-number command line option and pedantic_parse_number
3075           pragma
3076
3077 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
3078
3079         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
3080            BSEG handling,
3081           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
3082            corrected overlayed areax addresses, warn about memory overlaps
3083         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
3084         * src/avr/main.c,
3085         * src/ds390/main.c,
3086         * src/hc08/main.c,
3087         * src/mcs51/main.c,
3088         * src/pic16/main.c,
3089         * src/pic/main.c,
3090         * src/xa51/main.c,
3091         * src/z80/main.c,
3092         * src/port.h: added xabs_name and iabs_name
3093         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
3094           (glue, emitMaps): create and emit maps d_abs and i_abs
3095         * src/SDCCglue.h: cosmetic changes
3096         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
3097         * src/SDCCmem.h,
3098         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
3099           (allocDefault): put absolute, initialized globals in them
3100         * support/regression/tests/absolute.c: added absolute bdata test
3101         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
3102
3103 2006-12-20 Borut Razem <borut.razem AT siol.net>
3104
3105         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
3106         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
3107           added regression test for bug #982435
3108
3109 2006-12-18 Borut Razem <borut.razem AT siol.net>
3110
3111         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
3112         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
3113           small cosmetic changes
3114         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
3115         * support/regression/tests/bug-1351710.c: added regression test
3116
3117 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3118
3119         * doc/sdccman.lyx: added the long missed iCode table
3120           "<where is figure II?>", added links to wiki
3121
3122 2006-12-17 Borut Razem <borut.razem AT siol.net>
3123
3124         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
3125           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
3126           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
3127           unified table driven pragma handling, pragma argument type checking
3128         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
3129           current one - version 1.1.3
3130         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
3131
3132 2006-12-13 Raphael Neider <rneider AT web.de>
3133
3134         * src/pic/device.h: removed AssignedMemory structure and macros
3135         * src/pic/device.c: removed global finalMapping (linker assigns
3136             memory locations),
3137           (register_map): add SFRs to remembered memRanges
3138           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
3139           assignFixedRegisters,assignRelocatableRegisters): removed,
3140           (setMaxRAM,validAddress): adapted accordingly,
3141           (pic14_hasSharebank,pic14_getSharedStack): only report and use
3142             reasonably sized sharebanks,
3143         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
3144           (allDefsOutOfRange): removed unused code,
3145         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
3146             handling
3147         * src/pic/pcode.c (register_reassign): removed recursion warning,
3148             fired far too often,
3149         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
3150             to use existing pic14_stringInSet() to avoid duplicate symbols,
3151             tidied up the code a bit,
3152           (pic14printLocals): added in symmetry to printExterns, replaces
3153             writeUsedRegs more or less,
3154           (picglue): call new pic14_printLocals(),
3155         * device/include/pic/pic*.h: removed #pragma memmap directives,
3156             information gathered from include/pic/pic14devices.txt
3157         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
3158
3159 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
3160
3161         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
3162
3163 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3164
3165         * device/include/mcs51/cc2430.h: fixed missing ';'
3166
3167 2006-12-10 Raphael Neider <rneider AT web.de>
3168
3169         * device/lib/pic16/libc/stdio/vfprintf.c,
3170         * device/lib/pic16/libc/stdio/printf_small.c,
3171         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
3172           char arguments, as char varargs are cast to int by the caller,
3173           hopefully fixes #1604915 (other device libraries are still affected)
3174
3175 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3176
3177         * src/mcs51/ralloc.c (packRegsForAssign),
3178         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
3179
3180 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
3181
3182         * device/include/malloc.h: removed init_dynamic_memory
3183         * device/lib/malloc.c: made init_dynamic_memory static and automatically
3184           call it once from malloc. Also use _sdcc_heap[] from _heap.c
3185         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
3186         * device/lib/libsdcc.lib,
3187         * device/lib/Makefile.in,
3188         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
3189         * doc/sdccman.lyx: documented use of new _heap.c
3190         * support/regression/tests/malloc.c: removed init_dynamic_memory
3191         * src/cdbFile.c(spacesToUnderscores): new function,
3192           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
3193           1068030
3194         * device/include/tinibios.h: removed defines for putchar and getchar
3195         * device/lib/ds390/Makefile.in: added putchar.c
3196         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
3197
3198 2006-12-09 Borut Razem <borut.razem AT siol.net>
3199
3200         * support/cpp2/sdcc.h: prevent multiple inclusion
3201         * support/cpp2/options.h: deleted
3202
3203 2006-12-08 Borut Razem <borut.razem AT siol.net>
3204
3205         * support/cpp2/sdcc.h: removed x*alloc() macros
3206         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
3207         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
3208           support/cpp2/sdcpp.sdc: x*alloc files added to the project
3209         * support/cpp2/system.h: moved #include "sdcc.h"
3210         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
3211           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
3212           added
3213         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
3214           -funsigned-char options
3215         * support/cpp2/sdcppmain.c: fixed bug 1611411
3216
3217 2006-12-07 Borut Razem <borut.razem AT siol.net>
3218
3219         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
3220           directive
3221
3222 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
3223
3224         * src/SDCCsymt.c (addDecl): fixed bug 1609244
3225         * src/SDCCmain.c (linkEdit): fixed bug 1609279
3226         * doc/sdccman.lyx,
3227         * .version: bumped to 2.6.2 because a) it's been a while
3228           b) the linker sources have moved c) the preprocessor is upgraded
3229
3230 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3231
3232         * support/regression/tests/snprintf.c: some checks
3233         * lib/src/printf_large.c: %bc: read char instead of int from stack
3234
3235 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
3236
3237         * device/include/mcs51/cc2430.h: inserted _XPAGE
3238
3239 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3240
3241         * device/include/mcs51/cc2430.h: added
3242
3243 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
3244
3245         * device/include/asm/default/features.h,
3246         * device/include/asm/ds390/features.h,
3247         * device/include/mcs51/at89s53.h,
3248         * device/include/ser.h,
3249         * device/include/ser_ir.h,
3250         * device/include/serial.h: changed keywords to double underscore variants,
3251           fixes bug 1590261 some more, thanks Steven Borley
3252
3253 2006-12-01 Raphael Neider <rneider AT web.de>
3254
3255         * src/pic/pcode.c (register_reassign): do not crash on recursive code
3256           but emit warning (recursion is not supported for pic14)
3257
3258 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3259
3260         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
3261         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
3262
3263 2006-11-30 Raphael Neider <rneider AT web.de>
3264
3265         * src/pic/device.c (dump_sfr): always emit symbols
3266         * src/pic/glue.c (pic14printPublics): fixed typo
3267
3268 2006-11-30 Raphael Neider <rneider AT web.de>
3269
3270         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
3271           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
3272           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
3273            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
3274            a sharebank, use a non-shared bank for the stack if none available
3275         * src/pic/device.h (struct memRange): added linked list next field,
3276           added prototypes for above functions
3277         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
3278           (typeRegWithIdx): accept fixed and unfixed stack registers
3279         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
3280           the stack, handle shared and banked stack (except for WSAVE),
3281           (insertBankSel): removed useless optimization (will never fire),
3282           (FixRegisterBanking): added optimization for devices with only one
3283           possibly aliased bank of memory, like 16f84
3284         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
3285           devices have no SHAREBANK in the linker script
3286         * device/include/pic/pic14devices.txt: documented memmap
3287         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
3288
3289 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3290
3291         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
3292           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
3293           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
3294           genhc08Code): switched most of the D (debug) macros to DD (detailed
3295           debug) macros to better control clutter in the generated .asm file.
3296         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
3297           genRightShift): fixed bug with non-constant bit shift stored to
3298           a volatile result (SF Open Discussion forum thread #1616749).
3299           Single byte case is not yet optimized.
3300
3301 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
3302
3303         * device/include/asm/mcs51/features.h,
3304         * device/include/malloc.h,
3305         * device/include/stdio.h: changed keywords to double underscore variants,
3306           fixes bug 1590261
3307
3308 2006-11-27 Borut Razem <borut.razem AT siol.net>
3309
3310         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
3311           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
3312           support/cpp2/output.h, support/cpp2/cppinit.c,
3313           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
3314           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
3315           support/cpp2/cppdefault.c, support/cpp2/system.h,
3316           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
3317           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
3318           support/cpp2/prefix.c, support/cpp2/except.h,
3319           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
3320           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
3321           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
3322           support/cpp2/version.c, support/cpp2/cppmain.c,
3323           support/cpp2/version.h, support/cpp2/hashtable.c,
3324           support/cpp2/cpperror.c:
3325           synchronized with GCC CPP release version 3.3.6,
3326           the latest where cppmain.c still exists.
3327         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
3328           support/cpp2/sdcppinit.c: added
3329
3330 2006-11-27 Borut Razem <borut.razem AT siol.net>
3331
3332         * support/cpp2/cpplex.c:
3333           fixed _asm ... _endasm handling bug, introduce with GCC CPP
3334           synchronization
3335         * support/cpp2/cpplib.c: removed definitions of unused variables
3336
3337 2006-11-26 Borut Razem <borut.razem AT siol.net>
3338
3339         * support/cpp2/libiberty.h: commented out x*alloc() declarations
3340           since they are redefined by macros in support/cpp2/sdcc.h
3341         * support/cpp2/sdcc.h: x*alloc macro redefinition
3342
3343 2006-11-25 Borut Razem <borut.razem AT siol.net>
3344
3345         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
3346           support/cpp2/configure, support/cpp2/Makefile.in,
3347           support/cpp2/cppfiles.c, support/cpp2/output.h,
3348           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
3349           support/cpp2/config.h, support/cpp2/cpplib.h,
3350           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
3351           support/cpp2/cppdefault.c, support/cpp2/config.in,
3352           support/cpp2/system.h, support/cpp2/cpplex.c,
3353           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
3354           support/cpp2/cppdefault.h, support/cpp2/prefix.c
3355           support/cpp2/hwint.h, support/cpp2/mbchar.h,
3356           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
3357           support/cpp2/configure.in, support/cpp2/intl.h,
3358           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
3359           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
3360           support/cpp2/version.c, support/cpp2/cppmain.c,
3361           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
3362           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
3363           support/cpp2/cpperror.c,
3364           support/cpp2/libiberty/safe-ctype.c,
3365           support/cpp2/libiberty/safe-ctype.h,
3366           support/cpp2/libiberty/splay-tree.c,
3367           support/cpp2/libiberty/obstack.c,
3368           support/cpp2/libiberty/lbasename.c,
3369           support/cpp2/libiberty/splay-tree.h,
3370           support/cpp2/libiberty/obstack.h:
3371           synchronized with GCC CPP release version 3.2.3,
3372           the latest before integration of cpp into gcc
3373         * support/cpp2/except.h, support/cpp2/line-map.c,
3374           support/cpp2/line-map.h,
3375           support/cpp2/libiberty/hex.c,
3376           support/cpp2/libiberty/concat.c,
3377           support/cpp2/libiberty/filenames.h: added
3378         * support/cpp2/intl.c: deleted
3379
3380 2006-11-24 Borut Razem <borut.razem AT siol.net>
3381
3382         * src/SDCC.y: enabled compilation of empty source file
3383         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
3384           "ISO C forbids an empty source file"
3385         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
3386           if all the code is ifdefed out.
3387
3388 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3389
3390         * src/hc08/gen.c (genPcall): fix for bug #1601032
3391
3392 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
3393
3394         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
3395         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
3396         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
3397         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
3398         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
3399         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
3400         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
3401         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
3402         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
3403         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
3404         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
3405         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
3406         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
3407         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
3408         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
3409           Renamed to all upper case as per the standard set by SiLabs
3410
3411 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
3412
3413         * device/include/mcs51/C8051F520.h: new, added
3414         * device/include/mcs51/compiler.h: added link about predefined macros
3415
3416 2006-11-23 Raphael Neider <rneider AT web.de>
3417
3418         * src/regression/Makefile: add -L path to fresh library
3419         * src/regression/simulate: emphasize FAILED output
3420         * src/regression/create_stc: output _failures from gpsim
3421         * src/regression/compare4.c,
3422         * src/regression/rotate6.c: fixed char literals,
3423           all compile, all run =8-D
3424
3425         * src/pic/pcode.h: added isPCASMDIR macro
3426         * src/pic/gen.c (genAnd): fixed bit offset
3427         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
3428           packBits): unified register numbering schemes,
3429           (newReg): do not insert stack registers into hash table,
3430           (initStack): unpinned pseudo stack, simplified,
3431           (typeRegWithIdx): fixed retrieval of stack registers,
3432         * src/pic/pcode.c (addpCodeComment,sameBank): added,
3433           (pCodeReplace): removed invalid assertion,
3434           (insertPCodeInstruction): fixed newly added labels,
3435           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
3436           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
3437           DumpFlow): removed unsed (broken?) code,
3438           (insertBankSel): prevent STATUS from being BANKSELed,
3439           (FixRegisterBanking): rewritten from scratch, implemented generic
3440             optimizations (suppress BANKSELs to same register and to registers
3441             present in all banks),
3442           (AnalyzeBanking): update flow after BANKSELection
3443
3444         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
3445             sharebank, let linker place it, mark STKxx symbols as emitted
3446
3447 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3448
3449         * src/regression/arrays.c,
3450         * src/regression/bank1.c,
3451         * src/regression/bool2.c,
3452         * src/regression/compare7.c,
3453         * src/regression/compare8.c,
3454         * src/regression/compare9.c,
3455         * src/regression/compare10.c,
3456         * src/regression/configword.c,
3457         * src/regression/for.c,
3458         * src/regression/mult1.c,
3459         * src/regression/pointer1.c,
3460         * src/regression/rotate6.c,
3461         * src/regression/string1.c,
3462         * src/regression/struct1.c,
3463         * src/regression/Makefile: make PIC14 regression tests run again
3464           (3 fail, 6 won't compile)
3465
3466 2006-11-21 Raphael Neider <rneider AT web.de>
3467
3468         * device/include/pic16/pic18f4550.h,
3469         * device/include/pic16/pic18f4455.h,
3470         * device/lib/pic16/libdev/pic18f4550.c,
3471         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
3472         * configure.in: removed superfluous closing bracket
3473
3474 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3475
3476         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
3477           always positive.
3478
3479 2006-11-21 Raphael Neider <rneider AT web.de>
3480
3481         * src/pic/device.{c,h}: added pic14_getPIC()
3482         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
3483           (genAnd): added PIC code for one case, fixes #1597044
3484         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
3485           SFRs that are present in all banks (e.g., STATUS)
3486
3487 2006-11-20 Raphael Neider <rneider AT web.de>
3488
3489         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
3490           INCFSZ/INCFSZW and declared them as changing Z bit,
3491           (insertPCodeInstruction): correctly invert the above instructions,
3492           fixes #1599333,
3493           (DoBankSelect): don't panic on po_immediates
3494
3495 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3496
3497         * as/link/aslink.h,
3498         * as/link/mcs51/lkihx.c (newArea),
3499         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
3500         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
3501
3502 2006-11-11 Raphael Neider <rneider AT web.de>
3503
3504         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
3505           bitfield symbols, fixes #1579535 (once more...).
3506
3507 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3508
3509         * support/regression/generate-cases.py,
3510         * support/regression/fwk/include/testfwk.h,
3511         * support/regression/fwk/lib/testfwk.c: used code pointers,
3512           (about 50kByte less code generated for mcs51)
3513
3514 2006-11-06 Borut Razem <borut.razem AT siol.net>
3515
3516         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3517           debugger/mcs51/configure: fixed failed check because the function
3518           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
3519           who submitted the patch for gpsim.
3520         * debugger/mcs51/configure.in: removed the result message
3521         * debugger/mcs51/Makefile.in: fixed the config.status warning
3522           "... seems to ignore the --datarootdir setting"
3523
3524 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
3525
3526         * device/include/mcs51/c8051f020.h,
3527         * device/include/mcs51/c8051f040.h,
3528         * device/include/mcs51/c8051f060.h,
3529         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
3530         * src/z80/gen.c (gencjneshort),
3531         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
3532
3533 2006-10-31 Borut Razem <borut.razem AT siol.net>
3534
3535         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3536           debugger/mcs51/configure: get readline version
3537
3538 2006-10-30 Borut Razem <borut.razem AT siol.net>
3539
3540         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
3541         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3542           debugger/mcs51/configure: locate readline even when cross compiling
3543         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
3544
3545 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3546
3547         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
3548           serial port.
3549
3550 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
3551
3552         * device/include/malloc.h,
3553         * device/lib/calloc.c,
3554         * device/lib/free.c,
3555         * device/lib/malloc.c,
3556         * device/lib/realloc.c: moved definition of struct into sources
3557         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
3558
3559 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
3560
3561         * as/asx8051.dsp: corrected output directories
3562         * as/link/hc08: new directory for hc08 linker
3563         * as/hc08/aslink.h,             as/link/aslink.h,
3564         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
3565         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
3566         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
3567         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
3568         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
3569         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
3570         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
3571         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
3572         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
3573         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
3574         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
3575         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
3576         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
3577         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
3578         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
3579         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
3580         * as/link/hc08/conf.mk,
3581         * configure,
3582         * configure.in,
3583         * Makefile.in,
3584         * sdcc.dsw: moved hc08 linker to as/link/hc08
3585         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
3586         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
3587         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
3588         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
3589         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
3590         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
3591         * as/link/mcs51/aslink.dsp,
3592         * as/link/mcs51/Makefile.in: factored out the common files
3593         * as/hc08/lkstore.c: deleted, use the one already in as/link/
3594         * as/clean.mk: extra cleaning common files
3595         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
3596         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
3597         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
3598
3599 2006-10-29 Raphael Neider <rneider AT web.de>
3600
3601         * src/pic/ralloc.c (newReg): create aliases for registers with
3602           multiple names to fix #1579535 and #1584001,
3603           (regWithIdx,dirregWithName): resolve aliases on lookup
3604         * src/pic/pcode.c (DoBankSelect): die with error message on failing
3605           bankselect
3606         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
3607           to prevent build errors on small devices
3608
3609 2006-10-28 Raphael Neider <rneider AT web.de>
3610
3611         * src/pic/gen.c (genFunction,genCall): drop "same code page"
3612           assumption within interrupt handlers, fixes #1584940
3613         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
3614           "emitted" to avoid emitting them again in udata
3615
3616 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3617
3618         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
3619         Removed.
3620
3621 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3622
3623         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
3624         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
3625         on/off CR to CRLF conversion.
3626
3627 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3628
3629         * doc/sdccman.lyx: updated IRQ section
3630
3631 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3632
3633         * device/lib/serial_io.c: removed
3634         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
3635         replacements for serial_io.c
3636
3637 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
3638
3639         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
3640
3641 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3642
3643         * device/lib/serial_io.c: Default putchar() and getchar() for
3644           mcs51 uses serial port.
3645
3646 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
3647
3648         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
3649
3650 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3651
3652         * support/regression/ports/mcs51/support.c: smaller
3653         _sdcc_external_startup()
3654         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
3655
3656 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
3657
3658         * device/lib/gbz80/crt0.s,
3659         * device/lib/gbz80/crt0_rle.s,
3660         * device/lib/gbz80/div.s,
3661         * device/lib/gbz80/fstubs.s,
3662         * device/lib/gbz80/heap.s,
3663         * device/lib/gbz80/mul.s,
3664         * device/lib/gbz80/putchar.s,
3665         * device/lib/gbz80/stubs.s,
3666         * device/lib/z80/crt0.s,
3667         * device/lib/z80/crt0_rle.s,
3668         * device/lib/z80/div.s,
3669         * device/lib/z80/fstubs.s,
3670         * device/lib/z80/heap.s,
3671         * device/lib/z80/mul.s,
3672         * device/lib/z80/putchar.s,
3673         * device/lib/z80/stubs.s: reverted, I was mistaken
3674
3675 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3676
3677         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
3678         * support/regression/ports/mcs51/support.c: removed race
3679         condition on TI in _putchar allowing to use serial port mode 0
3680
3681 2006-10-20 Borut Razem <borut.razem AT siol.net>
3682
3683         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
3684
3685 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
3686
3687         * device/lib/gbz80/crt0.s,
3688         * device/lib/gbz80/crt0_rle.s,
3689         * device/lib/gbz80/div.s,
3690         * device/lib/gbz80/fstubs.s,
3691         * device/lib/gbz80/heap.s,
3692         * device/lib/gbz80/mul.s,
3693         * device/lib/gbz80/putchar.s,
3694         * device/lib/gbz80/stubs.s,
3695         * device/lib/z80/crt0.s,
3696         * device/lib/z80/crt0_rle.s,
3697         * device/lib/z80/div.s,
3698         * device/lib/z80/fstubs.s,
3699         * device/lib/z80/heap.s,
3700         * device/lib/z80/mul.s,
3701         * device/lib/z80/putchar.s,
3702         * device/lib/z80/stubs.s: removed all leading underscores from area names
3703
3704 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
3705
3706         * support/regression/ports/mcs51/support.c: use highest baudrate so the
3707           regression tests are not waiting in the simulator for simulated
3708           transmission of debug output
3709
3710 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3711
3712         * device/lib/printf_large.c: slightly smaller
3713         * doc/sdccman.lyx: do not use spaces within html links
3714
3715 2006-10-16 Borut Razem <borut.razem AT siol.net>
3716
3717         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
3718           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
3719           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
3720           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
3721           debugger/mcs51/configure:
3722           [ 1185668 ] add gnu readline support to sdcdb - enabled
3723
3724 2006-10-16 Raphael Neider <rneider AT web.de>
3725
3726         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
3727           fixes #1577882, removes close to all banking optimizations
3728
3729 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
3730
3731         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
3732           variables in code memory
3733         * support/regression/tests/absolute.c: added test for this
3734
3735 2006-10-15 Raphael Neider <rneider AT web.de>
3736
3737         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
3738           devices,
3739           (BankSelect): emit BANKSEL before touching linker-placed regs,
3740           fixes #1570934
3741
3742 2006-10-10 Raphael Neider <rneider AT web.de>
3743
3744         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
3745         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
3746         * src/pic/main.c (_pic14_parseOptions),
3747         * src/pic/main.h: mostly reverted to previous state, now use results
3748             from SDCCmain.c's argument parsing
3749
3750 2006-10-10 Borut Razem <borut.razem AT siol.net>
3751
3752         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
3753           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
3754           [ 1185668 ] add gnu readline support to sdcdb -
3755           prepared for READLINE, not enabled yet,
3756           thanks to <tal.bav AT gmail.com>
3757
3758 2006-10-10 Raphael Neider <rneider AT web.de>
3759
3760         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
3761         * src/pic16/devices.inc,
3762         * device/include/pic16 (pic18f[24]620.h),
3763         * device/include/pic18fregs.h,
3764         * device/lib/pic16/pics.all,
3765         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
3766             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
3767             Gary Plumbridge and Anton Strobl
3768
3769 2006-10-10 Raphael Neider <rneider AT web.de>
3770
3771         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
3772           --stack-siz=NUM options to configure the argument passing stack
3773         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
3774         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
3775           (pic14_getSharebankSize): obey --stack-siz=NUM,
3776           (pic14_getSharebankAddress): obey --stack-loc=NUM
3777
3778 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3779
3780         * doc/sdccman.lyx: added to the manual
3781         * doc/figures/ddd_example.png: added (neither pdflatex nor
3782         most browsers seem to like the .eps file)
3783
3784 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
3785
3786         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
3787         to /tmp and /var/tmp acc. LSB
3788         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
3789         RESULT_TYPE_IFX
3790         * support/regression/tests/onebyte.c: added test
3791
3792 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3793
3794         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
3795
3796 2006-10-05 Borut Razem <borut.razem AT siol.net>
3797
3798         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
3799           thanks to dfulab:
3800           - sdcc.dsw: changed property eol-style to CRLF
3801           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
3802
3803 2006-10-04 Raphael Neider <rneider AT web.de>
3804
3805         * device/include/pic/{pic16f84.h,pic16f84a.h},
3806         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
3807           from patch #1522504, thanks to Robas Teodor
3808
3809 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
3810
3811         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
3812           fixes bug 1566015
3813
3814 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
3815
3816         * src/pic16/glue.c (pic16emitMaps),
3817         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
3818         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
3819         * device/lib/pic16/libc/string/memcpypgm2ram.c,
3820         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
3821           Philipp Krause
3822         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
3823         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
3824
3825 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3826
3827         * support/librarian/sdcclib.c: Added option -l.
3828         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
3829           usage totals.
3830         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
3831           using Windows command prompt.
3832
3833 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
3834
3835         * device/lib/libsdcc.lib: added module rand
3836         * src/ds390/ralloc.c (rematStr),
3837         * src/hc08/ralloc.c (rematStr),
3838         * src/mcs51/ralloc.c (rematStr),
3839         * src/z80/ralloc.c (rematStr): made output more consistent
3840         * src/mcs51/gen.c: cosmetic changes
3841
3842 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
3843
3844         * src/port.h: added mem.cabs_name to PORT
3845         * src/ds390/main.c,
3846         * src/hc08/main.c,
3847         * src/mcs51/main.c,
3848         * src/pic16/main.c,
3849         * src/pic/main.c,
3850         * src/xa51/main.c,
3851         * src/z80/main.c: added cabs_name initializers
3852         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
3853           constants
3854           (emitMaps): emit absolutes in code memory into cabs_name
3855         * src/SDCCmem.c,
3856         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
3857         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
3858         * support/regression/fwk/include/testfwk.h: added define for at
3859         * support/regression/tests/absolute.c: added, new
3860
3861 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
3862
3863         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
3864           optimizations, see also patch 887161 by Stas Sergeev
3865         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
3866           to be necessary anymore,
3867           (102, 103, 104, 127): renamed all occurances of bp to _bp
3868
3869 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
3870
3871         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
3872           thanks Weston T. Schmidt for patch 1555221
3873         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
3874         * src/SDCCicode.c(geniCodeMultiply): small optimization
3875
3876 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
3877
3878         * device/include/stdlib.h: added rand prototypes
3879         * device/lib/rand.c: new, added
3880         * device/lib/Makefile.in: added rand.c
3881         * src/z80/peeph.def,
3882         * src/z80/peeph-gbz80.def,
3883         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
3884
3885 2006-09-20 Raphael Neider <rneider AT web.de>
3886
3887         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
3888
3889 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
3890
3891         * as/link/aslink.h: cosmetic changes
3892         * as/link/mcs51/Makefile.in,
3893         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
3894
3895 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
3896
3897         * as/link/aslink.h,
3898         * as/link/mcs51/aslink.h,
3899         * as/link/z80/aslink.h: merged and moved to as/link/
3900         * as/link/lkstore.c,
3901         * as/link/mcs51/lkstore.c: moved to as/link/
3902         * as/link/clean.mk: remove *.o
3903         * as/link/mcs51/alloc.h: deleted
3904         * as/link/mcs51/lkarea.c: added lnksect prototype
3905         * as/link/mcs51/lkdata.c,
3906         * as/link/mcs51/lklex.c,
3907         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
3908         * as/link/mcs51/lkmem.c,
3909         * as/link/mcs51/lknoice.c: removed include strcmpi.h
3910         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
3911         * as/link/mcs51/aslink.dsp,
3912         * as/link/mcs51/Makefile.aslink,
3913         * as/link/mcs51/Makefile.bcc,
3914         * as/link/mcs51/Makefile.in: updated for moved files
3915         * as/link/z80/lkarea.c,
3916         * as/link/z80/lkhead.c,
3917         * as/link/z80/lklex.c,
3918         * as/link/z80/lklibr.c,
3919         * as/link/z80/lklist.c,
3920         * as/link/z80/lkmain.c,
3921         * as/link/z80/lkrloc.c,
3922         * as/link/z80/lksym.c: synced with mcs51
3923         * as/link/z80/lkdata.c,
3924         * as/link/z80/lkeval.c,
3925         * as/link/z80/lkihx.c,
3926         * as/link/z80/lks19.c: cosmetic changes
3927         * as/link/z80/Makefile.in,
3928         * as/link/z80/linkgbz80.dsp,
3929         * as/link/z80/linkz80.dsp: updated for moved files
3930
3931 2006-09-16 Borut Razem <borut.razem AT siol.net>
3932
3933         * debugger/mcs51/sdcdb.c: partially fixed
3934           [ 1203664 ] sdcdb fails to open files w. two "." periods
3935         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
3936           debugger/mcs51/symtab.h: fixed indenting
3937         * configure.in, configure: up to date with latest Maarten's changes
3938
3939 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
3940
3941         as/link/mcs51
3942         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
3943         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
3944         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
3945         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
3946         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
3947         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
3948         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
3949         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
3950         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
3951         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
3952         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
3953         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
3954         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
3955         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
3956         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
3957         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
3958         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
3959         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
3960         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
3961         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
3962         as/link/mcs51/alloc.h,
3963         as/link/mcs51/clean.mk,
3964         as/link/mcs51/conf.mk,
3965         as/link/mcs51/Makefile.bcc,
3966         as/link/mcs51/Makefile.in,
3967         as/link/mcs51/readme.390,
3968         as/link/mcs51/strcmpi.c,
3969         as/link/mcs51/strcmpi.h,
3970         as/mcs51/clean.mk,
3971         as/mcs51/Makefile.bcc,
3972         as/mcs51/Makefile.in,
3973         configure,
3974         Makefile.in,
3975         sdcc.dsw: moved mcs51 linker to as/link/mcs51
3976
3977 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
3978
3979         * as/link,
3980         * as/link/Makefile.in,
3981         * as/link/z80/linkgbz80.dsp,
3982         * as/link/z80/linkz80.dsp,
3983         * configure,
3984         * link,
3985         * link/clean.mk,
3986         * link/Makefile.in,
3987         * link/README,
3988         * link/z80,
3989         * link/z80/aslink.h,
3990         * link/z80/clean.mk,
3991         * link/z80/conf.mk,
3992         * link/z80/linkgbz80.dsp,
3993         * link/z80/linkz80.dsp,
3994         * link/z80/lkarea.c,
3995         * link/z80/lkdata.c,
3996         * link/z80/lkeval.c,
3997         * link/z80/lkgb.c,
3998         * link/z80/lkgg.c,
3999         * link/z80/lkhead.c,
4000         * link/z80/lkihx.c,
4001         * link/z80/lklex.c,
4002         * link/z80/lklibr.c,
4003         * link/z80/lklist.c,
4004         * link/z80/lkmain.c,
4005         * link/z80/lkrloc.c,
4006         * link/z80/lks19.c,
4007         * link/z80/lksym.c,
4008         * link/z80/Makefile.in,
4009         * Makefile.in,
4010         * sdcc.dsw: moved link/ to as/link/
4011
4012 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
4013
4014         * as/mcs51/i51mch.c (machine): fixed warning
4015
4016 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4017
4018         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
4019
4020 2006-09-09 Borut Razem <borut.razem AT siol.net>
4021
4022         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
4023           sdcdb WIN32 native port
4024         * src/clean.mk: fixed
4025
4026 2006-09-08 Borut Razem <borut.razem AT siol.net>
4027
4028         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
4029
4030 2006-09-08 Raphael Neider <rneider AT web.de>
4031
4032         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
4033         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
4034             to gplink to disable processor mismatch warning and to allow
4035             the use of devices with only aliased (shared) memory banks,
4036           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
4037
4038 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4039
4040         * doc/sdccman.lyx: Some re-formating plus example on using
4041           #pragma preproc_asm +/-
4042
4043 2006-09-07 Borut Razem <borut.razem AT siol.net>
4044
4045         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
4046           section
4047
4048 2006-09-06 Borut Razem <borut.razem AT siol.net>
4049
4050         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
4051           line at sdcc.nsi:153
4052         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
4053
4054 2006-09-05 Borut Razem <borut.razem AT siol.net>
4055
4056         * configure.in, configure: support for winsock2
4057         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
4058           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
4059           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
4060           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
4061           debugger/mcs51/symtab.h: sdcdb WIN32 native port
4062
4063 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
4064
4065         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
4066           and OP_DEFS
4067         * support/regression/tests/bug1551947.c: new, added
4068         * src/SDCCsymt.h: strings are char* not byte*
4069
4070 2006-09-05 Raphael Neider <rneider AT web.de>
4071
4072         * device/lib/pic16/libdev/pic18f4550.c,
4073           device/include/pic16/pic18f4550.h: added PORTD/TRISD
4074             declarations/definitions from patch #1520949
4075
4076 2006-09-05 Raphael Neider <rneider AT web.de>
4077
4078         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
4079           byte-aligned bitfields, fixes #1539278
4080
4081 2006-09-05 Raphael Neider <rneider AT web.de>
4082
4083         * src/pic/gen.c (genReceive): skip unreferenced arguments,
4084           fixes #1544120
4085
4086 2006-09-04 Borut Razem <borut.razem AT siol.net>
4087
4088         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
4089         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
4090           -mno-cygwin is a part of the compiler name
4091         * support/scripts/sdcc_mingw32: don't disable ucsim
4092
4093 2006-09-03 Borut Razem <borut.razem AT siol.net>
4094
4095         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
4096         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
4097
4098 2006-09-03 Raphael Neider <rneider AT web.de>
4099
4100         * src/pic/ralloc.c,
4101         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
4102           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
4103           fixes #1550049
4104
4105 2006-09-01 Borut Razem <borut.razem AT siol.net>
4106
4107         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
4108           to make ppc-osx happy
4109
4110 2006-08-31 Borut Razem <borut.razem AT siol.net>
4111
4112         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
4113         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
4114         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
4115         * support/regression/ports/ds390/spec.mk,
4116           support/regression/ports/mcs51/spec.mk,
4117           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
4118           To run regression tests in mingw environment:
4119           make DEV_NULL=NUL CC=gcc
4120
4121 2006-08-30 Borut Razem <borut.razem AT siol.net>
4122
4123         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
4124           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
4125           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
4126           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
4127           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
4128           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
4129           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
4130           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
4131           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
4132           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
4133           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
4134           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
4135           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
4136           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
4137           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
4138           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
4139           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
4140           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
4141           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
4142           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
4143           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
4144           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
4145           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
4146           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
4147           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
4148           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
4149           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
4150           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
4151           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
4152           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
4153           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
4154           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
4155           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
4156           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
4157           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
4158           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
4159           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4160           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
4161           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
4162           ucsim WIN32 native port
4163
4164 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4165
4166         * doc/sdccman.lyx: added note on dynamic memory heap initialization
4167
4168 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4169
4170         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
4171         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
4172
4173 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
4174
4175         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
4176         * support/regression/tests/bug1546986.c: new, added
4177         * as/mcs51/.cvsignore,
4178         * debugger/mcs51/.cvsignore,
4179         * src/.cvsignore: deleted
4180
4181 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4182
4183         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
4184           definitions)
4185
4186 2006-08-20 Borut Razem <borut.razem AT siol.net>
4187
4188         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
4189           removed cl_listen_console::match(), cl_console::match(),
4190           restructured cl_commander::proc_input()
4191
4192 2006-08-16 Borut Razem <borut.razem AT siol.net>
4193
4194         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
4195           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
4196           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
4197
4198 2006-08-14 Borut Razem <borut.razem AT siol.net>
4199
4200         * support/regression/Makefile.in,
4201           support/regression/ports/pic14/gpsim.cmd,
4202           support/regression/ports/pic14/spec.mk,
4203           support/regression/ports/pic14/support.c:
4204           added pic14 regression test
4205
4206 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
4207
4208         * as/doc/asxhtm.html: documented changed ABS behaviour
4209         * as/doc/README: fixed some typos
4210
4211 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
4212
4213         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
4214           not defined on host
4215
4216 2006-08-12 Borut Razem <borut.razem AT siol.net>
4217
4218         * support/regression/fwk/include/testfwk.h,
4219           support/regression/fwk/lib/testfwk.c,
4220           support/regression/generate-cases.py,
4221           support/regression/Makefile.in:
4222           regression test framework does not depend on function pointers and
4223           variable arguments
4224
4225 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
4226
4227         * device/include/stddef.h: c temporary hack to fix bug 1518273
4228
4229 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4230
4231         * device/include/mcs51/cc2510fx.h: added
4232         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
4233           to projects.
4234
4235 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
4236
4237         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
4238         * as/z80/Makefile.in: added strcmpi.c
4239         * as/z80/z80adr.c: added upper case registers and lower case conditionals
4240         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
4241
4242 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
4243
4244         * device/lib/gbz80/asm_strings.s,
4245         * device/lib/gbz80/crt0_rle.s,
4246         * device/lib/gbz80/div.s,
4247         * device/lib/gbz80/mul.s,
4248         * device/lib/gbz80/shift.s,
4249         * device/lib/z80/asm_strings.s,
4250         * device/lib/z80/crt0_rle.s,
4251         * device/lib/z80/div.s,
4252         * device/lib/z80/mul.s,
4253         * device/lib/z80/shift.s: changed to all lower case menmonics except the
4254           flags which are all upper case
4255
4256 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
4257
4258         * as/z80/asm.h: made CASE_SENSITIVE 1
4259         * link/z80/aslink.h: made CASE_SENSITIVE 1
4260         * src/z80/gen.c (throughout): made all conditionals upper case
4261         * support/regression/tests/bug1503067.c: new
4262
4263 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
4264
4265         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
4266           (shiftIntoPair): added case 2 for PAIR_IY,
4267           (setupToPreserveCarry): replaced parameters with iCode and check if
4268            PAIR_DE is in use to fix bug 1399290,
4269           (genPlus, genMinus): updated call to setupToPreserveCarry
4270         * support/regression/tests/bug1399290.c: new
4271
4272 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
4273
4274         * device/lib/Makefile.in (Z80SOURCES): enabled float support
4275         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
4276         * src/ds390/gen.c (shiftRLong),
4277         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
4278         * src/mcs51/gen.c (sameReg): changed to sameByte,
4279           (xch_a_aopGet): new,
4280           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
4281            shiftRLong): fixed bug 1533966
4282         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
4283           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
4284         * support/regression/Makefile.in: disabled z80, enabled ucz80
4285         * support/regression/tests/float_trans.c: enabled test for z80 and host
4286         * support/regression/tests/shifts2.c: new, for testing bug 1533966
4287
4288 2006-08-01 Borut Razem <borut.razem AT siol.net>
4289
4290         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
4291           comparison is always false due to limited range of data type
4292           on PPC64 machine (openpower-linux1) where "char = unsigned char"
4293
4294 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
4295
4296         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
4297         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
4298         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
4299         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
4300
4301 2006-07-31 Borut Razem <borut.razem AT siol.net>
4302
4303         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
4304           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
4305           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
4306           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
4307           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
4308           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
4309           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
4310           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
4311           enable ucsim mingw compilation. Serial port is disabled,
4312           since it uses termios.h API, which is not available on native
4313           WIN32
4314
4315 2006-07-31 Borut Razem <borut.razem AT siol.net>
4316
4317         * Small Device C Compiler 2.6.0 released
4318         * support/scripts/sdcc.nsi: added FULL_DOC option
4319         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
4320
4321 2006-07-28 Borut Razem <borut.razem AT siol.net>
4322
4323         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
4324         * doc/INSTALL.txt: updated
4325
4326 2006-07-27 Borut Razem <borut.razem AT siol.net>
4327
4328         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
4329           device/lib/pic/libdev/Makefile.in: fixed bug
4330           [ 1438354 ] pic libsdcc: distclean doesn't work
4331         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
4332           device/lib/pic16/libio/Makefile.in: fixed bug
4333           [ 1438344 ] pic16 lib: clean doesn't work properly
4334         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
4335
4336 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
4337
4338         * device/lib/pic/libsdcc/fsdiv.c,
4339         * device/lib/pic/libsdcc/fsmul.c,
4340         * device/lib/pic16/libsdcc/float/fsdiv.c,
4341         * device/lib/pic16/libsdcc/float/fsmul.c,
4342         * device/lib/_fsdiv.c,
4343         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
4344         * support/regression/tests/bug1520966.c: added
4345         * doc/knownbugs.html: removed [ 1520966 ] from the list
4346
4347 2006-07-25 Borut Razem <borut.razem AT siol.net>
4348
4349         * configure.in, configure, sdccconf_in.h: fixed bug
4350           [ 1519095 ] regression test onebyte.c fails on ppc64 host
4351         * doc/knownbugs.html: removed [ 1519095 ] from the list
4352
4353 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
4354
4355         * doc/knownbugs.html: added, contains list of known bugs at release
4356         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
4357
4358 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
4359
4360         * device/include/mcs51/compiler.h: added SFRX for xdata based special
4361           function registers and corrected defaults with additional warning
4362         * device/lib/malloc.c: cosmetic changes
4363         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
4364         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
4365           (fillGaps): and used it
4366
4367 2006-07-20 Raphael Neider <rneider AT web.de>
4368
4369         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
4370           output unless SDCCPICDEBUG is set
4371         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
4372           output if SILENT is set
4373
4374 2006-07-11 Borut Razem <borut.razem AT siol.net>
4375
4376         * doc/README.txt: updated
4377
4378 2006-07-10 Borut Razem <borut.razem AT siol.net>
4379
4380         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
4381           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
4382           in WIN32 installation
4383         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
4384           release candidate 1
4385
4386 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
4387
4388         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
4389         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
4390
4391 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
4392
4393         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
4394
4395 2006-07-06 Borut Razem <borut.razem AT siol.net>
4396
4397         * support/regression/tests/bitfields.c:
4398           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
4399         * support/regression/tests/constantRange.c:
4400           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
4401
4402 2006-07-04 Borut Razem <borut.razem AT siol.net>
4403
4404         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
4405           src/port.mk,
4406           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
4407           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
4408           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
4409           reverted changes from 2006-07-03
4410         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
4411         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
4412           added CPPFLAGS, used by the host port
4413
4414 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
4415
4416         * support/regression/valdiag/tests/switch.c,
4417         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
4418         * support/regression/tests/libmullong.c: fixed for host
4419         * support/regression/ports/host/spec.mk: disable all warnings for host,
4420         SDCC runs with --less-pedantic too
4421
4422 2006-07-03 Borut Razem <borut.razem AT siol.net>
4423
4424         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
4425           defined CPPFLAGS
4426         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
4427         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
4428           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
4429           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
4430           include ../port.mk
4431         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
4432           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4433           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
4434           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
4435
4436 2006-07-02 Raphael Neider <rneider AT web.de>
4437
4438         * src/pic16/devices.inc,
4439         * device/include/pic16/pic18fregs.h,
4440         * device/include/pic16/pic18f4550.h,
4441         * device/lib/pic16/pics.all,
4442         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
4443
4444 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
4445
4446         * as/hc08/lkaomf51.c (OutputName),
4447         * as/mcs51/lkaomf51.c (OutputName),
4448         * as/z80/asmain.c (asmbl),
4449         * src/ds390/main.c (asmLineNodeFromLineNode),
4450         * src/hc08/ralloc.c (hc08_assignRegisters),
4451         * src/mcs51/main.c (asmLineNodeFromLineNode),
4452         * src/xa51/ralloc.c (checkRegMask),
4453         * src/xa51/gen.c (emitcode),
4454         * src/z80/gen.c (_emit2),
4455         * src/SDCCast.c (searchLitOp),
4456         * src/SDCCglobl.h,
4457         * support/packihx/packihx.c,
4458         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
4459         * src/ds390/gen.c (aopPutUsesAcc),
4460         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
4461         * support/regression/tests/libmullong.c (mullong_wrapper),
4462         * src/SDCCsymt.c (powof2),
4463         * src/SDCCast.c,
4464         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
4465         * src/SDCCsymt.h: added TYPE_TARGET_*
4466         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
4467         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
4468         SDCCast because 1) header problems 2) this is the right place
4469         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
4470         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
4471         prototype
4472
4473 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4474
4475         * src/SDCCicode.h: removed buggy semicolon in unused macro
4476         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
4477         search for previous definiton of auto symbols too,
4478         (findPrevUse): fixed logic of emitWarnings
4479
4480 2006-06-26 Raphael Neider <rneider AT web.de>
4481
4482         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
4483           PCLATH and PCLATU on interrupts, potentially fixes #1505141
4484
4485 2006-06-25 Raphael Neider <rneider AT web.de>
4486
4487         * device/lib/pic/libm: NEW, added math library functions
4488         * device/lib/pic/libsdcc: NEW; added float support functions
4489         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
4490         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
4491           NEW, added math related headers
4492         * device/include/asm/pic/features.h: NEW
4493         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
4494           (popGet): allow larger offsets for AOP_PCODE,
4495           (genDataPointerSet): handle literals explicitly, more debug output,
4496           (genAssign): fixed for float using aopLiteral ;-)
4497         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
4498           GOTO initialisation routine
4499         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
4500           flag on registers, fixes #1469043 (local variables do not work)
4501         * src/pic/main.c (_pic14_do_link),
4502         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
4503           available
4504
4505 2006-06-25 Borut Razem <borut.razem AT siol.net>
4506
4507         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
4508           characters printed (not including the trailing '\0' used to end
4509           output to strings). Problem detected in regression test bug-927659.c.
4510           NOTE: printf() family functions should return int instead
4511           unsigned int!
4512         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
4513           specifier are printed as themselves
4514         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
4515           support flags, width and precision specifiers
4516
4517 2006-06-24 Borut Razem <borut.razem AT siol.net>
4518
4519         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
4520           to the list of sdcc tagrets not supporting bit type
4521         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
4522           testfor pic16 due to bug:
4523           [ 1511794 ] pic16: regression test bug-895992.c fails
4524
4525 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
4526
4527         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
4528         * src/SDCCglue.c (initPointer), fixed bug 1496419
4529         * support/regression/tests/bug1496419.c: new, added
4530
4531 2006-06-22 Borut Razem <borut.razem AT siol.net>
4532
4533         * support/regression/ports/pic16/support.c: use gpsim usart module from
4534           libgpsim_modules library
4535
4536 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4537
4538         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
4539         IP0H to IPH0.
4540
4541 2006-06-19 Raphael Neider <rneider AT web.de>
4542
4543         * src/pic/glue.h,src/pic16/glue.h: added prototypes
4544         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
4545           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
4546           (pic14printExterns,pic14printPublics,pic16printPublics,
4547           pic16_printExterns): use new functions to emit symbols
4548           (picglue,pic16glue): emit publics before emitting externs
4549         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
4550           locally defined functions to avoid bug #1443651
4551         * support/regression/tests/bug-716242.c: removed pic16 workaround
4552         * support/regression/ports/pic16/spec.mk: ignore errors during build
4553
4554 2006-06-19 Raphael Neider <rneider AT web.de>
4555
4556         * src/pic/glue.h: added pic14aopLiteral prototype
4557         * src/pic/glue.c (pic14aopLiteral): return unsigned int
4558         * src/pic/gen.c: removed stdint.h dependency
4559           (aopGet): use Safe_strdup()
4560           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
4561           (genDataPointerSet): use pic14aopLiteral()
4562         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
4563           for pic16; thanks to Bernhard and Maarten
4564
4565 2006-06-18 Borut Razem <borut.razem AT siol.net>
4566
4567         * support/regression/tests/structflexarray.c: flexible array members
4568           not supported by gcc < 3
4569         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
4570           GUI tool by default
4571         * src/pic/gen.c: don't include [p]strdin.h on solaris
4572         * support/Util/pstdint.h: addad svn attributes
4573         * support/regression/tests/constantRange.c,
4574           support/regression/tests/rotate.c: include inttypes.h instead
4575           stdint.h on solaris, addad svn attributes
4576
4577 2006-06-18 Raphael Neider <rneider AT web.de>
4578
4579         * src/SDCCsymt.c (initCSupport): change return type of divschar to
4580           int for PIC16
4581         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
4582           (pic16_genMinusBits): simplified sign-extension
4583           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
4584             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
4585             adjusted to correctly handle mixed-signed operands, disabled
4586             now unused multiplciation routines
4587         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
4588           (assignResultValue): added argument denoting the size of the result
4589             as returned by the function (fixes upcasts in assigning from
4590             function calls: char foo(); int i = foo();)
4591           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
4592             function result to assignResultValue
4593           (genMult): disabled inlined multiplication code
4594           (genDiv): augmented to also handle the modulus operator, fixed to
4595             handle mixed-signed operands correctly
4596           (genMod): simply call genDiv, disabled unused code
4597           (genAssign): fixed missing (sign-)extension on result
4598         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
4599             valid char operands, allow signed operands for native code, added
4600             division and modulo operator handling
4601         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
4602
4603         As a consequence, onebyte.c (if split into two files) and muldiv.c
4604         pass regression tests.
4605
4606 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4607
4608         * doc/Makefile.in: two runs of makeindex seem needed to get
4609         correct page references in the index of sdccman.pdf
4610         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
4611
4612 2006-06-17 Borut Razem <borut.razem AT siol.net>
4613
4614         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
4615
4616 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4617
4618         * doc/sdccman.lyx: updated, added (porting source code, debugging),
4619         mentioned ec2drv and paulmon
4620
4621 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
4622
4623         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
4624           consecutive abs areas
4625           (find_empty_space, allocate_space): added map to handle codemap or
4626            xdatamap,
4627           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
4628            absolute idata and xdata
4629         * as/mcs51/lkmem.c (summary2): updated legend
4630
4631 2006-06-16 Raphael Neider <rneider AT web.de>
4632
4633         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
4634
4635 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
4636
4637         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
4638           1208515
4639         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
4640
4641 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
4642
4643         * src/port.h (struct PORT): added field gp_tags, to hold the tag
4644         value of generic pointers,
4645         * src/avr/main.c,
4646           src/ds390/main.c,
4647           src/hc08/main.c,
4648           src/izt/i186.c,
4649           src/izt/tlcs900h.c,
4650           src/mcs51/main.c,
4651           src/pic/main.c,
4652           src/pic16/main.c,
4653           src/xa51/main.c,
4654           src/z80/main.c: PORT structure, added elements for gp_tags field,
4655         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
4656         fields in the PORT structure of each port,
4657         * src/SDCCast.c (decorateType): allow processing of generic pointers
4658         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
4659         S_FIXED symbols
4660
4661 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
4662
4663         * link/z80/lkgb.c,
4664         * link/z80/lkgg.c,
4665         * src/pic16/gen.c,
4666         * src/pic16/main.c,
4667         * src/pic16/pcode.c,
4668         * src/pic/main.c,
4669         * src/pic/pcoderegs.c,
4670         * src/SDCCicode.c,
4671         * src/SDCCmain.c,
4672         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
4673           bug 1504689 on minGW
4674
4675 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4676
4677         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
4678
4679 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
4680
4681         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
4682
4683 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
4684
4685         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
4686           for optimization
4687
4688 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
4689
4690         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
4691         to a char variable. Fixed bug #1504211
4692         * device/include/pic16/adc.h,
4693         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
4694         and fixed bug #1364390
4695
4696 2006-06-10 Borut Razem <borut.razem AT siol.net>
4697
4698         * CVSROOT: removed the CVS left-over
4699
4700 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
4701
4702         * as/hc08/asmain.c (asexit),
4703         * as/hc08/lkmain.c (lkexit),
4704         * as/mcs51/asmain.c (asexit),
4705         * as/mcs51/lkmain.c (lkexit),
4706         * src/SDCCglue.c (DEFSETFUNC),
4707         * src/SDCCmain.c (linkEdit, assemble),
4708         * support/librarian/sdcclib.c (AddRel),
4709           replaced unlink() by standard C remove()
4710         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
4711         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
4712           gatherImplicitVariables): new, added to fix bug 608752,
4713           (createFunction): added gatherImplicitVariables()
4714         * src/SDCCast.h: added createRMW prototype
4715         * src/SDCCsymt.h (struct symbol): added infertype
4716         * support/regression/tests/bug608752.c: new, added
4717
4718 2006-06-10 Raphael Neider <rneider AT web.de>
4719
4720         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
4721           multibyte dummy reads (fixes #1503234)
4722
4723 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
4724
4725         * device/include/mcs51/compiler.h: new, added header file to enable
4726           creating common sfr definition header files for different compilers
4727
4728 2006-06-05 Raphael Neider <rneider AT web.de>
4729
4730         * src/pic16/{pcode.h,genarith.c}:
4731           introduced pCodeOp combining any two pCodeOps (previously only
4732           two register operands could be combined), removed pcop2 from
4733           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
4734         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
4735         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
4736           rewritten to use new PO_TWO_OPS
4737         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
4738         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
4739           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
4740           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
4741           (pic16_get_op): embraced return arg to allow #define return(x),
4742             added new case for combined opcodes
4743           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
4744           (pic16_pCode2str,pic16_getRegFrompCodeOp,
4745            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
4746
4747 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
4748
4749         * src/SDCCval.c (checkConstantRange): added
4750         * src/SDCCval.h: added checkConstantRange
4751         * support/Util/SDCCerr.c,
4752         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
4753         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
4754         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
4755         * src/SDCCast.c (decorateType): added checkConstantRange,
4756         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
4757         can be emitted with the correct always true/false warning,
4758         added optimization for double '!';
4759         result of decorateType() must be assigned back to the tree, because
4760         decorateType() can change the tree
4761         * src/SDCCicode.c (geniCodeLogic),
4762         (geniCodeAssign): replaced new checkConstantRange, added warnings,
4763         (checkConstantRange): removed, it was only a fragment which never
4764         emitted a warning
4765         * src/SDCCsymt.c (computeType): fixed promotion for
4766         "-1 < (unsigned bit) b"
4767         * src/pic/ralloc.c (packRegsForAssign),
4768         * src/pic16/ralloc.c (packRegsForAssign),
4769         * src/hc08/ralloc.c (packRegsForAssign),
4770         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
4771         from mcs51
4772         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
4773         * support/regression/tests/constantRange.c: added
4774         * support/valdiag/tests/constantRange.c: added
4775         * support/valdiag/valdiag.py: added -DPORT_HOST=1
4776
4777 2006-06-02 Borut Razem <borut.razem AT siol.net>
4778
4779         * support/regression/ports/pic16/support.c: increase stack size
4780           to 255 bytes
4781         * support/regression/Makefile.in: sort tests by name so that the
4782           resutlts can be compared on different machines / platforms
4783
4784 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4785
4786         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
4787         * src/ds390/gen.c (emitLabel): new, added,
4788           (genDjnz): fixed stack overflow bug,
4789           (throughout): cosmetic changes to sync with mcs51/gen.c,
4790           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
4791         * src/mcs51/gen.c (genEndFunction): small optimization,
4792           (throughout): cosmetic changes to sync with ds390/gen.c
4793
4794 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4795
4796         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
4797           (_print_format): fixed printing pointers
4798         * src/mcs51/gen.c (emitLabel, movb): new, added,
4799           (genAssign): small optimization,
4800           (genDjnz): fixed stack overflow bug,
4801           (throughout): replaced sprintf with SNPRINTF,
4802           replaced mcs51_regWithIdx with REG_WITH_INDEX,
4803           replaced emitcode("mov", "b,...") with MOVB(...),
4804           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
4805           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
4806         * src/mcs51/peeph.def: added rules 140 and 264
4807         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
4808           so they may get optimized into registers
4809
4810 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
4811
4812         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
4813           immediately when encountered,
4814           (printUsage): always use stderr even on windows
4815
4816 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
4817
4818         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
4819         (processParms): fixed bug #1247551
4820         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
4821         parseCmdLine, main): print '--version' to stdout,
4822         print 'help' to stdout if --help is given,
4823         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
4824         arguments are given; fixed --help
4825
4826 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
4827
4828         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
4829         * support/regression/tests/bug-1493710.c: added
4830
4831 2006-05-27 Borut Razem <borut.razem AT siol.net>
4832
4833         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
4834           static instead auto
4835         * support/regression/ports/pic16/support.c: increase stack size
4836           from default 64 bytes to 128 bytes
4837         * support/regression/tests/staticinit.c,
4838           support/regression/tests/float.c: regression tests fully enabled
4839           for pic16 port by putting the initialized data arrays into the code
4840           section
4841         * support/regression/ports/pic16/spec.mk: don't link default libraries.
4842           This was changed by mistake in the previous version.
4843
4844 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
4845
4846         * src/pic16/gen.c (genFunction, genEndFunction): some
4847         beautifications, fixed bug with falsely restoring FSR2 in large
4848         stack model, thanks to Beau E. Cox for reporting the bug
4849
4850 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4851
4852         * debugger/mcs51/break.c,
4853         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
4854           use %p to print pointers, made address variables unsigned
4855         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
4856         * debugger/mcs51/symtab.c (parseSymbol): must return something
4857         * src/mcs51/gen.c (aopForSym): small optimization,
4858            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
4859           (freeAsmop): added missing break,
4860           (aopPut): removed parameter bvolatile, determine it inside the function,
4861           (saveRegisters, unsaveRegisters): small optimization,
4862           (genIpush): removed pointless check,
4863           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
4864           replaced sprintf with SNPRINTF,
4865           replaced strcpy with strncpyz,
4866           updated aopPut calls,
4867           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
4868         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
4869
4870 2006-05-24 Borut Razem <borut.razem AT siol.net>
4871
4872         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
4873           modification of test for the pic16 port, put the array to the code
4874           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
4875
4876 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4877
4878         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
4879         * support/Util/pstdint.h: added
4880
4881 2006-05-22 Borut Razem <borut.razem AT siol.net>
4882
4883         * src/regression/Makefile: removed bool2.c test, added -q linker option
4884         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
4885           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
4886           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
4887           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
4888           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
4889           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
4890           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
4891           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
4892           define SUPPORT_BIT_TYPES 0, removed unused bit variables
4893
4894 2006-05-22 Raphael Neider <rneider AT web.de>
4895
4896         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
4897           bug #1492360 (problematic due to generic pointers, see code)
4898
4899 2006-05-22 Borut Razem <borut.razem AT siol.net>
4900
4901         * support/regression/ports/pic16/specs.mk: removed stack size linker
4902           directive
4903         * support/regression/tests/array.c,
4904           support/regression/tests/bitopcse.c,
4905           support/regression/tests/bug-908454.c,
4906           support/regression/tests/malloc.c: modified for pic16 regression test
4907         * support/regression/tests/bitfields.c:
4908           pic16 - excluded bitfileds of size > 8
4909         * support/regression/tests/bp.c: pic16 - reduced data size
4910         * support/regression/tests/bug-221100.c: pic16 - reduced data size
4911         * support/regression/tests/bug-460010.c:
4912           pic16 - used the absolute address the fits in memory
4913         * support/regression/tests/bug-716242.c:
4914           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
4915         * support/regression/tests/float.c:
4916           pic16 - excluded - data size too big
4917         * support/regression/tests/onebyte.c:
4918           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
4919         * support/regression/tests/shifts.c:
4920           pic16 - function names probably have to differ in first X characters
4921           (gpasm limitation?)
4922         * support/regression/tests/staticinit.c:
4923           pic16 - excluded some tests due error: no target memory available for
4924           section ".idata"
4925
4926 2006-05-22 Borut Razem <borut.razem AT siol.net>
4927
4928         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
4929           second try. Thanks Stas Sergeev once more.
4930
4931 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4932
4933         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
4934           (genLeftShift, genRightShift): fixed bug 1491627
4935         * src/hc08/peeph.def (rules 7, 8.x): added
4936         * support/regression/tests/shifts.c (ShiftLeftByParam,
4937           ShiftRightByParam, testShiftByParam): added to test variable shifting
4938
4939 2006-05-20 Raphael Neider <rneider AT web.de>
4940
4941         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
4942         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
4943           (allocReg): add only new registers to dynAllocRegs,
4944           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
4945             #1489055, #1445850, and probably #1483693
4946
4947 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
4948
4949         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
4950         bug in for-loop that didn't emit the last of CONFIG and ID registers
4951
4952 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
4953
4954         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
4955           with offset
4956         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
4957           1489016, 1434401 and 1490124
4958         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
4959           1489016, 1434401 and 1490124
4960
4961 2006-05-17 Borut Razem <borut.razem AT siol.net>
4962
4963         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
4964           thanks Stas Sergeev
4965
4966 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4967
4968         * device/include/mcs51/P89c51RD2.h,
4969         * device/include/mcs51/P89LPC901.h,
4970         * device/include/mcs51/P89LPC922.h,
4971         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
4972
4973 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4974
4975         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
4976         to fix missing stack pragma in compiled binary object file,
4977
4978 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
4979
4980         * support/packihx/configure.in,
4981         * support/packihx/configure: removed warning, autoconf >= 2.5x can
4982         determine sizeof basic types even while cross compiling
4983
4984 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
4985
4986         * src/avr/gen.c (aopop),
4987         * src/ds390/gen.c (aopOp),
4988         * src/hc08/gen.c (aopOp),
4989         * src/mcs51/gen.c (aopop),
4990         * src/pic16/gen.c (pic16_aopOp),
4991         * src/pic/gen.c (aopOp),
4992         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
4993         if size of operand is smaller than spill location
4994
4995 2006-05-12 Borut Razem <borut.razem AT siol.net>
4996
4997         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
4998           have to have CR/LF line endings even if they are checked out on *nix
4999           or on WIN32 in cygwin binmode
5000
5001 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
5002
5003         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
5004         * device/include/ds80c390.h: added sfr16 definitions
5005         * src/ds390/gen.c,
5006         * src/ds390/gen.h,
5007         * src/ds390/main.c,
5008         * src/ds390/ralloc.c,
5009         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
5010           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
5011           bit returning functions
5012         * support/regression/tests/sfr16.c: enabled test on ds390
5013
5014 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5015
5016         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
5017         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
5018
5019 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
5020
5021         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
5022         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
5023           (cl_address_space constructor): removed expensive initialization,
5024           (cl_address_space::get_cell): extended for late initialization,
5025           (cl_address_space::*): use late initialization,
5026           (cl_address_decoder::activate): removed expensive initialization,
5027           This reduced regression test running time by 25%
5028
5029 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
5030
5031         * packihx/,
5032         * configure.in,
5033         * configure,
5034         * sdcc.dsw,
5035         * Makefile.bcc,
5036         * Makefile.in,
5037         * support/packihx/Makefile.in,
5038         * support/packihx/clean.mk,
5039         * support/packihx/Makefile.bcc,
5040         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
5041
5042 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5043
5044         * src/SDCCval.c (valNot): fix for regression test failure
5045           of not.c on big endian hosts
5046
5047 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
5048
5049         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
5050
5051 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5052
5053         * device/lib/mcs51/Makefile.in: changed string comparison operator
5054           to = for POSIX compliance; == is bash extension
5055
5056 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
5057
5058         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
5059           kosmonaut_pirx
5060
5061 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
5062
5063         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
5064         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
5065         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
5066         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
5067         bug report #1478657,
5068
5069 2006-05-05 Borut Razem <borut.razem AT siol.net>
5070
5071         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
5072           making the html
5073
5074 2006-05-02 Borut Razem <borut.razem AT siol.net>
5075
5076         * doc/Makefile.in: removed *.ind dependency since there is no rule to
5077           create *.ind, which made make to fail if invoked with -j 2
5078
5079 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
5080
5081         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
5082           Hubert Sack for patch 1479782
5083
5084 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
5085
5086         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
5087
5088 2006-05-01 Raphael Neider <rneider AT web.de>
5089
5090         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
5091           (create_pic): store only prefix-free device name,
5092           (init_pic): check for device names with "16" prefix,
5093           (list_valid_pics),
5094         * src/pic/device.h (struct PIC_device),
5095         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
5096             stored device name,
5097         * device/include/pic/pic12f{635,675,629,683}.h,
5098         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
5099         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
5100         * device/include/pic/pic16f505.h,
5101         * device/lib/pic/libdev/pic16f505.c: removed
5102         * device/include/pic/pic14devices.txt: added support for pic12f
5103             devices, removed unsupported non 16-bit devices
5104             [above changes provided by patch from Zik Saleeba]
5105         * src/pic/*, src/pic16/*, device/include/pic16/*,
5106           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
5107
5108 2006-05-01 Borut Razem <borut.razem AT siol.net>
5109
5110         * configure.in, configure, doc/Makefile.in:
5111           sync with nightly build makefile - latex, dvipdf and dvips
5112           not needed any more
5113
5114 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
5115
5116         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
5117         in the library source
5118
5119 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
5120
5121         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
5122
5123 2006-04-28 Raphael Neider <rneider AT web.de>
5124
5125         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
5126         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
5127           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
5128         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
5129
5130 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
5131
5132         * device/lib/pic/libdev/Makefile.in,
5133         * device/lib/hc08/Makefile.in,
5134         * device/lib/gbz80/Makefile.in,
5135         * device/lib/z80/Makefile.in,
5136         * device/lib/ds390/Makefile.in,
5137         * device/lib/ds400/Makefile.in: added srcdir to include search path,
5138         thanks to Borut for the bug report
5139         * configure.in,
5140         * configure: always create doc/Makefile independent from --enable-doc
5141         * Makefile.in: always install from directory doc independent from
5142         --enable-doc
5143         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
5144         removed
5145         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
5146         * doc/Makefile.in: install *.txt if present
5147         * device/include/Makefile.in (install): added installation of pic/*.inc
5148         and pic/*.txt files again, they were erroneously removed
5149
5150 2006-04-28 Raphael Neider <rneider AT web.de>
5151
5152         * src/pic/{gen.c,main.h,pcode.c},
5153         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
5154             concerning signedness with casts
5155
5156 2006-04-28 Raphael Neider <rneider AT web.de>
5157
5158         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
5159             definition of an interrupt handler,
5160         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
5161             interrupt handler stuff from picglue() to separate routine,
5162           (picglue): enabled definition of intr handlers in files w/o main()
5163
5164 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5165
5166         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
5167           compilation with MSVC 2005 Express Edition (VC8)
5168
5169 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
5170
5171         * device/lib/Makefile: fixed build of gbz80 lib
5172
5173 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5174
5175         * support/regression/tests/bug-460010.c,
5176         * support/regression/tests/bug-524691.c,
5177         * support/regression/tests/bug-716242.c: removed conditional defines
5178           that are already in testfwk.h
5179
5180 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5181
5182         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
5183           (AccAXRsh1): added, shift right by 1,
5184           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
5185            AccAXLrl1
5186         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
5187
5188 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
5189
5190         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
5191         remove cast to same type
5192         * src/SDCCast.c (decorateType): fix for RFE 1475742,
5193         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
5194         * as/z80/Makefile,
5195         * link/z80/Makefile: removed, they have moved to
5196         Makefile.in files
5197         * configure,
5198         * configure.in: replaced duplicate message about ucsim by missing sdcpp
5199         * install-sh: fix bug #1204398 by setting umask 0022
5200         * device/lib/Makefile: separate build of z80 and gbz80 lib
5201
5202 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
5203
5204         Enabled VPATH feature: changed nearly all Makefiles (149 files).
5205         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
5206
5207         One basic decision: e.g. src/clean.mk includes further files. In order
5208         to make this work there are two solutions:
5209         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
5210           run configure on them. This way they can use
5211           'include $(srcdir)/port-clean.mk'
5212         - always include clean.mk by the Makefile at the same level. To avoid
5213           that `make clean` tries to include and build Makefile.dep the
5214           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
5215           implemented, because now even `make uninstall` doesn't create
5216           Makefile.in. clean.mk could be eliminated by pasting it in
5217           Makefile.in.
5218
5219         * debugger/mcs51/Makefile.in: build own objects from library sources
5220         (SLIB, SDCC) in current directory
5221
5222         * configure, configure.in: renamed --disable-device-lib-build in
5223         --disable-device-lib; added --enable-doc, the required tools are
5224         searched by configure; added result message; the toolchain for the
5225         belonging ports are now only built, if the port is enabled.
5226
5227         * support/regression/*: all output is written in directory gen, because
5228         the fwk and ports directories don't livet in the build tree using vpath
5229
5230         * doc/sdccman.lyx: renamed --disable-device-lib-build to
5231         --disable-device-lib, added --enable-doc, added section VPATH
5232
5233         * sim/ucsim/configure.in,
5234         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
5235         z80 are enabled by default
5236
5237 2006-04-24 Raphael Neider <rneider AT web.de>
5238
5239         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
5240             to config word, "pic14_"-prefixed some extern functions
5241           (pic14_emitConfigWord): emit __config directive(s) if assignment to
5242             config word has been found
5243         * src/pic/device.h: added prototypes
5244         * src/pic/pcode.c: added "pic14_"-prefix where needed
5245         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
5246             fixup
5247         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
5248             words,
5249           (pic14emitRegularMap): ignore config words,
5250           (pic14createInterruptVect): moved generating __config directives away
5251           (picglue): have __config directives emitted
5252
5253 2006-04-24 Borut Razem <borut.razem AT siol.net>
5254
5255         * doc/Makefile: sync with nightly build makefile
5256
5257 2006-04-24 Raphael Neider <rneider AT web.de>
5258
5259         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
5260             registers that have not been assigned proper liveranges,
5261             fixes #1469504 and #1474602,
5262           (pCodeRegOptimizeRegUsage): fixed typo in comment
5263
5264 2006-04-24 Borut Razem <borut.razem AT siol.net>
5265
5266         * device/examples/main8051.c: deleted - it was removed from CVS
5267           24.mar.2000 and after that modified 18.feb.2001, so it reappered
5268           after the transition to Subversion
5269         * src/SDCCalloc.h: deleted - it was removed  from CVS
5270           3.feb.2001 and after that modified 18.feb.2001, so it reappered
5271           after the transition to Subversion
5272         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
5273           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
5274           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
5275           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
5276
5277 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
5278
5279         * as/asx8051.dsp: added mcs51/strcmpi.h
5280         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
5281         * as/hc08/aslink.h: updated lnksect prototype
5282         * as/hc08/asm.h,
5283         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
5284         * as/hc08/asmain.c,
5285         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
5286           (newdot): handle A_ABS
5287         * as/hc08/asout.c,
5288         * as/mcs51/asout.c (outarea): output address
5289         * as/hc08/lkaomf51.c,
5290         * as/mcs51/lkaomf51.c: disabled unused array UsageType
5291         * as/hc08/m08pst.c,
5292         * as/mcs51/i51pst.c,
5293         * as/z80/z80pst.c: "ABS" is not A_OVR
5294         * as/hc08/lkarea.c (newarea): read a_addr,
5295           (lnkarea): added codemap array, sort absolute areas to the front,
5296            combine all GSINITx/GSFINAL,
5297           (find_empty_space, allocate_space): new functions,
5298           (lnksect): return next address, handle absolute sections
5299         * as/mcs51/lkarea.c (newarea): read a_addr,
5300           lnksect2 prototype changed,
5301           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
5302           (find_empty_space, allocate_space): new, factored out of lnksect2,
5303           (lnksect2): return next address, handle absolute sections
5304         * as/hc08/lkhead.c,
5305         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
5306         * as/hc08/lklibr.c (addfile, fndsym),
5307         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
5308           index out of range and detect both '\' and '/'
5309         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
5310         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
5311           regression tests (ds390 cannot return bool yet)
5312         * doc/sdccman.lyx: changed version number, document changed --no-peep,
5313           document critical interrupts on z80, document changed SDCC define
5314         * src/asm.c (_asxxxx_mapping): fixed .org directive,
5315           (_a390_mapping): added .org directive
5316         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
5317           (genMultOneByte): fixed warnings
5318         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
5319           ones
5320         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
5321         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
5322           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
5323         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
5324         * src/pic16/main.c: removed newReg prototype
5325         * src/pic16/pcode.c,
5326         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
5327           warnings
5328         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
5329           ones
5330         * src/pic16/ralloc.c
5331         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
5332           to fix warnings
5333         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
5334           from short to PIC_OPTYPE
5335         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
5336         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
5337           optype from short to PIC_OPTYPE
5338         * src/port.h: made int_size unsigned to fix warnings
5339         * src/SDCC.y: fixed warning on MSVC
5340         * src/SDCCicode.c (getArraySizePtr): return unsigned int
5341         * src/SDCCopt.c (convertToFcall): fixed warnings
5342         * src/SDCCsymt.h: removed double prototype for genSymName
5343         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
5344           offset int to fix warnings
5345
5346 2006-04-22 Borut Razem <borut.razem AT siol.net>
5347
5348         * doc/sdccman.lyx, */Makefile, */Makefile.in:
5349           references to CVS replaced with Subversion
5350
5351 2006-04-21 Borut Razem <borut.razem AT siol.net>
5352
5353         * doc/sdccman.lyx, */Makefile, */Makefile.in:
5354           references to CVS replaced with Subversion
5355
5356 2006-04-19 Borut Razem <borut.razem AT siol.net>
5357
5358         * src/version.awk: adapted for svn
5359         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
5360           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
5361           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
5362           /binutils-avr/etc/*.vi, *.jin: removed all properties
5363           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
5364
5365 2006-04-19 Borut Razem <borut.razem AT siol.net>
5366
5367         * CVS to Subversion migration completed
5368
5369 2006-04-18 Borut Razem <borut.razem AT siol.net>
5370
5371         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
5372           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
5373
5374 2006-04-17 Borut Razem <borut.razem AT siol.net>
5375
5376         * device/include/Makefile.in: added pic/*.inc to the installation
5377
5378 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
5379
5380         * support/regression/collate-results.py: fixed output in case of
5381         a valdiag error
5382         * support/regression/generate-cases.py: fixed splitting of pathnames
5383         with dots
5384         * as/hc08/lklibr.c (addfile),
5385         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
5386
5387 2006-04-11 Raphael Neider <rneider AT web.de>
5388
5389         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
5390         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
5391         * src/pic16/pcode.c (assignValnums): fixed #1460578
5392
5393 2006-04-11 Raphael Neider <rneider AT web.de>
5394
5395         * device/lib/pic/libdev/*.c,
5396         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
5397           fixes #1468739, enables compilation in --std-c99 mode
5398         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
5399
5400 2006-04-11 Raphael Neider <rneider AT web.de>
5401
5402         * src/pic/device.c (find_device): removed debug output
5403           (list_valid_pics): enabled verbose listing of supported devices
5404         * device/include/stdbool.h: define bool as char for pic14/16 as well
5405
5406 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5407
5408         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
5409
5410 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5411
5412         * .version: bumped version to 2.5.6
5413         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
5414
5415 2006-04-06 Raphael Neider <rneider AT web.de>
5416
5417         * .version: bumped version to 2.5.6 (pic14 ABI changed)
5418         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
5419         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
5420           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
5421             pic14_constructAbsMap
5422           (pic14printPublics): declare absolute global symbols as global
5423           (pic14createInterruptVect),
5424         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
5425           (newReg): assume new registers unused, use correct name in
5426             hashtable (reg->name instead of name), more debugLog output
5427         * src/pic/device.h (PIC_device): added fields for verbose output
5428         * src/pic/device.c: moved device definition to pic14devices.txt,
5429             added routines for runtime parsing of pic14devices.txt,
5430             added support for second config word
5431         * src/pic/main.c (_process_pragma): removed #pragma maxram,
5432           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
5433           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
5434           (_pic14_parseOptions): moved pCodeInitRegisters here
5435           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
5436         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
5437           (pCodeInitRegisters): rewrapped comments, perpared new approach to
5438             handling the pseudo stack
5439         * device/lib/Makefile.in: ignore failures in objects-pic16,
5440         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
5441         * device/lib/pic/NEWS: document new dependency on picXXX.lib
5442         * device/lib/pic/Makefile.subdir,
5443         * device/lib/pic16/Makefile.subdir: improved clean rules
5444         * device/lib/pic/libdev/: NEW, pic14 device libraries
5445         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
5446         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
5447         * device/include/Makefile.in: create subdir and install pic14 headers
5448         * device/include/pic/p16f_common.inc: removed unused declarations
5449         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
5450             PICs from inc2h.pl v1.6,
5451             replaced BIT_AT macros with struct declarations
5452         * device/include/pic/pic14devices.txt: definition of supported devices,
5453             all above improvements contributed by Zik Saleeba, thanks
5454         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
5455         * support/scripts/sdcc.nsi: also install pic14 device libraries and
5456             headers
5457
5458 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5459
5460         * device/include/mcs51/c8051f410.h: added interrupt numbers,
5461         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
5462           thanks to Charles Olds
5463
5464 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5465
5466         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
5467
5468 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5469
5470         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
5471         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
5472         * support/regression/bug1464657.c: added, new test
5473
5474 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5475
5476         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
5477           version number
5478
5479 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5480
5481         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
5482           --no-peep and --peep-file <file> are used don't use default rules but
5483           do use the <file>
5484
5485 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5486
5487         * src/mcs51/gen.c (genCall): fixed bug 1457608
5488
5489 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5490
5491         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
5492         changes seem to cause (trigger?) problems with the build system.
5493
5494 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
5495
5496         * src/SDCCpeeph.c (operandsLiteral): new, added,
5497           (callFuncByName): inserted operandsLiteral
5498         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
5499
5500 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5501
5502         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
5503         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
5504
5505 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5506
5507         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
5508           implemented patch 1120823 Thanks to Willy De la Court (normal
5509           interrupts need an interrupt number now if they are made critical),
5510           and enabled nesting of critical functions though not for gbz80
5511           (genCritical, genEndCritical): added functions
5512           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
5513         * src/z80/mappings.i: added "ei" to all mappings
5514
5515 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5516
5517         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
5518         submitted by the Debian SDCC maintainer Aurelien Jarno:
5519         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
5520         archive with gcc 4.1 on mips and wrote the patch"
5521
5522 2006-03-16 Raphael Neider <rneider AT web.de>
5523
5524         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
5525           the left operand is shorter than the result (c* = lit-c* + int),
5526           fixes bug #1450796
5527         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
5528           OP_SYMBOL
5529
5530 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5531
5532         * src/.version: increased version number to 2.5.5
5533         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
5534         linking is done manually in pic16 port's _linkEdit,
5535         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
5536         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
5537         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
5538         allocate asmop as AOP_ACC,
5539         (aopForRemat): added parameter 'bool result' in function declaration,
5540         (pic16_aopGet): return AOP_ACC when accessing WREG,
5541         (pic16_popGetTempReg): minor modification,
5542         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
5543         'pic16_allocWithIdx',
5544         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
5545         calling function in absolute addresses,
5546         (genAssign): take into account AOP_ACC asmop,
5547         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
5548         * src/pic16/pcoderegs.c: some debug functions and lines added,
5549         * src/pic16/ralloc.c (decodeRegType): added but commented out,
5550         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
5551         register too,
5552         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
5553         call to allocReg, not by manually allocating a new one,
5554         (pic16_assignRegisters): now before going through the register
5555         allocating functions mark all registers as free. This eliminates some
5556         side effects resulting from peephole parser done earlier in the backbone
5557
5558 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
5559
5560         * src/SDCCicode.c (geniCodeLogic),
5561         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
5562
5563 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
5564
5565         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
5566           (genSend): bugfix, do not allocate and free twice,
5567           (shiftRLong): handle partially overlapping aops
5568         * support/regression/tests/bitopcse.c: fixed warning redefined idata
5569
5570 2006-03-08 Borut Razem <borut.razem AT siol.net>
5571
5572         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
5573           for pic16
5574
5575 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
5576
5577         * support/regression/tests/bug1409955.c: new, added
5578         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
5579         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
5580           (aopForSym, aopOp): increment asmop.allocated if reused,
5581           (freeAsmop): decrement asmop.allocated and check for zero instead of
5582           using asmop.freed,
5583           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
5584           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
5585            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
5586            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
5587            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
5588            genSignedRightShift, genRightShift, genDataPointerGet,
5589            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
5590            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
5591             in reverse order from allocation,
5592           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
5593             added swappedLR to keep track
5594         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
5595           pdata & code for GCC, z80, gbz80 & hc08
5596         * support/regression/tests/zeropad.c: moved defines to testfwk.h
5597
5598 2006-03-08 Raphael Neider <rneider AT web.de>
5599
5600         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
5601
5602 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
5603
5604         * device/include/mcs51/c8051f410.h: new SiLabs mcu
5605         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
5606         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
5607
5608 2006-03-06 Borut Razem <borut.razem AT siol.net>
5609
5610         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
5611           made the linker quiet
5612
5613 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5614
5615         * src/pic16/gen.c (genPcall): fixed bug #1443644
5616         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
5617         which dumps before the function entry point a data byte which represents
5618         the number of the local variables used by the specified function, added
5619         'xinst' for initial support for Extended Instruction Support,
5620         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
5621         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
5622         port->fun_prefix anymore (may change later),
5623         (genFunction, genEndFunction): do not store/restore local registers for
5624         _main (this should take care the --main-return command line option in
5625         the future),
5626         (genOr): removed some legacy pic-port instructions,
5627         * src/pic16/genarith.c (genAddLit): re-enabled old code because
5628         performing operations with SFR's causes data to be written more than
5629         once to each SFR. Perhaps SFRs should be handled in special cases...
5630         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
5631         pcode.h
5632         * src/pic16/main.c (_process_pragma): stack bound checking did not take
5633         into account for stack starting position,
5634         (struct OPTIONS pic16_optionsTable): added command line argument
5635         --extended or -y for Extended Instruction Support,
5636         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
5637         (deassignLRs): *** perhaps the most important change, old 'for' code
5638         (commented out for reference), didn't account for some registers which
5639         were left marked 'not free' after a pointer operation. The change
5640         reduces register usage a lot in some cases
5641
5642 2006-03-04 Borut Razem <borut.razem AT siol.net>
5643
5644         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
5645           _clean
5646         * support/regression/tests/bug-524697.c: decreased array size for
5647           mcs51 to fit into the internal RAM
5648         * support/regression/Makefile.in: a little bit more verbose
5649
5650 2006-03-03 Borut Razem <borut.razem AT siol.net>
5651
5652         * support/regression/fwk/lib/testfwk.c,
5653           support/regression/fwk/include/testfwk.h: introduced function
5654           _prints(), nonrecursive _printn(), call _initEmu() from main()
5655         * support/regression/ports/gbz80/support.asm,
5656           support/regression/ports/ucz80/support.asm,
5657           support/regression/ports/z80/support.asm,
5658           support/regression/ports/ds390/support.c,
5659           support/regression/ports/hc08/support.c,
5660           support/regression/ports/host/support.c,
5661           support/regression/ports/mcs51/support.c,
5662           support/regression/ports/xa51/support.c: added empty _initEmu()
5663           function
5664         * support/regression/ports/pic16/gpsim.cmd,
5665           support/regression/ports/pic16/spec.mk,
5666           support/regression/ports/pic16/support.c,
5667           support/regression/Makefile.in: added pic16 regression test
5668
5669 2006-03-01 Raphael Neider <rneider AT web.de>
5670
5671         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
5672           genConstPointerGet): use safe way of generating MOVFF to cover
5673             literals as well as registers, fixes bug #1440527
5674         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
5675             dereference
5676           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
5677             more correctly, fixes bug #1232186
5678           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
5679         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
5680             gplink guess the correct processor in more cases, applied patch
5681             from Till Riedel attached to and fixing bug #1436552
5682
5683 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5684
5685         * support/regression/tests/array.c: added, contains check for #1434401
5686         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
5687
5688 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
5689
5690         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
5691         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
5692         * device/include/mcs51/c8051f326.h,
5693         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
5694         * device/include/mcs51/c8051f000.h,
5695         * device/include/mcs51/c8051f018.h,
5696         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
5697           PCON_IDLE,PCON_STOP and added sfr16 definitions
5698
5699 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
5700
5701         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
5702           genGetWord): fixed bug 1409955
5703
5704 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
5705
5706         * device/include/hc08/mc68hc908gp32.h,
5707         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
5708
5709 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
5710
5711         * src/SDCCast.c (constExprValue): return NULL if not a value
5712         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
5713         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
5714         * support/regression/tests/bitfields.c: enabled signed bitfield for all
5715
5716 2006-02-13 Borut Razem <borut.razem AT siol.net>
5717
5718         * src/regression/ptrarg.c: added, fails due to bug #1430967
5719         * src/regression/Makefile: ptrarg.c added, ...
5720
5721 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
5722
5723         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
5724         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
5725
5726 2006-02-11 Borut Razem <borut.razem AT siol.net>
5727
5728         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
5729           print "Processor: xxx" message to stdout only if --verbose
5730
5731 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
5732
5733         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
5734         * support/regression/tests/bug1426356.c: added
5735         * support/regression/tests/bitfields.c: removed 2 tests
5736
5737 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
5738
5739         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
5740         * device/include/mcs51/c8051f330.h,
5741         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
5742           PCON_IDLE,PCON_STOP and added sfr16 definitions
5743         * device/lib/_divsint.c,
5744         * device/lib/_divuint.c,
5745         * device/lib/_divulong.c,
5746         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
5747           register bank bug for small stackauto
5748
5749 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
5750
5751         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
5752
5753 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
5754
5755         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
5756         * all.dsp: corrected several bin paths
5757         * device/include/mcs51/c8051f120.h,
5758         * device/include/mcs51/c8051f300.h,
5759         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
5760           to PCON_IDLE,PCON_STOP
5761         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
5762         * device/lib/printf_large.c (output_float): fixed bug 1388703
5763         * support/regression/tests/bug1057979.c: added test for bug 1388703
5764
5765 2006-02-08 Raphael Neider <rneider AT web.de>
5766
5767         * src/pic/pcode.c (pciTRIS): fixed typo,
5768           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
5769           (LinkFlow): fixed handling of flows that end in a call,
5770           (ReuseReg): perform safety check earlier
5771         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
5772             to work with flows at the beginning of a pBlock,
5773             fixes #1426557 (Symbol not previously defined),
5774           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
5775             usage information
5776           (RemoveUnusedRegisters): update register usage info
5777         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
5778             created, reuse existing ones instead
5779         * src/pic/gen.c (genPcall): fixed #1424719
5780
5781 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
5782
5783         * link/z80/lkmain.c,
5784         * link/z80/lklex.c,
5785         * link/z80/lkdata.c,
5786         * link/z80/aslink.h: fixed build on current cygwin:
5787         replaced getline() by lk_getline()
5788
5789 2006-02-01 Borut Razem <borut.razem AT siol.net>
5790
5791         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
5792           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
5793           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
5794           src/regression/bool1.c, src/regression/bool2.c,
5795           src/regression/bool3.c, src/regression/call1.c,
5796           src/regression/compare.c, src/regression/compare10.c,
5797           src/regression/compare2.c, src/regression/compare3.c,
5798           src/regression/compare4.c, src/regression/compare5.c,
5799           src/regression/compare6.c, src/regression/compare7.c,
5800           src/regression/compare8.c, src/regression/compare9.c,
5801           src/regression/configword.c, src/regression/for.c,
5802           src/regression/inline.c, src/regression/mult1.c,
5803           src/regression/nestfor.c, src/regression/or1.c,
5804           src/regression/pointer1.c, src/regression/ptrfunc.c,
5805           src/regression/rotate1.c, src/regression/rotate2.c,
5806           src/regression/rotate3.c, src/regression/rotate4.c,
5807           src/regression/rotate5.c, src/regression/rotate6.c,
5808           src/regression/rotate7.c, src/regression/string1.c,
5809           src/regression/struct1.c, src/regression/sub.c,
5810           src/regression/sub2.c, src/regression/switch1.c,
5811           src/regression/while.c, src/regression/xor.c,
5812           src/regression/create_stc, src/regression/simulate,
5813           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
5814           regression tests
5815         * src/regression/gpsim_assert.h: added
5816
5817 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
5818
5819         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
5820         ((void (code *) (void)) 0) ();
5821         * as/hc08/aslex.c,
5822         * as/hc08/aslink.h,
5823         * as/hc08/asm.h,
5824         * as/hc08/asmain.c,
5825         * as/hc08/lkdata.c,
5826         * as/hc08/lklex.c,
5827         * as/hc08/lkmain.c,
5828         * as/mcs51/aslex.c,
5829         * as/mcs51/aslink.h,
5830         * as/mcs51/asm.h,
5831         * as/mcs51/asmain.c,
5832         * as/mcs51/lkdata.c,
5833         * as/mcs51/lklex.c,
5834         * as/mcs51/lkmain.c,
5835         * as/z80/aslex.c,
5836         * as/z80/asm.h,
5837         * as/z80/asmain.c: fixed build on current cygwin:
5838         replaced getline() by as_getline()
5839
5840 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5841
5842         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
5843         declarator in the symbol chain
5844         * src/SDCCsymt.h,
5845         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
5846         parameter list for function pointers
5847         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
5848         * support/regression/tests/bug-716242.c: added
5849
5850 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
5851
5852         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
5853         offset if possible
5854         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
5855
5856 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
5857
5858         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
5859         inifinitely recurseable, added static
5860         * support/regression/tests/bug-1408066.c: added
5861
5862 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
5863
5864         * src/SDCCicode.h,
5865         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
5866         renamed, added possibility to create "postLoopLbl"-labels
5867         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
5868         newiTempLoopHeaderLabel
5869         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
5870         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
5871         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
5872         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
5873         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
5874         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
5875         (basicInduction): fixed bug #136564, made static,
5876         (loopInduction): changed parameter of basicInduction, made static,
5877         (addPostLoopBlock): added
5878         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
5879         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
5880         findLoopEndSeq
5881         * support/regression/tests/bug-136564.c: added
5882         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
5883         --std-sdcc99 to LIBSDCCFLAGS
5884
5885 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
5886
5887         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
5888         while loop
5889         * support/regression/tests/bug-1406131.c: added
5890
5891 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
5892
5893         * src/SDCCast.c (decorateType): fix promotion of unary minus
5894         * src/SDCCsymt.c (computeType): beautified
5895         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
5896         (valUnaryPM, valComplement): fix sign and promotion,
5897         (valNot): ANSI: result type is int (SDCC: unsigned char)
5898         * support/regression/tests/uminus.c: speedup by removing superflous
5899         test case 'int'
5900         * support/regression/tests/onebyte.c: added promotion and signedness
5901         tests for unary minus
5902         * support/regressions/tests/bug-477927.c: disable warning about
5903         uninitialized variables
5904         * support/regression/tests/not.c: added
5905
5906 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
5907
5908         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
5909         * src/mcs51/gen.c (gen51Code): show final register usage after
5910         fillGaps in asm with --i-code-in-asm
5911         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
5912         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
5913         incUsed, rliveClear, adjustIChain): made static,
5914         (setFromRange): excluded because it's unused,
5915         (findPrevUseSym, markWholeLoop): added,
5916         (findPrevUse): rewritten; fixes bug 895992; now a complete search
5917         through all branches of predecessors enables sdcc to emit the warning
5918         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
5919         (rlivePoint): made static, added parameter emitWarnings which is only
5920         true during the first run out of two,
5921         (findRecursiveSucc, findRecursivePred): removed,
5922         (computeLiveRanges): made static, added parameter emitWarnings,
5923         (dumpIcRlive): added for debugging only
5924         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
5925         removed prototype of setFromRange()
5926         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
5927         in call of computeLiveRanges()
5928         * support/regression/tests/bug-895992.c: added
5929         * support/regression/tests/bug-971834.c: added
5930         * support/valdiag/tests/bug-895992.c: added
5931         * support/valdiag/tests/bug-971834.c: added
5932
5933 2005-12-18 Raphael Neider <rneider AT web.de>
5934
5935         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
5936           (genUnpackBits): improved code for direct operands,
5937           (genPackBits): improved code for literal assignment to bitfields
5938             and for direct destination operands (no FSR indirection),
5939             prevented redundant AND, fixes #1362800,
5940           (AccLsh): added parameter to disable masking of the result
5941         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
5942           skip instructions with side-effects (like incfsz),
5943           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
5944         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
5945         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
5946           fixes #1375263
5947
5948 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
5949
5950         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
5951         volatile variables as spill location
5952
5953 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
5954
5955         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
5956         replacing literals
5957         * support/regression/tests/bug-1376320.c: added
5958
5959 2005-12-08 Raphael Neider <rneider AT web.de>
5960
5961         * src/pic/device.c: renamed is_shared to pic14_is_shared
5962         * src/pic/gen.c (genIfx): re-enabled handling of sbits
5963         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
5964           (is_valid_identifier): added for above workaround
5965
5966 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
5967
5968         * device/lib/Makefile.in: fixed to enable port-specific-objects
5969         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
5970           char, thanks Hubert Sack
5971         * doc/sdccman.lyx: documented --xstack-loc,
5972           elaborated a bit more on interrupts and pitfalls,
5973           removed "setjmp/longjmp unsupported",
5974           documented some unsupported C99 features
5975         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
5976         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
5977           if, thanks Hubert Sack
5978         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
5979         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
5980           make make_library
5981         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
5982           regression tests can report resource usage (rfe 700441)
5983         * support/regression/collate-results.py: report resource usage
5984         * support/regression/ports/ds390/spec.mk,
5985         * support/regression/ports/hc08/spec.mk,
5986         * support/regression/ports/mcs51/spec.mk,
5987         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
5988         * support/regression/ports/ds390/uCsim.cmd,
5989         * support/regression/ports/hc08/uCsim.cmd,
5990         * support/regression/ports/mcs51/uCsim.cmd,
5991         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
5992         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
5993           library, use the default one
5994         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
5995           building the library
5996
5997 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
5998
5999         * config.dsp: added dependency on .version and configure_vc.awk
6000         * device/include/setjmp.h: updated for --stack-auto and --xstack
6001         * device/include/mcs51/at89c51snd1c.h: corrected line endings
6002         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
6003         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
6004         * device/lib/libsdcc.lib: added _setjmp
6005         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
6006           (decorateType): fixed bug 1372851,
6007           (optimizeGetHbit): fixed warning
6008         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
6009           array initialisation
6010         * support/regression/tests/bug1057979.c: added test for bug 1358192
6011         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
6012
6013 2005-12-03 Borut Razem <borut.razem AT siol.net>
6014
6015         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
6016           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
6017
6018 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
6019
6020         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
6021         createIval): implement symbol independant "flexible array member",
6022         (createIvalCharPtr): implemented flexible array initialisation with a
6023         string
6024         * src/SDCCsymt.c (copyStruct): removed,
6025         (getSize): fixed misleading comment,
6026         (getAllocSize): removed, the additional allocation size is now in
6027         sym->flexArrayLength,
6028         (checkStructFlexArray): new, syntax checks for flexible array members,
6029         (compStructSize): added syntax checks for "flexible array members"
6030         (copyStruct): removed,
6031         (copyLinkChain): removed inefficient fix for bug 770487
6032         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
6033         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
6034         symbol->flexArrayLength
6035         * src/SDCCerr.c,
6036         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
6037         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
6038         * support/regression/tests/structflexarray.c: added
6039         * support/valdiag/tests/structflexiblearray.c: added
6040
6041 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
6042
6043         * src/SDCCast.c (decorateType): fixed bug 1368489
6044         * support/Util/SDCCerr.c,
6045         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
6046
6047 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6048
6049         * device/include/mcs51/at89c51snd1c.h: added file submitted by
6050           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
6051
6052 2005-11-27 Borut Razem <borut.razem AT siol.net>
6053
6054         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
6055           support/cpp2/mkdeps.h: added command line option
6056           -obj-ext=<extension> to SDCPP to define object file externion, used
6057           for generation of make dependencies (-M)
6058         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
6059
6060 2005-11-26 Borut Razem <borut.razem AT siol.net>
6061
6062         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
6063           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
6064           added pic and pic16 libraries
6065
6066 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6067
6068         * device/include/float.h: Corrected typo in prototype of __fsgt
6069
6070 2005-11-25 Borut Razem <borut.razem AT siol.net>
6071
6072         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
6073           added creation of model-mcs51-stack-auto libraries
6074
6075 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
6076
6077         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
6078         and fields-list too
6079         * src/SDCCast.c (createIvalArray): removed obsolete comment
6080
6081 2005-11-24 Borut Razem <borut.razem AT siol.net>
6082
6083         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
6084           added missing device/lib/mcs51/crt*.asm sources
6085
6086 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
6087
6088         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
6089
6090 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
6091
6092         * device/lib/_fs2schar.c,
6093         * device/lib/_fs2sint.c,
6094         * device/lib/_fs2slong.c: optimized inline asm
6095
6096 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6097
6098         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
6099           Better handling of floats between -1.0 and 0.0.
6100
6101 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6102
6103         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
6104           (the missing "if"s prohibited removal of redundant labels)
6105
6106 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6107
6108         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
6109           Properly convert floats between -1.0 and 0.0 to long, int, and char
6110           types (max integer value of negative floats tends to zero).
6111         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
6112           Removed changes made so to work properly with floats between
6113           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
6114           and _fs2char.c
6115
6116 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
6117
6118         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
6119         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
6120         (genCast) cosmetic change
6121         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
6122         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
6123         from mcs51
6124         * support/regression/tests/bitfields (testSignedBitfields): added
6125
6126 2005-11-18 Borut Razem <borut.razem AT siol.net>
6127
6128         * sdcc/device/lib/Makefile.in: remove all unnecessary files
6129         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
6130           introduced SILENT option to make building of pic16 libraries less
6131
6132 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6133
6134         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
6135           Now they work properly with floats between -1.0 and 0.0
6136         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
6137
6138 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6139
6140         * src/SDCCicode.c (printOperand): added missing else
6141
6142 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
6143
6144         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
6145         reformatted for better readability
6146         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
6147         signed bitfields
6148
6149 2005-11-17 Borut Razem <borut.razem AT siol.net>
6150
6151         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
6152           introduced SILENT option to make building of pic16 libraries less
6153           verbose - used for nightly snapshot build
6154         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
6155           available on Win32 platforms.
6156         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
6157           medium, large, pic and pic16
6158
6159 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6160
6161         * device/lib/printf_large.c: Temporary patch for bug 1358192:
6162           printf("%f"...) sets fraction to zero.
6163
6164 2005-11-16 Raphael Neider <rneider AT web.de>
6165
6166         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
6167           fixes #1357221
6168         * src/pic/gen.c (genIfx): implemented for CARRY bit
6169         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
6170           to generic pointers, fixes #1357332,
6171           (pic16_movLit2f): NEW,
6172           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
6173
6174 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
6175
6176         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
6177
6178 2005-11-11 Raphael Neider <rneider AT web.de>
6179
6180         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
6181         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
6182           compute pointer's type from operand,
6183           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
6184           improved single bit reads, fixes bug #1353379
6185
6186 2005-11-09 Borut Razem <borut.razem AT siol.net>
6187
6188         * support/scripts/sdcc.nsi: added lib/pic to the package
6189
6190 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
6191
6192         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
6193
6194 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
6195
6196         * support/regression/tests/bug1348008.c: added
6197         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
6198         * support/regression/tests/bug1337835.c: updated comment
6199
6200 2005-11-06 Borut Razem <borut.razem AT siol.net>
6201
6202         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
6203           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
6204           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
6205           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
6206           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
6207           dynamic construction of cl_error_class and derivates - 2.nd try
6208
6209 2005-11-05 Borut Razem <borut.razem AT siol.net>
6210
6211         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
6212           bug, which caused Bus Errors on sparc solaris
6213
6214 2005-11-04 Borut Razem <borut.razem AT siol.net>
6215
6216         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
6217           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
6218           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
6219           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
6220           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
6221           and derivates to resolve the initialization problem on OSX
6222
6223 2005-11-02 Borut Razem <borut.razem AT siol.net>
6224
6225         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
6226           corrected typo - #include <winsock2.h>
6227
6228 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
6229
6230         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
6231           (_asxxxx_mapping): added org directive for future enhancements
6232
6233 2005-11-01 Borut Razem <borut.razem AT siol.net>
6234
6235         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
6236           enabled sockets on WIN32
6237         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
6238
6239 2005-10-31 Borut Razem <borut.razem AT siol.net>
6240
6241         * support/regression/generate-cases.py: escape backslashes in {testcase}:
6242           WIN32 backslash path delimiters should be escaped when used in C strings
6243         * support/regression/tests/bitfields.c: exclude failing assertions for
6244           __CYGWIN32__ and __MINGW32__ hosts
6245
6246 2005-10-30 Borut Razem <borut.razem AT siol.net>
6247
6248         * src/SDCCutil.c: corrected double comparison typo
6249
6250 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
6251
6252         * device/lib/medium/Makefile: added for new memory model medium
6253         * device/include/asm/mcs51/features.h: updated for medium/pdata
6254         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
6255           added Multiply & Accumulate sbit's and MAC0_PAGE define
6256         * device/include/mcs51/c8051f300.h: added sfr16 definitions
6257         * device/include/mcs51/c8051f310.h: added sfr16 definitions
6258         * device/lib/_mullong.c: update for medium model
6259         * device/lib/incl.mk: added medium model
6260         * doc/sdccman.lyx: documented medium model
6261         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
6262         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
6263         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
6264         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
6265           (allocParms): set SCLS and OCLS to pdata for medium model
6266         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
6267           for pdata,
6268           (powof2): return <0 if not power of 2
6269         * src/avr/gen.c (genBitWise): use updated powof2
6270         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
6271           (shiftR2Left2Result): small optimization in setup, save acc when storing,
6272           (shiftLLeftOrResult): use B if necessary
6273         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
6274         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
6275         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
6276         * support/regression/Makefile.in: added test-mcs51-medium
6277         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
6278
6279 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
6280
6281         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
6282         specifier unsigned
6283         * device/lib/time.c (mktime): fixed bug 1334315
6284
6285 2005-10-28 Raphael Neider <rneider AT web.de>
6286
6287         * device/include/pic/p16f_common.inc: added common declarations
6288         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
6289
6290 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
6291
6292         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
6293           (aopPutUsesAcc): added to predict accumulator use,
6294           (assignResultValue): save acc if necessary,
6295           (genMinusDec): store result if indirectly addressed,
6296           (genDivOneByte):  save acc if necessary,
6297           (movLeft2Result): bugfix if left already in acc,
6298           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
6299             attention to accumulator use (esp. pdata),
6300           (genReceive): receive pdata correctly
6301         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
6302         * src/SDCCicode.h: added isOperandInPagedSpace prototype
6303
6304 2005-10-27 Raphael Neider <rneider AT web.de>
6305
6306         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
6307
6308 2005-10-27 Raphael Neider <rneider AT web.de>
6309
6310         * .version: changed version to 2.5.4
6311         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
6312         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
6313           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
6314             arithmetics support routines
6315         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
6316         * device/lib/Makefile.in: also create installdir for pic
6317
6318         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
6319           pic14 port as well
6320         * src/pic/device.c (dump_sfr): rewritten to delegate register
6321           placement to the linker (use `extern sym' rather than sym EQU addr),
6322           (validAddress): fixed to check last specified address
6323         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
6324           (popGetLit): truncate literal value to 8 bit,
6325           (popGet): moved assert to more appropriate place
6326           (popGetExternal): create pCode operand from and mark the according
6327             symbol as being `extern'
6328           (popGetAddr): added sanity check on immediate's offset, provide
6329             GPOINTER tag on demand
6330           (aopPut): fixed for immediates,
6331           (mov2w_op): move operand's address or contents to WREG (depending on
6332             operand type), safer variant of mov2w,
6333           (movwf,call_libraryfunc): NEW, handy abbreviations,
6334           (get_argument_pcop,get_return_val_pcop,pass_argument,
6335           get_returnvalue): interface for accessing function parameters and
6336             return values,
6337           (assignResultValuei,genRet): use new parameter/return value interface
6338           (pic14_getDataSize): back to old version handling generic pointers,
6339           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
6340             provided implementation and/or fixed old one,
6341           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
6342             calls, removed legacy 8051 reference code
6343           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
6344           (loadSignToC): NEW, move the operands sign bit to CARRY,
6345           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
6346             genRightShiftSigned, accepts negative shift counts,
6347           (setup_fsr): load FSR and adjust IRP (indirect memory access),
6348           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
6349             generic pointers, __data pointers and __code pointers,
6350           (genUnpackBits,genPackBits): rewritten to work with generic pointers
6351             and signed bitfields, limit bitfields to 8 bit,
6352           (genDataPointerGet): fixed number of bytes read,
6353           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
6354           (genPointerGet,genPointerSet): fixed handling of __code pointers,
6355             pointers to constant data are no longer assumed to point to __code
6356             space, removed invalid pointer types,
6357           (bitpatternFromVal): retrieve the PICs representation of an integer
6358             or float literal,
6359           (genDataPointerSet): fixed assigning to po_immediate operands,
6360           (genGenPointerSet): implemented as library call,
6361           (genIfx): fixed incorrect condition,
6362           (genAddrOf): limit generic pointers' addresses to 2 bytes,
6363             provide GPOINTER tag according to destination's storage class,
6364           (genCast): added code to handle casting to generic pointers, added
6365             sign-/zero extension of the result
6366           (aop_isLitLike,op_isLitLike): fixed handling of immediates
6367         * src/pic/gen.h: added macros to access IRP bit in STATUS register
6368         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
6369           extend the result
6370         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
6371           address/register resides in the shared banks
6372           (emitSymbolToFile): improved to handle global and `pinned' symbols,
6373             put all variables into separate sections (have the linker arrange
6374             them)
6375           (picglue): put init code and interrupt handlers in separate sections
6376         * src/pic/main.c: added port specific options table, modified to PORT
6377           structure to make GPOINTERs 3 byte, added pic14_options
6378           (_pic14_do_link): private linking routine (update paths to libraries,
6379             add libsdcc.lib by default)
6380         * src/pic/main.h: declare pic14_options
6381         * src/pic/pcode.c: fixed instructions i/o relations,
6382           (RegCond): reverted to correct version,
6383           (newpCodeOpLit): truncate literals to 8 bit,
6384           (genericPrint): added debug output,
6385           (getRegFromInstruction): fixed for various operand types, simplified
6386           (BuildFlow): fixed broken handling of isntructions with labels
6387           (LinkFlow): start at last instruction in flow (skip trailing comments),
6388             pass the flow on to the next instruction after CALL
6389           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
6390           (insertPCodeInstruction): fixed inserting after a skip instruction,
6391           (DoBankSelect): fixed for labeled instructions
6392           (OptimizepBlock): honor --nopeep switch
6393           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
6394         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
6395         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
6396           (pCodeOptime2pCodes): allow disabling this optimization via
6397             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
6398             but is still buggy), started implementation of a dataflow based
6399             pCode optimization (CSE + dead code elimination)
6400           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
6401         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
6402           names are independant of the stack location and therefore portable across
6403           devices
6404
6405 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
6406
6407         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
6408           (selectSpil): fixed bug 1337835 by not spilling bit variables
6409         * support/regression/tests/bug1337835.c: added test for this bug
6410         * src/mcs51/peeph.def: restart after rule 3.c,
6411           addded rules 263.x to optimize loading constants
6412
6413 2005-10-26 Raphael Neider <rneider AT web.de>
6414
6415         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
6416         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
6417           (genAssign): emit warning when casting literals to generic pointer
6418             type, also applies when taking the address of a fixed variable,
6419           (genCast): improved casting to generic pointers
6420         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
6421           extern variables, added verbose error message
6422         * device/include/pic16/{string.h,errno.h}: added #pragma library c
6423
6424 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
6425
6426         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
6427         carry must be complemented too
6428         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
6429         could be emitted by genMinus
6430         * src/SDCCval.c (constVal): fixed bug 1305065
6431
6432 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
6433
6434         * src/SDCCast.c (addCast): added promotion for bit variables
6435         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
6436         promotion casts + optimisation
6437         (optimizeGetWord): fix warning 'i' might be used uninitialized
6438         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
6439         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
6440
6441 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
6442
6443         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
6444         all chars are promoted to int; promotion should be handled in SDCCast.c
6445
6446 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6447
6448         * device/lib/_strcmp.c: Fixed bug 1326457
6449
6450 2005-10-11 Raphael Neider <rneider AT web.de>
6451
6452         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
6453         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
6454
6455 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6456
6457         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
6458         * support/regression/tests/sfr16.c: added test for the sfr32 bug
6459
6460 2005-10-04 Raphael Neider <rneider AT web.de>
6461
6462         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
6463           device/lib/pic16/pics.all: added pic18f1320
6464         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
6465
6466 2005-09-30 Raphael Neider <rneider AT web.de>
6467
6468         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
6469         * src/pic16/devices.inc: NEW, provides device descriptions
6470         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
6471
6472 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
6473
6474         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
6475           GETHBIT
6476
6477 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
6478
6479         * doc/sdccman.lyx: updated Highest Order Bit documentation,
6480           documented Any Order Bit, Higher Order Byte and Higher Order Word
6481         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
6482         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
6483           (optimizeGetAbit): new, to get any bit, not only the high bit,
6484           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
6485           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
6486           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
6487           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
6488             RIGHT_OP: also try GETBYTE, GETWORD optimization,
6489             GETABIT, GETBYTE, GETWORD: decorate them,
6490           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
6491           (ast_print): added GETABIT, GETBYTE, GETWORD
6492         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
6493         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
6494           (geniCodeBinary): new generic binary icode,
6495           (ast2iCode): added GETABIT, GETBYTE, GETWORD
6496         * src/port.h: updated comment for PORT.hasExtBitOp
6497         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
6498           (genGetByte): new, to get a single byte,
6499           (genGetWord): new, to get a word from a long,
6500           (gen51Code): added GETABIT, GETBYTE, GETWORD
6501         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
6502
6503 2005-09-23 Raphael Neider <rneider AT web.de>
6504
6505         * configure.in, configure: have device/lib/pic configured
6506         * device/lib/Makefile.in: added model-pic14
6507         * device/lib/clean.mk: added pic/ to clean rule
6508         * device/lib/pic: added rudimentary pic14 library providing support
6509           functions for multiplication/division/generic pointer access
6510         * src/SDCCopt.c (convilong): mark support functions as extern
6511           for pic14 port as well
6512         * src/pic/gen.c (genMult): added assertions,
6513           (genpic14Code): emit warning on unhandled iCodes
6514         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
6515         * src/pic/pcode.c (pCodeOpCopy),
6516         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
6517           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
6518           SFR_REGISTER}), made safe for future extensions
6519         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
6520           instructions even if preceeded by SKIP instructions (also remove
6521           them); removed unused code
6522         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
6523           prevents leaving parts of the structure uninitialized after copying
6524
6525 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
6526
6527         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
6528           ago by me
6529         * support/regression/tests/addsub.c: added test for the bug
6530
6531 2005-09-21 Raphael Neider <rneider AT web.de>
6532
6533         * device/include/pic16/pic18f1220.h,
6534           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
6535         * device/lib/pic16/Makefile.rules: added missing opening paren
6536         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
6537           are provided in genutils.c,
6538           (genUminusFloat,genUminus,genCmpEq): added asserts on different
6539           operand/result sizes,
6540           (genCmp): assert on NULL pointers first, then check deref'ed values
6541         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
6542           result size
6543
6544 2005-09-18 Raphael Neider <rneider AT web.de>
6545
6546         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
6547           as these are now unused,
6548           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
6549         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
6550           local, avoids uninitialized pointer dereference on r->name
6551         * src/pic16/ralloc.c (newReg): fixed indentation
6552
6553 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
6554
6555         * src/SDCCval.c (constVal): fixed bug 730366
6556         * support/Util/SDCCerr.c,
6557         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
6558
6559 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
6560
6561         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
6562
6563 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
6564
6565         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
6566
6567 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6568
6569         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
6570           (hex2dec): made hex_digit unsigned char, removed ascii dependance
6571         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
6572           (hex2dec): made hex_digit unsigned char, removed ascii dependance
6573         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
6574         * packihx/packihx.c (hexDigit): made c unsigned char
6575         * as/mcs51/lklibr.c (fndsym),
6576         * link/z80/lkgb.c (gb),
6577         * link/z80/lklibr.c (fndsym),
6578         * link/z80/lkrloc.c (relr),
6579         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
6580         * src/SDCC.lex (checkCurrFile, process_pragma),
6581         * src/SDCCglue.c (spacesToUnderscores),
6582         * src/SDCCmain.c (setParseWithComma, processFile),
6583         * src/asm.c (tvsprintf, printCLine),
6584         * src/avr/gen.c (emitcode, aopPut),
6585         * src/ds390/gen.c (emitcode),
6586         * src/hc08/gen.c (emitcode, emitinline),
6587         * src/mcs51/gen.c (emitcode, genInline),
6588         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
6589           tokenizeLineNode),
6590         * src/pic/ralloc.c (debugLog),
6591         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
6592           tokenizeLineNode),
6593         * src/pic16/ralloc.c (debugLog),
6594         * src/z80/main.c (_process_pragma):
6595            made all ctype.h function calls safe
6596         * src/SDCCopt.c: include math.h for fabs
6597         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
6598           and used them throughout the code to make ctype.h function calls safe
6599         * src/ds390/main.c (asmLineNodeFromLineNode),
6600         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
6601         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
6602            unsigned char*
6603         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
6604           (newpCodeAsmDir): made ctype.h function calls safe
6605         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
6606           pic16_emitcode):  made lbp unsigned char*
6607         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
6608           (pic16_newpCodeAsmDir): made ctype.h function calls safe
6609         * src/xa51/gen.c (emitcode),
6610         * src/z80/gen.c (_emit2): made lbp unsigned char*
6611         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
6612            char*
6613
6614 2005-09-05 Raphael Neider <rneider AT web.de>
6615
6616         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
6617           access bank splitpoint
6618
6619 2005-09-05 Raphael Neider <rneider AT web.de>
6620
6621         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
6622
6623 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
6624
6625         * .version: changed to version 2.5.3
6626         * doc/sdccman.lyx: changed version to 2.5.3,
6627           documented --codeseg and --constseg and pragma codeseg and constseg,
6628           documented bit parameters (reentrant) and bit returning
6629         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
6630            currFunc->recvSize, but is this ok for all ports?
6631           (ast2iCode): result of ~ on unsigned char must be cast to int for
6632            bool to work
6633         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
6634           function pointers in bit space
6635         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
6636           (processFuncArgs): call port.reg_parm() with reentrancy info
6637         * src/port.h,
6638         * src/avr/main.c,
6639         * src/ds390/main.c,
6640         * src/hc08/main.c,
6641         * src/pic/main.c,
6642         * src/pic16/main.c,
6643         * src/xa51/main.c,
6644         * src/z80/main.c: port.reg_parm prototype extended with
6645           "bool reentrant" parameter
6646         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
6647           options.stackAuto for allocating bit register parameters
6648         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
6649           (genSend): set BitBankUsed if it is,
6650           (selectRegBank): factored out of genCall for use in genPcall,
6651           (genCall): removed redundant dtype assignmen, use selectRegBank,
6652           (genPcall): handle returning in Carry properly, save in F0 if needed,
6653           (genReceive): handle bit register parameters
6654         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
6655           (mcs51_assignRegisters): enable bit registers for all reentrant
6656            functions and don't set BitBankUsed unconditionally
6657         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
6658         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
6659         * support/regression/tests/funptrs.c: added tests for BOOL and for return
6660
6661 2005-08-27 Borut Razem <borut.razem AT siol.net>
6662
6663         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
6664         ppc-osx (Darwin) does not support -u option. It seems that it is
6665         supported only on Linux - GNU cp
6666
6667 2005-08-25 Borut Razem <borut.razem AT siol.net>
6668
6669         * sim/ucsim/gui.src/serio.src/Makefile.in,
6670           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
6671           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
6672           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
6673           install and strip, since the strip at /usr/ccs/bin should be used
6674           on solaris
6675
6676 2005-08-24 Borut Razem <borut.razem AT siol.net>
6677
6678         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
6679
6680 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
6681
6682         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
6683         ffffffffu
6684
6685 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
6686
6687         * as/mcs51/aslink.h: completed lkrloc.c prototypes
6688         * as/mcs51/lkmain.c (link_main): fixed warning
6689         * device/include/stdbool.h: ds390 has no advanced bit support yet
6690         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
6691         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
6692         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
6693           and updated their macros
6694         * src/SDCCval.c (constVal): updated comment for renamed b_long
6695
6696 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
6697
6698         * as/mcs51/asdata.c: changed ctype['['] to BINOP
6699         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
6700           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
6701           (oprio): set priority for '['
6702         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
6703            and adb_24_bit
6704         * as/mcs51/asm.h: added defines R_BIT and S_BIT
6705         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
6706         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
6707         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
6708           added overlayable BIT_BANK area
6709         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
6710           (summary2): explain 'T' in legenda
6711         * as/mcs51/lkrloc.c: replaced old K&R style,
6712           (relr): added R_BIT processing,
6713           (errmsg): added "Bit-addressable relocation error",
6714           (adb_bit): added for converting from byte- to bit-addressable space,
6715           (adb_24_bit): added for converting from byte- to bit-addressable space
6716         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
6717            used in reentrant functions now even as return value
6718         * device/lib/_gptrput.c (_gptrput): removed obsolete code
6719         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
6720           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
6721         * src/SDCCglobl.h: added indicator BitBankUsed
6722         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
6723            the bit registers b0-b7
6724         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
6725           (geniCodeCast): fixed bug 1263853,
6726           (geniCodeLogicAndOr): put result in bool or char,
6727           (geniCodeReceive): added parameter func for accessing the return type,
6728           (geniCodeFunctionBody): pass func to geniCodeReceive
6729         * src/SDCCmain.c: added indicator BitBankUsed
6730         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
6731         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
6732           (checkSClass): don't put automatic bool/bit on stack,
6733           (checkFunction): removed check on function cannot return bit
6734         * src/SDCCsymt.h: added newBoolLink prototype
6735         * src/mcs51/gen.c (rb1regs): added bit registers,
6736           (movc): created for assigning to carry,
6737           (pushReg, popReg): created for pushing registers,
6738           (sameRegs): check both AOP_REG and AOP_CRY types,
6739           (aopOp): handle bit registers,
6740           (aopPut): optimization no self-assign,
6741           (saveRegisters): push reg->base (bits) only once for bit registers,
6742            and use pushReg,
6743           (unsaveRegisters): pop reg->base only once and use popReg,
6744           (assignResultValue): added parameter func and return in carry for bits,
6745           (genIpush): optimization no reload in A if not changed,
6746           (genSend): bit parameters in reentrant functions are passed in bit
6747            registers by first assigning to bits in B, then save registers and
6748            copy B to bits,
6749           (genCall): handle returning in Carry properly, save it in F0 if needed,
6750           (genPcall): updated assignResultValue call, this is not safe yet for bit
6751            returning function !!!
6752           (genFunction): don't generate equ's for bit registers and use pushReg,
6753           (genEndFunction): take care of bit returning functions and use popReg,
6754           (genRet): return bit in Carry,
6755           (genIfx): optimize bit registers and other directly addressable bits,
6756           (genReceive): updated assignResultValue call
6757         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
6758           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
6759            registers when using stack-auto
6760         * src/mcs51/ralloc.c (_G): added allBitregs,
6761           (regs8051): added the bit registers,
6762           (createStackSpil): use macro IS_BIT,
6763           (getRegBit): added to allocate a bit register, else spill,
6764           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
6765           (updateRegUsage): factored out to ease stepping while debugging,
6766           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
6767            also allocate bit registers,
6768           (fillGaps): handle bit registers,
6769           (findAllBitregs): added to create bit vector with all bit registers,
6770           (mcs51_allBitregs): returns this bit vector,
6771           (mcs51_assignRegisters): when using stack-auto use bit registers for
6772            passing parameters and creating local variables
6773         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
6774
6775 2005-08-22 Borut Razem <borut.razem AT siol.net>
6776
6777         * device/lib/Makefile.in: replaced find option -or with -o
6778           to make it run on solaris
6779
6780 2005-08-22 Raphael Neider <rneider AT web.de>
6781
6782         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
6783           fixes #1265442 (crash on Solaris)
6784
6785 2005-08-20 Borut Razem <borut.razem AT siol.net>
6786
6787         * configure, configure.in: added tests for libsocket and libnsl libraries,
6788           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
6789           from support/regression/Makefile.in
6790         * support/regression/Makefile.in: added
6791         * device/lib/pic16/Makefile.common.in: force make to use bash shell
6792         * sim/ucsim/libtool: regenerated on sparc-solaris
6793         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
6794           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
6795           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
6796           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
6797           sparc-solaris, which doesn't use GNU ld linker
6798         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
6799         * as/Makefile: find on sparc-solaris does not support -maxdepth option
6800
6801 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
6802
6803         * src/mcs51/peeph.def: updated comments
6804
6805 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6806
6807         * device/lib/_gptrget.c,
6808         * device/lib/_gptrput.c: slightly shorter
6809         * doc/sdccman.lyx: incremented version
6810         * src/mcs51/peeph.def: moved peephole comments to the line of first
6811           change to better keep line correlation, reanimated 186.e
6812         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
6813
6814 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6815
6816         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
6817           David Saxton with quotes around file name.
6818
6819 2005-08-15 Borut Razem <borut.razem AT siol.net>
6820
6821         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
6822           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
6823           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
6824           make tests run on x86_64 platform
6825
6826 2005-08-13 Raphael Neider <rneider AT web.de>
6827
6828         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
6829           as it might be executed DURING a build (parallel make is wonderful)
6830
6831 2005-08-13 Raphael Neider <rneider AT web.de>
6832
6833         * device/lib/Makefile.in (port-specific-objects-pic16):
6834           revert to cp $(PORT)/bin/*.* $(PORTDIR)
6835         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
6836           dependency
6837         * device/lib/pic16/Makefile.rules: build subdirs before creating
6838           the library, removed builddir rule, create $(builddir) early in
6839           recurse rule, use empty recurse rule for leaf directories
6840         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
6841           mkdir errors (race condition), removed duplicate suffix "hex"
6842           from clean rules
6843         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
6844         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
6845           prevents mkdir -p from aborting on Alpha
6846
6847 2005-08-12 Raphael Neider <rneider AT web.de>
6848
6849         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
6850           db-statements in order to allow for arrays of pointers in code
6851           sections to be placed without interspersed 0-padding, fixes
6852           bug #1256215
6853         * (emitStatistics): fixed division by zero for pic18f1220
6854         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
6855           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
6856         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
6857         * (pic16_pCodeConstString): keep track of already emitted string
6858           literals to prevent "duplicate definitions of symbol _str_NR"
6859         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
6860           debug message
6861         * device/lib/Makefile.in: ignore failing PIC16 library builds
6862         * device/lib/pic16/Makefile: do not build if gputils are missing
6863         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
6864
6865 2005-08-10 Raphael Neider <rneider AT web.de>
6866
6867         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
6868           my last commit)
6869
6870 2005-08-10 Raphael Neider <rneider AT web.de>
6871
6872         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
6873           Rokas' patch to add the new fixed point type "__fixed16x16"
6874         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
6875           functions for __fixed16x16 arithmetics
6876         * device/lib/pic16: reimplemented the build system to support
6877           a separate build directory, better handling of libio (create
6878           the library in a separate subdir for each architecture) and
6879           easier configuration (centralized in Makefile.common)
6880
6881 2005-08-07 Raphael Neider <rneider AT web.de>
6882
6883         * src/pic16/gen.c (genrshTwo): fixed sign extension
6884         * src/pic16/device.c: added pic18f2320, 4220 and 4320
6885         * device/include/pic16/pic18f2220.h: changed some bit definitions,
6886           added T0CONbits
6887         * device/include/pic16/pic18f4220.h: NEW, header for
6888           pic18f4220 and pic18f4320
6889         * device/include/pic16/pic18fregs.h: added new devices,
6890           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
6891         * device/include/pic16/signal.h: resolved name clashes
6892           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
6893           to also allow testing for interrupt enable bits, added
6894           comments on how to use the macros
6895         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
6896         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
6897           register definitions for the devices
6898         * device/lib/pic16/pics.all: added new devices
6899         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
6900           allocated memory
6901         * device/lib/pic16/libc/stdlib/memfree: do not count
6902           the block header as free memory
6903         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
6904           simplified and added missing end-of-blocklist-marker
6905           (reported by Peter Onion, fixes #1252814)
6906         * (_mergeHeapBlock): fixed loop condition
6907         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
6908           len==0, restructured code
6909         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
6910           up a bit, reduced bitfield accesses, prevent endless loops
6911           in case of heap corruption
6912         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
6913           "unreferenced arguments/must return a value" warnings
6914         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
6915           replaced BAUDREG with SPBRG
6916         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
6917           device/lib/pic16/debug/gstack/gstack.c: replaced
6918           _naked, _asm, _endasm with __naked, __asm, __endasm
6919
6920 2005-08-05 Raphael Neider <rneider AT web.de>
6921
6922         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
6923           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
6924
6925 2005-08-05 Borut Razem <borut.razem AT siol.net>
6926
6927         * device/lib/Makefile.in: added missing ';'
6928         * configure: removed ^M characters
6929
6930 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6931
6932         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
6933           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
6934           License
6935
6936 2005-08-04 Borut Razem <borut.razem AT siol.net>
6937
6938         * configure.in: pic16 libraries build 2nd try - enable running
6939           configure in device/lib/pic16
6940         * configure: regenerated from configure.in
6941         * device/lib/Makefile.in: create $(PORT)/bin directory
6942
6943 2005-08-03 Raphael Neider <rneider AT web.de>
6944
6945         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
6946           to get/set values via pointers
6947         * (genUnpackBits,genPackBits): changed detection of
6948           ptr->bitfield vs. sym.bitfield, fixed access via generic
6949           pointers, removed dead (wrong) code for multibyte bitfields
6950         * (genNearPointerGet, genGenPointerGet): removed useless code,
6951           fixed bitfield detection, fixes #1250594
6952         * (genNearPointerSet): removed useless code
6953         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
6954           and introduced macro pic16_emitpcode that conditionally emits
6955           the origin of the following pCode (useful for debugging SDCC)
6956         * src/pic16/pcode.c: changed (and disabled) some debug outputs
6957         * (createDefmap): fixed handling of LFSR for --optimize-df
6958
6959 2005-08-02 Borut Razem <borut.razem AT siol.net>
6960
6961         * device/lib/Makefile.in: pic16 libraries build enabled since
6962           gputils-0.13.2 are now localy installed at sourceforge's compile farm
6963
6964 2005-08-02 Raphael Neider <rneider AT web.de>
6965
6966         * src/pic16/gen.c (genPackBits): removed deprecated warning
6967         * (genGenPointerSet): fixed bitfield detection
6968
6969 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6970
6971         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
6972
6973 2005-07-31 Raphael Neider <rneider AT web.de>
6974
6975         * device/lib/pic16/libdev/pic18f458.c,
6976           device/include/pic16/pic18f458.h: added missing T0CONbits
6977
6978 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6979
6980         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
6981
6982 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
6983
6984         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
6985
6986 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6987
6988         * device/include/mcs51/at89c51ed2.h: added.
6989
6990 2005-07-23 Raphael Neider <rneider AT web.de>
6991
6992         * src/pic/gen.h: added emitpcode macro for debugging
6993         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
6994           and replace by macro adding debug information on demand
6995         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
6996         * (gencjne): tried to fix; replaced with correct (slower) code
6997         * (gen{Unp,P}ackBits): fixed single bit access
6998         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
6999         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
7000           previous instruction
7001         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
7002           register has to be handled with care (forbidding movement
7003           of assignments/uses, removing assignments completely, ...)
7004         * (pCodeOptime2pCodes): make use of regIsSpecial
7005         * added lots of debugging output (commented out)
7006         * src/pic/rallloc.c (deassignLRs): prevent operand registers
7007           from being reused as result UNLESS it is known to work
7008
7009 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
7010
7011         * support/Util/dbuf.h: include <stddef.h> for size_t
7012         * .version: changed to version 2.5.2
7013
7014 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7015
7016         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
7017
7018 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7019
7020         * src/hc08/gen.c (genMinus): fixed bug #1241835,
7021           (genModOneByte): removed needless psha/pula
7022
7023 2005-07-22 Raphael Neider <rneider AT web.de>
7024
7025         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
7026           have PIC14 handled like PIC16, fixes broken pic14 linker calls
7027         * src/pic/gen.c (resolveIfx): do not "invent" labels
7028         * (genSkipc): changed to positive logic
7029         * (genSkipCond): removed as no longer needed
7030         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
7031           backport from PIC16
7032         * (genLeftShift): check operands are in different registers
7033         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
7034           INCF does not update CARRY...
7035         * src/pic/main.c: fixed _linkCmd
7036         * src/pic/pcode.c (unlinkpCode): added inactive code
7037         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
7038           alive (do not assign result and operand overlapping registers)
7039
7040 2005-07-22 Raphael Neider <rneider AT web.de>
7041
7042         * src/pic/device.c (dump_sfr): replaced register declaration with
7043           call to emitSymbolToFile() to avoid duplicate symbols
7044         * (assignRelocatableRegisters): do not declare external symbols
7045         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
7046           right (take size of type, not etype)
7047         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
7048         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
7049         * (packRegsForAccUse): disabled assignment of WREG as
7050           the result reg to prevent occurence of just fixed #1235003,
7051           fixes #1242954
7052         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
7053           symbols (avoids duplicate symbols in .asm file)
7054         * (pic14emitRegularMap): use emitSymbolToFile()
7055         * src/pic/gen.c (aopOp): fixed spillLocation handling
7056         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
7057         * (genDataPointerSet): removed unneccessary variables/output
7058
7059 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
7060
7061         * as/mcs51/lkarea.c: enlarged codemap for banked memory
7062         * device/lib/mcs51/crtbank.asm: added # to 0x0F
7063
7064 2005-07-21 Raphael Neider <rneider AT web.de>
7065
7066         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
7067           architecture cannot handle them efficiently, fixes bug #1235003
7068         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
7069           check for empty sets before using them (fixes bug #1232190)
7070
7071 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
7072
7073         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
7074           (lnksect2): generate warnings for memory overlap
7075         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
7076           constseg to set the name of these segments so you can instruct the linker
7077           to place them in banks
7078         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
7079         * src/SDCCglobl.h: added MODEL_HUGE to enum,
7080           added code_seg and const_seg to options
7081         * src/SDCCglue.c (emitMaps): use options.const_seg,
7082           (createInterruptVect): put interrupt vectors in segment HOME,
7083           (glue): put HOME before static segment and put the main glue in HOME,
7084           (glue): use options.code_seg
7085         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
7086         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
7087           these segments so you can instruct the linker to place them in banks
7088           (linkEdit): use code_loc for HOME segment which should be the first
7089           segment in code memory now
7090         * src/SDCCmem.c: fixed more stuff like bug 1238386
7091         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
7092           (changePointer): don't change function pointers to code pointers for
7093           banked functions,
7094           (compareType): added exceptional check for banked function pointers
7095         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
7096         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
7097           after static in code memory
7098         * src/mcs51/gen.c: added aopLiteralLong prototype,
7099           (aopForSym): use getSize for functions,
7100           (genCall): generate banked calls over one trampoline __sdcc_banked_call
7101           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
7102           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
7103           the segment,
7104           (genPcall): use call for literal function pointers and generate banked
7105           calls over the one trampoline so there's only one place for the user to
7106           modify according to his/hers hardware,
7107           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
7108           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
7109         * src/mcs51/main.c: added keyword banked,
7110           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
7111         * support/Util/SDCCerr.c,
7112         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
7113           needed for passing the bank and address to the trampoline
7114         * device/lib/mcs51/crtbank.asm: added for bankswitching
7115         * device/lib/mcs51/Makefile: added crtbank
7116
7117 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7118
7119         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
7120           for fields at offset 0 of a struct or union as reported
7121           on 2005-07-07 in the developer mailing list.
7122
7123 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
7124
7125         * src/SDCCmem.c: fixed bug 1238386
7126
7127 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7128
7129         * src/mcs51/peeph.def: added labelrefcounting for peepholes
7130           (patch #1144962), added peephole 300, enabled 259.x
7131         * doc/sdccman.lyx: removed screenshot and provided link instead
7132
7133 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7134
7135         * doc/sdccman.lyx: added section about debugging with ddd
7136         * doc/figures/ddd_example.eps: screenshot of debugging session
7137
7138 2005-07-04 Raphael Neider <rneider AT web.de>
7139
7140         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
7141           like CODE pointers, fixes #1115683
7142         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
7143           call, fixes bugs #1232211, #1228110,
7144           fixed wrong casts to pCodeFlow from pCodeInstructions
7145
7146 2005-07-04 Raphael Neider <rneider AT web.de>
7147
7148         * src/pic/gen.c (popGet): changed assert to allow for
7149           bit operands
7150         * (popGetAddr): changed signature to provide
7151           an additional index, patched all call sites
7152         * (genCmpEq): handle literal-like operands correctly
7153         * (genAddrOf): added sanity checks on __code/__data pointers
7154         * (genAssign): added handling of symbols from __code section
7155         * (gencjne): do not generate code for comparisons whose result
7156           is neither stored nor used, fixes bug #1171114
7157         * (AccLsh, AccRsh): operate on operand instead of WREG
7158         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
7159           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
7160           by known count
7161         * rewrote complete shift-by-literal logic, commented unused
7162           functions out
7163         * (genConstPointerGet): get multiple bytes (if result size > 1),
7164           fixed handling of non-immediate addresses
7165         * (genPointerGet): handle CODE pointers like CONST pointers
7166         * (genpic14Code): insert C-SRC lines as Cource-pCodes
7167         * ({aop,op}_isLitLike): NEW, single place to decide whether an
7168           operand is to be treated as a literal or not
7169         * (mov2w,genPcall,genCmpEq),
7170           src/pic/genarith.c: use aop_isLitLike() to decide between
7171           literal/register contents
7172         * (addSign): added missing offset
7173         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
7174           only emit comment in debug-mode,
7175           use {aop,op}_isLitLike throughout the file
7176         * src/pic/glue.c: fix initializers for pointers (work in progress)
7177         * src/pic/pcode.c (get_op): honor index on _const symbols
7178         * ({reset,dump}pCodeStatistics): NEW, estimate code size
7179         * (dumppBlock): added pCode size estimation
7180         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
7181           check for IS_SYMOP before OP_SYMBOL'ing
7182         * fixed indentation, compacted switch-statements
7183         * (allocReg): find free register and allocate it instead of
7184           allocating new registers all the time
7185         * (deassignLRs): prevent POINTER_GET's from being assigned the same
7186           registers as its operands (necessary only for multibyte GETs)
7187
7188 2005-07-01 Raphael Neider <rneider AT web.de>
7189
7190         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
7191           debugging .asm-output macros FENTRY + FEXIT
7192         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
7193           way... I wonder...
7194         * (emitpComment): NEW, printf to pCode
7195         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
7196           offset handling
7197         * (popGetAddr): NEW, variant of popGet to access an immediates
7198           high(er) bytes instead of the n'th byte of memory they reference,
7199           replaced popGet with popGetAddr where neccessary
7200         * (genDataPointerGet): reactivated and fixed implementation
7201         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
7202           accesses
7203         * (genDataPointerSet): fixed multibyte assignments
7204         * (genpic14Code): fixed --i-code-in-asm handling
7205         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
7206         * (genPlus): fixed index-out-of-bounds error
7207         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
7208         * src/pic/ralloc.c: added debugging output macro FENTRY2
7209         * (spillThis): fixed indentation, enbraced for-body for clarity
7210         * (rematStr): commented out as now unused
7211         * (regTypeNum): commented out special spill case (overwrites
7212           arbitrary values)
7213         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
7214
7215 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
7216
7217         * doc/sdccman.lyx: documented sfr16/sfr32,
7218           added example for using storage class with function pointers
7219         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
7220
7221 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
7222
7223         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
7224         * device/lib/_itoa.c,
7225         * device/lib/_ltoa.c: optimized codesize
7226         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
7227           but don't know how to suppress the double warning.
7228         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
7229         * support/Util/SDCCerr.c,
7230         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
7231
7232 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
7233
7234         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
7235           fixed old K&R prototypes
7236         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
7237         * device/lib/_gptrget.c,
7238         * device/lib/_gptrgetc.c,
7239         * device/lib/_gptrput.c: changed versions for new memory indicator values,
7240           also new versions for small generic pointers and banked generic pointers
7241         * src/port.h: added const_name
7242         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
7243         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
7244         * src/SDCCcse.c (findPrevIc): check all associative operators
7245         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
7246         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
7247         * src/SDCCmem.c: updated comments,
7248           set far-space to 0 for pdata, results in optimized code
7249         * src/SDCCmem.h: added macro CONST_NAME
7250         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
7251           moving the info into the highest bits, see also gptrget/gptrput
7252         * src/src.dsp: added sdcc.ico to project files
7253         * src/avr/gen.c (genCast): fixed bug 0x%d
7254         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
7255         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
7256           relation between ptr_type and DCL_TYPE,
7257           (genCast): fixed bug 0x%d
7258         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
7259           (CODE)" for const_name
7260         * src/hc08/gen.c (genCast): fixed bug 0x%d
7261         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
7262           (hc08_port): added "CONST (CODE)" for const_name
7263         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
7264           (aopForRemat, adjustArithmeticResult): disconnected direct relation
7265           between ptr_type and DCL_TYPE,
7266           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
7267           operand* and took AOP() inside function so sfr-ness can be checked,
7268           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
7269           new prototype,
7270           (genFunction, genEndFunction): optimized stack setup,
7271           (genMinus): optimized for literals with ending zeroes (in bytes),
7272           (genCast): fixed bug 0x%d
7273         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
7274           (mcs51_port): added "CONST (CODE)" for const_name
7275         * src/mcs51/peeph.def: made rule 226 more generic
7276         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
7277         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
7278         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
7279         * src/z80/main.c (z80_port): added NULL for const_name,
7280           (gbz80_port): added NULL for const_name
7281         * support/regression/tests/bug663539.c,
7282         * support/regression/tests/sfr16.c: new tests
7283
7284 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7285
7286         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
7287
7288 2005-06-24 Raphael Neider <rneider AT web.de>
7289
7290         * device/lib/pic16/libdev/pic18f[68][567]20.c:
7291           corrected typos...
7292         * device/include/pic16/signal.h: added USBIF
7293           and SIG_USB
7294
7295 2005-06-24 Raphael Neider <rneider AT web.de>
7296
7297         * device/lib/pic16/libdev/pic18f2455.c,
7298           device/include/pic16/pic18f2455.h: NEW
7299         * device/include/pic16/pic18fregs.h,
7300           device/lib/pic16/pics.all,
7301           src/pic16/device.c: added 18f2455
7302         * device/lib/pic16/libdev/pic18f[68][567]20.c,
7303           device/include/pic16/{pic18f[68][567].h,usart.h}:
7304           replaced MULTIPLE_USARTS define with more relaible
7305           compatibility sfrs (for USART access)
7306
7307 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
7308
7309         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
7310           and the output asm file line is printed on two lines.
7311
7312 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7313
7314         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
7315           BGT, BLE, BHI, and BLS instructions
7316         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
7317           genCmpEq): removed
7318         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
7319           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
7320           fixes bug #1216342
7321         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
7322
7323 2005-06-15 Raphael Neider <rneider AT web.de>
7324
7325         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
7326         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
7327         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
7328           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
7329           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
7330
7331 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7332
7333         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
7334           Marcel Telka in bug #1215704
7335
7336 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
7337
7338         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
7339           located in shared memory bank.
7340
7341 2005-05-31 Raphael Neider <rneider AT web.de>
7342
7343         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
7344           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
7345           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
7346
7347 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
7348
7349         * device/lib/_strncpy.c: fixed the fix
7350
7351 2005-05-26 Raphael Neider <rneider AT web.de>
7352
7353         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
7354           initializers with \0, bug #1208187
7355         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
7356           intializers with \0, bug #1208187
7357
7358 2005-05-26 Raphael Neider <rneider AT web.de>
7359
7360         * src/pic16/glue.c (pic16_printIvalChar): fixed string
7361           initializers with \0, bug #1208187
7362         * src/pic16/main.c (_process_pragma): added sanity checks
7363           for stack position and size, emit warnings when appropriate
7364
7365 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
7366
7367         * device/lib/_strncpy.c: fixed not filling with \0
7368
7369 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7370
7371         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
7372           createFunction),
7373         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
7374           compound_statement),
7375         * src/SDCCsymt.h,
7376         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
7377
7378 2005-05-24 Raphael Neider <rneider AT web.de>
7379
7380         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
7381
7382 2005-05-24 Raphael Neider <rneider AT web.de>
7383
7384         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
7385           TRISE definitions, closes bug #1162453
7386
7387 2005-05-22 Raphael Neider <rneider AT web.de>
7388
7389         * src/pic16/main.c (_process_pragma): check for missing
7390           arguments to pragmas code and udata
7391         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
7392           consistency fixes to match other headers (thanks to Jim Paris)
7393         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
7394
7395 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
7396
7397         * src/SDCCicode.c (isOperandEqual): fixed missing ;
7398
7399 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
7400
7401         * support/regression/tests/bug1198642.c: new test
7402         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
7403         * src/SDCCcse.c (findPrevIc): added comment, please have a look
7404         * support/scripts/resource.h,
7405         * support/scripts/resource.rc,
7406         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
7407         * support/scripts/sdcc.ico: added 32x32 icon
7408
7409 2005-05-18 Raphael Neider <rneider AT web.de>
7410
7411         * device/lib/pic16/libdev/pic18f*.c,
7412         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
7413           keywords to "__sfr" and "__at (X)"
7414         * device/include/pic16/pic18fregs.h: added pic18f4520
7415         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
7416           #1203088 (MPLAB compatibility)
7417
7418 2005-05-17 Raphael Neider <rneider AT web.de>
7419
7420         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
7421         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
7422         * device/lib/pic16/pics.all: added new devices
7423         * src/pic16/device.c: added support for pic18f4520
7424
7425 2005-05-16 Raphael Neider <rneider AT web.de>
7426         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
7427         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
7428         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
7429           convenience function for bit access
7430
7431 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7432
7433         * device/lib/printf_large.c: fixed bug 1193299
7434         * support/regression/tests/bug1057979.c: added test %3.3s
7435
7436 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7437
7438         * device/include/mcs51/8051.h,
7439         * device/include/mcs51/8052.h: made parseable with lint
7440         * device/include/mcs51/lint.h: added include file for (sp)lint
7441         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
7442         * doc/cdbfileformat.lyx,
7443         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
7444
7445 2005-05-14 Raphael Neider <rneider AT web.de>
7446
7447         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
7448         * device/lib/pic16/libc/stdlib/itoa.c (new)
7449         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
7450         * device/lib/pic16/libio/Makefile: exclude subdir according to
7451           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
7452         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
7453         * src/pic16/gen.c (genFunction): prevent annoying warning
7454         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
7455           nameclashes on BeOS
7456         * support/cpp2/cppmain.c (cpp_output_string): new
7457         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
7458           fixes bug 1116802
7459
7460 2005-05-13 Borut Razem <borut.razem AT siol.net>
7461
7462         * src/SDCCmain.c (linkEdit): fixed bug 1195202
7463
7464 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7465
7466         * .version: changed to version 2.5.1; back to bleeding edge development
7467
7468 2005-05-11 Borut Razem <borut.razem AT siol.net>
7469
7470         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
7471           generate PDF version 1.3 documents
7472
7473 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7474
7475         * .version: changed to version 2.5.0
7476
7477 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7478
7479         * doc/sdccman.lyx: updated weblinks, index and smaller updates
7480
7481 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7482
7483         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
7484         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
7485         well as many smaller updates.
7486         * .version: changed to version 2.5.0-pre1
7487
7488 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7489
7490         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
7491
7492 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
7493
7494         * support/regression/tests/bug1185672.c: added
7495         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
7496           bug 1185672
7497         * src/mcs51/gen.c (genCall): added comments, made it look safer
7498         * src/mcs51/gen.c (genEndFunction): simplified
7499
7500 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
7501
7502         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
7503
7504 2005-04-14 Borut Razem <borut.razem AT siol.net>
7505
7506         * fixed bug 1045046 - SIGSEGV with really simple code?:
7507           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
7508           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
7509
7510 2005-04-14 Borut Razem <borut.razem AT siol.net>
7511
7512         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
7513           src/pic16/device.h: temporarily disabled experimental #inline pragma
7514           for 2.5.0 release
7515
7516 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
7517
7518         * device/include/z80/stdio.h,
7519         * device/include/z80/string.h: removed these highly incomplete files so
7520           SDCC can use the default ones in device/include/
7521
7522 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7523
7524         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
7525         gcc warning.
7526         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
7527         fix sdcpp warnings.
7528
7529 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
7530
7531         * device/include/malloc.h: removed redundant __reentrant prototypes
7532         * device/lib/_mullong.c: added working xstack variant in asm (C version
7533           doesn't pass regression tests)
7534         * device/lib/bpx.c: used __data and made bpx char for mcs51
7535         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
7536           (createFunction): fixed bug with xstackPtr
7537         * src/SDCCcse.c: corrected comments
7538         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
7539           (killDeadCode, eBBlockFromiCode): removed unused code
7540         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
7541           corrected comments
7542         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
7543           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
7544           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
7545           (genModOneByte): fixed warning in MSVC
7546         * src/mcs51/main.c (): added comments
7547         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
7548
7549 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
7550
7551         * src/SDCCmain.c (linkEdit): oops, changed one line too many
7552
7553 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
7554
7555         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
7556
7557 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
7558
7559         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
7560         characters arrays of larger size than the declared one.
7561
7562 2005-04-10 Borut Razem <borut.razem AT siol.net>
7563
7564         * src/pic/gen.c (genInline),
7565           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
7566           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
7567           (findNextInstruction), (findPrevInstruction),
7568           (findInstructionUsingLabel),
7569           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
7570         * src/pic/pcode.c (findLabel): added missing '\n'
7571         * src/src.dsp: added SDCCdwarf2.c to the project
7572
7573 2005-04-09 Borut Razem <borut.razem AT siol.net>
7574
7575         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
7576
7577 2005-04-08 Raphael Neider <rneider AT web.de>
7578
7579         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
7580           into the chain after a given one) and mergeDefmapSymbols (combine
7581           defmap entries for each symbol per pcode)
7582         * (createDefmap): have defmap entries merged in the end
7583         * (defmapReplaceSymRef): split defmap entries covering two accesses to
7584           a symbol before replacing one access type's symbol, merge symbols in
7585           the end (replacement symbol might already have an entry)
7586         * (assignValnums): keep reference to written WREG intact
7587
7588 2005-04-08 Raphael Neider <rneider AT web.de>
7589
7590         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
7591           Alpha)
7592
7593 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
7594
7595         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
7596         bytes
7597
7598 2005-04-07 Raphael Neider <rneider AT web.de>
7599
7600         * device/include/pic16/usart.h: added compatibility defines for
7601           devices with more than one USART
7602         * device/include/pic16/pic18f[68][567]20.h: activated above defines
7603
7604 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7605
7606         * device/lib/Makefile.in: updated for port specific include
7607
7608 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7609
7610         * support/regression/ports/mcs51/spec.mk: added mcs51 include
7611
7612 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7613
7614         * device/include/8051.h,
7615         * device/include/8052.h,
7616         * device/include/at89S8252.h,
7617         * device/include/at89c55.h,
7618         * device/include/at89x051.h,
7619         * device/include/at89x51.h,
7620         * device/include/at89x52.h,
7621         * device/include/mcs51reg.h,
7622         * device/include/reg51.h,
7623         * device/include/reg764.h,
7624         * device/include/regc515c.h,
7625         * device/include/sab80515.h: (re)moved these 12 files
7626         * device/include/mcs51/8051.h,
7627         * device/include/mcs51/8052.h,
7628         * device/include/mcs51/at89S8252.h,
7629         * device/include/mcs51/at89c55.h,
7630         * device/include/mcs51/at89x051.h,
7631         * device/include/mcs51/at89x51.h,
7632         * device/include/mcs51/at89x52.h,
7633         * device/include/mcs51/mcs51reg.h,
7634         * device/include/mcs51/reg51.h,
7635         * device/include/mcs51/reg764.h,
7636         * device/include/mcs51/regc515c.h,
7637         * device/include/mcs51/sab80515.h: and added them here
7638
7639 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
7640
7641         * device/include/stdarg.h: changed SDCC specific keywords to double
7642           underlined form.
7643         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
7644           mcs51 and ds390.
7645         * device/include/hc08/mc68hc908gp32.h,
7646         * device/include/hc08/mc68hc908jb8.h,
7647         * device/include/hc08/mc68hc908jkjl.h,
7648         * device/include/hc08/mc68hc908qy.h: fixed comments
7649         * device/include/mcs51/README: updated
7650         * device/include/mcs51/c8051f120.h: added PINRSF
7651         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
7652         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
7653           amidst code. Also inline is not supported.
7654
7655 2005-04-06 Raphael Neider <rneider AT web.de>
7656
7657         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
7658         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
7659           callers stack/frame pointers
7660
7661 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
7662
7663         * device/include/pic16/usart.h: added, missing in previous commit,
7664         * device/include/pic16/adc.h: fixed typo,
7665         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
7666         commit,
7667         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
7668         <p18fxxx.inc>
7669         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
7670         uninitialized because a bug appears with gplink
7671         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
7672         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
7673         complains for unrecognised option
7674
7675 2005-04-05 Raphael Neider <rneider AT web.de>
7676
7677         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
7678           structs as well (using memcpy)
7679         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
7680           on ISRs (GOTO has no label)
7681         * src/pic16/device.h: added OF_OPTIMIZE_DF
7682         * src/pic16/main.c: added compiler switch --optimize-df to enable the
7683           new data flow analysis/optimization
7684         * src/pic16/pcode.c: added (prototypes for and implementation of)
7685           dataflow analysis functions, fixed pCodeInstructions' inCond and
7686           outCond values, made RCALL a branch instruction
7687         * (pic16_unlinkpCode): keep C line if possible
7688         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
7689           C line moved if possible
7690         * (pic16_getRegFrompCodeOp): NEW, improved version of...
7691         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
7692           to use new pic16_getRegFrompCodeOp (works for more SFRs)
7693         * (pic16_BuildFlow): fixed skip instructions with label (did not start
7694           new flow)
7695         * (pic16_getJumptabpCode): NEW, needed in...
7696         * (LinkFlow): fixed handling of jumptables, calls and conditional
7697           branches
7698         * (pic16_InsertCommentAfter): NEW
7699         * (pic16_pCodeReplace): made verbose and flow preserving
7700         * (AnalyzeFlow): added call to data flow analysis
7701         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
7702         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
7703         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
7704
7705 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7706
7707         * src/SDCCast.c (decorateType): fixed bug #1105626
7708
7709 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
7710
7711         * device/include/asm/pic16/features.h,
7712         * pic18f*.h headers,
7713         * device/include/pic16/adc.h,
7714         * device/include/pic16/delay.h,
7715         * device/include/pic16/i2c.h,
7716         * device/include/pic16/malloc.h,
7717         * device/include/pic16/stdio.h,
7718         * device/include/pic16/stdlib.h,
7719         * device/include/pic16/string.h,
7720         * device/lib/pic16/libc/stdio/printf_tiny.c,
7721         * device/lib/pic16/libc/stdio/printf_small.c,
7722         * device/lib/pic16/libc/stdio/strmgpsim.c,
7723         * device/lib/pic16/libc/stdio/strmmssp.c,
7724         * device/lib/pic16/libc/stdio/strmusart.c,
7725         * device/lib/pic16/libc/stdio/vfprintf.c,
7726         * device/lib/pic16/libc/stdlib/ltoa.c,
7727         * device/lib/pic16/libc/stdlib/putchar.c,
7728         * device/lib/pic16/libc/stdlib/x_ftoa.c,
7729         * device/lib/pic16/libc/stdlib/memchrpgm.c,
7730         * device/lib/pic16/libc/stdlib/memchrram.c,
7731         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
7732         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
7733         * device/lib/pic16/libio/adc/adcbusy.c,
7734         * device/lib/pic16/libio/adc/adcread.c,
7735         * device/lib/pic16/libio/adc/adcsetch.c,
7736         * device/lib/pic16/libio/usart/ubaud.c,
7737         * device/lib/pic16/libio/usart/ubusy.c,
7738         * device/lib/pic16/libio/usart/udrdy.c,
7739         * device/lib/pic16/libio/usart/uopen.c,
7740         * device/lib/pic16/libio/usart/uputc.c,
7741         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
7742         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
7743         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
7744         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
7745         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
7746         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
7747         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
7748         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
7749         specific keywords to double underlined form,
7750         * device/lib/pic16/libc/Makefile.rules,
7751         * device/lib/pic16/libsdcc/Makefile.rules,
7752         * device/lib/pic16/libm/Makefile,
7753         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
7754         to compile with C standard set in Makefile.common
7755         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
7756         rand.c and crc.c in compilation process,
7757         * device/lib/pic16/libsdcc/int/divuint.c,
7758         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
7759         `c' from signed to unsigned,
7760         * device/lib/pic16/startup/crt0.c,
7761         * device/lib/pic16/startup/crt0i.c,
7762         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
7763         keywords to double underlined form, bug fixes in _do_cinit function
7764         which prevented the correct initialization of the .idata segment,
7765         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
7766         core to enter a infinite loop
7767         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
7768
7769 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7770
7771         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
7772
7773 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7774
7775         * device/include/Makefile.in: add support for hc08 subdirectory
7776         * device/include/hc08/: new subdirectory
7777         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
7778         Lucas Loizaga, thanks!
7779         * device/include/hc08/mc68hc908qy.h,
7780         * device/include/hc08/mc68hc908gp32.h,
7781         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
7782         their own directory. Changed internal macro names to use the compiler
7783         reserved namespace. Changed SDCC specific keywords to double
7784         underlined form.
7785         * device/include/math.h,
7786         * device/include/malloc.h,
7787         * device/include/stdarg.h,
7788         * device/include/stdbool.h
7789         * device/include/string.h,
7790         * device/include/tinibios.h,
7791         * device/include/ds400rom.h,
7792         * device/include/8051.h,
7793         * device/include/8052.h,
7794         * device/include/80c51xa.h,
7795         * device/include/at89c55.h,
7796         * device/include/at89S8252.h,
7797         * device/include/at89x51.h,
7798         * device/include/at89x52.h,
7799         * device/include/ds80c390.h,
7800         * device/include/reg764.h,
7801         * device/include/regc515c.h,
7802         * device/include/sab80515.h,
7803         * device/include/mcs51/c8051f000.h,
7804         * device/include/mcs51/c8051f018.h,
7805         * device/include/mcs51/c8051f020.h,
7806         * device/include/mcs51/c8051f040.h,
7807         * device/include/mcs51/c8051f060.h,
7808         * device/include/mcs51/c8051f120.h,
7809         * device/include/mcs51/c8051f300.h,
7810         * device/include/mcs51/c8051f310.h,
7811         * device/include/mcs51/c8051f320.h,
7812         * device/include/mcs51/c8051f330.h,
7813         * device/include/mcs51/c8051f350.h,
7814         * device/include/z180.h: Changed SDCC specific keywords to double
7815         underlined form.
7816
7817 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
7818
7819         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
7820         18F4455,
7821         * (pic16_assignConfigWordValue): disable testing of configuration
7822         register value with config mask,
7823         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
7824         function with port->fun_prefix,
7825         * (genFunction): when generating a naked interrupt function never
7826         create an absolute segment placed in interrupt vector address, place
7827         the actual interrupt function at IVA instead, when an interrupt
7828         function is generated with unspecified interrupt then do not create
7829         the absolute section,
7830         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
7831         code for generating a call to generic pointer get/put function with
7832         a call to function pic16_callGenericPointer(),
7833         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
7834         the call to the generic pointer get/put functions with prefixing the
7835         function name with port->fun_prefix,
7836         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
7837         * src/pic16/main.c (_process_pragma): prefix function with
7838         port->fun_prefix,
7839         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
7840         calling assembler, old 18Fxxxx macro is deprecated,
7841         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
7842         PC_ASMDIR in while condition,
7843         * (findInstruction): add PC_ASMDIR in while condition,
7844         * (buildCallTree): prefix main with port->fun_prefix,
7845         * (pic16_pCode2str): fixed bug that didn't emit the memory access
7846         identifier for variable with banked access in instructions BTFSS,
7847         BTFSC, BCF, BSF, BTG
7848         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
7849         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
7850         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
7851         perform optimization when enviroment variable NO_REG_OPT is set,
7852         * (insideLRBlock): NEW, return 1 if register is inside an
7853         INF_LOCALREGS block,
7854         * (RemoveRegFromLRBlock): remove a register that is completely
7855         eliminated by register optimization, but it is still left in local
7856         register store/restore in/from stack block,
7857         * (Remove2pcodes): after removing register, check to see if it
7858         should be removed from local register store/restore in/from stack
7859         block,
7860         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
7861         DUMMY_READ_VOLATILE,
7862
7863         * device/include/pic16/adc.h: minor prototype modifications and
7864         update,
7865         * device/include/pic16/malloc.h: added GPL notice various
7866         modifications,
7867         * device/include/pic16/stdint.h: NEW, standard header for ints
7868         * device/include/pic16/delay.h: NEW, header for delay functions,
7869         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
7870         delay1mtcy,
7871         * device/include/pic16/signal.h: NEW, header providing helper macros
7872         for implementing signal handlers,
7873         * device/include/pic16/stdio.h: added prototypes for functions,
7874         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
7875         prototypes for stdin and stdout, added macro PUTCHAR to
7876         automatically implement putchar function prototype,
7877         * device/include/pic16/usart.h: modified and updated USART library,
7878         * device/lib/pic16/libio/adc/,
7879         * device/lib/pic16/libio/i2c: some modifications to improve library
7880         performance,
7881         * device/lib/pic16/libc/stdio/: modifications for the new printf*
7882         family of functions,
7883         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
7884         family of functions and other sources,
7885         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
7886         of the PIC18Fxx[28] devices,
7887         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
7888         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
7889         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
7890         _do_cinit function, because the previous failed when local variables
7891         where not placed in the same memory bank,
7892         * device/lib/pic16/libsdcc/char/: various modifications to improve
7893         library performance,
7894         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
7895         information on the new functions of the c library and more...
7896
7897 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7898
7899         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
7900
7901 2005-03-26 Raphael Neider <rneider AT web.de>
7902
7903         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
7904           if condition == CARRY)
7905         * (genCmp): adapted to new genSkipc semantics
7906         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
7907           on rIfx (genCmp was broken)
7908
7909 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7910
7911         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
7912         * src/z80/main.c (_keywords[]),
7913         * src/SDCCglobal.h (struct options),
7914         * src/SDCC.y,
7915         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
7916         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
7917         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
7918         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
7919         always available in leading double underscore form. The C99 support is
7920         mostly missing, but it's a start.
7921         * support/regression/tests/bug-227710.c: fixed nonconforming use of
7922         reserved identifier "__data".
7923
7924 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
7925
7926         * src/mcs51/peeph.def: fixed bug 1170013
7927
7928 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
7929
7930         * device/include/mcs51reg.h: fixed bug 842007
7931
7932 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7933
7934         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
7935         last time.
7936
7937 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7938
7939         * src/port.h (struct PORT),
7940         * src/avr/ralloc.c (avr_assignRegisters),
7941         * src/avr/main.c,
7942         * src/ds390/ralloc.c (ds390_assignRegisters),
7943         * src/ds390/main.c,
7944         * src/hc08/ralloc.c (hc08_assignRegisters),
7945         * src/hc08/main.c,
7946         * src/mcs51/ralloc.c (mcs51_assignRegisters),
7947         * src/mcs51/main.c,
7948         * src/pic/ralloc.c (pic14_assignRegisters),
7949         * src/pic/main.c,
7950         * src/pic16/ralloc.c (pic16_assignRegisters),
7951         * src/pic16/main.c,
7952         * src/xa51/ralloc.c (xa51_assignRegisters),
7953         * src/xa51/main.c,
7954         * src/z80/ralloc.c (z80_assignRegisters),
7955         * src/z80/ralloc.h,
7956         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
7957         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
7958         * src/SDCCcse.h,
7959         * src/SDCCdflow.c (computeDataFlow),
7960         * src/SDCCdflow.h,
7961         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
7962         * src/SDCCloop.h,
7963         * src/SDCCcflow.c (*),
7964         * src/SDCCcflow.h,
7965         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
7966         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
7967         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
7968         immedDom() returning wrong block; probably fixes bug #1160833)
7969
7970 2005-03-20 Borut Razem <borut.razem AT siol.net>
7971
7972         * support/scripts/inc2h.pl: WIN32 port
7973
7974 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
7975
7976         * device/lib/makefile.in: added abs.c and labs.c
7977
7978 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
7979
7980         * device/include/stdint.h: added
7981         * device/lib/abs.c: added
7982         * device/lib/labs.c: added
7983         * device/include/stdlib.h: added abs() and labs() prototypes
7984         * device/lib/libsdcc.lib: added abs and labs
7985         * device/include/float.h,
7986         * device/lib/_fsmul.c,
7987         * device/lib/printf_fast.c,
7988         * device/lib/printf_tiny.c: updated comments
7989
7990 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7991
7992         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
7993         bug #1164313
7994
7995 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7996
7997         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
7998         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
7999
8000 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
8001
8002         * device/lib/printf_large.c: removed inline assembly for portability and
8003           readability. Use printf_fast if speed or size are more important.
8004         * src/pic16/gen.c: removed conditions around use of DEBUGpc
8005         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
8006
8007 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
8008
8009         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
8010         prevent compiler warning
8011
8012 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
8013
8014         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
8015         moved to level 0 and declared as static. Also they are explicit
8016         placed in access bank. This was necessery because some times they
8017         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
8018         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
8019         optimizations. Currently only compare to unsigned char is implemented,
8020         * src/pic16/gen.c: added fReturnIdx array,
8021         * (struct resolvedIfx) is moved to gen.h and made public,
8022         * (struct _G): added sregsAlloc and sregsAllocSet fields,
8023         * (aopForSym): added an optimization to directly store in stack of
8024         the operand of a SEND iCode,
8025         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
8026         but as registers instead (AOP_REG) using the fReturnIdx array,
8027         * (pic16_freeAsmop): remove the freed register from the
8028         _G.sregsAlloc field,
8029         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
8030         a compare of 'WREG',
8031         * (pic16_popGetTempRegCond): changed function prototype, now
8032         function takes also a bitVector argument v which holds the current
8033         set of registers that are allocated for stack access by aopForSym,
8034         registers allocated in aopForSym for accessing stack symbols are not
8035         any more part of the functions usedRegs field,
8036         * (genCall): some times aopOp is called for a stack variable to be
8037         send, aopForSym might perform the push, if this is true make sure
8038         that genCall doesn't push the variable twice by testing _G.resDirect,
8039         * (genFunction): changed testing for unspecified interrupt number
8040         from 256 to INTNO_UNSPEC,
8041         * modified selection scheme of frame pointer generation. Previously
8042         if function did use local registers a frame pointer was generated,
8043         now a frame pointer is generated only if function has arguments
8044         (that need PLUSW2 register access), or has stack arguments, or the
8045         compiler is not instructed to omit the frame pointer,
8046         * (genEndFunction): before restoring local registers that were saved
8047         in the function preamble, also restore the registers that *might*
8048         have been allocated for stack access,
8049         * (genRet): removed some old comments,
8050         * (genCmp, the active (RN's) version): added a call to the
8051         pic16_genCmp_special function to perform the compare with a more
8052         robust and optimized way,
8053         * (genInline): a feature has been added in inline code generation,
8054         which allows a wildcard variable substitution when writing inline
8055         assembly. Code is incomplete and experimental therefore undocumented,
8056         * (genCast): changed order of aopOp for result and right to allow
8057         aopForSym to directly load the result if possible,
8058         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
8059         perform an optimized compare on some selected special occasions,
8060         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
8061         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
8062         generate an IVT any more,
8063         * src/pic16/main.c (pic16_optionsTable): added command line option
8064         --optimize-cmp,
8065         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
8066         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
8067         macros,
8068         * src/pic16/NOTES: Raphael Neider added in list of active developers
8069         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
8070         jumptable_end to prevent bug #,
8071         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
8072         inCond and outCond fields,
8073         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
8074         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
8075         turn off register spilling,
8076         * (packRegsForOneUse): synced with other ports' versions although it
8077         is not used currently,
8078         * (pic16_packRegisters): added an optimization while reading
8079         structure bitfields, some registers may be saved (malloc code is
8080         decreased by 80 bytes)
8081
8082 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
8083
8084         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
8085         left is a bitfield, if yes, then don't optimize assignment. Perhaps
8086         this can be optimized more?
8087
8088 2005-03-10 Raphael Neider <rneider AT web.de>
8089
8090         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
8091           genNearPointerGet): (hopefully) fixed access to bitfields via
8092           pointers (p->bitN = x; and x = p->bitN; failed)
8093
8094 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
8095
8096         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
8097
8098 2005-03-09 Raphael Neider <rneider AT web.de>
8099
8100         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
8101
8102 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
8103
8104         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
8105         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
8106           (regTypeNum): set REG_BIT type if necessary
8107         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
8108         * support/regression/tests/critical.c: check bug 1144613
8109
8110 2005-03-02 Raphael Neider <rneider AT web.de>
8111
8112         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
8113
8114 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8115
8116         * src/avr/ralloc.c (serialRegAssign),
8117         * src/ds390/ralloc.c (serialRegAssign),
8118         * src/hc08/ralloc.c (serialRegAssign),
8119         * src/mcs51/ralloc.c (serialRegAssign),
8120         * src/pic/ralloc.c (serialRegAssign),
8121         * src/pic16/ralloc.c (serialRegAssign),
8122         * src/xa51/ralloc.c (serialRegAssign),
8123         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
8124
8125 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
8126
8127         * src/SDCCast.c (decorateType): fixed bug 1124787
8128
8129 2005-02-20 Hubert Sack <sack AT digiplan.de>
8130         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8131
8132         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
8133         patch #1121755
8134
8135 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8136
8137         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
8138         to keep the correct label reference count when adding/removing references
8139         to labels. A peephole file using this is appended to patch #1144962.
8140
8141 2005-02-14 Raphael Neider <rneider AT web.de>
8142
8143         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
8144         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
8145         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
8146           retrievals of result operand's value on assignment
8147
8148 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
8149
8150         * device/include/pic16/string.h: modified prototype for memccpy()
8151         to memccpy(void *, void *, char, size_t)
8152         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
8153         check whether to omit frame pointer or not,
8154         * (genInline): convert all occurences of "\n" to LF in inline
8155         assembler blocks, this helps formatting the inline text,
8156         * (pic16_loadFSR0): modified prototype,
8157         * (genNearPointerGet, genNearPointerSet): reorganization of code,
8158         removed some 8051 legacy code,
8159         * (genPackBits): enabled handling bitfields exceeding one byte in size,
8160         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
8161         before allocating temporary registers in functions,
8162
8163 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
8164
8165         * support/regression/tests/bitvars.c: corrected the "fix"
8166
8167 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
8168
8169         * support/regression/tests/bitvars.c,
8170         * support/regression/tests/bitwise.c,
8171         * support/regression/tests/rotate.c: "fixed" problems on Alpha
8172
8173 2005-02-10 Raphael Neider <rneider AT web.de>
8174
8175         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
8176           different size for Alpha
8177         * src/pic16/gen.c (genCmpEq) : improved compare with 0
8178
8179 2005-02-09 Raphael Neider <rneider AT web.de>
8180
8181         * src/SDCC.lex(doPragma) : save and restore warning options as well
8182           (also added new stack plus clone- and copyAndFreeSDCCERRG())
8183         * have #pragma less_pedantic set the errorlevel to WARNING
8184           (fixes #1117001)
8185         * (cloneOptimize) : fixed wrong malloc's size
8186         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
8187           facilitate correct handling of #pragma (save|restore)
8188
8189 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
8190
8191         * src/mcs51/gen.c: removed non-standard C nameless struct/union
8192
8193 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
8194
8195         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
8196
8197 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
8198
8199         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
8200
8201 2005-02-02 Raphael Neider <rneider AT web.de>
8202
8203         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
8204         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
8205         * (pic16_storeForReturn): fixed to allow returning function pointers
8206         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
8207         * device/include/pic16/{stddef.h,stdbool.h}: added
8208
8209 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
8210
8211         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
8212
8213 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
8214
8215         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
8216         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
8217          appeared to be required
8218
8219 2005-01-31 Borut Razem <borut.razem AT siol.net>
8220
8221         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
8222           include/mcs51 and include/z80 directories to the package
8223
8224 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8225
8226         * src/hc08/gen.c (genFunction): fixed bug #1112752
8227
8228 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8229
8230         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
8231
8232 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8233
8234         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
8235
8236 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
8237
8238         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
8239
8240 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
8241
8242         * device/include/c8051fxxx.h: removed these 6 files
8243         * device/include/mcs51/c8051fxxx.h: added these 11 new files
8244
8245 2005-01-26 Raphael Neider <rneider AT web.de>
8246
8247         * src/pic16/gen.c (genAssign): fixed assignment from longs
8248           in codespace (were cut to three bytes)
8249         * (genDummyRead): implemented (except for CODESPACE...),
8250           fixed bug #1108575
8251         * src/pic16/glue.c (emitStatistics): beautified
8252         * device/lib/pic16/libm/Makefile: added include path
8253
8254 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8255
8256         * src/z80/gen.c (aopPut): fixed bug #1103902
8257
8258 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8259
8260         * device/lib/expf.c: fixed bug #1095792
8261
8262 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
8263
8264         * device/lib/pic16/libm: added Math library sources
8265
8266 2005-01-24 Raphael Neider <rneider AT web.de>
8267
8268         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
8269           to enable upcast to pCodeOpReg2 (there is no type tag to
8270           differenciate the two and pic16_popGet2p cast into PCOR2)
8271         * src/pic16/main.c (_process_pragma): fixed another malloc bug
8272           (sizeof(sectNames) changed to sizeof(sectName))
8273           Both patches fix segfaults under MinGW.
8274
8275 2005-01-23 Raphael Neider <rneider AT web.de>
8276
8277         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
8278           Safe_[mc]?alloc()'ed variables
8279         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
8280           of (byte sized) temporaries (assign them to WREG for now)
8281         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
8282           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
8283           this might fix SIGSEGVs on MinGW...
8284         * src/SDCCopt.c (killDeadCode): restored original behaviour
8285           (volatile operands might get thrown away though)
8286
8287 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
8288
8289         * src/pic16/gen.c: fixed bug #1106975,
8290         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
8291         pointer update, INTCON is saved, global interrupts are disabled and
8292         restored after updateing TOS.
8293         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
8294         * added function attribute 'shadowregs' to take advantage of shadow
8295         registers,
8296         * added function attribute 'wparam' as an alternative to the wparam
8297         pragma,
8298         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
8299         user declares a non-ISR function as 'shadowregs',
8300         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
8301
8302 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
8303
8304         * .version: bumped version number to 2.4.8
8305         * device/lib/pic16/pics.all: list of PIC18F devices supported by
8306         pic16 port,
8307         * device/lib/pic16/libio/i2c/: I2C module support library,
8308         * device/include/pic16/i2c.h: I2C support library header,
8309         * device/lib/pic16/libc/stdio/: standard IO support sources,
8310         * (printf_small.c): printf_small() source, supports float print,
8311         * (printf_tiny.c): printf_tiny() source, does not support floats,
8312         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
8313         enable global optimizations for entire library source, other
8314         Makefiles in the source tree are also modified to reflect this,
8315         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
8316         function,
8317         * doc/sdccman.lyx: updated to reflect new changes,
8318         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
8319         sym->onStack if-case,
8320         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
8321         sbit, idata, _idata, xdata, _xdata,
8322         * added pragma library, to link an external library, (see doc),
8323         * removed command line options, --pomit-config-words, --pomit-ivt,
8324         --pleave-reset-vector,
8325         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
8326         when calling assembler to reflect memory model used, also define
8327         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
8328         reflect stack model used,
8329         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
8330         on stack return NULL,
8331
8332 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
8333
8334         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
8335           of the operands is volatile. Fixes #1020220
8336
8337 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
8338
8339         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
8340         * (OptimizeRegUsage): make sure that there is really no other flow where
8341           the first pCode is used
8342
8343 2005-01-22 Raphael Neider <rneider AT web.de>
8344
8345         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
8346           to fix #1106967 (pCode->seq are not set up correctly)
8347
8348 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8349
8350         * src/SDCCglue.c (glue): make sure code area is declared before the
8351         static initialization area.
8352
8353 2005-01-21 Raphael Neider <rneider AT web.de>
8354
8355         * device/lib/Makefile.in: fixed test for pic16 install dir
8356         * device/lib/pic16/*/Makefile*: modified compile flags to enable
8357           optimizations
8358         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
8359           added --optimize-goto compiler switch and pragma wparam documentation
8360         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
8361         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
8362           and PRODH closing bug #1071770 (peephole optimizer)
8363
8364 2005-01-19 Raphael Neider <rneider AT web.de>
8365
8366         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
8367           cmdLine buffers (used when calling sdcpp...) are large enough
8368           (MAX_PATH=256 truncates arguments leading to system halts when
8369           used in MinGW...)
8370         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
8371         * (genUminus): rewritten to for efficiency
8372         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
8373           used uninitialized in some cases)
8374         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
8375           copy the third byte from the int -- now assumes 0x80 (data memory)
8376         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
8377           operands (genAddLit expects the iCode's operands to swapped as
8378           well), fixed leftover bytes (crashed for short left operands)
8379         * (pic16_genMinusDec): performance improvements, removed false
8380           PIC14 emitSKPNCs
8381         * (pic16_genMinus): fixed to cope with differently sized operands
8382         * src/pic16/glue.c (pic16_glue): added new banksel optimization
8383           for --obanksel > 1
8384         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
8385         * src/pic16/graph.[ch]: implementation of directed graphs, used by
8386           new banksel optimization
8387         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
8388           analysis for temporary registers (segfaults...)
8389         * src/pic16/peeph.def: added rule
8390
8391 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
8392
8393         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
8394         which converts a float number to its ASCII representation
8395         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
8396         functions to convert the fractional and integer part of a float to ASCII,
8397         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
8398         realloc.c): added _MALLOC_SPEC to explicit place variables in data
8399         ram
8400         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
8401         _STATMEM macros,
8402         * device/include/pic16/adc.h: added GPL info,
8403         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
8404         a pCodeOp as tested operand,
8405         * (genNearPointerGet): optimized bit testing, does not use
8406         intermediate register for bit value, test directly instead with
8407         BTFSS, BTFSC, works only for single bits,
8408         * (genpic16Code): dump the name of the iCode in the asm,
8409         * src/pic16/ralloc.c (decodeOp): removed static declaration and
8410         renamed to pic16_decodeOp,
8411         * (serialRegAssign): do not allocate a temporary register for iCode
8412         sequences that test a single bit for 1/0
8413
8414 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
8415
8416         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
8417         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
8418         access stack and frame pointers. They are initially assigned to
8419         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
8420         accessing SFRs. Updated all occurences of modification of stack or
8421         frame pointer in gen.c and pcode.c,
8422         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
8423         assigning of a literal value to pointers,
8424         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
8425         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
8426         selected
8427
8428 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8429
8430         * doc/sdccman.lyx: update documentation about stack pragma, added
8431         some info for stack memory models
8432
8433 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8434
8435         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
8436
8437 2005-01-08 Raphael Neider <rneider AT web.de>
8438
8439         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
8440           udata sections to fix bug #1097823
8441
8442 2005-01-05 Raphael Neider <rneider AT web.de>
8443
8444         * src/pic16/gen.c (genGenericShift): added handling of differently
8445           sized left operand and result
8446
8447 2005-01-04 Raphael Neider <rneider AT web.de>
8448
8449         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
8450         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
8451           to hold the condition bit)
8452         * added new version of genCmp (old code available via #define)
8453         * added new version of genShiftLeft/genShiftRight in a generic
8454           way, now supports shifting by negative values
8455         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
8456           shiftCount (expected by genGenericShift)
8457         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
8458         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
8459           dump
8460         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
8461           is an invalid literal too...)
8462
8463 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
8464
8465         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
8466         from Raphael Neider,
8467         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
8468         for 8-bit literals. This fixes some literal operands which are sign
8469         extended to 16-bits ints when instruction needs only 8-bits.
8470
8471 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
8472
8473         * device/lib/logf.c: added mcs51 assembly version
8474         * device/lib/expf.c: added mcs51 assembly version
8475         * device/lib/_logexpf.c: new shared asm code for expf and logf
8476         * device/include/math.h: add defines for assembly math library
8477         * device/lib/Makefile.in: build new _logexpf.c
8478         * device/lib/libfloat.lib: use new _logexpf.c
8479
8480 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
8481
8482         * src/pic/device.c
8483         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
8484           device types which have less than 0x7f registers.
8485
8486 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
8487
8488         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
8489
8490 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
8491
8492         * device/lib/printf_fast.c: only build on supported arch.
8493         * device/lib/printf_tiny.c: only build on supported arch.
8494         * device/lib/printf_fast_f.c: only build if asm float lib
8495         * device/lib/_fsget1arg.c: only build if asm float lib
8496         * device/lib/_fsget2args.c: only build if asm float lib
8497         * device/lib/_fsnormalize.c: only build if asm float lib
8498         * device/lib/_fsreturnval.c: only build if asm float lib
8499         * device/lib/_fsrshift.c: only build if asm float lib
8500         * device/lib/_fsswapargs.c: only build if asm float lib
8501         * device/include/stdio.h: don't provide print_fast,
8502           print_fast_f, print_tiny prototypes if --xstack used
8503
8504 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
8505
8506         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
8507         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
8508           to the SOURCES
8509
8510 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
8511
8512         * device/lib/printf_fast_f.c: same as printf_fast, but
8513           with floating point enabled
8514         * device/lib/printf_fast.c: minor tweaks
8515         * device/include/stdio.h: add printf_fast_f
8516
8517 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
8518
8519         * src/SDCCmain.c: make --float-reent default for mcs51
8520         * device/lib/_fsadd.c: added mcs51 assembly version
8521         * device/lib/_fssub.c: added mcs51 assembly version
8522         * device/lib/_fsmul.c: added mcs51 assembly version
8523         * device/lib/_fsdiv.c: added mcs51 assembly version
8524         * device/lib/_fseq.c: added mcs51 assembly version
8525         * device/lib/_fsneq.c: added mcs51 assembly version
8526         * device/lib/_fsgt.c: added mcs51 assembly version
8527         * device/lib/_fslt.c: added mcs51 assembly version
8528         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
8529         * device/lib/Makefile.in: add _fscmp to build
8530         * device/lib/libfloat.lib: add _fscmp to build
8531
8532 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
8533
8534         * device/lib/_fs2slong.c: added mcs51 assembly version
8535         * device/lib/_fs2sint.c: added mcs51 assembly version
8536         * device/lib/_fs2schar.c: added mcs51 assembly version
8537         * device/lib/_fs2ulong.c: added mcs51 assembly version
8538         * device/lib/_fs2uint.c: added mcs51 assembly version
8539         * device/lib/_fs2uchar.c: added mcs51 assembly version
8540         * device/lib/_slong2fs.c: added mcs51 assembly version
8541         * device/lib/_sint2fs.c: added mcs51 assembly version
8542         * device/lib/_schar2fs.c: added mcs51 assembly version
8543         * device/lib/_ulong2fs.c: added mcs51 assembly version
8544         * device/lib/_uint2fs.c: added mcs51 assembly version
8545         * device/lib/_uchar2fs.c: added mcs51 assembly version
8546         * device/include/float.h: added #define to select asm vs c
8547
8548 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
8549
8550         * device/lib/printf_fast.c: improvements to float output
8551         * device/include/float.h: add defines for assembly float library
8552         * device/lib/_fsget1arg.c: receive 1 float arg
8553         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
8554         * device/lib/_fsnormalize.c: normalize a float
8555         * device/lib/_fsreturnval.c: return float, various helper routines
8556         * device/lib/_fsrshift.c: right shift a float's mantissa
8557         * device/lib/_fsswapargs.c: swap 2 floats
8558         * device/lib/Makefile.in: build these 6 new files for mcs51
8559         * device/lib/libfloat.lib: add these 6 files to the library
8560
8561 2004-12-26 Borut Razem <borut.razem AT siol.net>
8562
8563         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
8564           built by gcc 3.4.2
8565
8566 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
8567
8568         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
8569           and fully reentrant and register bank neutral.
8570         * device/lib/printf_fast.c: added float (not enabled by default),
8571           added compact/slower integer (also not enabled by default),
8572           improved size/speed of fast integer code, other minor changes
8573         * device/include/stdio.h, device/lib/Makefile.in,
8574           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
8575
8576 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
8577
8578         * src/pic16/pcode.c: declaring variables other than at the start of a
8579           block is not supported in C by VC6.
8580
8581 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
8582
8583         * applied a previous patch from Raphael Neider that wasn't included
8584         in the previous commits, which fixes infinite loops within jumptable
8585         improvements,
8586         * made some fixes that previous patches introduced
8587
8588 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
8589
8590         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
8591         that fixes an issue with AOP_PCODE asmop's offset,
8592         * (pic16_popCopyReg): update instance field too,
8593         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
8594         function of pic port,
8595         * (genCmp, genAnd, genAssign),
8596         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
8597
8598 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
8599
8600         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
8601         variables initial values to idata section,
8602         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
8603         variables in some functions. This utilizes parmBytes field of iCode
8604         structure to hold the offset of the variable in stack. (might be
8605         able to use the stack field too?)
8606         * applied patch from Raphael Neider # ### , # ###
8607         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
8608         variable initial values in idata section,
8609         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
8610         for static variables with initial value
8611         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
8612         applied fix in while loop from Raphael Neider.
8613
8614 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
8615
8616         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
8617         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
8618         * src/ds390/ralloc.c (serialRegAssign): spill bits
8619         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
8620         * support/Util/SDCCerr.c,
8621         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
8622         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
8623         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
8624
8625 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
8626
8627         * device/include/sdcc-lib.h: inserted LGPL, added includes
8628           asm/ds390/features.h and asm/mcs51/features.h
8629         * device/include/asm/default/features.h,
8630         * device/include/asm/gbz80/features.h,
8631         * device/include/asm/z80/features.h: added empty _AUTOMEM
8632           and _STATMEM
8633         * device/include/asm/ds390/features.h,
8634         * device/include/asm/mcs51/features.h: added files with defines for
8635           _AUTOMEM and _STATMEM indicating automatic and static storage class
8636         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
8637         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
8638         * src/SDCCicode.c (geniCodeCast),
8639         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
8640         * src/SDCCloop.c (loopInduction): removed unused variable lr
8641         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
8642           to convertToFcall to include char modulo (RFE 1065037), added check
8643           if left operand is unsigned and use abs of literal value
8644         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
8645           as it doesn't work after conversion from peephole.def to peephole.rul
8646         * src/mcs51/gen.c (toBoolean): added check for size,
8647           (genModOneByte): optimized code for signed char modulo a literal
8648           power of 2 (thanks to Hubert Sack),
8649           (genRRC): removed unnecessary "clr c",
8650           (genRLC): replaced "add a,acc" with cheaper "rlc a"
8651         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
8652           jump optimization,
8653           swapped rules 256.c and 256.d,
8654           extended 256.d by using new multiple checks (thanks Erik),
8655           added rules 256.e and 256.f,
8656           updated rule 261.a and 261.b to new generated code
8657         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
8658
8659 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8660
8661         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
8662           induction related bugs, including first part of bug #1074377
8663
8664 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
8665
8666         * applied patch from bug-report #1076292,
8667         * applied patches for genAnd and Goto-optimizations for Raphael
8668         Neider,
8669         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
8670         dump a less iCode information,
8671         * src/pic16/device.h (pic16_options_t): added field debgen,
8672         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
8673         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
8674         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
8675         puclic,
8676         * (various functions): added macros FENTRY and FENTRY2 to functions,
8677         to emit function prologue,
8678         * (various functions): fixed indentation,
8679         * (genNearPointerGet): fixed loading of FSR0,
8680         * (genPackBits): applied patch from Raphael Neider to fix updating
8681         of FSR0 and touching only the modified bits,
8682         * src/pic16/genarith.c (various functions): added macros FENTRY to
8683         emit function prologue in comments,
8684         * src/pic16/pcode.h: added functions debugf2, debugf3,
8685         * src/pic16/ralloc.c: partial fix for packForPush caused
8686         segmentation fault,
8687
8688 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8689
8690         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
8691           <stsp AT users.sourceforge.net> with reversed byte order
8692         * support/regression/tests/rotate.c: added (ds390 skips some tests)
8693
8694 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8695
8696         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
8697           bug #1074377
8698         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
8699         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
8700
8701 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
8702
8703         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
8704
8705 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8706
8707         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
8708           conditions,
8709           (setFromConditionArgs): friendly operand parser for peephole rules,
8710           (operandBaseName, operandsNotRelated): new peephole condition
8711           "operandsNotRelated" -- similar to "operandsNotSame", but takes
8712           architecture specific register naming into account, handles n-way
8713           comparisons, and supports quoted literals
8714         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
8715
8716 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8717
8718         * src/mcs51/peeph.def: fixed bug #1076940
8719
8720 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
8721
8722         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
8723
8724 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8725
8726         Adding support for replacing ljmps with sjmps in jumptables
8727         generated for switch statements. For now you need to set the
8728         environment variable SDCC_SJMP_JUMPTABLE to enable this.
8729         Now 4 algorithms for mcs51 jumptable generation are used:
8730         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
8731         addresses loaded pc-relative for up to 112 cases and stack-pushing
8732         target addresses loaded with offset from dptr for up to 256 cases.
8733
8734         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
8735         * src/mcs51/main.c: adapted constants for switch table generation
8736         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
8737
8738 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
8739
8740         * device/lib/printf_large.c (_print_format): fixed bug 1073386
8741         * support/regression/tests/bug1057979.c: added test for bug 1073386
8742
8743 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
8744
8745         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
8746         compilers
8747
8748 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
8749
8750         * src/pic16/device.h,
8751         * src/pic16/genarith.c,
8752         * src/pic16/glue.c,
8753         * src/pic16/main.c,
8754         * src/pic16/pcode.c: applied patches #1068154 and #1070213
8755
8756 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
8757
8758         Large cummulative patch for pic16 port.
8759         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
8760         to call when a stack overflow occurs,
8761         * (malloc.h): added CVS Id tag,
8762         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
8763         variable,
8764         * added libc directory. The current version of LibC contains string
8765         functions, ctype functions and macros and some functions of the
8766         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
8767         be extensively tested in the future. Standard disclaimer here.
8768         Library is not automatically build yet. But one can build it by
8769         invoking 'make' inside the libc directory.
8770         * added ADC library under libio. Preliminary version yet.
8771
8772         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
8773         * src/pic16/gen.c (aopForRemat): asmop size is filled by
8774         aopForRemat() now and not by pic16_aopOp(),
8775         * (pic16_popGetTempReg): removed warning messgae when allocating
8776         temporary registers, its a buggy feature and will be removed,
8777         * (pic16_popGet): set register instance field in AOP_CRY,
8778         * (pic16_outBitC): fixed for results in size greater than 1,
8779         * (genUminusFloat): fixed for pic16, ported code from mcs51,
8780         * (pic16_storeForReturn): optimized return of 0,
8781         * (genCmp): experimental code for new genCmp which uses PIC18's
8782         special compare&skip instructions. Initial tests fail some times
8783         with variables grater than 1 byte in size, so new code is disabled,
8784         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
8785         a single bit,
8786         * (genCast): began a fix to optimize the casting of a bit to another
8787         bit, now assigning a bitfield to another bitfield will fail, sorry,
8788         * src/pic16/main.c: disabled the use of lr-support feature,
8789         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
8790         * added some function prototypes, added function _debugf prototype,
8791         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
8792         bits with offset (case PO_GPR_BIT),
8793         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
8794         command line,
8795         * (isBankInstruction): modified to return 0 for no banking instruction,
8796         and 1 for banking instruction,
8797         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
8798         caused stop processing pCodes after a inline assembly block,
8799         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
8800         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
8801         registers when it shouldn't,
8802         * src/pic16/ralloc.c (allocReg): add preliminary support for
8803         supporting a limited set of temporary registers,
8804
8805 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8806
8807         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
8808           genDataPointerSet): ensure assignments always copy in MSB to LSB
8809           order,
8810           (loadRegFromAop): recognize CLRH optimization,
8811           (genFunction): optimize RECEIVE iCodes in reentrant functions
8812
8813 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8814
8815         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
8816           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
8817           selected.
8818         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
8819         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
8820           contiguous with data
8821
8822 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8823
8824         * device/lib/_gptrget.c (_gptrget),
8825         * device/lib/_gptrgetc.c (_gptrgetc),
8826         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
8827           instead of sjmp to ret
8828         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
8829           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
8830
8831 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
8832
8833         * .version: bumped version to 2.4.7
8834         * device/lib/_gptrget.c (_gptrget): is now _naked
8835         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
8836         * device/lib/_gptrput.c (_gptrput): is now _naked
8837         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
8838           (createFunction): fixed xstack
8839         * src/SDCCglue.c (emitMaps): set allocation required for bit area
8840         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
8841           or bit either,
8842           (geniCodeCritical): store original interrupt state in an iTemp bit
8843           var unless stack-auto
8844         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
8845         * src/SDCCmain.c (setIncludePath): added include/target to search path
8846         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
8847         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
8848           prototype,
8849           (processFuncArgs): put bit vars in bit area
8850         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
8851           unsaveRBank): fixed xstack,
8852           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
8853           (genFunction, genEndFunction): fixed xstack,
8854           (genAssign): optimization don't walk backwards through mem
8855         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
8856         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
8857         * support/regression/Makefile: also make library (for stack-auto) when
8858           making "all" and added "test-mcs51-xstack-auto"
8859         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
8860         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
8861         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
8862         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
8863         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
8864           make-library by MAKE_LIBRARY
8865         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
8866           regression tests for xstack
8867         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
8868         * support/regression/tests/critical.c: test for critical on mcs51
8869
8870 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8871
8872         * support/regression/ports/ucz80/spec.mk: use include and lib files from
8873           built version of sdcc instead of installed version
8874
8875 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
8876
8877         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
8878         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
8879           vprintf.c now
8880         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
8881         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
8882           WARNING: remove device/lib/build/z80/printf.o by hand when
8883           updating from previous build!
8884         * device/lib/z80/printf.c: updated comment
8885         * support/regression/tests/bug1057979.c: test all ports now
8886         * support/regression/tests/bug1065458.c: file added
8887
8888 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8889
8890         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
8891           *_start and *_end symbols for static functions
8892
8893 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
8894
8895         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
8896           and search crt0.o in all library paths,
8897           (setIncludePath): proper handling of --nostdinc,
8898           (setLibPath): proper handling of --nostdlib
8899         * support/regression/Makefile,
8900         * support/regression/ports/ds390/spec.mk,
8901         * support/regression/ports/gbz80/spec.mk,
8902         * support/regression/ports/hc08/spec.mk,
8903         * support/regression/ports/mcs51/spec.mk,
8904         * support/regression/ports/mcs51-large/spec.mk,
8905         * support/regression/ports/mcs51-stack-auto/spec.mk,
8906         * support/regression/ports/z80/spec.mk: use include and lib files from
8907           built version of sdcc instead of installed version
8908         * doc/sdccman.lyx: fixed typo in --nostdinc
8909
8910 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
8911
8912         * src/pic/pcode.c,
8913         * src/pic/device.c,
8914         * src/pic/ralloc.c,
8915         * src/pic/gen.c : added support to generate code for struct bit fields.
8916
8917 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
8918
8919         * as/xa51/xa_version.h,
8920         * device/include/errno.h,
8921         * device/include/regc515c.h,
8922         * device/lib/_itoa.c,
8923         * device/lib/_ltoa.c,
8924         * device/lib/ser_ir_cts_rts.c,
8925         * sim/ucsim/xa.src/glob.cc,
8926         * sim/ucsim/xa.src/inst_gen.cc,
8927         * sim/ucsim/xa.src/xa_bit.cc,
8928         * sim/ucsim/xa.src/xa_sfr.cc,
8929         * sim/ucsim/z80.src/inst_dd.cc,
8930         * sim/ucsim/z80.src/inst_fdcb.cc,
8931         * support/scripts/keil2sdcc.pl,
8932         * src/pic16/pic16.dsp,
8933         * src/pic16/pic16a.dsp: corrected cvs line endings
8934         * device/lib/printf_large.c: fixed bug 1057979
8935         * src/pic16/gen.c: fixed non-C standard code
8936         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
8937         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
8938         * support/regression/ports/mcs51/support.c: reload T1 asap
8939         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
8940           pdata use and clear idata startup behaviour
8941         * support/regression/tests/bug1057979.c: added
8942
8943 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
8944
8945         * device/examples/ds390/ow390/ad26.h,
8946         * device/examples/ds390/ow390/cnt1d.h,
8947         * device/examples/ds390/ow390/crcutil.c,
8948         * device/examples/ds390/ow390/ownet.h,
8949         * device/examples/ds390/ow390/owsesu.c,
8950         * device/examples/ds390/ow390/swt12.h,
8951         * device/examples/ds390/ow390/swtoper.c,
8952         * device/examples/ds390/ow390/temp10.h,
8953         * device/examples/ds390/ow390/thermodl.c,
8954         * device/examples/ds390/tinitalk/tinitalk.dsp,
8955         * device/examples/ds390/tinitalk/tinitalk.dsw,
8956         * device/examples/mcs51/clock/hw.h,
8957         * device/examples/mcs51/simple2/go.bat,
8958         * device/examples/serialcomm/windows/serial.h,
8959         * device/examples/xa51/dummy.c,
8960         * device/examples/xa51/hello.c,
8961         * device/include/80c51xa.h,
8962         * device/include/at89x051.h: corrected cvs line endings
8963
8964 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
8965
8966         * src/pic16/main.c (options): added command line --gstack, to trace
8967         stack over/under flows,
8968         * added pragma 'wparam' to allow passing first byte of function
8969         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
8970         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
8971         call to __gstack_test function and sets up the symbol as extern,
8972         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
8973         * popaop): added call to pic16_testStackOverflow,
8974         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
8975         wparamList list,
8976         * (genCall, genPcall): now all parameters are passed via stack
8977         except in functions that are pass to wparam pragma in which WREG is
8978         used too,
8979         * (genPcall): REENTRANT flag is checked to see if variable prototype
8980         contains reentrant keyword, don't call a non-reentrant function, via
8981         a reentrant function pointer or vice versa, functions are never
8982         passed via WREG,
8983         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
8984         D.Winkler,
8985         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
8986         SIGSEGV when accessing a NULL register stucture,
8987         * (pic16_printGPointerType): modified to handle UPPER modifier for
8988         function initializers, changed prototype of function to simpler one,
8989         * (pic16_printIvalFuncPtr): check to see if function is already
8990         added in externs list,
8991         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
8992         optimized a move from W to SFR with a move to the same register
8993         later after a CALL,
8994         * device/lib/pic16/debug: NEW directory, contains debug features
8995         which are enabled when linking with libdebug.lib, currently command
8996         line option --gstack enables stack pointer tracing for over/under
8997         flow, corresponding sources are in debug/gstack
8998
8999 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
9000
9001         * doc/sdccman.lyx: updated SDCC version,
9002         * (PIC16 port): update list of command line options,
9003         * src/pic16/device.h (structure pic16_options_t): added field gstack
9004         to enable stack overflow tracing on push/pops,
9005         * src/pic16/device.c (statistics structure): added statistics
9006         structure,
9007         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
9008         pic16_dump_int_registers): increase statistics counters for each
9009         * variable which is encountered
9010         * (pic16_dump_usection): emit each .udata variable to its own udata
9011         section,
9012         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
9013         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
9014         parameters via stack, otherwise use old scheme,
9015         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
9016         assembler output file,
9017         * src/pic16/main.c: added command line options --gstack to enable
9018         push/pop tracing for stack overflow,
9019         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
9020         instructions): added size of each instruction,
9021         * (pic16_countInstruction): estimate size of instructions in
9022         the_pFile list, inline assembly blocks are not counted,
9023         * (pic16_FixRegisterBanking): trace previous register usage, when
9024         banksel optimizations is greater than 0, don't emit a redudant
9025         banksel directive,
9026
9027 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
9028
9029         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
9030         * src/pic16/ralloc.c : applied same fix for pic16.
9031         * src/pic/gen.c : tidied it up a little.
9032
9033 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9034
9035         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
9036         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
9037
9038 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9039
9040         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
9041
9042 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9043
9044         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
9045         non-reentrant function __modsint in the interrupt function (thus
9046         corrupting math operations during serial I/O)
9047         * device/lib/ser_ir.c: as above, changed buffersize
9048         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
9049         256.c,d for zeroing
9050         * doc/Makefile: added option -t for rsync
9051
9052 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9053
9054         * src/SDCCast.h (struct ast),
9055         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
9056
9057 2004-10-20 Borut Razem <borut.razem AT siol.net>
9058
9059         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
9060         package
9061
9062 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
9063
9064         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
9065         makefile targets,
9066         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
9067         support functions to replace long sequences of MOVFF's from access
9068         bank registers to stack and vice versa,
9069         * src/pic16/device.h: added new field opt_flags, where optimization
9070         flags can be set to enable certain features,
9071         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
9072         * pBlock, (genFunction, genEndFunction): surroung loop for
9073         saving/loading used registers in stack with PC_INFO pCodes,
9074         INF_LREGS. Code in between can then be optimized by pCode optimizer
9075         to support function calls,
9076         * (genDataPointerSet): fixed bug which loaded float fields in
9077         structures with corrupt data,
9078         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
9079         in a standard way debug info on stderr. Feature used for developing
9080         and debugging only,
9081         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
9082         obsolete chunks of code,
9083         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
9084         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
9085         * pic16/src/pcode.c (pic16_newpCodeInfo,
9086         * (pic16_newpCodeOpLocalRegs),
9087         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
9088         feature,
9089         * (pic16_pCodeConstString): printing of the initial value of a
9090         symbol as a comment is inhibited since parsing was already done by
9091         copyStr and output is corrupt,
9092         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
9093
9094 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9095
9096         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
9097
9098 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
9099
9100         * as/mcs51/lkarea.c: removed old K&R style,
9101           (lnksect): changed check on boundary error,
9102           (lnksect2): changed check on boundary error,
9103           (lnksect2): extend XSTK to end of page if size = 1
9104         * as/mcs51/lkmain.c: removed old K&R style,
9105           (Areas51): create l_IRAM symbol
9106         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
9107         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
9108           model-mcs51-stack-auto, added model-mcs51-xstack-auto
9109         * device/lib/_mullong.c: added version to be compiled with xstack
9110         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
9111         * device/lib/mcs51/crtxclear.asm: clear pdata as well
9112         * device/lib/mcs51/crtxstack.asm: fixed comment
9113         * src/SDCCglue.c: maxInterrupts defaults to 0,
9114           (emitMaps): added pdata,
9115           (createInterruptVect): (re)moved default,
9116           (glue): added pdata,
9117           (glue): moved __start__xstack to XSTK with default size 1
9118         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
9119           and options.float_rent when options.stackAuto is set,
9120           (linkEdit): only write XDATA_NAME if provided on command line
9121         * src/SDCCmem.h,
9122         * src/SDCCmem.c: added pdata
9123         * src/port.h: added pdata_name to PORT
9124         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
9125           (saveRegisters, unsaveRegisters): removed usage of B,
9126           (genMinus): fixed accumulator clash,
9127           (genJumpTab): added comment, this needs another look
9128         * src/mcs51/gen.c: added check for "B in use" paranoia,
9129           added pushB() and popB()
9130         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
9131           chance
9132         * src/avr/main.c,
9133         * src/ds390/main.c,
9134         * src/hc08/main.c,
9135         * src/mcs51/main.c,
9136         * src/pic/main.c,
9137         * src/pic16/main.c,
9138         * src/xa51/main.c,
9139         * src/z80/main.c: (reset_regparms) made void parameter explicit and
9140           added PSEG (PAG,XDATA) or NULL to port specifier
9141         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
9142         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
9143           (_mcs51_genInitStartup): removed __start__xstack equ,
9144           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
9145         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
9146         * src/z80/gen.c (_rleAppend): fixed warnings
9147         * support/regression/tests/zeropad.c: added pdata test
9148         * .version: bumped to 2.4.6
9149
9150 2004-10-17 Borut Razem <borut.razem AT siol.net>
9151
9152         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
9153         as a part of nightly build
9154
9155 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
9156
9157         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
9158         WREG holds the first byte function parameters,
9159         * (aopForSym): take special case for symbols which are in FARSPACE
9160         but in CODESPACE too,
9161         * (assignResultValue): modified to take into account _G.useWreg,
9162         * (genCall): don't use wreg for parameter passing when function is
9163         declared as reentrant, too, added optimization INCF to stack
9164         pointer when stack parameter count is 1,
9165         * (genFunction, genEndFunction): refurnished and fixed to not using
9166         wreg for passing parameters when function has varargs or is
9167         reentrant, fixed bug with symbol name compare for generating
9168         functions in absolute address,
9169         * (pic16_storeForReturn): refurnished,
9170         * (genCmp): began writing a new version of the function, not ready
9171         yet, therefore it is disabled,
9172         * (genAssign): do not read code memory when assigning a function to
9173         a pointer function,
9174         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
9175         array of characters, not pointer,
9176         * (pic16initialComments): in debug mode emit an .ident directive for
9177         the assembler,
9178         * (_process_pragma): emit a new warning type (internal to pic16)
9179         when setting stack to default length, emit a similar warning when
9180         placing a function at absolute address and address is not word aligned
9181         * (_pic16_parseOptions): added 'return TRUE' statement,
9182         * (_pic16_linkEdit): if compiling a source, then add the source's
9183         file object, first in the list of objects to link,
9184
9185 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
9186
9187         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
9188         * src/pic/main.c : removed VC warning.
9189         * src/pic/gen.c : changed comment.
9190
9191 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
9192
9193         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
9194         reference to a deprecated symbol _GPTRREG was causing failure to
9195         link. Thanks G. M. Gallant for the info.
9196
9197 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
9198
9199         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
9200         comments for Bugs item #954788.
9201
9202 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
9203
9204         * src/pic16/device.c (pic16_dump_gsection,
9205         * pic16_groupRegistersInSection): handle symbols declared to be in
9206         access bank differently,
9207         * src/pic16/gen.c (struct _G): added field resDirect,
9208         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
9209         send values read from stack directly to result and don't allocate
9210         temporary values,
9211         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
9212         same registers,
9213         * (pic16_sameRegsOfs): NEW,
9214         * (freeAsmop): if _G.resDirect is set then do not mark registers as
9215         free because they were not allocated from temporary pool,
9216         * pic16_popRegFromString): workaround to fix a problem with
9217         allocating variables twice or never,
9218         * (genGenPointerGet): using PRODL instead of FSR0H,
9219         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
9220         instead of FSR0H,
9221         * (genAssign): take advantage of the _G.resDirect flag,
9222         * (genCast): around line 11844, use mov2f instead of directly
9223         MOVFF'ing between operands to account for literal values,
9224         * src/pic16/genutils.c: some new debug functions for gpsim have been
9225         added,
9226         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
9227         float with integer part only,
9228         * src/pic16/main.c (_process_pragma): handle pragma udata access to
9229         place variables in access bank
9230         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
9231         updated sources to reflect recent changes in gen.c
9232
9233 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
9234
9235         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
9236         sources that searched for headers in installation path, now the
9237         device/include/pic16 is used,
9238         * src/pic16/glue.c (pic16glue),
9239         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
9240         .line directives if not in debug mode, this suppresses assembler's
9241         warnings for ignored directives
9242
9243 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
9244
9245         * src/port.h: made reset_regparms prototype void parameter explicit.
9246         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
9247         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
9248         * doc/sdccman.lyx: documented warning disabling and how to use
9249           printf_large to make it print floats.
9250         * device/include/stdbool.h: NEW
9251         * device/lib/_atof.c,
9252         * device/lib/_divuint.c,
9253         * device/lib/_divulong.c,
9254         * device/lib/expf.c,
9255         * device/lib/printf_large.c,
9256         * device/lib/sincosf.c,
9257         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
9258         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
9259           a completely reentrant lib.
9260
9261 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
9262
9263         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
9264         * device/include/pic16/stdio.h: fixed bug with colon
9265
9266 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
9267
9268         * device/include/pic16/stdio.h,
9269         * device/include/pic16/stdlib.h,
9270         * device/include/pic16/math.h: NEW
9271         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
9272         declared as _naked to reduce overhead
9273         * device/lib/Makefile.in (target port-specific-objects-pic16):
9274         changed * to *.* so to ignore the CVS directory,
9275         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
9276         stacked variables back in stack,
9277         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
9278         corruption
9279
9280 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
9281
9282         * .version: bumped version number to 2.4.5
9283         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
9284         * support/Util/SDCCerr.c (messages structure): added entry for
9285         W_POSSBUG2
9286
9287         Large cumulative patch for pic16 port and libraries.
9288         * device/include/pic16/sdcc-lib.h,
9289         * device/include/pic16/stdarg.h,
9290         * device/include/asm/pic16/features.h,
9291         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
9292         * device/include/pic16/float.h: changes reentrant keyword with
9293         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
9294         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
9295         updated target build-libraries to include objects from gptr,
9296         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
9297         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
9298         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
9299         all function headings,
9300         * src/SDCCmain.c: added global parameter userIncDirsSet,
9301         * (parseCmdLine): when option -I is encountered add directory to
9302         userIncDirsSet too,
9303         * src/version.awk: added space between control and long,
9304         * src/pic16/NOTES: added some notes for the port,
9305         * src/pic16/gen.c: added prototype for mov2fp function,
9306         * (fReturnpic16[]): properly named return value registers,
9307         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
9308         * (aopForSym): added code to handle symbols with onStack flag set,
9309         symbols onStack are allocated PTRSIZE bytes,
9310         * (aopFreeAsmop): handles special case where asmops are stack objects,
9311         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
9312         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
9313         added argument lock to trace flaws in allocating temporary registers
9314         when developing port,
9315         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
9316         * (pic16_popRegFromString): reenabled allocating a direct register
9317         from string,
9318         * (assignResultValue): various beautifications,
9319         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
9320         referenced function argument,
9321         * (genIpush): reenabled to allow stacked arguments, handles only
9322         ic->parmPush iCodes,
9323         * (genCall, genPcall): major changes to allow for variable argument
9324         functions, fixed a bug with falsely restoring stack pointer after
9325         returning from call,
9326         * (genFunction): pending code for critical function,
9327         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
9328         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
9329         * (genNearPointerGet): fixed bug with indirect reading, was always
9330         reading from INDF0
9331         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
9332         pointers,
9333         * (genAddrOf): rewrote code to take address of a stacked function parameter
9334         * (genCast): fixed casting to generic pointer type,
9335         * src/pic16/gen.h: added AOP_STA,
9336         * (struct asmop): added field stk,
9337         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
9338         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
9339         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
9340         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
9341         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
9342         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
9343         generic pointers,
9344         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
9345         and library paths,
9346         * (pic16_port structure): generic pointer size is set to 3,
9347         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
9348         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
9349         compiler warning,
9350         * src/pic16/ralloc.c (allocReg): prevent allocating register when
9351         operand is an iTemp,
9352
9353 2004-09-24 Martin Helmling <mh AT octo-soft.de>
9354
9355         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
9356         * debugger/mcs51/simi.c: addapt new syntax of s51
9357
9358 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
9359
9360         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
9361         * src/pic16/pcode.c: commented out some calls to free() in order to
9362         fix bug #989576,
9363
9364 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9365
9366         * src/SDCCicode.h,
9367         * src/SDCCicode.c (isiCodeInFunctionCall),
9368         * src/avr/ralloc.c (selectSpil),
9369         * src/pic/ralloc.c (selectSpil),
9370         * src/pic16/ralloc.c (selectSpil),
9371         * src/ds390/ralloc.c (selectSpil),
9372         * src/hc08/ralloc.c (selectSpil),
9373         * src/xa51/ralloc.c (selectSpil),
9374         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
9375         stack in the middle of a function call sequence (fixes bug #1020268)
9376         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
9377         costs associated with the minimum switch case.
9378
9379 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9380
9381         * src/SDCC.lex: fixed bug #1030549
9382
9383 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9384
9385         * src/SDCCcse.h (struct cseDef),
9386         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
9387         over a function call if the CSE is derived from a symbol whose
9388         address has been taken (fixes bug #1029883)
9389         * support/regression/tests/bug-1029883: a new regression test for
9390         this bug
9391
9392 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9393
9394         * src/hc08/gen.c (emitinline): fixed bug #1029778
9395         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
9396         to a cast object is no longer a syntax error ("fixes" bug #1030006,
9397         and starts toward RFE #905167)
9398
9399 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
9400
9401         * src/pic16/gen.c (mov2f): New function to move an operand to
9402         another without considering if it is a literal or a register,
9403         * (pic16_sameRegs): don't check if they are both AOP_REG,
9404         * (AccRsh): removed andmask=0 lines,
9405         * (genLeftShift): duplicated to be improved in future versions,
9406         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
9407         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
9408         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
9409         * (pic16initMnemonics): added initialization for POC_INFSNZW,
9410         * (insertBankSwitch): fixed inserting banksel directives algorithm
9411         for instructions that follow a skip instruction, this fixes a report
9412         for broken subtraction code generation,
9413         * src/pic16/ralloc.c (deassignLRs): do not free register if current
9414         iCode is a left op, just in case result and right share the same
9415         registers
9416
9417 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9418
9419         * src/hc08/main.c,
9420         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
9421         preservation of HX
9422         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
9423         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
9424         on 2004-09-12; it was buggy
9425
9426 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
9427
9428         * src/SDCCsymt.h: removed RESULT_CHECK
9429         * src/SDCCast.c,
9430         * src/SDCCglue.c,
9431         * src/SDCCval.c,
9432         * src/pic/glue.c,
9433         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
9434
9435 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
9436
9437         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
9438         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
9439         configuration values no more rejected by compiler, they are assigned
9440         to configuration registers with a warning message instead,
9441         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
9442         the for-loop so last conf register is emitted too,
9443         * (_pic16_initPaths): link library libsdcc.lib by default,
9444         * (_hasNativeMulFor): modified test for multiplication according to
9445         Raphael Neider's remarks. Integer multiplication is also done with
9446         support functions,
9447         * device/include/pic16/pic18fregs.h: corrected type error in while
9448         testing and including 18f6720 header file
9449
9450 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
9451
9452         * src/pic16/device.h (pic16_options): removed field use_crt,
9453         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
9454         until an optimization to handle single bits is added,
9455         * (pic16_loadFSR0): moved before genUnpackBits,
9456         * (genAnd): some white lines removed,
9457         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
9458         leave_reset flags in pic16_options when using crt modules,
9459
9460 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
9461
9462         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
9463           for bugs 898889 & 979599. Also used some safer print instructions.
9464
9465 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
9466
9467         * src/pic16/device.h (pic16_options_t): added field use_crt,
9468         crt_name, no_crt,
9469         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
9470         catch a probable future bug,
9471         * src/pic16/gen.c: aopIdx function commented out,
9472         * (genAssign): commented out old code which used aopIdx,
9473         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
9474         code, added if conditionals to take into account the --use-crt
9475         command line options,
9476         * src/pic16/main.c (pic16_optionsTable): added new command line
9477         options, --use-crt= and --no-crt,
9478         * (_pic16_linkEdit): now the proper crt object is added in the
9479         linker command line except than when --no-crt is specified,
9480         * src/pic16/pcode.c,
9481         * src/pic16/pcode.h: added some structures and functions for a new
9482         optimization scheme to compansate for instruction overhead between
9483         same iCodes, this scheme is currently under development and is not
9484         working in any way,
9485         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
9486         to && operator,
9487         * device/lib/pic16/startup/crt0i.c,
9488         * device/lib/pic16/startup/crt0iz.c: added global char variable
9489         __uflags to force the generation of an idata section
9490
9491 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
9492
9493         * doc/Makefile,
9494         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
9495         * doc/sdccman.lyx: updated sdcc version to 2.4.4
9496
9497 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9498
9499         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
9500         Frieder) and clarified the default code optimization mode
9501
9502 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9503
9504         * src/SDCC.lex (doPragma, process_pragma),
9505         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
9506         "opt_code_size", and "opt_code_balanced"
9507         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
9508         regrouped options by category, added support for category headers
9509         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
9510         and "--opt-code-size"
9511         * doc/sdccman.lyx: documented these new options and pragmas
9512         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
9513         preference into account
9514
9515 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
9516
9517         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
9518           geniCodePreDec): Fixed bug 904237 by generating a warning
9519         * src/SDCCerr.h,
9520         * src/SDCCerr.c: added warning W_SIZEOF_VOID
9521
9522 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
9523
9524         * src/pic/device.c : When no max ram set validate full memory range.
9525         * src/pic/pcode.c,
9526         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
9527
9528 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
9529
9530         * device/lib/_gptrget.c,
9531         * device/lib/_gptrput.c: updated comment
9532         * device/lib/calloc.c,
9533         * device/lib/free.c,
9534         * device/lib/malloc.c,
9535         * device/lib/realloc.c: added LGPL, made them reentrant-safe
9536         * src/SDCCcse.c (cseBBlock),
9537         * src/SDCCicode.c (printOperand, geniCodeArray),
9538         * src/SDCCicode.h (struct operand): fixed bug 868103
9539         * support/regression/tests/bug-868103.c: added
9540         * src/SDCCast.c (searchLitOp),
9541         * src/SDCCcse.h (struct cseDef),
9542         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
9543         * src/SDCCicode.h (struct operand),
9544         * src/SDCCsymt.h (struct sym_link),
9545         * src/avr/gen.c (hasInc),
9546         * src/ds390/gen.c (hasInc),
9547         * src/hc08/gen.c (genPlusIncr, hasInc),
9548         * src/mcs51/gen.c (hasInc),
9549         * src/pic16/glue.c (pic16_printIvalChar),
9550         * src/pic16/ralloc.c (regWithIdx),
9551         * src/xa51/gen.c (hasInc) : removed warnings
9552         * src/SDCCast.c (createBlock): added comment ???
9553         * src/hc08/ralloc.c: updated comments
9554
9555 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9556
9557         * doc/sdccman.lyx: updated section on switch statements, added
9558         section about semaphore locking
9559         * doc/Makefile: added option -info for latex2html
9560         * device/lib/_gptrget.c,
9561         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
9562
9563 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
9564
9565         * src/pic/device.h,
9566         * src/pic/device.c,
9567         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
9568          maxram is less than 0x100.
9569
9570 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
9571
9572         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
9573
9574 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9575
9576         * src/port.h,
9577         * src/mcs51/main.c,
9578         * src/ds390/main.c,
9579         * src/z80/main.c,
9580         * src/hc08/main.c,
9581         * src/pic/main.c,
9582         * src/pic16/main.c,
9583         * src/avr/main.c,
9584         * src/xa51/main.c
9585         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
9586         a jump table is the best form for a switch statement, including
9587         automatic insertion of missing cases to make the case range
9588         continuous. Developed in collaboration with Frieder Ferlemann.
9589
9590 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9591
9592         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
9593         accumulator result if it needs sign extension
9594
9595 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9596
9597         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
9598
9599 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9600
9601         * device/lib/gbz80/printf.c,
9602         * device/lib/z80/printf.c: removed define for NULL
9603
9604 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9605
9606         * as/xa51/xa_link.c,
9607         * device/examples/ds390/ow390/ad26.c,
9608         * device/examples/ds390/ow390/cnt1d.c,
9609         * device/examples/ds390/ow390/counter.c,
9610         * device/examples/ds390/ow390/ds2480.h,
9611         * device/examples/ds390/ow390/ds2480ut.c,
9612         * device/examples/ds390/ow390/findtype.c,
9613         * device/examples/ds390/ow390/gethumd.c,
9614         * device/examples/ds390/ow390/owllu.c,
9615         * device/examples/ds390/ow390/ownetu.c,
9616         * device/examples/ds390/ow390/swt12.c,
9617         * device/examples/ds390/ow390/swtloop.c,
9618         * device/examples/ds390/ow390/temp.c,
9619         * device/examples/ds390/ow390/temp10.c,
9620         * device/examples/ds390/ow390/thermo21.c,
9621         * device/examples/ds390/ow390/tinilnk.c,
9622         * device/examples/ds390/ow390/tstfind.c,
9623         * device/examples/serialcomm/windows/serial.cpp,
9624         * device/examples/serialcomm/windows/test_serialcomm.cpp,
9625         * device/include/reg51.h: fixed line endings for cvs
9626
9627 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9628
9629         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
9630         packRegsForAccUse, packRegisters): new accumulator register
9631         packing algorithm
9632         * support/regression/ports/hc08/support.c (_putchar): suppress
9633         warning of unused variable
9634         * src/SDCCicode.c: added SWAP entry to codeTable
9635
9636 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
9637
9638         * device/lib/sprintf.c: forgot to add this file before previous commit
9639
9640 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
9641
9642         * src/pic16/gen.c (genPackBits): added operand right in function
9643         parameters, load result directly if p_type is POINTER (that is
9644         called by genNearPointerSet)
9645         * (genUnPackBits): added operand left in function parameters,
9646         * (genNearPointerGet, genNearPointerSet): prevent the loading of
9647         FSR0 if accessing bitfields,
9648
9649 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
9650
9651         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
9652           _print_format; updated printf, sprintf, vsprintf
9653         * device/include/asm/default/features.h: corrected comment/define
9654         * device/lib/Makefile.in: added sprintf.c
9655         * device/lib/libsdcc.lib: added sprintf module
9656         * device/lib/printf_large.c,
9657         * device/lib/vprintf.c,
9658         * device/lib/sprintf.c: totally refactored printf_large and vprintf
9659           into these 3 files
9660         * support/regression/Makefile: changed ALL_PORTS into a usefull default
9661         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
9662         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
9663           hc08 test
9664         * support/regression/tests/zeropad.c: define idata as data for hc08
9665
9666 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9667
9668         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
9669         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
9670         labels are referenced at least once (even if a reference is not found)
9671         * src/hc08/gen.c (emitcode): set isComment flag for comments
9672         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
9673         loads), rules 6a..6b (optimize jumps to return)
9674
9675 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9676
9677         * device/lib/acosf.c (acosf),
9678         * device/lib/asinf.c (asinf),
9679         * device/lib/atanf.c (atanf),
9680         * device/lib/ceilf.c (ceilf),
9681         * device/lib/cosf.c (cosf),
9682         * device/lib/coshf.c (coshf),
9683         * device/lib/cotf.c (cotf),
9684         * device/lib/fabsf.c (fabsf),
9685         * device/lib/floorf.c (floorf),
9686         * device/lib/log10f.c (log10f),
9687         * device/lib/logf.c (logf),
9688         * device/lib/sinf.c (sinf),
9689         * device/lib/sinhf.c (sinhf),
9690         * device/lib/sqrtf.c (sqrtf),
9691         * device/lib/tanf.c (tanf),
9692         * device/lib/tanhf.c (tanhf),
9693         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
9694         replaced all instances of "reentrant" in the library functions
9695         defined in math.h with this macro.
9696         * support/regression/tests/float_trans.c: reenabled test for hc08
9697
9698 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
9699
9700         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
9701         erroneously deleted
9702
9703 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9704
9705         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
9706         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
9707         multi-byte volatile operands are used
9708         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
9709         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
9710         initialization to area GSINIT0 so that it would always precede
9711         any static initializers in GSINIT
9712         * support/regression/tests/zeropad.c: fixed idata define for hc08
9713         * support/regression/tests/bug-927659.c,
9714         * support/regression/tests/float_trans.c: disabled tests for hc08
9715         pending missing library routines
9716         * .version: increased version number to 2.4.4 - hc08 port now passes
9717         regression tests
9718
9719
9720 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
9721
9722         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
9723         * Makefile.common.in,
9724         * as/Makefile,
9725         * as/hc08/Makefile.in,
9726         * as/mcs51/Makefile.in,
9727         * as/z80/Makefile.in,
9728         * debugger/mcs51/Makefile.in,
9729         * device/include/Makefile.in,
9730         * device/lib/Makefile.in,
9731         * doc/Makefile,
9732         * link/Makefile,
9733         * link/z80/Makefile.in,
9734         * packihx/Makefile.in,
9735         * sim/ucsim/main_in.mk,
9736         * sim/ucsim/avr.src/Makefile.in,
9737         * sim/ucsim/doc/Makefile.in,
9738         * sim/ucsim/gui.src/serio.src/Makefile.in,
9739         * sim/ucsim/hc08.src/Makefile.in,
9740         * sim/ucsim/s51.src/Makefile.in,
9741         * sim/ucsim/xa.src/Makefile.in,
9742         * sim/ucsim/z80.src/Makefile.in,
9743         * src/Makefile.in,
9744         * support/cpp2/Makefile.in,
9745         * support/librarian/Makefile,
9746         * support/makebin/Makefile: added DESTDIR to the install path proposed
9747         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
9748         * doc/sdccman.lyx: added DESTDIR documentation
9749
9750 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
9751
9752         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
9753         instruction for interrupt handlers, use fast returns when returning
9754         from high priority interrupts
9755
9756 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9757
9758         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
9759         code generation
9760         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
9761         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
9762         bugs, ported much of Bernhard's code from mcs51
9763         * src/mcs51/gen.c (genSend),
9764         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
9765         than one when calling a reentrant function
9766         * device/lib/_mullong.c: defined an alternate struct layout for big
9767         endian ports (hc08)
9768
9769 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9770
9771         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
9772         test
9773
9774 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9775
9776         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
9777         are sane and complete before asking the port its prefered parameter
9778         passing method (fixes bug #1017633)
9779         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
9780         and _ret3
9781
9782 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9783
9784         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
9785         problem in bitfields >= 8 bits.
9786
9787 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9788
9789         * src/SDCCsymt.c: undid changes that were not meant to be committed
9790
9791 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9792
9793         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
9794
9795 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9796
9797         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
9798           copied and wrong bit got inverted
9799
9800 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9801
9802         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
9803         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
9804         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
9805         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
9806         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
9807         assignments to bitfields at known addresses
9808         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
9809         reads from bitfields at known addresses
9810         * src/hc08/ralloc.c (packRegisters),
9811         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
9812         genhc08Code): optimize pointer get values used as conditionals
9813         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
9814         and branch
9815
9816 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9817
9818         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
9819         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
9820         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
9821         as conditionals
9822
9823 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9824
9825         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
9826
9827 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9828
9829         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
9830         related problems
9831
9832 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
9833
9834         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
9835
9836 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9837
9838         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
9839         mcs51 port
9840
9841 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
9842
9843         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
9844
9845 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9846
9847         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
9848         cases use more compact code.
9849
9850 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
9851
9852         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
9853
9854 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9855
9856         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
9857
9858 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9859
9860         * src/SDCCsymt.h,
9861         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
9862         parameter of changePointer() from symbol* to sym_link*
9863         * src/SDCCast.c (decorateType): call changePointer() for CAST op
9864         * src/SDCCsymt.c (compareType): void* type is castable to other
9865         pointers, but not necesarily an exact match.
9866         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
9867         is no longer blindly treated as an exact match.
9868         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
9869
9870 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
9871
9872         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
9873
9874 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
9875
9876         * src/pic/gen.c,
9877         * src/pic/pcode.c,
9878         * src/pic/ralloc.h,
9879         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
9880
9881 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
9882
9883         * src/pic/device.c,
9884         * src/pic/device.h,
9885         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
9886
9887 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9888
9889         * src/mcs51/gen.c (emitcode): fixed bug #992819
9890
9891 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
9892
9893         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
9894           there's no need to make it worse
9895
9896 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9897
9898         * src/mcs51/ralloc.c (deassignLR),
9899         * src/ds390/ralloc.c (deassignLR),
9900         * src/hc08/ralloc.c (deassignLR),
9901         * src/z80/ralloc.c (deassignLR),
9902         * src/pic/ralloc.c (deassignLR),
9903         * src/pic16/ralloc.c (deassignLR),
9904         * src/avr/ralloc.c (deassignLR),
9905         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
9906         rlivePoint): fixed another part of bug #971834
9907
9908 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9909
9910         * src/z80/main.c: enabled "critical" keyword
9911         * src/z80/mappings.i,
9912         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
9913         functions (fixes bug #979646)
9914         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
9915
9916 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9917
9918         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
9919           such as c:\mydir.
9920
9921 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
9922
9923         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
9924           doesn't disable too much optimizations
9925
9926 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
9927
9928         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
9929
9930 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
9931
9932         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
9933
9934 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
9935
9936         * src/pic/gen.c tidied up tabs
9937         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
9938         * src/pic/main.c tidied up tabs
9939         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
9940         * src/pic/pcoderegs.c tidied up tabs
9941         * src/pic/ralloc.c tidied up tabs
9942
9943 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
9944
9945         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
9946         to S_FIXED for pic16 port and when symbol is not in level 0,
9947         allocate for S_REGISTER storage class and pic16 port, too,
9948         * src/pic16/device.h: prototype for checkSym,
9949         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
9950         * (pic16_assignConfigWordValue): test the value and the mask to
9951         validate that the value is suitable for the configuration word,
9952         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
9953         collect extern declared symbols, don't emit symbol twice, check
9954         first if symbol is in publics set first,
9955         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
9956         * added command line '--fstack' which enables an experimental
9957         feature for stack access, too buggy to be used yet...
9958         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
9959         * (pic16_allocDirReg): when register has storage class S_REGISTER
9960         allocate in pic16_dynAccessRegs,
9961         * device/include/pic16/pic18f????.h: modified configuration word
9962         naming convention, words started as CONFIG0H but should be CONFIG1H
9963
9964 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
9965
9966         * device/include/mcs51reg.h: fixed bug 970993
9967
9968 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
9969
9970         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
9971         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
9972         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
9973         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
9974         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
9975         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
9976           error/warning numbers,
9977           added function setWarningDisabled()
9978         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
9979         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
9980           _memcmp.c _memmove.c calloc.c realloc.c free.c
9981         * support/regression/tests/malloc.c: added tests for new functionality
9982         * support/regression/tests/zeropad.c: added tests for truncated initializers
9983           and initialized char arrays starting with '\x0'
9984         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
9985
9986 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
9987
9988         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
9989
9990 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9991
9992         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
9993         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
9994         peephole 177.e. Thanks to anonymous
9995
9996 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
9997
9998         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
9999         function isn't used in the source but referenced as a
10000         variable initializer then declare it as extern in .asm file
10001
10002 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
10003
10004         * .version: increased version number to 2.4.3
10005
10006         Adding version extension according to ChangeLog CVS revision
10007         * src/Makefile.in (target all): added dependency 'version.h'
10008         * (rule version.h): added rule to create version.h from ChangeLog,
10009         * (rule dep): added dependency version.h,
10010         * src/version.awk: AWK script to create version.h
10011         * src/SDCCdwarf2.c (dwWriteModule),
10012         * src/SDCCglue.c (initialComments),
10013         * src/SDCCmain.c (printVersionInfo): modified to write after
10014         version string the version extension number,
10015         * src/SDCCutil.c: included "version.h"
10016         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
10017         number,
10018         * src/SDCCutil.h: added prototype for getBuildNumber
10019
10020         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
10021         includeDirsSet, too,
10022         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
10023         const char [] is found in function prototype...
10024
10025         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
10026         moving to WREG with source is already in WREG,
10027         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
10028         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
10029         * (aopForSym): stack'ed symbols are partially supported, added
10030         if-clause to support symbols in FARSPACE,
10031         * (sameRegs): added test for AOP_ACC to see if registers are same,
10032         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
10033         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
10034         * (pic16_popRegFromString): will not allocate a new register if it
10035         doesn't find one by name, bug may have introduced...
10036         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
10037         * (genIpush): revived to use pic16 port's stack,
10038         * (genAddrOf): added incomplete case for stack'ed operand,
10039         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
10040         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
10041         can handle multibyte operands,
10042         * src/pic16/glue.c (pic16_printIval*): some debug info added,
10043         * (pic16initialComments): added message for MPLAB compatibility
10044         mode enabled,
10045         * src/pic16/main.h: prototype for pic16_mplab_comp,
10046         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
10047         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
10048         * (_pic16_linkEdit): NEW, handles link stage, transferred here
10049         because of increased complexity of procedure,
10050         * (_process_pragma): stack pragma changed to format 'stack pos len',
10051         emit symbol '_stack_end' to conform with gplink,
10052         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
10053         to search for register,
10054         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
10055         PO_GPR_REGISTER,
10056         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
10057         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
10058         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10059         case for PO_GPR_REGISTER,
10060         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
10061         dies, the new era is ahead !...
10062         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
10063         pic16_dynInternalRegs,
10064         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
10065         * (pic16_allocDirReg): minor optimizations and bug fixes,
10066         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
10067
10068         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
10069         load stack and frame pointer with address of 'stack_end' symbol
10070
10071 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
10072
10073         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
10074         without source code but only variable initializers
10075
10076 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
10077
10078         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
10079         external are not declared as extern to reduce overhead while linking
10080
10081 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
10082
10083         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
10084
10085 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
10086
10087         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
10088           Yee Keat for the patch
10089         * src/SDCCast.c (decorateType): fixed bug #979599
10090         * src/ds390/gen.h: removed local fReturnSizeDS390
10091         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
10092         * src/ds390/gen.c (genAnd, genOr, genXor),
10093         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
10094
10095 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
10096
10097         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
10098         add relFilesSet to $3, manipulate $2 to handle linking of object
10099         files without source files in command line,
10100         * device/include/pic16 (all headers): added ID location macros,
10101         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
10102         entries for ID location bytes,
10103         * (pic16_assignIdByteValue): NEW,
10104         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
10105         added field dumpcalltree to pic16_options_t,
10106         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
10107         is used instead of pic16_Gstack_base_addr, check if (ifx) before
10108         emitting rFalseIfx label after check_carry label,
10109         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
10110         pic16_emitDIRegs), NEW
10111         * (pic16glue): dump .calltree file when option --calltree found,
10112         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
10113         * (_pic16_genAssemblerPreamble): emit ID locations after
10114         configuration registers,
10115         * (pic16_linkCmd): modifications of the link command,
10116         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
10117         * (pic16_pCodeInitRegisters): don't init stack registers,
10118         * (pic16_findPrevInstruction): fixed bug,
10119         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
10120         bug with immediate registers,
10121         * (buildCallTree): traces stack push and pop,
10122         * (pct2): dump also stack usage for each function,
10123         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
10124         * (pic16_allocDirReg): various modifications,
10125         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
10126         fixed to 1,
10127
10128 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
10129
10130         * src/pic16/pcode.c: removed buggy double colon
10131
10132 2004-07-01 Borut Razem <borut.razem AT siol.net>
10133
10134         * support/scripts/sdcc.nsi: added include/pic16 to setup
10135
10136 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
10137
10138         * device/lib/Makefile.in: fixed bug in target objects-pic16,
10139         * device/lib/pic16/Makefile: prefixed with dash (-) command under
10140         target 'clean',
10141         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
10142         specific command line arguments. Also added sample lkr script
10143         for placing a variable at a specific memory bank.
10144         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
10145         at a specific memory bank,
10146         * (pic16_dump_isection): fixed bug which caused string literals to
10147         be omitted when dumping idata section,
10148         * (pic16_groupRegistersInSection): added code to handle registers
10149         in specific memory banks,
10150         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
10151         public, all references are renamed too,
10152         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
10153         AOP_DPTR2,
10154         * (pic16_storeForReturn): added case to handle when dest is WREG,
10155         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
10156         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
10157         pic16_rel_udata, check to see if that register is marked as being
10158         a member of a specific memory bank,
10159         * (pic16_printIvalCharPtr): added code to add string literals either
10160         to code or the idata sections,
10161         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
10162         also accept the 'udata' pragma,
10163         * src/pic16/main.h: new structure types sectName and sectSym
10164         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
10165         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
10166         * (pic16_findPrevInstruction): fixed, it returned nothing,
10167         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
10168         instruction combinations,
10169         * (pic16_FixRegisterBanking): heavily reorganised,
10170         * (pic16_AnalyzeBanking): if generating banksel directives is
10171         disabled, then don't call FixRegisterBanking at all,
10172         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
10173         completely removed,
10174         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
10175
10176 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
10177
10178         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
10179         Phuah Yee Keat <yk.phuah AT nestac.com>
10180
10181 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
10182
10183         * src/pic16/glue.c (pic16createInterruptVect): function now emits
10184         correctly the IVT even if it is relocated to some other location
10185
10186 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
10187
10188         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
10189         * device/include/pic16/pic18f2220.h: NEW,
10190         * device/lib/pic16/libdev/pic18f2220.c: NEW,
10191         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
10192         * src/pic16/device.c (struct Pics16): added info for 18f2220,
10193         * src/pic16/device.h (struct pic16_options): added ivt_loc and
10194         nodefaultlibs, ivt_loc is the location of the interrupt vector
10195         table, and nodefaultlibs signs that default libraries should not be
10196         linked in link stage,
10197         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
10198         according to --ivt-loc argument,
10199         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
10200         when pragma stack is found,
10201
10202 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10203
10204         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
10205         256 (range check), 257 (do while), 258.a-f (bit banging
10206         f.e. on 3-wire SPI bus)
10207
10208 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10209
10210         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
10211         variables used exclusively within a loop
10212
10213 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
10214
10215         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
10216
10217 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10218
10219         * src/SDCClrange.c (computeClash): fixed bug #971834
10220
10221 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10222
10223         * src/mcs51/gen.c (genCmp): fixed bug #975903
10224         * src/hc08/gen.c (operandsEqu),
10225         * src/ds390/gen.c (operandsEqu),
10226         * src/z80/gen.c (operandsEqu),
10227         * src/pic/gen.c (operandsEqu),
10228         * src/pic16/gen.c (operandsEqu),
10229         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
10230         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
10231
10232 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10233
10234         * src/SDCCcse.c (cseBBlock): fixed bug #966963
10235
10236 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
10237
10238         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
10239         default case in switch statement,
10240         * glue.c (pic16_initPointer): expr is initialised via decoarteType
10241         to eliminate problem with initialisation of pointers, but problem
10242         still exists,
10243         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
10244         * (emitStaticSegment): removed various lines emitting debug info,
10245         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
10246         added processor registers for utilizing EEPROM,
10247         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
10248         configurable and set 8
10249
10250 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
10251
10252         * .version: increased version number to 2.4.2,
10253
10254         Cumulative patch for pic16 port
10255         * src/pic16/device.c: changed scheme to dump initial values for
10256         variables in idata segment, all print_idata* functions were removed,
10257         now the pic16_printIval* will be called,
10258         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
10259         * _pic16_printPointerType, pic16_printPointerType,
10260         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
10261         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
10262         NEW, similar to the respective functions in SDCCglue.c,
10263         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
10264         way, emitting hex bytes,
10265         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
10266
10267 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10268
10269         * src/avr/ralloc.c (serialRegAssign),
10270         * src/xa51/ralloc.c (serialRegAssign),
10271         * src/pic/ralloc.c (serialRegAssign),
10272         * src/pic16/ralloc.c (serialRegAssign),
10273         * src/hc08/ralloc.c (serialRegAssign),
10274         * src/z80/ralloc.c (serialRegAssign),
10275         * src/ds390/ralloc.c (serialRegAssign),
10276         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
10277
10278 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10279
10280         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
10281         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
10282
10283 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
10284
10285         Cumulative patch for pic16 port:
10286         * src/pic16/device.h (typedef PIC16_device) modified fields for
10287         defining microcontrollers,
10288         * src/pic16/device.c: added new info for all devices in Pics16 array,
10289         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
10290         to be optimised out by the pCode optimiser,
10291         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
10292         specially, bug reported by G.M. Gallant,
10293         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
10294         as force'd so that cannot be optimised out by pCode optimiser,
10295         * src/pic16/pcode.c,
10296         * src/pic16/pcodepeeph.c,
10297         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
10298         they are disabled by default, but can be enabled explicit with
10299         command argument --denable-peeps, for testing,
10300         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
10301         --pomit-ivt in COMPILE_FLAGS
10302
10303 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
10304
10305         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
10306           compilation on MSVC
10307
10308 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
10309
10310         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
10311
10312 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10313
10314         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
10315         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
10316
10317 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
10318
10319         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
10320         would only assign 0x300001 register.
10321
10322 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
10323
10324         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
10325         in COMPILE_FLAGS. Thanks to G. Gallant for report.
10326
10327 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10328
10329         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
10330         for ds80c400
10331         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
10332         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
10333         added peephole 254 (left shift), 255 (jump table)
10334
10335 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
10336
10337         * device/lib/Makefile.in: removed comment line with model-pic16,
10338         * (target port-specific-objects-pic16): the libraries and objects
10339         are copied to the build directory form the device/lib/pic16/bin
10340         directory
10341
10342         Cumulative patch concerning pic16 port:
10343         * library directory has been re-organized,
10344         * added support for PIC18F1220,
10345         * added headers and library sources for chips 18f1220,18f6520,
10346         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
10347
10348         * configuration registers setting has changed, now each supported
10349         device has a complete description of the registers it uses,
10350         * all initialisations are moved to idata sections, these section
10351         can be absolute or relocatable,
10352         * fixed initialisation of codespace variables,
10353         * fixed warning about PCLATU and gpsim,
10354         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
10355         * (genAssign): use table reads when assigning from variables in codespace,
10356         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
10357         char/int variables placed in codespace,
10358         * (pic16_emitConfigRegs): NEW, emits a list with configuration
10359         registers set in .asm file, no need for --pomit-config-words anymore,
10360         * (pic16glue): some 8051 legacy segments are commented out
10361         (to be removed completely),
10362         * added support for alternative assembler and linker with --asm=
10363         and --link= command line arguments,
10364         * peepholes are disabled automatically in the port, no need to
10365         specify on command line,
10366         * port supports natively char/int/long multiplication, but converts
10367         all divisions to support functions,
10368         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
10369         to the file set in variable $2,
10370         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
10371         strings in ASCII format and not in hex,
10372         * ralloc.c (serialRegAssign): added a triplet of conditional calls
10373         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
10374         allocate proper register if iCodes aren't temporary,
10375
10376 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
10377
10378         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
10379
10380 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
10381
10382         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
10383         is commented out
10384
10385 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10386
10387         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
10388         computed address is reused
10389         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
10390         multi-byte bitfields
10391
10392 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
10393
10394         * src/z80/gen.c: (genArrayInit): must check for pointers too
10395
10396 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
10397
10398         * support/regression/tests/zeropad.c: never meant to commit the
10399           nestedstruct test: removed, added check for GCC version
10400
10401 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
10402
10403         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
10404         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
10405         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
10406           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
10407           bugs 928906 and 954082 half-empty initializers
10408         * src/SDCCsymt.h,
10409         * src/SDCCsymt.c (getAllocSize): added for above fix
10410         * src/z80/gen.c (genArrayInit): fixed bug 741044
10411         * support/regression/tests/zeropad.c: added tests
10412
10413 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
10414
10415         * src/pic16/device.c (pic16_dump_section): corrected bug which
10416         caused some symbols of the libraries to be misplaced
10417
10418 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
10419
10420         * src/pic16/glue.c,
10421         * src/pic16/ralloc.h,
10422         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
10423         to fix conflict with pic port
10424
10425 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
10426
10427         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
10428         externs configuration variables,
10429         * src/pic16/ralloc.h,
10430         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
10431         prototype in header, commented out some debug messages
10432
10433 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
10434
10435         * src/pic16/glue.c,
10436         * src/pic16/main.c,
10437         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
10438         for gpasm COFF object generation. Thanks to D. Hawkins for
10439         his patch info
10440
10441 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10442
10443         * src/ds390/main.c,
10444         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
10445         Brock for spotting this)
10446         * src/ds390/gen.c (genEndFunction),
10447         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
10448         interrupt handler and critical. Disable push/pop optimizations when
10449         peephole optimizations disabled.
10450
10451 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
10452
10453         Updated pic16 library sources and headers.
10454         * device/lib/pic16/pic18f*/ ,
10455         * device/include/pic16/*.h: modified to handle structured SFR
10456         definitions
10457
10458 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
10459
10460         * src/port.h (PORT structure): added hook initPaths, now each
10461         port can declare its own default search paths,
10462         which can been seen with the --print-search-dirs option,
10463         see pic16 port for example,
10464         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
10465         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
10466         * (doPrintSearchDirs): NEW, replaces in a central manner the
10467         printing of search dirs which was split in set*Paths functions,
10468         * (main): added call to port->initPaths and doPrintSearchDirs,
10469         * src/avr/main.c,
10470         * src/ds390/main.c,
10471         * src/hc08/main.c,
10472         * src/izt/i186.c,
10473         * src/izt/tlcs900h.c,
10474         * src/mcs51/main.c,
10475         * src/pic/main.c,
10476         * src/pic16/main.c: modified port structures to reflect addition of
10477         initPaths hook,
10478
10479         * src/pic16/device.c (regCompare): registers are finally sorted by name,
10480         * (pic16_dump_section): for registers in same address reserve memory once,
10481         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
10482         to no_banksel,
10483         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
10484         result is greater in size than right or left,
10485         * (pic16_genUMult8X8_8): there are some cases where the result can
10486         be 16 bits size, so handle these,
10487         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
10488         * (pic16_outBitC): modified to emit pcodes,
10489         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
10490         or not,
10491         * (genDivOneByte): implemented algorithm to divide 8-bits,
10492         * (genCmp): uncommented goto, but issues still exist,
10493         * (genAnd): fixed a bug with variables >8bits,
10494         * (genPackBits): optimization added that uses BCF/BSF to change a
10495         single bit,
10496         * (genAssign): fixed bug when assigning floating point literals,
10497         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
10498         __sdcc_gsinit_startup label,
10499         * src/pic16/main.c (_pic16_init): removed search directory
10500         initialisations,
10501         * (_pic16_initPaths): NEW, used to initialise search directories,
10502         * (_hasNativeMulFor): support functions for all except char/int
10503         multiplication, and char division,
10504         * (PIC16_port struct): modified entry for native mul support,
10505         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
10506         no_banksel option,
10507         * (buildCallTree): call to register_usage is ifdef'ed out,
10508
10509 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10510
10511         * device/include/string.h: applied Stas Sergeev's patch to make this
10512         header file compatible with the preprocessor -Wundef option
10513         * src/SDCCmain.c (main): abort compilation if preprocessor reports
10514         failure (fixes bug #941458)
10515
10516 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10517
10518         * src/SDCCopt.c (killDeadCode): fixed bug #907733
10519         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
10520         that the variable, not the function, should be static
10521         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
10522         to be consistent with non-literal case
10523
10524 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10525
10526         * src/SDCCast.c (isConformingBody): fixed bug #949967
10527         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
10528         convilong): fixed bug #952086
10529
10530 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10531
10532         * src/SDCCmem.c (allocVariables): fixed bug #955321
10533
10534 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10535
10536         * src/hc08/main.c (_hc08_genAssemblerEnd),
10537         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
10538         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
10539         completely eliminated the use of a temporary file
10540         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
10541         when more than one file linked
10542         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
10543
10544 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10545
10546         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
10547         which fixes bug #543481
10548         * support/regression/tests/bug-751703.c: fixed comments left from a
10549         cut and paste error
10550         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
10551         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
10552         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
10553         scopes
10554         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
10555         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
10556         are now changed to underscores in moduleName
10557
10558 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10559
10560         * as/mcs51/lkmem.c: better fix for bug #954173
10561
10562 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
10563         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10564
10565         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
10566         * device/include/c8051f000.h,
10567         * device/include/c8051f120.h,
10568         * device/include/c8051f300.h,
10569         * device/include/c8051f310.h,
10570         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
10571         PWM16) and detab'ed
10572
10573 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10574
10575         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
10576         and mailing lists, doc'ed --no-peep-comments, removed reference
10577         to knoppix (newest version has no LyX/LaTeX), other minor changes
10578         * src/SDCCglue.c (glue): save 2 bytes stack space with
10579         option --main-return. The ljmp could probably be avoided too
10580
10581 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10582
10583         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
10584
10585 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10586
10587         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
10588         * src/SDCCopt.c (isLocalWithoutDef),
10589         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
10590         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
10591         (credit to Maarten Brock for patch #949363, on which this is based)
10592         * support/regression/tests/bug-751703.c: some test cases of extern used
10593         within inner scopes.
10594
10595 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10596
10597         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
10598         SPEC_STRUCT
10599         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
10600         struct definitions
10601         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
10602         dwWriteLabel): fix to create valid debugger symbols even when
10603         the module name has non-alphanumeric symbols in it
10604         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
10605         when a variable's allocation has been optimized away
10606
10607
10608 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10609
10610         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
10611         * src/hc08/main.c,
10612         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
10613         * src/mcs51/main.c,
10614         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
10615         * src/ds390/main.c,
10616         * src/z80/gen.c (z80_emitDebuggerSymbol),
10617         * src/z80/main.c,
10618         * src/pic/gen.c (pic14_emitDebuggerSymbol),
10619         * src/pic/main.c,
10620         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
10621         * src/pic16/main.c,
10622         * src/avr/gen.c (avr_emitDebuggerSymbol),
10623         * src/avr/main.c,
10624         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
10625         * src/xa51/main.c,
10626         * src/SDCCdebug.c (emitDebuggerSymbol),
10627         * src/SDCCdebug.h,
10628         * src/port.h: added a debugger struct to the port struct. Added a
10629         callback for defining debugger symbols
10630
10631         * src/SDCCast.c (createLabel),
10632         * src/SDCC.y (labeled_statement): mark all compiler generated labels
10633         with isitmp = 1
10634         * src/SDCCicode.h,
10635         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
10636         iCode back to the ast for the function
10637
10638         * src/hc08/ralloc.c (hc08_assignRegisters),
10639         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
10640         unneeded fields from the regs struct.
10641         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
10642         pushReg() & pullReg() functions instead of emitcode()
10643
10644         * src/hc08/gen.c (genLabel, genhc08Code),
10645         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
10646
10647         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
10648         debugger hooks
10649
10650         * src/hc08/gen.c (genEndFunction, genhc08Code),
10651         * src/hc08/gen.h,
10652         * src/mcs51/gen.c (genEndFunction, gen51Code),
10653         * src/mcs51/gen.h,
10654         * src/ds390/gen.c (genEndFunction, gen390Code),
10655         * src/ds390/gen.h,
10656         * src/z80/gen.c (genEndFunction, genZ80Code),
10657         * src/z80/gen.h,
10658         * src/z80/z80.h,
10659         * src/pic/gen.c (genEndFunction, genpic14Code),
10660         * src/pic/gen.h,
10661         * src/pic16/gen.c (genEndFunction, genpic16Code),
10662         * src/pic16/gen.h,
10663         * src/avr/gen.c (genEndFunction, genAVRCode),
10664         * src/avr/gen.h,
10665         * src/xa51/gen.c (genEndFunction, genXA51Code),
10666         * src/xa51/gen.h,
10667         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
10668         specific code to cdbFile.c and out of the backend code generators
10669
10670         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
10671         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
10672         starting address is now 0
10673
10674         * as/hc08/asm.h,
10675         * as/hc08/m08pst.c,
10676         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
10677         assembler directive for DWARF support
10678         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
10679
10680         * src/src.dsp,
10681         * src/Makefile.in,
10682         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
10683
10684 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10685
10686         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
10687         and inappropriate peephole optimization in jump tables
10688
10689 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10690
10691         * as/hc08/m08pst.c,
10692         * src/SDCCglue.c: sdccopt works for the hc08 port now
10693
10694 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
10695
10696         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
10697
10698 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10699
10700         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
10701
10702 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10703
10704         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
10705         rules
10706         * src/SDCCmain.c,
10707         * src/SDCCglobl.h,
10708         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
10709         comments from the peephole optimizer replacement rules
10710         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
10711         symbols
10712         * src/SDCCcse.c (updateSpillLocation),
10713         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
10714         equivalents
10715         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
10716         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
10717         objects far pointers
10718
10719 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10720
10721         * src/SDCCsymt.h: a missing part of my last change
10722         * src/pic/ralloc.c (regTypeNum),
10723         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
10724
10725 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10726
10727         * src/SDCCicode.h,
10728         * src/SDCCicode.c (aggrToPtrDclType),
10729         * src/SDCCptropt.h,
10730         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
10731         ptrPseudoSymConvert),
10732         * src/pic/ralloc.c (regTypeNum),
10733         * src/pic16/ralloc.c (regTypeNum),
10734         * src/hc08/ralloc.c (regTypeNum),
10735         * src/ds390/ralloc.c (regTypeNum),
10736         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
10737         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
10738
10739 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10740
10741         * link/z80/lkmain.c (afile),
10742         * as/hc08/lkmain.c (afile),
10743         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
10744         prevent a pointer problem when a filename has no directory and
10745         no extension specified.
10746
10747 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10748
10749         * link/z80/lkmain.c (afile): allow periods in directory names
10750         * link/z80/lkmain.c (afile),
10751         * as/mcs51/lkmain.c (afile),
10752         * as/hc08/lkmain.c (afile): allow linker script file to have an
10753         extension other than ".lnk"
10754         * link/z80/lklex.c (getfid),
10755         * link/z80/lkmain.c (parse),
10756         * as/mcs51/lklex.c (getfid),
10757         * as/mcs51/lkmain.c (parse),
10758         * as/hc08/lklex.c (getfid),
10759         * as/hc08/lkmain.c (parse): Support comments in the linker script
10760         file on lines by themselves and after filenames
10761
10762 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10763
10764         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
10765
10766 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10767
10768         * src/z80/peeph-z80.def: removed some peephole rules that don't
10769         work with multibyte arithmetic (fixed bug #937126)
10770         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
10771         to registers and not global variables
10772         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
10773         geniCodePreInc, geniCodePostDec, geniCodePreDec,
10774         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
10775         checking for assignments not internally generated (fixed bug #931895)
10776         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
10777         structure member (fixed bug #930072)
10778
10779 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10780
10781         * src/SDCCmain.c (linkEdit),
10782         * src/hc08/main.c (_hc08_parseOptions),
10783         * as/hc08/Makefile.in,
10784         * as/hc08/aslink.h,
10785         * as/hc08/asm.h,
10786         * as/hc08/m08pst.c,
10787         * as/hc08/lkrloc.c (relr, rele),
10788         * as/hc08/lkarea.c (lnkarea)
10789         * as/hc08/lkmain.c (afile, parse),
10790         * as/hc08/lkelf.c: support for ELF output
10791         * as/hc08/lks19.c (s19),
10792         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
10793
10794 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10795
10796         * as/mcs51/lkihx.c: Fixed bug #899105.
10797
10798 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10799
10800         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
10801         .dsp files from Unix to DOS.
10802
10803 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10804
10805         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
10806         function pointers; we have been compliant for several months now.
10807         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
10808         change that was accidently commented out
10809         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
10810         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
10811         bug #922319
10812
10813 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10814
10815         * src/hc08/gen.c: output of all of the internal debugging information
10816         is now controlled by the D() macro; it is disabled by default
10817
10818 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10819
10820         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
10821         harder to keep the same registers during a CAST iCode
10822         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
10823         long via int can be done in a single cast, if the signedness is
10824         correct.
10825         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
10826         putchar() in tinibios.c in ds390's library
10827
10828 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
10829
10830         * src/SDCCast.c (decorateType): fixed bug #898889,
10831         cast result of a literal complement too
10832         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
10833         fixed check for bitfields
10834
10835 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
10836
10837         * src/SDCCicode.c (geniCodeLogic): made it static,
10838         (geniCodeLogicAndOr): added in order to fix bug #905492,
10839         (ast2iCode): fixed bug #905492
10840         * support/regression/tests/bug-905492.c: added
10841         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
10842         (processParms): fixed bug #927659: don't copy parms, this will clear
10843         decorated flag
10844         * support/regression/tests/bug-927659.c: added
10845
10846 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
10847
10848         * src/SDCCast.c (addCast): don't cast float to char
10849         * device/lib/libsdcc.lib: added _memmove
10850
10851 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
10852
10853         * device/lib/large/Makefile: fixed parallel execution by
10854         replacing `make` by `$(MAKE)`
10855
10856 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10857
10858         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
10859         offsets (fixes bug #923936)
10860
10861 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
10862
10863         * device/lib/small/Makefile: fixed parallel execution by
10864         replacing `make` by `$(MAKE)`
10865
10866 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
10867
10868         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
10869
10870 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
10871
10872         * src/pic/gen.c (genCpl): multi-byte complements were not working.
10873         * src/regression/Makefile: Regression test was not running.
10874
10875 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
10876
10877         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
10878         complement if possible
10879         * src/SDCCval.c (valComplement),
10880         * src/SDCCicode.c (operandOperation): fixed complement of literal
10881         * support/regression/tests/onebyte.c (testComplement): added
10882
10883 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
10884
10885         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
10886         return an optimized tree; actually replace actParm with the new tree
10887         * src/SDCCast.h: added some parantheses to remove side effects
10888         * support/regression/tests/bug-920866.c
10889
10890 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
10891         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
10892         Bit operands were not being handled properly in the pic14 port.
10893         (now src/regression/add.c passes again).
10894
10895 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10896
10897         * src/SDCC.y (labeled_statement): case and default no longer require
10898         a following statement (RFE #893037)
10899
10900 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10901
10902         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
10903         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
10904         disabled (fixes bug #916294)
10905         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
10906         "mov a,acc"; patch provided by Lenny Story
10907         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
10908
10909 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10910
10911         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
10912         functions
10913         * src/ds390/gen.c (genFunction, genEndFunction),
10914         * src/ds390/ralloc.c (ds390_assignRegisters),
10915         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
10916         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
10917         pushed if there are parameters passed on the stack. Also, a cleaner
10918         way to decide if r0/r1 should be pushed/popped. (Together they fix
10919         bug #918693)
10920
10921 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10922
10923         * doc/sdccman.lyx,
10924         * device/lib/mcs51/crtpagesfr.asm,
10925         * device/lib/mcs51/crtxinit.asm,
10926         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
10927         to avoid confusion with Si Lab's SFRPAGE register.
10928
10929 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10930
10931         * src/SDCCglue.c (emitMaps): allow public sfr variables
10932         * src/SDCCglue.c (initialComments): include compiler build date
10933         with compiler version and put the timestamp of the generated
10934         assembly file on a serperate line to be less confusing.
10935         * src/port.h: added genInitStartup hook
10936         * src/avr/main.c,
10937         * src/ds390/main.c,
10938         * src/hc08/main.c,
10939         * src/pic/main.c,
10940         * src/pic16/main.c,
10941         * src/xa51/main.c,
10942         * src/z80/main.c: genInitStartup initialize as NULL (default to
10943         historical behaviour)
10944         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
10945         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
10946         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
10947         library instead of hard coding it into the compiler.
10948         * support/regression/ports/mcs51-stack-auto/spec.mk,
10949         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
10950         * device/lib/mcs51/Makefile,
10951         * device/lib/small/Makefile,
10952         * device/lib/large/Makefile,
10953         * device/lib/mcs51/crtpagesfr.asm,
10954         * device/lib/mcs51/crtstart.asm,
10955         * device/lib/mcs51/crtxclear.asm,
10956         * device/lib/mcs51/crtxinit.asm,
10957         * device/lib/mcs51/crtclear.asm,
10958         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
10959         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
10960         and into user configurable files.
10961         * device/lib/clean.mk: clean mcs51 directory too
10962         * support/regression/tests/longlit.c: added static to T1 declaration
10963         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
10964         accesses in the initialization code
10965
10966 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10967
10968         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
10969         OSCTRIMVAL as noted in bug #916008
10970
10971 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10972
10973         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
10974         in loops with multiple exits (reported as incorrect registers
10975         used by Martin Helmling in Sdcc-user list)
10976
10977 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10978
10979         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
10980         made ds390 register extensions look less like error messages
10981
10982 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10983
10984         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
10985         reported by Adam Wozniak in Sdcc-user list
10986
10987 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
10988
10989         * src/SDCCast.c (decorateType): fixed with bug and promotion in
10990         arithmetic optimizations, added debug output
10991
10992 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
10993
10994         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
10995         * sdcc.spec: updated and split sdcc into 3 rpms
10996         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
10997         needed for literals of LEFT_OP and '+'
10998         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
10999         introduced RESULT_TYPE_NOPROM
11000         (geniCodeMultiply): fixed logic for decision if mul is optimized to
11001         left shift
11002         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
11003         limited promotion to int only for '*'
11004         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
11005
11006 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
11007
11008         * src/pic16/gen.c (genSkip),
11009         (genc16bit2lit), (gencjneshort): commented out
11010         (is_LitOp): new helper function, checks operand type
11011         (genCmpEq): rewritten
11012
11013 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
11014
11015         * support/regression/tests/bug-908454.c: added
11016
11017 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
11018
11019         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
11020         * src/SDCCicode.c (usualBinaryConversions): op needs int type
11021         (geniCodeCast): cosmetic, don't preserve bit storage class
11022         (geniCodeLeftShift): added promotion
11023         (geniCodeLogic): fixed regression
11024         * src/SDCCsymt.c (computeTypeOr): accept bits too
11025         (compareType): 2nd part of fix for bug #908454, needed for bitfields
11026
11027 2004-03-07  Borut Razem <borut.razem AT siol.net>
11028
11029         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
11030
11031 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
11032
11033         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
11034         version of pic16_genPackRegisters which does not check if ic is a
11035         CAST operator,
11036         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
11037         function cause string1.c regression test fails
11038
11039 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
11040
11041         * sim/ucsim/configure.in,
11042         * sim/ucsim/configure,
11043         * sim/ucsim/doc/Makefile.in: use docdir
11044         * src/SDCC.y: fixed sbit atrributes
11045         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
11046         * src/SDCCast.c (decorateType): |^& need special promotion handling
11047         * src/SDCCast.h,
11048         * src/SDCCsymt.h: moved definition of RESULT_TYPE
11049         * src/SDCCsymt.h (computeType),
11050         * src/SDCCicode.c: computeType() needs op
11051         * src/SDCCsymt.c (checkTypeSanity),
11052         * doc/sddman.lyx: "plain" bitfields are unsigned
11053         * src/SDCCsymt.c (computeTypeOr): added
11054         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
11055         |^& ops
11056         * src/SDCCval.c (val*): computeType() needs op
11057         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
11058         * support/regression/tests/onebyte.c: added tests for |^&
11059
11060 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
11061
11062         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
11063         for writing icode into asm output.
11064
11065 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
11066
11067         * src/pic16/device.c: added some debug lines enabled
11068         with macro DEBUG_CHECK,
11069         * src/pic16/genarith.c: more debug in genPlus,
11070         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
11071         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
11072         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
11073         * (aopForSym): onStack symbols are re-placed in data memspace,
11074         and onStack flag is cleared,
11075         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
11076         copy temporary pcodeop,
11077         * (genPcall): added warning for not updating PCLATU,
11078         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
11079         always true for pic16 port,
11080         * (genMultOneWord): NEW, supports integer multiplication,
11081         * (genMult): modified to call genMultOneWord,
11082         * (ifxForOp): added warning when return NULL,
11083         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
11084         flag is set before call to operandFromSymbol for implicit
11085         added structures,
11086         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
11087         options.intlong_rent are set by default,
11088         * (_hasNativeMulFor): modified to allow port generation of integer
11089         multiplication,
11090         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
11091         set regtype to REG_SFR for all registers, restricting seting the
11092         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
11093
11094 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11095
11096         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
11097         more than 500 times in the regression tests
11098
11099 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11100
11101         * support/Util/SDCCerr.h,
11102         * support/Util/SDCCerr.c,
11103         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
11104         enumerator_list),
11105         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
11106         for symbol conflicts.
11107         * support/valdiags/tests/enum.c,
11108         * support/valdiags/tests/tentdecl.c,
11109         * support/valdiags/tests/struct.c: expect possible error messages
11110         referring to original symbol definitions.
11111         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
11112         * src/SDCCsymt.h,
11113         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
11114
11115 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
11116
11117         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
11118
11119 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
11120
11121         * src/pic16/ralloc.c (newReg): fixed bug #908929
11122
11123 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11124
11125         * src/ds390/gen.c: added missing #include "main.h"
11126
11127 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
11128
11129         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
11130         checking if symbol is already in set,
11131         * src/pic16/device.h: prototype for checkAddSym,
11132         * src/pic16/gen.c: (_G): added entry interruptvector,
11133         * (assignResultValue): removed some commented out lines,
11134         * (genFunction): check for ISR via sym->type, absolute section for
11135         interrupt code is created via a new pBlock, the goto instruction is
11136         placed now correctly at the interrupt vector position, changed all
11137         references from ivec to _G.interruptvector,
11138         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
11139         is the interrupt is a high priority one, same for return from ISR,
11140         * src/pic16/glue.c: changed all calls of addSetHead for publics and
11141         externs to calls of checkAddSym,
11142         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
11143         pic16_pcode_verbose flag is set,
11144         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
11145         * src/pic16/pcoderegs.c: message about how many registers are saved
11146         will only be emitted if pic16_pcode_verbose flag is set,
11147
11148 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11149
11150         * src/ds390/ralloc.h,
11151         * src/ds390/ralloc.c (ds390_regWithIdx),
11152         * src/ds390/gen.c (emitcode),
11153         * src/ds390/main.h,
11154         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
11155         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
11156         ds390operandCompare, getRegsRead, getRegsWritten,
11157         initializeAsmLineNode): customized instruction size calculation for
11158         ds390, started basis for some register optimizations
11159         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
11160         corresponding assembly output
11161         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
11162         missing push/pop of r0/r1. Optimized push/pops
11163
11164 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11165
11166         * src/mcs51/main.c (instructionSize): fixed ACALL size
11167         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
11168
11169 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
11170
11171         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
11172         the sorting of rlist with NULL elements
11173         * (print_idataType, print_idata): NEW to create idata sections
11174         * src/pic16/device.h: idataSymSet new variable
11175         * src/pic16/gen.c (genFunction): fixed some bugs in string
11176         comparing, improved the absolute section creation for ISRs,
11177         added FSR0L/FSR0H in registers that are saved in an ISR,
11178         * (genInline): fixed the processing of inline snippets,
11179         now they undergo no process by the peephole optimizer
11180         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
11181         are placed in idataSymSet,
11182         * (pic16emitStaticSeg): extern symbols are added in externs,
11183         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
11184         switching when aboslute variables are placed in access bank memory
11185         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
11186         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
11187         commented out with #if,
11188         * (pic16_packRegisters): reintroduce the check for CAST because some
11189         symbols are not correctly handled,
11190         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
11191         pCodeInstruction instead of pCode,
11192         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
11193         pCodeAsmDir definition,
11194         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
11195         directive, then the argument directive is emitted without the leading
11196         tab, hack for inline labels which must be in the first column,
11197         * (compareLabel,pic16_findNextInstruction),
11198         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
11199         * (insertBankSwitch): modified for the new pCodeAsmDir,
11200
11201 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11202         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
11203
11204         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
11205         instance,
11206         * (pushSide): commented out with #if,
11207         * (assignResultValue): fixed some typos in saving
11208         registers,
11209         * (genPcall): FIXED and sync'ed with genCall,
11210         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
11211         * (genNearPointerGet): fixed to handle some more cases,
11212         implementation scheme via table reads,
11213         * (genConstPointerGet): modified to access code memory correct,
11214         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
11215         and improved to handle some cases
11216         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
11217         instead of "RETLW" for init data
11218         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
11219         not IN_DIRSPACE, work around to reduce bank switching when aboslute
11220         variables are placed in access bank memory (<0x80 and >=0xf80),
11221         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
11222         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
11223         TBLWT_POSTDEC,TBLWT_PREINC
11224         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
11225         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
11226         directives
11227         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
11228         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
11229         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
11230         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
11231
11232 2004-02-29  Borut Razem <borut.razem AT siol.net>
11233
11234         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
11235         support/Util/findme.h, support/Util/system.h: enhance binary relative
11236         search for lib and include by using findProgramPath()
11237
11238 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11239
11240         * src/SDCCpeeph.h,
11241         * src/SDCCpeeph.c (pcDistance),
11242         * src/port.h,
11243         * src/mcs51/ralloc.h,
11244         * src/mcs51/ralloc.c (mcs51_regWithIdx),
11245         * src/mcs51/main.h,
11246         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
11247         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
11248         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
11249         size calculation port specific, started basis for some register
11250         optimizations
11251         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
11252         missing push/pop of r0/r1. Optimized push/pops
11253         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
11254         * device/lib/_modsint.c (_modsint),
11255         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
11256         and stack version so regression tests pass
11257
11258 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
11259
11260         * src/Makefile.in (dep): include SLIBOBJS in dependency check
11261         * src/SDCCast.c (decorateType): catch another small optimization
11262         with '?' operator
11263         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
11264         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
11265         modified to finally use computeType() all over SDCC,
11266         see Feature Request #877103
11267         * src/SDCCval.h: cosmetic
11268         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
11269         valCompare(); regression tested in muldiv.c
11270         * support/regression/tests/muldiv.c (testMod): mod sign follows
11271         dividend only
11272
11273 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
11274
11275         * src/SDCCast.c (decorateType): fixed bug #902362
11276         * doc/INSTALL.txt: fixed install instructions for win32
11277
11278 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
11279
11280         * device/include/Makefile.in (install): fixed by replacing spaces
11281         by tabs
11282         * doc/README.txt,
11283         * doc/INSTALL.txt: updated for release
11284         * doc/sdccman.lyx: added warning for --xstack being buggy
11285
11286 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
11287
11288         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
11289         to eliminate build warnings.
11290         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
11291
11292 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
11293            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11294
11295         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
11296         removed -penable-stack, added comment for stack pragma, added
11297         warning for not initializing the stack/frame registers, removed
11298         comment at interrupts section
11299
11300         Stack is made permanent, there is no ability to disable stack usage.
11301         * src/pic16/device.h,
11302         * src/pic16/device.c: removed all references to USE_STACK macro,
11303         * src/pic16/device.c (pic16_dump_section): when no elements in
11304         rlist, free rlist before return,
11305         * (pic16_dump_int_registers): NEW, internal registers are a new set
11306         of general purpose registers reused by each function,
11307         * (checkAddReg): returns 1 if registers is added to set,
11308         * (pic16_groupRegistersInSection): when a registers is of type
11309         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
11310         * src/pic16/device.h: memRange and Assigned Memory are deleted,
11311         SRCASECMP macro is moved here from device.c
11312         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
11313         PO_PCLATU, PO_PRODL, PO_PRODH,
11314         * (pic16_pCodeOpType, genMinus,
11315         changed compares to "a" register, with AOP_ACC,
11316         * (pic16_genPlus): fixed some bugs and indented properly,
11317         * (pic16_addSign): changed size to size+offset in the MOVWF
11318         instruction,
11319         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
11320         multiply 8-bit operand by literal, result is 8-bit,
11321         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
11322         multiply 2 8-bit operand, result is 8-bit,
11323         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
11324         genUMult8X*_16,
11325         * src/pic16/gen.c: changed accUse to contain WREG only,
11326         * (pic16_emitcomment): renamed to pic16_emitpcomment,
11327         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
11328         true, do not use immediate addressing any more unless sym is a
11329         pointer in codespace,
11330         * (aopForRemat): do not use immediate addressing when symbol not in
11331         codespace and when symbol's address is requested,
11332         * (aopOp): for-loop in if(sym->accUse) is modified for the new
11333         accUse size (= 1),
11334         * (aopGet): added case for AOP_ACC and don't return "accumulator
11335         bug" but WREG instead,
11336         * (popGetTempReg): pushes contents of temporary register in stack,
11337         * (popReleaseTempReg): pops contents of temporary register from
11338         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
11339         * (pic16_popGet): separated case AOP_ACC to return register WREG
11340         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
11341         or PO_IMMEDIATE and initializes their instance/offset appropriately,
11342         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
11343         the use of immediate pointers to certain cases only.
11344
11345         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
11346         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
11347         * (assignResultValue, genCall, genRet): modified to use the new
11348         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
11349         genPcall is still broken,
11350         * (genFunction): added code to create 'A' type pBlocks when
11351         interrupt functions are generated, code not extensively tested yet,
11352         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
11353         * (genEndFunction): modified so ISRs pop stored registers from stack,
11354         * (genMultOneByte): cleanup,
11355         * (AccRsh): added flag andmask, to and result with appropriate mask,
11356         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
11357         * (genDataPointerGet): fixed and reenabled its use,
11358         * (genNearDataPointerGet): bugs fixed,
11359         * (genDataPointerSet): bugs fixed,
11360         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
11361         pic16_DumpSymbol, pic16_DumpOp,
11362         * src/pic16/genutils.h: function prototypes for the above functions,
11363         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
11364         pointers,
11365         * (pic16emitRegularMap): many many many improvements, but needs a
11366         major cleanup,
11367         * src/pic16/main.c: enable_stack in pic16_options is removed,
11368         * (_pic16_parseOptions): removed command line options -penable-stack,
11369         * (_process_pragma): emit stack symbol only when stack pragma is
11370         processed,
11371         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
11372         redirected to FSR0L/FSR0H pair,
11373         * (pic16_get_op, pic16_get_op2): modifications and improvements,
11374         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
11375         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
11376         for immediates,
11377         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
11378         * (dumpPicOptype): NEW,
11379         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
11380         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
11381         with movff instruction,
11382         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
11383         added pic16_int_regs, some packRegsFor* functions are commented out,
11384         because produce errors,
11385         * src/pic16/NOTES: minor modifications
11386
11387 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11388
11389         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
11390         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
11391         --pack-iram.
11392         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
11393         * as/mcs51/lkaomf51.c: fixed bug #895763
11394
11395 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
11396
11397         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
11398
11399 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11400
11401         * doc/sdccman.lyx: added details about the HC08 storage classes and
11402         interrupts, fixed the register usage info for z80 & gbz80
11403
11404 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
11405
11406         * doc/sdccman.lyx: added more pic16 port documentation
11407         * device/include/pic16/: added header pic18fregs.h
11408
11409 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
11410
11411         * doc/sdccman.lyx: added Vangelis' contribution
11412
11413 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11414
11415         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
11416         extend to the next CALL or PCALL, not just to the next CALL.
11417
11418 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
11419
11420         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
11421
11422 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11423
11424         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
11425         bug #895752 and a better fix for bug #716790
11426
11427 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11428
11429         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
11430
11431 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11432
11433         * doc/sdccman.lyx: minor changes, minor changed
11434
11435 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
11436
11437         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
11438         which can't handle SDCC_NEWONEBYTEOPS,
11439         (geniCodeMultiply): removed conversion from mult to shift for pic14
11440         and pic16
11441
11442 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11443
11444         * src/hc08/gen.h,
11445         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
11446         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
11447         thus fixing bug #895406
11448
11449 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
11450
11451         * device/lib/_modsint.c,
11452         * device/lib/_modslong.c: sign follows divisor only
11453         * src/hc08/gen.c (genMultOneByte): if result size is 1,
11454         signs or signedness can be ignored
11455         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
11456         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
11457         added optimization for IFX,
11458         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
11459         arguments;
11460         reenabled optimization for IFX, which was removed on 2004-01-11
11461         * src/SDCCast.h: added return type IFX
11462         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
11463         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
11464         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
11465         SDCC_OLDONEBYTEOPS selects the old behaviour
11466         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
11467         changed again and commented promotion rule
11468         * src/SDCCval.c (valDiv): promotion no longer necessary
11469         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
11470         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
11471         rewritten
11472         * support/regression/tests/onebyte.c: added
11473
11474 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
11475
11476         * gen.c (genInline): reverted to old code for assemnling inline
11477         code because of bug reported James Chadd
11478
11479 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
11480
11481         * ralloc.h: missing declarations from previous patch,
11482         seems that patch for ralloc.h was never applied, fixed
11483
11484 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11485            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
11486
11487         * pcode.c,
11488         * pcode.h,
11489         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
11490         indirect addressing. Marked FSR0 as deprecated
11491         * gen.c (pointerCode): commented out, not needed now
11492         (pic16_popGet2p): new MOVFF helper function
11493         (genGenPointerGet),
11494         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
11495         (shiftRLong): removed duplicate debugging info
11496
11497 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11498
11499         * src/ds390/gen.c (genNearPointerGet),
11500         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
11501         optimization with bits, but not bitfields.
11502         * src/ds390/ralloc.c (packRegisters),
11503         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
11504
11505 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
11506
11507         * src/SDCCcse.c (algebraicOpts): copy operands before modification
11508
11509 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11510
11511         * src/SDCCsymt.h,
11512         * src/SDCCicode.c (operandFromSymbol),
11513         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
11514         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
11515         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
11516         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
11517         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
11518         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
11519         bug #892038
11520         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
11521         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
11522         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
11523         * src/SDCCsymt.c (newSymbol),
11524         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
11525         enumerator_list),
11526         * src/SDCCval.h,
11527         * src/SDCCval.c (newiList): fixed bug #885705
11528
11529 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11530
11531         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
11532         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
11533
11534 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11535
11536         * device/include/c8051f120.h,
11537         * device/include/c8051f300.h,
11538         * device/include/c8051f310.h: added/updated header files for Silicon
11539         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
11540         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
11541         in new section Submitting patches
11542
11543 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11544
11545         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
11546         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11547         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11548         genGenPointerSet),
11549         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
11550         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11551         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11552         genGenPointerSet),
11553         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
11554         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11555         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11556         genGenPointerSet),
11557         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
11558         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11559         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11560         genGenPointerSet): fixed bug #892400
11561         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
11562         to eliminate build warnings.
11563         * src/SDCCast.c (processParms),
11564         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
11565         fixed bug 751859
11566         * support/valdiag/valdiag.py: added GCC to the list of defines active
11567         when compiling with gcc
11568
11569 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11570
11571         * support/Util/SDCCerr.h,
11572         * support/Util/SDCCerr.c,
11573         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
11574         with an incomplete type (fixed bug #883734)
11575         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
11576
11577 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11578
11579         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
11580
11581 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11582
11583         * src/SDCCast.c (decorateType),
11584         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
11585         function pointer implementation
11586         * support/regression/tests/funptrs.c: added tests to verify both forms
11587         of function pointers work correctly. Added tests to verify parameters
11588         are passed in the correct order.
11589
11590 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
11591
11592         * device.c (regCompare): registers are sorted by ascending
11593         address and increasing size,
11594         * main.c (_pic16_finaliseOptions): removed the declaration
11595         of compiler macro MCU. Now a macro of the format pic18fxxxx
11596         will be defined from the command line
11597
11598 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11599             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
11600
11601         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
11602         PCOP_RLCF was overwritten!
11603         * gen.c (genSkip): commented out calls to pic16_emitcode,
11604         * (genCmpEQ): fixed "long" compares, only high word did get compared,
11605         * (genlshTwo),
11606         * (genRRC): added debugging info,
11607         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
11608         overwritten while shifting,
11609         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
11610         overwritten while shifting,
11611         * (AccLsh),
11612         * (AccRsh),
11613         * (shiftLLeftOrResult),
11614         * (shiftRLeftOrResult),
11615         * (shiftRLong),
11616         * (shiftLLong): Implemented with pic16_emitpcode
11617         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
11618         * (genLeftShift): Fixed bug, operand for shift by variable always
11619         was "and"ed with 0x0f,
11620         * (genLeftShiftLiteral),
11621         * (genrshTwo),
11622         * (genRightShiftLiteral): added debugging info,
11623         * (genrshFour): added comment,
11624         * (genRightShift): determined signedness from operand "left"
11625         instead of "result"
11626
11627 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11628
11629         * src/SDCCicode.c (geniCodeParms),
11630         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
11631         function pointers, fixed function pointer bugs #861242 and #861896
11632
11633 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11634
11635         * device/include/c8051f000.h,
11636         * device/include/c8051f120.h,
11637         * device/include/c8051f300.h: added header files for Silicon
11638         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
11639
11640 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
11641
11642         * src/SDCCast.c (processParams): added new type flow and restructured
11643         (gatherAutoInit): added new type flow
11644         (addCast): cosmetic changes
11645         (getLeftResultType): added new type flow for array indices, patch
11646         provided by Stas, see FR #877103
11647         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
11648         array index patch by Stas
11649         * src/SDCCast.h: added prototype getResultTypeFromType()
11650         * src/SDCCval.h,
11651         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
11652         * src/pic/glue.c (pic14emitStaticSeg),
11653         * src/pic16/glue.c (pic16emitStaticSeg),
11654         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
11655         for initialization of symbols
11656         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
11657         * support/Util/SDCCerr.h:
11658         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
11659         * .version: bumped version number to 2.3.8
11660         * device/include/Makefile.in (install),
11661         * doc/Makefile (install): changed to 'rm `find ...`' construct to
11662         avoid warnings
11663
11664 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
11665
11666         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
11667         Slade Rich fixed an optimization bug
11668         * src/pic/pcodepeep.c,
11669         * src/pic/pcoderegs.c
11670         * doc/Makefile (install): added test for directory
11671
11672 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11673
11674         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
11675         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
11676         * src/pic/ralloc.c (getRegPtr, getRegGpr),
11677         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
11678         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
11679         * as/mcs51/asexpr.c (term),
11680         * as/hc08/asexpr.c (term): fixed bug #887146
11681
11682 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11683
11684         * src/z80/gen.c (genMult): handle single byte result product
11685         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
11686         DUMMY_READ_VOLATILE (fixed bug #886367)
11687
11688 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
11689
11690         * support/regression/tests/libmullong.c: fixed logic, on little endian
11691         hosts we ended without a mullong_wrapper()
11692
11693 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11694
11695         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
11696         virus/worm forged address usage.
11697
11698 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
11699
11700         Fixed promotion, it should be done on AST level:
11701         * src/SDCCast.c (addCast): added promotion to int
11702         (decorateType): updated call to upCast()
11703         * src/SDCCicode.c (geniCodeLeftShift): removed call to
11704         usualUnaryConversions()
11705
11706 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
11707
11708         * support/regression/tests/literalop.c (mulWrapper): Added a
11709         wrapper to remove integer overflow warnings.
11710
11711         * support/regression/tests/float_trans.c: Made work on host.
11712
11713         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
11714         location of sz80.
11715
11716         * support/regression/generate-cases.py (main): Changed from inline
11717         to a main method.
11718
11719         * doc/Makefile (install): Changed to depth first to get rid of
11720         missing directory install warning.
11721
11722         * as/Makefile (install-doc): Made work on Mac.
11723
11724 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
11725
11726         * src/SDCCast.c: added an additional type flow in decorateType() of
11727         opposite direction, see feature request #860006; it's enabled at runtime
11728         by setting the environment variable SDCC_NEWTYPEFLOW
11729         * src/SDCCast.h: changed prototype of decorateType()
11730         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
11731         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
11732         'char' to 'int' can be omitted, if both operands are 'unsigned char';
11733         see feature request #877103
11734         * src/SDCCval.c: updated call of decorateType()
11735         (valBitwise): fixed bug #882876
11736         (valMinus): added promotion
11737         (valLogicAndOr): result is unsigned
11738         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
11739         * src/SDCCsymt.c (computeType),
11740         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
11741         must not cause an unsigned operation
11742         * src/pic/glue (pic14emitRegularMap),
11743         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
11744
11745 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
11746
11747         * src/pic/pcode.c (PCodeID): commented out left over debug code
11748
11749 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
11750
11751         * support/valdiag/tests/overflow.c: added shift tests
11752         * src/pic/device.c,
11753         * src/pic/gen.c,
11754         * src/pic/gen.h,
11755         * src/pic/glue.c,
11756         * src/pic/main.c,
11757         * src/pic/pcode.c,
11758         * src/pic/pcode.h,
11759         * src/pic/pcodepeep.c,
11760         * src/pic/pcoderegs.c,
11761         * src/pic/ralloc.c,
11762         * src/pic/ralloc.h: applied patch from Slade Rich;
11763         added support for multiple code pages and multiple RAM banks on the
11764         PIC 14 port. The ASM files now no longer simply assume all the
11765         code / RAM are in the same page / bank. This means the linker can
11766         safely allocate code/RAM of separate ASM files to different pages/banks.
11767         * doc/sdccman.lyx: added Slade's tips
11768         * src/mcs51/peeph.def: fixed bug #880768
11769
11770 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11771
11772         * src/hc08/ralloc.c (rematStr): fixed bug #879282
11773         * src/SDCCast.c (decorateType): fixed bug #880197
11774
11775 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
11776
11777         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
11778         getopt.h.
11779
11780         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
11781         strtof is not part of C89 and isn't included with Mac OS X.
11782
11783 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11784
11785         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
11786         shiftL2Left2Result): fixed bug #879326
11787         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
11788         (genMultOneByte): fixed bug in signed vs unsigned multiplication
11789         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
11790         address fetch for clr instruction
11791         * device/lib/hc08/_mulint.c: created optimized assembly version
11792         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
11793
11794 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
11795
11796         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
11797         proposed in FR #877103
11798
11799 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
11800
11801         * src/SDCCval.c (cheapestVal): added missing checks
11802         * src/SDCCicode.c (usualBinaryConversions): fixed condition
11803         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
11804
11805 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
11806
11807         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
11808         equal operands
11809
11810 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
11811
11812         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
11813         loaded with the linker search paths (-L arguments) and the libraries
11814         to be linked with the current source (-l arguments). Changes
11815         currently will affect only the pic16 port.
11816         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
11817         include path the port specific paths and port specific libraries,
11818         * gplink command now contains the $3 argument,
11819         * src/pic16/device.h,
11820         * src/pic16/device.c,: structure PIC_device is made public and
11821         renamed to PIC16_device, the same for variable Pics which is renamed
11822         to Pics16. Updated all references to them.
11823         * src/pic16/glue.c (pic16glue): corrected bug with code
11824         initialization which bypassed the variable initializations block.
11825
11826         * device/lib/pic16/Makefile.rules: removed --penable-stack from
11827         COMPILE_FLAGS and added the --nostdinc option
11828
11829 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11830
11831         * device/include/mc68hc908jb8.h: Register defs for another member
11832         of the hc08 family. Contributed by Bjorn Bringert - thanks!
11833
11834 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
11835
11836         Documenting changes from previous commits.
11837         * configure.in (version 1.56),
11838         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
11839         when generating output files to configure the pic16 library,
11840         but now I've commented it out, since gputils aren't installed in the
11841         SF compile farm, so library won't compile
11842
11843         * device/lib/Makefile.in (version 1.56): initially I've added in
11844         target 'all' the prerequestive 'model-pic16' so it compiled the
11845         pic16 library, but now I've commented it out for the same reasons
11846         above,
11847         * added targets 'model-pic16' and 'objects-pic16' to compile the
11848         library
11849         * added target 'port-specific-objects-pic16' to handle the
11850         generated libraries and copy them into the build/ directory
11851         * added target 'clean-intermediate-pic16' to clean intermediate
11852         files into pic16 directory
11853         * in target 'installdirs' added line to create directory pic16 in
11854         the installation path
11855
11856         * device/include/Makefile.in (version 1.11): in target 'install'
11857         added lines to copy all header files to installation path,
11858         * in target 'installdirs' added line create directory for pic16
11859         headers in the installation path
11860
11861 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
11862
11863         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
11864          a function call
11865
11866 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
11867
11868         * configure,
11869         * device/lib/configure.in,
11870         * device/lib/configure: fixed for autoconf 2.57
11871
11872 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11873
11874         * src/z80/main.c (_parseOptions): fixed the portmode= command line
11875         option so that it actually works. Made it specific to the z80, since
11876         the gbz80 doesn't have these kinds of I/O ports.
11877
11878 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11879
11880         * device/include/z180.h,
11881         * device/lib/_memcpy.c,
11882         * device/lib/_memmove.c,
11883         * device/lib/_mulint.c,
11884         * device/lib/ser_ir.c,
11885         * device/lib/ser_ir_cts_rts.c,
11886         * device/lib/_strcmp.c,
11887         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
11888         * src/z80/main.c (_process_pragma): add support for pragmas bank and
11889         portmode; added deprecation warning for bank= and protmode= forms.
11890         Also, guard against buffer overflow.
11891         * src/z80/gen.c (aopGet): generate better code for sfr banked read
11892
11893 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11894
11895         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
11896         changed interrupt vector table generation to only emit declared vectors.
11897         * device/include/Makefile.in: added missing backslash
11898         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
11899
11900 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
11901
11902         Mainly changes to support compilation of the device libraries
11903         * src/pic16/device.c: stack is allocated via symbol and not
11904         via literal number. The symbol is placed in the corresponding
11905         position of the data ram
11906         * (pic16_dump_section): relocatable and absolute uninitialized
11907         data are now emitted in sorted order to reduce section naming,
11908         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
11909         weren't marked as being in the access bank,
11910
11911 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
11912
11913         Added portion of GNU PIC Library under the directory
11914         device/include/pic16 and device/lib/pic16. These files
11915         contain the declarations of SFRs for the PIC18Fxx2 devices.
11916         The directory is initialized via configure from toplevel.
11917
11918 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
11919
11920         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
11921         the spilllocations to be compared correctly
11922
11923 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
11924
11925         * src/SDCCast.c (decorateType): fixed bug introduced today
11926
11927 2004-01-12  Borut Razem <borut.razem AT siol.net>
11928
11929         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
11930         doc/sdccman.lyx: upper case pragmas are deprecated
11931
11932 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
11933
11934         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
11935         in simpler and even better code
11936
11937 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
11938
11939         * src/SDCCicode.c (operandOperation): fixed bug #874819
11940         * src/SDCCast.c (decorateType): fixed
11941         char foo (unsigned long ul) { return ul > 0; }
11942
11943 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11944
11945         * doc/sdccman.lyx: Moved and added some sections, small changes
11946         all over. Telling LaTeX to be less strict with word spacing
11947         to better keep the right margin. Changed some notes about
11948         maintainance of the ports in section 3.2.1 - is it OK like this?
11949
11950 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
11951
11952         SDCC source changes:
11953         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
11954         convilong): modified to inform the pic16 port that builtin functions
11955         are external
11956
11957         PIC16 PORT specific changes:
11958         * src/pic16/device.c pic16_dump_equates() added,
11959         processor registers declared internally by the port are emitted in
11960         the translation as equates,
11961         * src/pic16/gen.c: inline code is passed unprocessed to the
11962         translation,
11963         * (pic16_popGetLit2): fnuction modified to take second operand as
11964         pCodeOp pointer and not as literal,
11965         * (popRegFromIdx): prefixed with pic16_,
11966         * (pic16_popCombine2): modified to receive already allocated pCode
11967         operands,
11968         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
11969         * (genFunction): initializes local stack frame and pushes on stack
11970         all the registers used by this function,
11971         * (genEndFunction): restores all registers from stack and restores
11972         stack frame,
11973         * src/pic16/glue.c (pic16emitRegularMap): various changes and
11974         improvements,
11975         * (pic16glue): changed the program startup sequence,
11976         * added new dbName code 'A' for functions placed in absolute section
11977         * src/pic16/main.c: added function attribute _naked,
11978         * added pragma 'code' to place a fnuction at an absolute address,
11979         * added command line arguments --debug-ralloc and --pcode-verbose,
11980         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
11981         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
11982         * (pic16_newpCodeOpLit2): modified to take the second operand as
11983         pCodeOp pointer,
11984         * (pic16_printpBlock): modified to emit each function in a separate
11985         section,
11986         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
11987         UPPER for immediate operands,
11988         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
11989         instruction,
11990         * src/pic16/peeph.def: all peepholes with movff are commented out,
11991         because there is a problem in the pcode peep optimizer,
11992         * src/pic16/ralloc.c: the register allocator can now reuse local
11993         function symbols for another function. This saves register usage.
11994         * src/pic16/ralloc.h: added flag isLocal in structure regs,
11995
11996         Added file src/pic16/NOTES with information about program writing on
11997         the current port version.
11998
11999 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12000
12001         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
12002         and peephole 252 (array access)
12003
12004 2004-01-09  Borut Razem <borut.razem AT siol.net>
12005
12006         * src/SDCCmain.c : fixed #872250: -l command line defined library
12007           files are scanned before standard library files
12008
12009 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12010
12011         * src/SDCCast.c (decorateType): fixed bug #874046
12012
12013 2004-01-09  Borut Razem <borut.razem AT siol.net>
12014
12015         * support/scripts/sdcc.nsi: remove previous installation
12016
12017 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12018
12019         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
12020         bytes for last interrupt vector (mcs51)
12021         * sdcc.spec: fixed typo
12022
12023 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12024
12025         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
12026         gen51Code): more efficient parameter receive for --model-large
12027         ("bug" #845294)
12028
12029 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12030
12031         * src/ds390/main.c,
12032         * src/z80/main.c: added missed needLinkerScript flags (more than
12033         one port structure defined in these file)
12034         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
12035         bug #795325
12036
12037 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
12038
12039         * src/SDCCmain.c: removed various references to DEFAULT_PORT
12040         * src/port.h: added flag needLinkerScript in port->linker
12041         structure to inform whether to create a .lnk file or not,
12042         * src/avr/main.c,
12043         * src/ds390/main.c,
12044         * src/hc08/main.c,
12045         * src/mcs51/main.c,
12046         * src/pic/main.c,
12047         * src/pic16/main.c,
12048         * src/xa51/main.c,
12049         * src/z80/main.c: changed appropriately to configure
12050         needLinkerScript flag
12051         * src/pic/gen.c,
12052         * src/pic16/gen.c (genAddrOf): fixed bug #863624
12053         * src/pic/glue.c: added variable udata_section_name to
12054         override default uninitialized data segment definition for
12055         devices only with SHAREBANK memory (reported from Erik Epetrich)
12056         * (pic14emitOverlay): modified to emit a commented overlay segment
12057         directive when no overlay data exist
12058         * (picglue): modified to emit uninitialized data segment
12059         according to udata_section_name
12060         * src/pic/main.c (_pic14_parseOptions): added command line
12061         options --udata-section-name=[name] to override default
12062         udata definition name
12063         * modified _linkCmd and _asmCmd to include compiler passed
12064         arguments via -W option
12065         * src/pic16/main.c: added $l in _asmCmd, changed extension for
12066         object file from '.rel' to '.o' in port->linker structure,
12067         changed size of fptr from 2 to 3 in port structure
12068
12069 2004-01-07  Borut Razem <borut.razem AT siol.net>
12070
12071         * support/scripts/sdcc.nsi: update PATH
12072         * support/scripts/sdcc.ico: craeted
12073
12074 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
12075
12076         * device/include/Makefile.in: fix install
12077         * doc/Makefile: fix install
12078
12079 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12080
12081         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
12082         in bug #860505
12083         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
12084         how the function variable allocation summary is displayed; also
12085         include information about variables allocated to the overlay
12086         segment
12087
12088 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12089
12090         * as/mcs51/lkmain.c: Help about -Y option
12091         * as/mcs51/lkarea.c: Fixed gcc warnings
12092
12093 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
12094
12095         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
12096         fixed warning
12097         * support/valdiag/tests/overflow.c: added
12098         * src/SDCCast.c (decorateType),
12099         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
12100         LEFT_OP (left shift)
12101
12102 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12103
12104         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
12105         (default behaviour).
12106
12107 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12108
12109         A python script to validate compiler diagnostic messages. It can be
12110         used to verify that sdcc complains about bad c source code and
12111         gives a good location of the error.
12112         * support/valdiag/Makefile,
12113         * support/valdiag/valdiag.py,
12114         * support/valdiag/tests/*
12115
12116 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12117
12118         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
12119         * src/SDCCsymt.c (newEnumType),
12120         * src/SDCCsymt.h
12121         * support/Util/SDCCerr.c,
12122         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
12123         enum related bugs.
12124         * support/regression/tests/enum.c: added test for enum values that
12125         require at least 2 bytes of storage.
12126
12127 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
12128
12129         * src/common.h: added ifndef/define/endif macros
12130         around the header file.
12131         Bug reported from Jesus Calvino-Fraga
12132
12133 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
12134
12135         * sdcc.spec: updated
12136         * device/include/Makefile.in: don't install CVS directories
12137         * device/lib/Makefile.in: added removal of CVS directories after install
12138         * doc/Makefile: fixed install, added local_icons
12139         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
12140         * src/mcs51/gen.c (genRightShift): fixed bug #870788
12141         * src/ds390/gen.c (genRightShift): fixed bug #870788
12142         * src/SDCCast.c (decorateType): fixed bug #870781
12143
12144 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
12145
12146         PIC16 port related changes:
12147         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
12148         added variable stackPos,
12149
12150         * gen.c: genCall, assignResultValue: added support for
12151         pushing/retrieving function parameters to/from stack,
12152         genFunction,genEndFunction: setup stack frame for the
12153         generated function,
12154         genAddrOf: will be changed according to bug 863624
12155
12156         * added files genutils.c and genutils.h which contain gen*
12157         debugged and optimised functions extracted from gen.c
12158
12159         * glue.c: added variable 'externs' which holds extern symbols,
12160         pic16emitRegularMap: is modified to properly handle relocatable
12161          symbols under the new scheme,
12162         pic16createInterruptVect: is modified
12163         pic16printPublics: is modified to emit 'global' assembler directives,
12164         added pic16_printExterns to print extern symbols,
12165         pic16glue: initializes stack/frame pointer in the beginning of
12166         the assembly output. Temporary hack, will be corrected later,
12167         because gplink yet does not support stack and SDCC does not
12168         yet support a type of crt0.o object to create the final binary.
12169
12170         * Removed many lines that contain 8051 legacy code.
12171         * The code is finally placed under a 'code' directive.
12172         * Added port specific options.
12173
12174         * _process_pragma: simplified since now we do not need *special*
12175         include file to define SFR registers. But a separate header
12176         will be needed. This will be developed later.
12177         * _pic16_parseOptions: added, parses port specific options:
12178         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
12179         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
12180         --preplace-udata-with=
12181
12182         * _pic16_setDefaultOptions: modified to initialize section names,
12183         but hack is temporarly out of order since it needs improvement.
12184         * _pic16_genAssemblerPreamble: configuration words are emitted by
12185         their address instead of their name. This part is incomplete and
12186         supports only the 18Fxx2 devices. Other devices will emit an error
12187         during assembly since they do not contain the same set of config
12188         registers
12189         * _pic16_genIVT: is modified,
12190
12191         * pcode.c: added definitions for some hardware registers that are needed
12192         for stack support
12193         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
12194         All PCI entries are updated. Now LFSR is supported.
12195         * Removed pic16_pciTRIS is mentioned by mdubuc in source
12196         * added pic16_newpCodeOpLit2 to support instructions with
12197         two literal arguments
12198         * pic16_pCode2str: corrected code that emits assembler instructions
12199         with two literal operands and those that have an access bit modifier
12200         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
12201         this fixes a bug which caused some labels to be lost, when an
12202         assembler directive was added, i.e. banksel,
12203         * pic16_FixRegisterBanking: improved logic that causes the insertion
12204         of bank switching,
12205         * InlineFunction: functions that are called once, are not any more
12206         inlined. This can be a port option in the future,
12207
12208         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
12209
12210         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
12211         hold the corresponding uninitialized symbols,
12212         * pic16_allocProcessorRegister: registers have explicit marked the
12213         accessBank field,
12214         * pic16_allocInternalRegister: registers are explicit marked as
12215         not used,
12216         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
12217         processing list, so bit registers were lost,
12218         *
12219
12220         * ralloc.h: added field 'accessBank' and original symbol operand
12221         in register definition,
12222         * removed the field isMapped from register definition,
12223
12224         ** Several functions have been removed from various sources:
12225         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
12226         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
12227         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
12228         pic16_assignRelocatableRegisters
12229
12230         ** others have been introduced:
12231         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
12232         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
12233
12234 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
12235
12236         * support/scripts/inc2h.pl: changed definition of BIT_AT
12237         to emit 'sbit at' instead of 'bit at'. This was a request.
12238
12239         PIC16 port related preliminary changes:
12240         * gen.c: prefixed function popRegFromString with
12241         pic16_ and all references to it corrected
12242         * pcode.c: all pic16_pc_* hardware registers prefixed
12243         with underscore (_),
12244         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
12245         * ralloc.c: newReg(): when register is REG_SFR then
12246         set address to rIdx,
12247         pic16_allocProcessorRegister(): marks register wasUsed=0
12248         pic16_writeUsedRegs(): added a call to assign processor
12249         registers via pic16_assignFixedRegisters
12250
12251 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12252
12253         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
12254         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
12255         variables in unused register banks.  Also the SSEG is placed
12256         wherever there is enough space for it, and IDATA can be anywhere
12257         in internal RAM.  For now compile using -Wl-Y[stack_size].
12258         The mem file is different for this option as well, since it
12259         makes no sense of talking about DSEG lenght.
12260
12261 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
12262
12263         * src/SDCClrange.c: fixed bug 869095 that caused segfault
12264         in certain cases, e.g. when ROM assignment, patch provided
12265         from Albert den Haan.
12266
12267 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
12268
12269         Many signedness and type propagation fixes:
12270         * src/SDCCicode.c: made geniCodeCast() static
12271         replaced SPEC_ by IS_ (cosmetic)
12272         (operandOperation): fixed div and mod operation
12273         (usualBinaryConversions): added support for promotion of char
12274         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
12275         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
12276         (geniCodeAdd): an array index will stay unsigned, even if promoted
12277         from char to int
12278         (geniCodeArray): ditto
12279         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
12280         * src/SDCCsymt.c (computeType): added more support for char;
12281         promotion of char is selectable by promoteCharToInt, fixed signedness
12282         for all cases
12283         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
12284         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
12285         * src/SDCCval (val*): replaced signedness calculation by
12286         computeType()
12287         rearranged if-branches (cosmetic)
12288         (valShift): added warning W_SHIFT_CHANGED
12289         (valCompare): fixed problem with different types
12290         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
12291         * support/regression/tests/literalop.c: added many cases
12292         * support/regression/tests/ast_constant_folding.c: changed finally to
12293         'unsigned int'
12294         * .version: new year, new version: 2.3.7
12295         * src/SDCCmain.c (main): applied patch #866468
12296         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
12297         provided by Scott Bronson
12298         * doc/sdccman.lyx: updated documentation for sdcdb
12299         updated and added chapter tips
12300
12301 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12302
12303         * src/SDCCsymt.h: missing from yesterday's commits
12304
12305 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12306
12307         * src/SDCC.y (struct_or_union_specifier),
12308         * support/Util/SDCCerr.c,
12309         * support/Util/SDCCerr.h: verify that struct & union tags are used
12310         as declared.
12311
12312 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12313
12314         * src/SDCCglobl.h: missing from yesterday's commits
12315
12316 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12317
12318         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
12319         sft_attributes, struct_declaration, parameter_declaration,
12320         type_name, start_block, declaration_list),
12321         * src/SDCC.lex (check_type): support redefinition of typedef names
12322
12323 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12324
12325         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
12326         aligned xdata arrays. Erik helped me with the if clause.
12327
12328 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12329
12330         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
12331         warning
12332
12333 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12334
12335         * src/SDCCast.h,
12336         * src/SDCCast.c (newAst_),
12337         * src/SDCCicode.h,
12338         * src/SDCCicode.c (ast2iCode, newiCode),
12339         * src/SDCCglobl.h,
12340         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
12341         expr, statement, expression_statement, selection_statement,
12342         iteration_statement, expr_opt, jump_statement): foundation for tracking
12343         sequence points
12344         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
12345         point code too)
12346
12347 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12348
12349         * support/Util/SDCCerr.c,
12350         * src/SDCCast.h,
12351         * src/SDCCast.c (createCase, createDefault, decorateType),
12352         * src/SDCClabel.c (labelUnreach),
12353         * src/SDCC.y (labeled_statement, jump_statement): More improvements
12354         to error messages.
12355         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
12356         (with thanks to Stas Sergeev)
12357         * device/include/time.h,
12358         * device/lib/time.c (CheckTime): suppress unreachable code warning
12359
12360 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12361
12362         * src/SDCCast.c (createIvalCharPtr),
12363         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
12364         bug #753752)
12365         * support/regression/tests/nullstring.c: tests for these two bugs
12366
12367 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12368
12369         * support/Util/SDCCerr.h,
12370         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
12371         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
12372         about storage class and 'at' used inside struct or union
12373         * src/SDCCBBlock.c (iCodeFromeBBlock),
12374         * src/SDCCcse.c (ifxOptimize),
12375         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
12376         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
12377         printIval, emitStaticSeg, emitOverlay),
12378         * src/SDCClabel.c (deleteIfx),
12379         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
12380         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
12381         gatherAutoInit, processParms),
12382         * support/Util/SDCCerr.h,
12383         * support/Util/SDCCerr.c (werrorfl): Support for better error location
12384         reporting for post-parse errors.
12385
12386 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12387
12388         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
12389         implicit casts via union; they don't work on big endian systems
12390         (possible fix for bug #861138)
12391
12392 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12393
12394         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
12395         * src/mcs51/main.c: fixed the fix for bug #737001
12396
12397 2003-12-15  Borut Razem <borut.razem AT siol.net>
12398
12399         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
12400
12401 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12402
12403         * support/makebin/makebin.c: put output in binary mode
12404
12405 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12406
12407         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
12408         xdata and data memory on startup. Set the environment variable
12409         SDCC_NOGENRAMCLEAR to disable this.
12410         * src/mcs51/peephole.def,
12411         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
12412         (allows non-interrupt and interrupt code to safely compete for a resource
12413         without the non-interrupt code having to disable interrupts)
12414
12415 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12416
12417         * src/SDCCicode.c (geniCodeAdd),
12418         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
12419         with valFromType if type might be a pointer and host is big endian).
12420         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
12421         types, not just integer types.
12422         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
12423         multiply defined with mismatching "at" address.
12424
12425 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12426
12427         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
12428         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
12429         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
12430         with embedded nulls (fixed bug #753752)
12431
12432 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12433
12434         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
12435         Apparently this did not see much testing (endless loop)
12436
12437 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12438
12439         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
12440
12441 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12442
12443         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
12444         gracefully handle NULL memmap pointers
12445
12446 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12447
12448         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
12449         instead of deleting the iCode when an operand is volatile
12450         * src/z80/gen.c (genDummyRead),
12451         * src/mcs51/gen.c (genDummyRead),
12452         * src/ds390/gen.c (genDummyRead),
12453         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
12454         not just IC_RIGHT
12455         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
12456         * src/SDCC.y: fixed bug #850420
12457
12458 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12459
12460         Applied z80 i/o port patch from Peter Townson and fixed some operators
12461         to better handle operands in A register.
12462         * device/include/z180.h
12463         * src/SDCC.y
12464         * src/SDCCglue.c
12465         * src/z80/gen.c
12466         * src/z80/gen.h
12467         * src/z80/main.c
12468         * src/z80/peeph-z80.def
12469         * src/z80/peeph.def
12470         * src/z80/z80.h
12471
12472 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12473
12474         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
12475
12476 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12477
12478         * device/lib/hc08/_mullong.c: Removed extra #endif
12479
12480 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12481
12482         * sim/ucsim/hc08.src/inst.cc,
12483         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
12484         carries from x to h
12485         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
12486         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
12487         * device/include/stdarg.h: fixed varargs for hc08
12488         * device/lib/Makefile.in,
12489         * device/lib/hc08/Makefile,
12490         * device/lib/hc08/_mulint.c,
12491         * device/lib/hc08/_mullong.c: fixed some endian problems
12492
12493 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12494
12495         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
12496         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
12497         * device/lib/_gptrget.c,
12498         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
12499
12500 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12501
12502         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
12503         * src/SDCCast.c (astErrors): fixed bug #846007
12504         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
12505
12506 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12507
12508         * src/SDCCast.c (decorateType): disabled a transformation I added in
12509         revision 1.188 (access to fields of a structure at an absolute address);
12510         it breaks with bitfields, extern declarations, and gcse analysis.
12511         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
12512         could be assigned through a pointer, so don't complain.
12513         * src/SDCCast.c (astErrors),
12514         * src/SDCCast.h,
12515         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
12516
12517 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
12518
12519         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
12520         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
12521         output of __config directives, since gpasm now supports them
12522         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
12523         pre-processor macro, i.e. -DMCU=p18f452
12524         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
12525         and modified to handle 'cast' icode similarly to '=' icode
12526         * src/pic16/device.h (typedef struct PIC_device): added field
12527         'extMIface' to indicate that chip has external memory interface
12528         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
12529         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
12530         18F8720
12531
12532 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12533
12534         * src/SDCC.y (pointer): fixed bug #846006
12535         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
12536         * src/SDCCast.c (decorateType): fixed bug #846009
12537         * src/ds390/peeph.def,
12538         * src/ds390/gen.c (genAnd, genOr),
12539         * src/mcs51/peeph.def,
12540         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
12541
12542 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12543
12544         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
12545         * src/SDCCdflow.c
12546         * src/SDCCcse.c
12547         * src/SDCCcse.h
12548         * src/SDCCBBlock.h
12549         * src/SDCCBBlock.c
12550
12551 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
12552
12553         fixed bug #845089
12554         * src/SDCCbitv.h,
12555         * src/SDCCbitv.c: added function to free a bitvector
12556         * src/SDCClrange.h,
12557         * src/SDCClrange.c: added function to recompute the liveranges
12558         * src/avr/ralloc.c,
12559         * src/ds390/ralloc.c,
12560         * src/hc08/ralloc.c,
12561         * src/mcs51/ralloc.c,
12562         * src/pic/ralloc.c,
12563         * src/pic16/ralloc.c,
12564         * src/xa51/ralloc.c,
12565         * src/z80/ralloc.c: recompute the liveranges after register packing
12566
12567 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
12568
12569         * src/SDCCloop.c (newInduction): fixed bug #845630
12570
12571 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12572
12573         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
12574         inadvertantly left behind from my 2003-11-12 change
12575
12576 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12577
12578         Updated headers I neglected to commit yesterday.
12579         * src/SDCClrange.h,
12580         * src/SDCCicode.h
12581
12582 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12583
12584         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
12585         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
12586         * src/SDCCopt.c (eBBlockFromiCode),
12587         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
12588         the creation of the key hash table from the sequencing so it can be used
12589         earlier (for some GCSE bug fixes still pending)
12590
12591 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12592
12593         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
12594         * support/regression/tests/addsub.c: testing genPlus shortcut
12595
12596 2003-11-15  Borut Razem <borut.razem AT siol.net>
12597
12598         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
12599
12600 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12601
12602         * src/SDCCcse.c (cseBBlock): fixed bug #527779
12603         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
12604         ordering is immaterial.
12605         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
12606
12607 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12608
12609         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
12610         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
12611         (SIGSEV) of bug #840381
12612         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
12613         unlink new file before rename if new and old filenames are the same)
12614
12615 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12616
12617         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
12618         uninitialized variables) for the mcs51. Set environment variable
12619         SDCC_GENRAMCLEAR to test.
12620         xdata initialization slightly shorter
12621
12622 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12623
12624         * src/SDCCsymt.h,
12625         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
12626         #838241 & 780691 (basicly the same bug)
12627         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
12628         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
12629
12630 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
12631
12632         * src/SDCCmain.c (linkEdit): "fix" #834252
12633
12634 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12635
12636         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
12637         * src/SDCCast.h,
12638         * src/SDCC.y: fixed bug #819403
12639
12640 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12641
12642         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
12643         the reentrant attribute.
12644         * src/hc08/gen.c (genPackBits): added missing stack readjustment
12645         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
12646         simulation
12647         * src/SDCCast.c (decorateType): fixed bug with storage class not being
12648         updated during pointer dereference; f.e. ~(((char *)1)*) was being
12649         erroneously reduced to a literal.
12650         * src/hc08/ralloc.c (packRegisters, rematStr),
12651         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
12652         some cases
12653
12654 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12655
12656         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
12657         * doc/sdccman.lyx: changed from 'article' to 'book'
12658         * doc/Makefile: readded test_suite_spec and cdbfileformat
12659
12660 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
12661
12662         * device/include/stdlib.h: include malloc.h to comply with ANSI
12663         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
12664
12665 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12666
12667         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
12668         * doc/clean.mk: also remove *.out files
12669         * doc/sdccman.lyx: some additions, larger top/bottom margins
12670
12671 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12672
12673         * src/SDCC.y: fixed bug #837365
12674         * support/regression/tests/bitopcse.c
12675         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
12676         a symbol (might be valop instead)
12677         * device/lib/Makefile.in: added errno.c to HC08SOURCES
12678         * device/lib/clean.mk: added hc08 to the cleaning list
12679
12680 2003-11-04  Borut Razem <borut.razem AT siol.net>
12681
12682         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
12683           made 2003-11-04
12684         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
12685           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
12686           malloc is declared in standard stdlib.h
12687
12688 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12689
12690         * device/lib/hc08/Makefile: need to clean .rel not .o files
12691         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
12692
12693 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12694
12695         * src/port.h,
12696         * src/hc08/main.c,
12697         * src/mcs51/main.c,
12698         * src/ds390/main.c,
12699         * src/z80/main.c,
12700         * src/avr/main.c,
12701         * src/pic/main.c,
12702         * src/pic16/main.c,
12703         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
12704         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
12705         tests (which uses the port's oclsExpense function)
12706         * src/SDCC.y,
12707         * src/SDCCast.c,
12708         * src/SDCCicode.c,
12709         * src/hc08/gen.c,
12710         * src/ds390/gen.c,
12711         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
12712
12713 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12714
12715         * src/SDCCcse.c (ifxOptimize),
12716         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
12717         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
12718         deleting the IFX iCode.
12719         * src/hc08/ralloc.c: reduced unneeded slocs
12720         * src/hc08/gen.c: fixed bug in asmopToBoolean
12721
12722 2003-11-04  Borut Razem <borut.razem AT siol.net>
12723
12724         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
12725           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
12726           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
12727           transferred to configure
12728
12729 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
12730
12731         Use headers defined in the C[++] standards:
12732         * sim/ucsim/gui.src/serio.src/fileio.cc
12733         * sim/ucsim/gui.src/serio.src/frontend.cc
12734         * sim/ucsim/gui.src/serio.src/main.cc
12735         * sim/ucsim/gui.src/serio.src/posix_signal.cc
12736         * support/Util/NewAlloc.c
12737         * as/hc08/lklibr.c
12738         * as/mcs51/lklibr.c
12739         * as/z80/aslist.c
12740         * as/z80/assym.c
12741
12742 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12743
12744         * Added MSVC projects for hc08 assembler and linker:
12745         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
12746         /as/hc08/link_hc08.dsp
12747
12748 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
12749
12750         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
12751
12752 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
12753
12754         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
12755
12756 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12757
12758         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
12759
12760 2003-10-31  Borut Razem <borut.razem AT siol.net>
12761
12762         * support/cpp2/cpplib.h,
12763           support/cpp2/cpplib.c,
12764           support/cpp2/cpplex.c,
12765           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
12766           to switch _asm block preprocessing on / off. Default is
12767           #pragma preproc_asm +
12768
12769 2003-10-31  Borut Razem <borut.razem AT siol.net>
12770
12771         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
12772           when outputting comment blocks (when executed with -C option) and
12773           _asm (SDCPP specific) blocks
12774
12775 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12776
12777         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
12778
12779 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
12780
12781         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
12782
12783 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
12784
12785         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
12786         * src/SDCCast.c (decorateType): fixed bug #832664
12787
12788 2003-10-31  Borut Razem <borut.razem AT siol.net>
12789
12790         * support/cpp2/cpplex.c: fixed for SDCPP:
12791           comments(when executed with -C option) and _asm blocks
12792           were included even if they where in skipped #if block.
12793           Applied solution from GCC cpp 3.3.2
12794
12795 2003-10-31  Borut Razem <borut.razem AT siol.net>
12796
12797         * src/SDCC.lex: sdcc now understands both formats:
12798           '# <line_number> <file_name>' and
12799           '#line <line_number> <file_name>'
12800         * support/cpp2/cppmain.c: sdcpp now generates the standard
12801           '# <line_number> <file_name>' instead of former
12802           '#line <line_number> <file_name>'
12803
12804 2003-10-30  Borut Razem <borut.razem AT siol.net>
12805
12806         * support/cpp2/cpphash.h,
12807         * support/cpp2/cpplib.h
12808         * support/cpp2/cpplex.c,
12809         * support/cpp2/cppmain.c,
12810         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
12811
12812 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12813
12814         Fixed a number of problems revealed by bug #827883.
12815         * src/SDCCloop.c (loopInvariants): Spill location of the
12816         result operand should be recomputed if extracted from
12817         a loop. Also, don't extract assignments of an iTemp
12818         from a literal.
12819         * src/SDCCast.c (isConformingBody): loop reversal should
12820         not occur if the control variable is involved with a
12821         relational operator.
12822
12823 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
12824
12825         * .version: bumped to 2.3.6 to reflect the big improvements
12826         made by Erik and Klaus. Thanks!
12827
12828 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
12829
12830         Replaced the livrange code.
12831         * src/SDCClrange.c: added new LR code
12832         * src/SDCCloop.c,
12833         * src/SDCCBBlock.h: removed remainig parts from old LR code
12834         * src/ds390/ralloc.c,
12835         * src/ds390/gen.c: minor fixes to make it work with new code
12836
12837 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12838
12839         * as/hc08/asm.h,
12840         * as/hc08/lkrloc.c,
12841         * src/hc08/gen.c,
12842         * src/hc08/ralloc.c: Fix various warnings related to the hc08
12843         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
12844         (tweaked fix for bug #818696)
12845
12846 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12847
12848         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
12849
12850 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12851
12852         * src/SDCCmain.c,
12853         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
12854         * src/mcs51/gen.c (gencjneshort),
12855         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
12856         more efficient (per Scott Bronson's suggestion)
12857
12858 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12859
12860         Extended the semantics of the critical keyword to include
12861         individual statements. See RFE #827755 and #799831
12862         * src/SDCC.y
12863         * src/SDCCicode.c
12864         * src/SDCCopt.c
12865         * src/SDCCast.c
12866         * support/Util/SDCCerr.c
12867         * support/Util/SDCCerr.h
12868         * src/mcs51/gen.c
12869         * src/ds390/gen.c
12870         * src/hc08/gen.c
12871
12872 2003-10-19  Borut Razem <borut.razem AT siol.net>
12873
12874         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
12875
12876 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12877
12878         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
12879         Fixed bug #818696
12880         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
12881         and predecrement operand is displayed
12882
12883 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
12884
12885         * src/SDCCval.c (valMinus): fixed bug #826041
12886
12887 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12888
12889         Some hc08 related updates that I missed earlier
12890         * sim/ucsim/stypes.h
12891         * support/regression/ports/hc08/spec.mk
12892
12893 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12894
12895         New target "hc08" for the Motorola 68hc08 family of micros
12896
12897         * configure
12898         * configure.in
12899         * Makefile
12900         * src/hc08/*
12901         * src/SDCCmain.c
12902         * src/port.h
12903         * sim/ucsim/hc08.src/*
12904         * sim/ucsim/configure.in
12905         * src/ucsim/configure
12906         * sim/ucsim/packages_in.mk
12907         * as/hc08/*
12908         * as/Makefile
12909         * device/include/mc68hc908qy.h
12910         * device/lib/hc08/*
12911         * device/lib/Makefile.in
12912         * support/regression/ports/hc08/*
12913         * support/regression/Makefile
12914
12915 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12916
12917         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
12918         regression test
12919         * src/ds390/gen.c (genCast): fixed bug #821957
12920
12921 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
12922
12923         * device/lib/logf.c: "fixed" overlay bug
12924         * support/regression/ports/host/spec.mk: added m library
12925         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
12926         * support/regression/tests/float_trans: added (for Eric)
12927
12928 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
12929
12930         * src/mcs51/gen.c (genCpl): fixed bug
12931         http://sf.net/mailarchive/message.php?msg_id=6263915
12932
12933 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
12934
12935         * src/SDCCast.c (decorateType): added extended constant folding
12936         * src/SDCCsymt.c (computeType): cleanup
12937         * src/SDCCval.c (valShift): minor optimization
12938         * support/regression/tests/ast_constant_folding.c: added
12939
12940 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12941
12942         * src/SDCCmain.c: removed some unintended changes
12943
12944 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12945
12946         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
12947         * src/z80/gen.c: fixed part of bug #817589
12948         * src/SDCCsymt.c (checkFunction): fixed bug #817895
12949
12950 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
12951
12952         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
12953         * src/SDCCcflow.c
12954         * src/SDCCcse.c
12955         * src/SDCCdflow.c
12956         * src/SDCClabel.c
12957         * src/SDCClrange.c
12958         * src/SDCCmem.c
12959         * src/SDCCopt.c
12960         * src/SDCCpeeph.c
12961         * src/SDCCset.c
12962         * src/avr/ralloc.c
12963         * src/ds390/ralloc.c
12964         * src/izt/ralloc.c
12965         * src/mcs51/ralloc.c
12966         * src/pic/ralloc.c
12967         * src/pic16/ralloc.c
12968         * src/xa51/ralloc.c
12969         * src/z80/ralloc.c
12970         * src/z80/gen.c: removed unused label "release:"
12971
12972 2003-10-06  Borut Razem <borut.razem AT siol.net>
12973
12974         * src/SDCC.lex: removed definition of unused variables
12975           save_optimize and save_options
12976
12977 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
12978
12979         * clean.mk: removed '=' in "-maxdepth=1"
12980         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
12981         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
12982
12983 2003-10-06  Borut Razem <borut.razem AT siol.net>
12984
12985         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
12986           my_unput() replaced by unput()
12987
12988 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
12989
12990         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
12991         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
12992         type-punned pointer will break strict-aliasing rules"
12993         Old LR behaviour is again default; Klaus' LR can be choosen by
12994         defining the environment variable LRKLAUS
12995         * src/SDCCBBlock.h
12996         * src/SDCCloop.c
12997         * src/SDCClrange.c
12998         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
12999         * clean.mk: fixed removal of files in bin/CVS/
13000         * device/lib/clean.mk: fixed removal of directories small and large
13001         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
13002         * src/SDCCicode.c,
13003         * src/SDCCval.c: removed superflous test for pedantic
13004
13005 2003-10-05  Borut Razem <borut.razem AT siol.net>
13006
13007         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
13008           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
13009           message "unmatched #pragma SAVE and #pragma RESTORE"
13010
13011 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13012
13013         * doc/sdccman.lyx: various additions and updates (interrupts, inline
13014           assembly, critical functions, atomic, nojtbound)
13015
13016 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
13017
13018         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
13019         * src/SDCCBBlock.h
13020         * src/SDCCloop.c
13021         * src/SDCCloop.h
13022         * src/SDCClrange.c
13023
13024 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13025
13026         * src/z80/gen.h,
13027         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13028         * src/mcs51/gen.h
13029         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13030         * src/ds390/gen.h
13031         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
13032         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
13033         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
13034
13035 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13036
13037         * src/z80/gen.c (genRet): fixed bug #524753
13038         * src/z80/gen.c (genCast): fixed internal error on cast from
13039         pointer to long
13040         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
13041         fix for bug #477835 to the z80
13042         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
13043         for tracking iCodes in the peephole optimizer for z80
13044
13045 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13046
13047         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
13048         the other part of bug #814548
13049         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
13050
13051 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
13052
13053         * src/SDCCcse.c: fixed part of bug #814548
13054
13055 2003-09-28  Borut Razem <borut.razem AT siol.net>
13056
13057         * src/asm.c: rewrite of printILine() to use temporary file instead
13058           a pipe
13059         * src/xa51/main.c: commented out declaration of int rewinds
13060
13061 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13062
13063         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
13064
13065 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13066
13067         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
13068         * src/asm.c (printILine): Fixed bug #811015
13069
13070 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13071
13072         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
13073         freeing.
13074
13075 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13076
13077         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
13078         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
13079         to correctly handle general case of AOP_PAIRPTR
13080         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
13081
13082 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13083
13084         * src/mcs51/ralloc.c (fillGaps),
13085         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
13086         register positioning bug)
13087
13088 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
13089
13090         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
13091
13092 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13093
13094         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
13095         genCodePointerGet, genGenPointerGet, genFarPointerSet,
13096         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
13097         (ralloc doesn't intentionally do this now, but perhaps later)
13098         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
13099         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
13100         register positioning bugs (Fixed bug #762602 and #795325)
13101         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
13102         (Fixed bug #808779)
13103         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
13104         lines that --i-code-in-asm generates
13105
13106 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13107
13108         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
13109         trying to fclose a FILE* that was already closed.
13110
13111 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13112
13113         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
13114         of const struct should be treated as if const themselves)
13115
13116 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
13117
13118         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
13119
13120 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13121
13122         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
13123         Unix (/n) and DOS (/r/n) line terminations.
13124
13125 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13126
13127         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
13128         bug #613775
13129
13130 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13131
13132         * src/mcs51/gen.c (genFunction, genEndFunction),
13133         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
13134         and restore of EA so that stack offsets to parameters are
13135         correct when using both critical and reentrant/stack-auto.
13136         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
13137         size (can be triggered in error if sloc is shared between
13138         different sized objects)
13139         * device/include/float.h: fixed macros to explicitly use
13140         unsigned long where needed
13141
13142 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
13143
13144         Feature req. 799831: added code to allow nesting of critical functions
13145         * src/mcs51/gen.c (genFunction, genEndFunction)
13146         * src/ds390/gen.c (genFunction, genEndFunction)
13147
13148 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13149
13150         * src/SDCCsymt.c (sclsFromPtr),
13151         * src/SDCCsymt.h,
13152         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
13153         support for standard C idiom of memory mapped variables; for
13154         example, *((xdata int*)0x1234) = 1 is now internally equivalent
13155         to xdata int at 0x1234 tempvar = 1.
13156         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
13157         provided by Akiya ISHIDA
13158
13159 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
13160
13161         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
13162         * src/SDCCval.c (constVal): added reduction from int to char
13163         * src/SDCCval.c (valMult, valDiv): fixed sign handling
13164         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
13165         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
13166         to ignore the sign
13167         * support/regression/tests/shifts.c: fixed
13168
13169 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13170
13171         * src/z80/gen.c (genXor): Fixed bug #805445
13172
13173 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13174
13175         Fixed bug #621531 (const & volatile confusion in the type chain).
13176         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
13177         refer to the const or volatile state of the pointer itself.
13178
13179         * src/SDCCast.c
13180         * src/SDCCglue.c
13181         * src/SDCCicode.c
13182         * src/SDCCsymt.c
13183         * src/SDCCval.c
13184         * src/SDCC.y
13185         * src/SDCCsymt.h
13186         * src/pic/gen.c
13187         * src/pic/ralloc.c
13188         * src/pic16/gen.c
13189         * src/pic16/ralloc.c
13190         * support/regression/tests/const.c
13191
13192 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13193
13194         When checking for duplicated modules, use absolute paths
13195         instead of relative paths.  Files changed:
13196
13197         * as/mcs51/lklib.c
13198         * link/z80/lklib.c
13199
13200 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13201
13202         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
13203
13204 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13205
13206         * device/include/string.h: added size_t typedef, changed
13207         prototypes to use size_t, eliminated separate reentrant and
13208         non-reentrant declarations, added _memmove declaration
13209         * device/lib/_memcpy.c: changed to use size_t instead of int,
13210         changed /4 to >>2 to avoid division library call
13211         * device/lib/_memcmp.c,
13212         * device/lib/_memset.c,
13213         * device/lib/_strncat.c,
13214         * device/lib/_strncpy.c,
13215         * device/lib/_strncmp.c: changed to use size_t instead of int
13216         * device/lib/_memmove.c: new file (fixed bug #772294)
13217         * device/lib/Makefile.in: added _memmove.c
13218         * device/lib/z80/asm_strings.s: fixed bug #772290
13219         * support/regression/tests/bitfields.c: attempt to fix host assertion
13220         failure on amd64-unknown-linux2.2
13221
13222 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13223
13224         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
13225         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
13226         * as/z80/asmain.c (main): fixed bug #801766
13227
13228 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
13229
13230         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
13231         compilers
13232
13233 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13234
13235         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
13236         reported in bug #800609
13237
13238 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
13239
13240         * Top header beautifications in src/pic16 directory:
13241           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
13242           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
13243           pcoderegs.h, ralloc.c, ralloc.h
13244         * main.c: added top header and GPL license notice
13245         * pcode.c: fixed the if-conditional warning
13246
13247 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
13248
13249         * device/lib/_mullong.c: replaced int by short for gcc
13250
13251 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13252
13253         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
13254         and JUMPTABLE iCodes properly now (worked by accident before)
13255         * src/mcs51/gen.c (leftRightUseAcc),
13256         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
13257         iCode properly now. Use getSize instead of nRegs since a & b
13258         aren't part of the nRegs tally.
13259
13260 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
13261
13262         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
13263         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
13264           before instructions that use the _STATUS register
13265
13266 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
13267
13268         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
13269         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
13270         fetching of the pointer
13271         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
13272         copied from genNearPointerSet()
13273         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
13274         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
13275         If they pop r0/r1 they must be called in the opposite order than aopOp().
13276         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
13277         (resp. --stack-auto), prepared for --xstack
13278
13279 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13280
13281         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
13282
13283 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13284
13285         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
13286         these ports have their own __sdcc_external_start()
13287
13288 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
13289
13290         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
13291         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
13292         type for bits was changed. It resulted in bit variables becoming
13293         global, which is not permitted in PIC 14 assembly output.
13294
13295 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13296
13297         * doc/sdccman.lyx: various additions and updates. Rearranged sections
13298
13299 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13300
13301         Z80 and MCS51 linkers complaint if a public symbol is defined
13302         in more than one library module:
13303
13304         * as/mcs51/lklib.c
13305         * link/z80/lklib.c
13306         * as/mcs51/Makefile.in
13307
13308 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13309
13310         A few small changes that speed up the peephole optimizer.
13311
13312         * src/SDCCpeeph.c
13313
13314 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13315
13316         Try to make the peephole optimizer smarter by maintaining
13317         an association between the assembly source code and the
13318         iCodes that originated them. Put this information to use
13319         with a new peephole rule condition "notVolatile" so that
13320         the rules can be aggressive yet still safe.
13321
13322         * src/SDCCpeeph.c
13323         * src/SDCCpeeph.h
13324         * src/mcs51/gen.c
13325         * src/mcs51/peeph.def
13326
13327 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13328
13329         Fixed bug #741761
13330
13331         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
13332         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
13333         if the left or right operand symbols have the accuse flag set.
13334
13335 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13336
13337         Changed the type of the result of the ! (NOT) operator to char;
13338         previously it returned the same type as the source. This allows
13339         us to eliminate all the genFloatNot functions (all of its target
13340         implementations were very buggy) since !float can use the same
13341         code as !long now.
13342
13343         * src/SDCCicode.c (ast2iCode): ! returns char
13344         * src/mcs51/gen.c (genNot, genNotFloat),
13345         * src/ds390/gen.c (genNot, genNotFloat),
13346         * src/z80/gen.c (genNot, genNotFloat),
13347         * src/pic/gen.c (genNot, genNotFloat),
13348         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
13349
13350 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
13351
13352         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
13353         1. Interrupt would not compile properly. Ensure PCLATH register is saved
13354            during interrupts. Ensure WSAVE is located at a shared bank address.
13355         2. Fixed page selection in some places
13356         3. Fixed BTFSS/C to where necessary use registers directly and not simply
13357            the registers name strings.
13358         4. Fixed "signed / unsigned compare" compiler warnings.
13359         5. The PIC port manages its own allocation of the general purpose
13360            registers, but makes no attempt to reuse them. As a result when
13361            compiling it soon runs out of general purpose registers. Some
13362            additional code was added to the files pcode.c and device.c to walk
13363            through the function call tree and rename the registers so that they
13364            get reused.
13365
13366         * src/pic/device.c
13367         * src/pic/gen.c
13368         * src/pic/glue.c
13369         * src/pic/pcode.c
13370         * src/pic/pcode.h
13371         * src/pic/ralloc.c
13372         * src/pic/ralloc.h
13373         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
13374         genPlus() & genMinus() when the result is the same as left or right
13375
13376 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13377
13378         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
13379
13380 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13381
13382         Made bitfield a distinct type from bit so that bitfields
13383         convert as per ANSI C and bits retain their traditional
13384         boolean style behaviour. Implemented bitfield support in
13385         the z80 port.
13386
13387         * src/SDCCsymt.h,
13388         * src/SDCCsymt.c,
13389         * src/SDCCast.c,
13390         * src/cdbFile.c,
13391         * src/mcs51/gen.c,
13392         * src/ds390/gen.c: bit v bitfield split
13393         * src/z80/gen.c: New support for bitfields
13394         * support/regression/tests/bitfields.c: reenabled z80,
13395         added more tests
13396
13397 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13398
13399         Rules 246.x, 247.x relate to bitfields, the others speed up
13400         access to xdata mapped I/O devices.
13401
13402         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
13403
13404 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13405
13406         Cleaned up genPackBits and genUnpackBits and added two helper
13407         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
13408         for literal assignments in genPackBits (thanks to Frieder for
13409         reminding me).
13410
13411         * src/mcs51/gen.c
13412         * src/ds390/gen.c
13413
13414 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13415
13416         Fixed bug #748310 (pointer to function type mishandled when the
13417         function name is omitted). Also fixed a SIGSEGV when a function
13418         attribute (reentrant, etc) is used on a non-function or on a
13419         function but misplaced before the parameter list.
13420
13421         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
13422         bug #748310
13423         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
13424         * support/Util/SDCCerr.h,
13425         * support/Util/SDCCerr.c: Added func attr misuse error msg
13426
13427 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
13428
13429         Fixed bug #787649 by anonymous
13430         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
13431         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
13432
13433 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13434
13435         Fixed numerous bitfield problems.
13436
13437         * src/SDCC.y: More bitfield related error checking
13438         * src/SDCCsymt.h,
13439         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
13440         * support/Util/SDCCerr.h,
13441         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
13442         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
13443         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
13444         * support/regression/tests/bitfields.c: tests added
13445
13446 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13447
13448         Made the constant following the "interrupt" keyword optional. If
13449         omitted, the function will not automatically be given an entry
13450         in the interrupt vector table (similar to #pragma NOIV, but
13451         less syntacticly kludgy). The interrupt number is also now
13452         range checked. Also fixed a bug in the high order bit example
13453         in the manual.
13454
13455         * src/SDCC.y
13456         * src/SDCCmem.c
13457         * src/SDCCglue.c
13458         * src/SDCCsymt.h
13459         * support/Util/SDCCerr.c
13460         * support/Util/SDCCerr.h
13461         * doc/sdccman.lyx
13462
13463 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
13464
13465         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
13466         * src/SDCCicode.c (operandOperation): rewritten some ops
13467         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
13468         * src/SDCCsymt.c (computeType): literals are handled the same way as any
13469         other type
13470         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
13471         be re-activated by defining REDUCE_LITERALS)
13472         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
13473         unsigned, but are signed by default
13474         * src/SDCCval.c (constVal): rearranged
13475         * src/SDCCval.c (valMod): preliminary fix
13476         * src/SDCCval.c (valCastLiteral): use TYPE_* types
13477         * support/regression/literalop.c: added, work in progress
13478
13479 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13480
13481         Generate warnings for useless declarations like "char data;"
13482         that don't do what new users expect.
13483
13484         * src/SDCC.y
13485         * support/Util/SDCCerr.h
13486         * support/Util/SDCCerr.c
13487
13488 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
13489
13490         * src/SDCCval.c (valMult): fix overflow detection of negative int
13491
13492 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13493
13494         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
13495
13496         Changes to support big endian targets:
13497
13498         * src/ports.h
13499         * src/SDCCglue.c
13500         * src/avr/main.c
13501         * src/ds390/main.c
13502         * src/izt/i186.c
13503         * src/mcs51/main.c
13504         * src/pic/main.c
13505         * src/pic16/main.c
13506         * src/xa51/main.c
13507         * src/z80/main.c
13508
13509 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
13510
13511         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
13512         * device/lib/time.c: fixed warning "integer overflow in expression"
13513
13514 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
13515
13516         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
13517         * src/SDCCval.c (constVal): changed default to signed; hex and octal
13518         constants are unsigned; added recognition of "u" flag for unsigned
13519         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
13520         * src/SDCCval.c (valDiv, valMod): fixed signdness
13521         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
13522         signedness of modulo, left and right shift
13523         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
13524         * support/Util/SDCCerr.h: added warning W_INT_OVL
13525         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
13526         * src/SDCCast.c (ast_print): improved output of constants
13527
13528 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13529
13530         Fixed some warnings when building with MSVC:
13531
13532         * as/mcs51/asdata.c
13533         * as/z80/asdata.c
13534         * as/mcs51/asm.h
13535         * as/z80/asm.h
13536         * link/z80/aslink.h
13537         * link/z80/lkdata.c
13538         * link/z80/lkeval.c
13539         * link/z80/lkgb.c
13540         * link/z80/lkihx.c
13541         * link/z80/lks19.c
13542         * link/z80/lksym.c
13543         * support/cpp2/cpplib.c
13544         * src/ds390/gen.c
13545         * src/mcs51/gen.c
13546
13547 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
13548
13549         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
13550
13551 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13552
13553         * support/librarian/clean.mk: Do not remove Makefile.
13554         * support/librarian/Makefile: added.
13555
13556 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13557
13558         Added librarian to MSVC build:
13559         * all.dsp
13560         * sdcc.dsw
13561         * support/librarian/librarian.dsp
13562
13563         'configure' not needed for librarian, removed:
13564         * support/librarian/configure
13565         * support/librarian/configure.in
13566         * support/librarian/config_in.h
13567         * support/librarian/Makefile.in
13568
13569         Hopefully these ones built the librarian and the rest of sdcc properly:
13570         * Makefile
13571         * Makefile.common.in
13572
13573         Messed up 'configure', so revert to previous version:
13574         * configure
13575         * configure.in
13576
13577 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
13578
13579         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
13580         there, while the mantissa of a double is "only" 53 bits wide.
13581
13582 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13583
13584         Adding sdcclib to the build.  MSVC project coming soon.
13585         Files added/changed:
13586
13587         * support/librarian/clean.mk
13588         * support/librarian/configure
13589         * support/librarian/configure.in
13590         * support/librarian/config_in.h
13591         * support/librarian/Makefile.bcc
13592         * support/librarian/Makefile.in
13593         * support/librarian/sdcclib.c
13594         * Makefile.bcc
13595         * Makefile
13596         * Makefile.common.in
13597         * configure
13598         * configure.in
13599
13600 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13601
13602         Linker now complaints if linked modules have conflicting options, for
13603         example, one compiled using --model-large and another one compiled with
13604         --model-small.  The following files were modified:
13605
13606         * as/mcs51/asdata.c
13607         * as/mcs51/aslink.h
13608         * as/mcs51/asm.h
13609         * as/mcs51/asmain.c
13610         * as/mcs51/asout.c
13611         * as/mcs51/i51pst.c
13612         * as/mcs51/lkdata.c
13613         * as/mcs51/lklibr.c
13614         * as/mcs51/lkmain.c
13615         * as/z80/asdata.c
13616         * as/z80/asm.h
13617         * as/z80/asmain.c
13618         * as/z80/asout.c
13619         * as/z80/z80pst.c
13620         * link/z80/aslink.h
13621         * link/z80/lkdata.c
13622         * link/z80/lklibr.c
13623         * link/z80/lkmain.c
13624         * src/SDCCglue.c
13625
13626 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13627
13628         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
13629         as/mcs51/lklibr.c: Generate a warning when a library is not found.
13630
13631 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
13632
13633         * src/z80/mappings.i: fix _mul[us][int,long] entries
13634
13635 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13636
13637         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
13638
13639 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
13640
13641         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
13642         * support/regression/tests/bitopcse.c: added
13643         fixed warning:
13644         * src/avr/gen.c:
13645         * src/pic/gen.c:
13646         * src/pic16/gen.c:
13647         * src/z80/gen.c:
13648         * src/xa51/gen.c:
13649
13650 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13651
13652         added support for new library format to z80, gbz80 linkers:
13653         *link/z80/aslink.h
13654         *link/z80/lklex.c
13655         *link/z80/lklib.c
13656         *link/z80/lklist.c
13657
13658 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
13659
13660         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
13661         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
13662
13663 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
13664
13665         added DUMMY_READ_VOLATILE:
13666         * src/SDCC.y:
13667         * src/avr/gen.c:
13668         * src/xa51/gen.c:
13669         * src/z80/gen.c:
13670         * src/pic/gen.c:
13671         * src/pic16/gen.c:
13672         * src/mcs51/gen.c:
13673         * src/ds390/gen.c:
13674         * src/SDCCcse.c (algebraicOpts): many improvements
13675         * src/SDCCcse.h: removed algebraicOpts()
13676         * src/SDCCicode.c (picDummyRead): added
13677
13678 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13679
13680         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
13681         "Insufficient space in data memory".
13682
13683 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13684
13685         * src/mcs51/gen.c: fixed bug #771358
13686         * src/z80/gen.c: fixed bug #759087
13687
13688 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
13689
13690         * src/pic16/glue.c: minor cleanup by Vangelis
13691
13692 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13693
13694         * device/include/regc515c.h: fixed #758477
13695         * device/lib/_gptrget.c: saving some cycles in generic pointer get
13696         * device/lib/_gptrput.c: saved a few bytes
13697         * my tab spacing is 8, yours too?)
13698         * device/lib/_ser.c: process RX bytes earlier than TX bytes
13699         * device/lib/serial.c: process RX bytes earlier than TX bytes
13700         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
13701
13702 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13703
13704         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
13705
13706 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13707
13708     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
13709
13710 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
13711
13712         * device/lib/Makefile.in: bad fix, reverted to 1.43
13713
13714 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
13715
13716         * device/lib/Makefile.in: added missing z80 object files
13717
13718 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
13719
13720         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
13721         pic16 progress by Vangelis:
13722         * src/SDCCglobl.h:
13723         * src/SDCCmain.c:
13724         * src/pic/Makefile:
13725         * src/pic:
13726         * pic/Makefile:
13727         * pic16/device.c:
13728         * pic16/device.h:
13729         * pic16/gen.c:
13730         * pic16/gen.h:
13731         * pic16/genarith.c:
13732         * pic16/glue.c:
13733         * pic16/main.c:
13734         * pic16/pcode.c:
13735         * pic16/pcode.h:
13736         * pic16/pcodepeep.c:
13737         * pic16/peeph.def:
13738
13739 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13740
13741     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
13742
13743 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13744
13745     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
13746     added gbz80 build to MSVC project.
13747     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
13748     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
13749     from 8051 stuff and setup so it links using a .lnk file.
13750
13751 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13752
13753     * support/librarian/sdcclib.c: sdcc librarian.
13754     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
13755     with sdcclib.
13756
13757 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13758
13759     * as/mcs51/lkmain.c: properly handle extensions in function afile.
13760
13761 2003-07-02  Borut Razem <borut.razem AT siol.net>
13762
13763         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
13764         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
13765         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
13766         src/xa51/main.c, src/z80/main.c:
13767         virtualization of glue() function: each port has it's own glue function,
13768         which is accessed by do_glue function pointer in PORT.general structure
13769
13770 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
13771
13772         * DS800C400 fun, improved ROM interface and tinibios.
13773
13774 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
13775
13776         * More support for DS80C400. Now includes beginning of interface to ROM.
13777
13778 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
13779
13780         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
13781
13782 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13783
13784         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
13785
13786 2003-06-19  Borut Razem <borut.razem AT siol.net>
13787
13788         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
13789
13790 2003-06-19  Borut Razem <borut.razem AT siol.net>
13791
13792         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
13793         fixed Z80 port - crt0.o: cannot open.
13794
13795 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
13796
13797         * support/Util/MySystem.c (merge_command): revert bad fix
13798
13799 2003-06-18  Borut Razem <borut.razem AT siol.net>
13800
13801         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
13802
13803 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13804
13805         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
13806         option --use-stdout sends errors to stdout instead of stderr.
13807
13808 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
13809
13810         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
13811
13812 2003-06-15  Borut Razem <borut.razem AT siol.net>
13813
13814         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
13815         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
13816         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
13817         fixed width array of pointers replaced with sets;
13818         multiple include and lib paths ared transferred to preprocessor and linker
13819         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
13820         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
13821         fixed width array of pointers
13822         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
13823         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
13824         fixupPath(), getPathDifference()
13825         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
13826         fixed width array of pointers
13827
13828 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
13829
13830         * src/pic16/ralloc.c: fix warnings
13831         * src/pic16/pcode.c: fix warning
13832
13833 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
13834
13835          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
13836         know all the details, but essentially this set of changes enable
13837         the pic16 port to generate movff instructions and generate assembler
13838         directives,
13839         * src/SDCCmain.c:
13840         * src/pic16/gen.c:
13841         * src/pic16/glue.c:
13842         * src/pic16/pcode.c:
13843         * src/pic16/device.c:
13844         * src/pic16/main.c:
13845         * src/pic16/pcode.h:
13846         * src/pic16/pcoderegs.c:
13847         * src/pic16/ralloc.c:
13848         * src/pic16/ralloc.h:
13849
13850 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13851
13852         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
13853         added option --vc, so sdcc errors and warnings are compatible with
13854         Microsoft Visual Studio.
13855
13856 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13857
13858         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
13859           device/lib/libfloat.lib: added atof function.
13860
13861 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
13862
13863         * doc/sdccman.lyx: updated to Lyx 1.3
13864         * doc/cdbfileformat.lyx: updated to Lyx 1.3
13865         * doc/test_suite_spec.lyx: updated to Lyx 1.3
13866         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
13867
13868 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
13869
13870         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
13871
13872 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13873
13874         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
13875           additions to the "related tools/documentation" section
13876
13877 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
13878
13879         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
13880
13881 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
13882
13883         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
13884         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
13885
13886 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
13887
13888         * doc/sdccman.lyx: fix double dash and other minor things
13889         * doc/Makefile: fix double dash
13890
13891 2003-05-28  Karl Bongers(patches from Martin Helmling)
13892         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
13893           condition and ignore commands.
13894
13895 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13896
13897         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
13898           is in parts still quite out of date, I did changes as far as I felt makes sense
13899           for a non-native english speaker.
13900           Please feel free to add to the manual or to correct my changes.
13901         * doc/Makefile: undid touching the date of intermediate tex files.
13902
13903 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13904
13905         * doc/sdccman.lyx: Manual has an index now
13906
13907 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
13908
13909         Finalize muluint/mulsint and mululong/mulslong merging:
13910         * device/lib/_mulint.c
13911         * device/lib/_mullong.c
13912         * device/lib/gbz80/mul.s
13913         * device/lib/gbz80/stubs.s
13914         * device/lib/z80/mul.s
13915         * device/lib/z80/stubs.s
13916         * src/SDCCsymt.c (initCSupport)
13917
13918 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13919
13920         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
13921         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
13922           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
13923           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
13924           instead of /Zm500.
13925
13926 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13927
13928         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
13929           the regression tests I'm not brave enough to enable 245.b, 245.c
13930         * doc/sdccman.lyx: added latex preamble for hyperref package.
13931           Using pdflatex this will give you a hyperlinked pdf file with
13932           bookmarks. (prepend '%' before /usepackage if this breaks something)
13933
13934 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13935
13936          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
13937
13938 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
13939
13940         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
13941
13942 2003-05-21    <johan AT balder>
13943
13944         * src/SDCCglue.c (printIval): fixed bug #739934
13945
13946 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
13947
13948         Applied patch from bug 737905 (renamed yylineo to mylineno):
13949         * src/altlex.c
13950         * src/SDCCast.c
13951         * src/SDCglobl.h
13952         * src/SDCC.lex
13953         * src/SDCCsymt.c
13954         * src/SDCCval.c
13955         * src/pic16/pcode.c: Cleaned warnings
13956         * src/pic16/pcodeflow.c: Cleaned warnings
13957         * src/pic16/pcoderegs.c: Cleaned warnings
13958
13959 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
13960
13961         * src/pic16/pcode.c: Cleaned warnings
13962         * src/pic16/pcodepeep.c: Cleaned warnings
13963         * src/pic16/ralloc.c: Cleaned warnings
13964
13965 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
13966
13967         * doc/sdccman.lyx: fixed bug 739745
13968         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
13969
13970 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
13971
13972         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
13973         it can be defined with CFLAGS when running configure
13974         * src/SDCCmain.c: fixed compiling + linking with object files
13975
13976 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
13977
13978         * configure.in: configure for pic16 port,
13979             added --disable-pic16-port
13980         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
13981         * src/SDCCmain.c: linkOptions is changed to set *,
13982             added if/endif conditional macros to remove options help
13983             messages from optionsTable when a port is not configured, added
13984             support for the PIc16 port in the ports table, when executing
13985             the compiler with no port specified on command line, a default
13986             port is selected with the new macro DEFAULT_PORT which is
13987             defined in port.h, in setDefaultOptions() linkOptions is removed
13988             from initialization assignment, since now it is a set,
13989             parseCmdLine uses setParseWithComma for linkOptions, in
13990             linkEdit() linkOptions are accessed with new function indexSet()
13991             which returns the i'th item of a set variable. See SDCCset.c, in
13992             linkEdit() when calling buildCmdLine(), added linkOptions as
13993             last argument. Now users can pass arguments to gplink via the
13994             -Wl option, main() uses pic16glue() to glue up pic16 programs
13995         * src/SDCCpeeph.c: various changes to support pic16
13996         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
13997             return the i'th item of the set
13998         * src/SDCCset.h: added function prototype for indexSet()
13999         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
14000         * src/clean.mk: added pic16 in CLEANALLPORTS variable
14001         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
14002             added macro DEFAULT_PORT
14003         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
14004         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
14005             generated
14006         * src/pic16/glue.c: commented out some error producing lines
14007         * src/pic16/main.c: __config directives are commented out to stop
14008             gpasm complaining and test the linkage with gplink, _linkCmd and
14009             _asmCmd changed to be more gplink and gpasm friendly
14010         * src/pic16/peeph.def: peep rule 3 is commented out, since it
14011             produced an error when parsed, peep rule 12 is added to utilize
14012             movff, but it is commented out since the pCode does not support
14013             yet a command with 2 address arguments
14014
14015 2003-05-18    <johan AT balder>
14016
14017         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
14018         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
14019 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
14020
14021         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
14022   Added feature to script commands from file.
14023
14024 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
14025
14026         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
14027         * src/SDCCutil.c: include ctype.h for win32
14028
14029 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
14030
14031         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
14032
14033 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
14034
14035         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
14036   Fixed so you can set breakpoints prior to run, run does not stop
14037   on entry now.  Add tbreak.  Other enhancements and fixes for use
14038   with ddd.
14039
14040 2003-05-12  Borut Razem <borut.razem AT siol.net>
14041
14042         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
14043
14044 2003-05-11  Borut Razem <borut.razem AT siol.net>
14045
14046         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
14047         the path of bin directory, so that PATH is the only env. variable, which has to be set
14048         in case of standard installation.
14049         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
14050         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
14051         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
14052
14053 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
14054
14055         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
14056         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
14057         temp files are in the port dir; clean the gen/test directory when
14058         generating new test.c
14059         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
14060         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
14061         * support/regression/tests/zeropad.c: added
14062
14063 2003-05-09    <johan AT balder>
14064
14065         * src/SDCCglue.c: fixed bug #597940
14066
14067 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
14068
14069         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
14070   cache sfr, optimize next,step, fix off by one sourceline,
14071   support ddd list function.
14072         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
14073
14074 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
14075
14076         * support/regression/HTMLgen.py: added compare_s2f()
14077         * support/regression/Makefile: redo 1.27
14078         * support/regression/generate-cases.py: redo 1.5
14079
14080 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
14081
14082         * support/regression/tests/float.c: workaround 33 bit hex constant
14083         * support/regression/tests/simplefloat.c: fix division for host
14084
14085 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
14086
14087         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
14088         that tame's the PIC's over-aggressive optimizer.
14089
14090 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14091
14092          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
14093          support for MSVC.
14094
14095 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
14096
14097         Initial support for DS80C400. "Hello world" runs on TINIm400
14098         (with polled I/O).
14099
14100 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
14101
14102          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
14103          * Some notes on ddd usage added in debugger/README
14104          Martin Helmling adding more features and fixes for ddd GUI debugger.
14105          Code added for nexti, stepi, up, down, and other adjustments.
14106
14107 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
14108
14109         * src/pic/pCodepeep.c non-wildcard asmops are now handled
14110         * src/pic/peeph.def Added two rules to optimize carry manipulation
14111         * src/pic/* removed debug printfs
14112
14113 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
14114
14115         * debugger/mcs51/cmd.c: added header newalloc.h
14116
14117 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
14118
14119         * as/Makefile: new EXEEXT
14120         * as/z80/Makefile: remove trailing slash of BUILDIR
14121         * as/z80/clean.mk: new EXEEXT
14122         * Makefile.common.in: add to CFLAGS (and others), don't replace it
14123         * support/cpp2/Makefile.in: new EXEEXT
14124         * src/pic/glue.c (pic14emitRegularMap): fixed warning
14125
14126 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
14127
14128         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
14129         EXEEXT was introduced to fix all related problems with targets
14130         "clean", "install" and "uninstall"; a couple of further flaws
14131         especially with "clean" have been fixed too
14132         * as/mcs51/Makefile.in
14133         * as/mcs51/clean.mk
14134         * as/z80/Makefile
14135         * Makefile
14136         * clean.mk
14137         * debugger/mcs51/Makefile.in
14138         * debugger/mcs51/clean.mk
14139         * link/z80/Makefile
14140         * link/z80/Makefile.in
14141         * link/z80/clean.mk
14142         * link/Makefile
14143         * packihx/Makefile.in
14144         * packihx/clean.mk
14145         * sim/ucsim/Makefile
14146         * sim/ucsim/clean.mk
14147         * sim/ucsim/avr.src/Makefile.in
14148         * sim/ucsim/avr.src/clean.mk
14149         * sim/ucsim/s51.src/Makefile.in
14150         * sim/ucsim/s51.src/clean.mk
14151         * sim/ucsim/xa.src/Makefile.in
14152         * sim/ucsim/xa.src/clean.mk
14153         * sim/ucsim/z80.src/Makefile.in
14154         * sim/ucsim/z80.src/clean.mk
14155         * sim/ucsim/main_in.mk
14156         * sim/ucsim/packages_in.mk
14157         * sim/ucsim/gui.src/Makefile.in
14158         * sim/ucsim/gui.src/serio.src/Makefile.in
14159         * sim/ucsim/gui.src/serio.src/clean.mk
14160         * src/Makefile.in
14161         * src/clean.mk
14162         * support/cpp2/Makefile.in
14163         * support/cpp2/clean.mk
14164         * support/makebin/Makefile
14165         * support/makebin/clean.mk
14166         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
14167         * doc/sdccman.lyx: --program-suffix no longer needed
14168
14169 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
14170
14171          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
14172          Martin Helmling added support for ddd GUI debugger.
14173          Code added to display assembly, set variables, and other commands
14174          to interface to ddd.
14175
14176 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
14177
14178         * as/Makefile: fix target clean
14179         * as/clean.mk: fix target clean
14180         * as/z80/clean.mk: fix target clean
14181
14182 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
14183
14184         * Makefile.common.in: added  AT EXEEXT AT
14185         * configure.in: removed all mingw32 stuff
14186         * configure: rebuilt from configure.in
14187         * doc/sdccman.lyx: updated section "installation"
14188         * support/scripts/sdcc_mingw32: adapted to configure
14189         * support/scripts/sdcc_cygwin_mingw32: added
14190
14191 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
14192
14193         * src/pic Added object file support for the PIC port
14194         * src/pic Applied patch from Craig Franklin (this started the object file support)
14195         * src/regression Updated the PIC regression tests for object files
14196
14197 2003-04-20  Borut Razem <borut.razem AT siol.net>
14198
14199         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
14200           lklex.c: In function `getfid':
14201           lklex.c:203: warning: array subscript has type `char'
14202         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
14203           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
14204         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
14205           stack handling macros
14206
14207 2003-04-19  Borut Razem <borut.razem AT siol.net>
14208
14209         * "handling space characters in file path" task:
14210         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
14211         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
14212         * support/Util/MySystem.h: make it self-sufficient
14213         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
14214           src/z80/main.c, sdcc/as/mcs51/lklex.c:
14215           handling space characters in file path
14216         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
14217           (it will be used by assemblers, which have their own includes, e.g. gpasm)
14218         * support/Util/MySystem.c: handling space characters in executable's path
14219
14220 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
14221
14222         * as/z80/Makefile: fix permanent rebuild of z80
14223         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
14224         * support/regression/tests/bitfields.c: added Johan's bitfields.c
14225
14226 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
14227
14228         * src/SDCCopt.c: add special case optimization to replace modulo by
14229           a power of two with a bitwise AND.
14230
14231 2003-04-18    <johan AT balder>
14232
14233         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
14234
14235 2003-04-17    <johan AT balder>
14236
14237         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
14238         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
14239
14240 2003-04-13  Borut Razem <borut.razem AT siol.net>
14241
14242         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
14243         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
14244           fixed mingw problem in adl_NORMALIZE_PATH
14245
14246 2003-04-12  Borut Razem <borut.razem AT siol.net>
14247
14248         * fixed "#pragma SAVE/RESTORE can not be nested":
14249         * src/SDCC.lex: reworked pragma handling functions
14250         * sdcc/src/SDCCglobl.h: reworked stack handling macros
14251         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
14252
14253 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
14254
14255         * src/SDCCutil.c (pathEquivalent): defined but not used
14256         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
14257         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
14258         * configure: rebuilt from configure.in
14259         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
14260         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
14261         * device/include/Makefile.in: replace sdcc_datadir
14262         * device/lib/Makefile.in: replace sdcc_datadir
14263         * Makefile.common.in: add LDFLAGS from configure
14264         * packihx/Makefile.in: use LDFLAGS
14265         * src/Makefile.in: use LDFLAGS
14266         * support/cpp2/Makefile.in: add LDFLAGS from configure
14267         * support/makebin/Makefile: use LDFLAGS
14268         * .version: bumped version number to 2.3.5
14269
14270 2003-04-12  Borut Razem <borut.razem AT siol.net>
14271
14272         * completed "different paths" task:
14273         * src/SDCCmacro.c: fixed bug in handling quotes
14274         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
14275         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
14276
14277 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
14278
14279         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
14280
14281 2003-04-11 kevin Vigor <kevin AT vigor.nu>
14282
14283         * ds390/gen.c ds390/peeph.def: fix bug 706781
14284
14285 2003-04-11  Borut Razem <borut.razem AT siol.net>
14286
14287         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
14288
14289 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
14290
14291         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
14292         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
14293          set - this bit used to not be set...).
14294         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
14295           bad code in PIC Port
14296         * src/regression/and2.c added to test bug 609268
14297         * src/regression/Makefile added and2.c to regression test
14298
14299
14300 2003-04-08    <johan AT CP255758-A>
14301
14302         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
14303         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
14304         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
14305
14306 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
14307
14308         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
14309         fix bug #487815
14310         * support/cpp2/Makefile.in: fix bug #487815
14311         * configure: rebuilt from configure.in
14312         * Makefile.common.in: docdir changed, new path suffixes
14313         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
14314         * sdcc_vc_in.h: reflect changes from sdccconf.h
14315         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
14316         * src/SDCCutil.h: remove BINDIR hack
14317         * doc/sdccman.lyx: update new path hierarchy
14318
14319 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14320
14321         * src/SDCCpeeph.c: added okToRemoveSLOC test
14322
14323 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14324
14325         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
14326
14327 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14328
14329         * src/SDCCpeeph.c: added labelIsReturnOnly test
14330         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
14331
14332 2003-04-05    <johan AT balder>
14333
14334         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
14335         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
14336         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
14337         * src/SDCCast.c: fixed a warning
14338         * src/SDCCast.h: fixed a warning
14339         * src/SDCCicode.c (operandFromAst): fixed a warning
14340
14341 2003-04-04    <johan AT balder>
14342
14343         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
14344         * src/SDCCast.c (decorateType): fixed bug #715076
14345         * src/SDCC.y: fixed bug #702907
14346
14347 2003-04-03    <johan AT balder>
14348
14349         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
14350         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
14351         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
14352         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
14353         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
14354
14355 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
14356
14357         * _decdptr.c: fix return values
14358         * _gptrget.c: fix return values
14359         * _gptrgetc.c: fix return values
14360         * _gptrput.c: fix return values
14361         * _mulint.c: fix return values
14362         * as/z80/Makefile: fix 'make -j' problem
14363
14364 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
14365
14366         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
14367         * configure.in: big cleanup, updated to autoconf 2.5x
14368         * configure: rebuilt from configure.in
14369         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
14370         * sdcc_vc_in.h: reflect changes from sdccconf.h
14371         * doc/Makefile: fixed a flaw in "make install"
14372
14373 2003-04-02    <johan AT balder>
14374
14375         * src/ds390/gen.c (genCmp): no comments
14376         * src/mcs51/gen.c (genCmp): no comments
14377         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
14378         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
14379
14380 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
14381
14382         * support/regression/generate-cases.py: place generated file in given sub directory
14383         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
14384         * support/regression/Makefile: improvements for 'make -j';
14385         side effect: it's simpler and faster now
14386
14387 2003-03-31  Borut Razem <borut.razem AT siol.net>
14388
14389         * src/z80/main.c: link-{port} and as-{port} defined without path
14390         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
14391
14392 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
14393
14394         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
14395
14396 2003-03-30  Borut Razem <borut.razem AT siol.net>
14397
14398         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
14399           changed type of list parameter to set
14400         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
14401         * src/port.h: changed type of do_assemble() parameter to set
14402         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
14403           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
14404           definition of "cppoutfilename" macro with NULL value in preProcess()
14405         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
14406         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
14407         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
14408           replaced with set *binPathSet
14409         * shash_add() deallocates the item, if allready exsists, before adding the new one
14410         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
14411
14412 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
14413
14414         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
14415           a nested for loop bug in the PIC port
14416         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
14417           for loops
14418
14419 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
14420
14421         * support/Util/dbuf.h: remove C++ stuff to make it portable
14422
14423 2003-03-28  Borut Razem <borut.razem AT siol.net>
14424
14425         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
14426           literal strings in stringLiteral()
14427         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
14428         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
14429           to the project
14430
14431 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
14432
14433         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
14434
14435 2003-03-26    <johan AT balder>
14436
14437         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
14438         * src/ds390/gen.c (saveRegisters): catched symbol abuse
14439         * src/SDCCast.c (decorateType): fixed " -v < 3"
14440
14441 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
14442
14443         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
14444         Added Lenny Story's debug infrastructure changes:
14445         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
14446         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
14447         * src/cdbFile.c: added
14448         * src/SDCCdebug.c: added
14449         * src/SDCCdebug.h: added
14450         * src/SDCCast.c (createFunction)
14451         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
14452         * src/SDCCmain.c (parseCmdLine, main)
14453         * src/SDCCmem.c (redoStackOffsets)
14454         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
14455         * src/SDCCsymt.h
14456         * src/common.h
14457         * src/avr/gen.c (genAVRCode)
14458         * src/ds390/gen.c (gen390Code)
14459         * src/mcs51/gen.c (gen51Code)
14460         * src/pic/gen.c (genpic14Code)
14461         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
14462         * src/xa51/gen.c (genXA51Code)
14463         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
14464
14465 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14466
14467         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
14468         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
14469
14470 2003-03-22    <johan AT balder>
14471
14472         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
14473
14474 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
14475
14476         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
14477         * doc/cdbfileformat.lyx: added, written by Lenny Story
14478         * doc/Makefile: added cdbfileformat.lyx
14479         * doc/clean.mk: added cdbfileformat.lyx
14480
14481 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
14482
14483         * src/mcs51/peeph.def: fix bug #705773
14484
14485 2003-03-20    <johan AT balder>
14486
14487         An sfr/sbit can have an "at #" AND an initializer
14488         * src/SDCCsymt.c (checkSClass):
14489         * src/SDCCmem.c (allocGlobal):
14490         * src/SDCCmem.c (allocLocal):
14491         * src/SDCCast.c (createBlock):
14492
14493 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
14494
14495         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
14496
14497 2003-03-16    <johan AT balder>
14498
14499         Undid the hackup of const and volatile, the problem is much bigger
14500         * src/SDCC.y:1.65
14501         * src/SDCCast.c:1.171
14502         * src/SDCCglue.c:1.138
14503         * src/SDCCicode.c:1.146
14504         * src/SDCCsymt.c:1.150
14505         * src/SDCCval.c:1.65
14506
14507 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
14508
14509         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
14510         * src/ds390/gen.c (genAddrOf): fixed bug #704087
14511
14512 2003-03-13    <johan AT balder>
14513
14514         Hackup const and volatile modifiers in type chains a bit:
14515         * src/SDCC.y:1.63
14516         * src/SDCCast.c:1.169
14517         * src/SDCCglue.c:1.136
14518         * src/SDCCicode.c:1.143
14519         * src/SDCCsymt.c1.146
14520         * src/SDCCsymt.h1.59
14521         * src/SDCCval.c:1.63
14522
14523 2003-03-12    <johan AT balder>
14524
14525         * src/SDCCBBlock.h: more LRH debugging junk
14526         * src/SDCCcflow.h: more LRH debugging junk
14527         * src/SDCCloop.c: more LRH debugging junk
14528         * src/SDCC.y (struct_declaration): fixed bug #697590
14529         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
14530         * src/ds390/gen.c (aopForRemat): fixed bug #700031
14531         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
14532
14533 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14534         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
14535         test function names must now match exactly).
14536         * src/SDCCcse.c: added special case in findCheaperOp to allow
14537         extending a short integer. Makes less awful code for bug 700121 test case.
14538
14539 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14540
14541         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
14542         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
14543
14544 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14545
14546         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
14547         actually called (operandsNotEqual() was called for all
14548         operandsNotEqualX tests).
14549
14550 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14551
14552         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
14553         with shorter literals. Fixes bug 700121.
14554
14555 2003-03-11    <johan AT balder>
14556
14557         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
14558
14559 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
14560
14561         * src/SDCCloop.c (mergeRegions): an evil beast is dead
14562         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
14563
14564 2003-03-10  Borut Razem <borut.razem AT siol.net>
14565
14566         * src/SDCCmain.c: pipe preprocessor's output
14567         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
14568         * sdcc_vc_in.h: define pclose as _pclose for WIN32
14569         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
14570         which closes all pipes in pipeSet set
14571         * src/SDCCset.c: free deleted item in function deleteSetItem()
14572         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
14573         moved from z80 to src subproject
14574         * .version: increased version number to 2.3.4
14575
14576 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
14577
14578         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
14579         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
14580         * support/regression/ports/xa51/spec.mk: fix typo
14581
14582 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
14583
14584         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
14585
14586 2003-03-09  Borut Razem <borut.razem AT siol.net>
14587
14588         * src/SDCCmain.c: pipe preprocessor's output
14589         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
14590         * sdcc_vc_in.h: define pclose as _pclose for WIN32
14591         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
14592         which closes all pipes in pipeSet set
14593         * src/SDCCset.c: free deleted item in function deleteSetItem()
14594         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
14595         moved from z80 to src subproject
14596
14597 2003-03-09  Borut Razem <borut.razem AT siol.net>
14598
14599         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
14600         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
14601         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
14602         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
14603         * src/SDCCglobl.h: unification of WIN32 native definitions
14604
14605 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14606
14607         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
14608
14609 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
14610
14611         * src/configure.in:   check for endianess (even while cross-compiling)
14612         * src/configure:      check for endianess (even while cross-compiling)
14613         * src/configure_in.h: check for endianess (even while cross-compiling)
14614         * src/avr/gen.c:        remove old endianess stuff
14615         * src/mcs51/gen.c:      remove old endianess stuff
14616         * src/ds390/gen.c:      remove old endianess stuff
14617         * src/pic/gen.c:        remove old endianess stuff
14618         * src/pic/genarith.c:   remove old endianess stuff
14619         * src/pic/glue.c:       fix endianess check
14620         * src/pic16/gen.c:      remove old endianess stuff
14621         * src/pic16/genarith.c: remove old endianess stuff
14622         * src/pic16/glue.c:     fix endianess check
14623         * src/xa51/gen.c:       remove old endianess stuff
14624         * src/z80/gen.c:        fix endianess check
14625         * src/SDCCglue.c:       fix endianess check
14626         * src/ds390/peeph.def: fix bug 700036
14627
14628 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
14629
14630         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
14631         * src/configure: find appropriate data-types on host for SDCC's int and long
14632         * src/configure.in: find appropriate data-types on host for SDCC's int and long
14633         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
14634         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
14635
14636 2003-03-07    <johan AT balder>
14637
14638         Just a big NOOP:
14639                 some minor cleanups before the big shot
14640                 OP_DEFS and OP_USES now use Kevin's protection
14641                 new option --nolabelopt
14642
14643         * src/SDCCBBlock.c:
14644         * src/SDCCast.c,:
14645         * src/SDCCcflow.c:
14646         * src/SDCCcse.c:
14647         * src/SDCCicode.c:
14648         * src/SDCCicode.h:
14649         * src/SDCClabel.c:
14650         * src/SDCCloop.c:
14651         * src/SDCCmain.c:
14652         * src/ds390/ralloc.c:
14653         * src/mcs51/ralloc.c:
14654         * src/pic/ralloc.c:
14655         * src/xa51/ralloc.c:
14656         * src/z80/ralloc.c:
14657
14658 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
14659
14660         * src/pic/pcode.c (get_op): fix 64 bit warnings
14661         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
14662         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
14663         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
14664         * support/regression/tests/malloc.c: fix 64 bit warnings
14665
14666 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
14667
14668         * src/mcs51/gen.c (genMinus): fixed bug 696436
14669
14670 2003-03-02  Borut Razem <borut.razem AT siol.net>
14671
14672         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
14673
14674 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
14675
14676         * configure.in: test for mkstemp
14677         * sdccconf_in.h: add HAVE_MKSTEMP
14678
14679 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
14680
14681         * device/include/ctype.h: removed warning while using --stack-auto
14682         * device/include/malloc.h: removed warning while using --stack-auto
14683         * device/include/string.h: removed warning while using --stack-auto
14684
14685 2003-02-23  Borut Razem <borut.razem AT siol.net>
14686
14687         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
14688         because NDEBUG is defined (see man assert)
14689         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
14690
14691 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14692
14693         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
14694         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
14695
14696 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14697
14698         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
14699         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
14700
14701 2003-02-18    <johan AT balder>
14702
14703         * as/mcs51/asmain.c (asmbl): module can start with a digit
14704         * as/z80/asmain.c (asmbl): module can start with a digit
14705
14706 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
14707
14708         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
14709         * src/asm.c: fix pipe() for Mingw32
14710
14711 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
14712
14713         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
14714         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
14715         make -V work again; --c1mode reads now from stdin
14716         * doc/sdccman.lyx: added --c1mode
14717         * support/Util/SDCCerr.c: new messages for c1 mode
14718         * support/Util/SDCCerr.h: new messages for c1 mode
14719         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
14720
14721 2003-02-15    <johan AT balder>
14722
14723         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
14724
14725 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
14726
14727         * doc/sdccman.lyx: Environment variables, -o and other minor things
14728
14729 2003-02-14    <johan AT balder>
14730
14731         * src/xa51/main.c: before anyone really tries to use it :)
14732
14733         * Install doc's in share/sdcc/doc
14734         * removed some obsolete files
14735         * Do a proper make distclean and uninstall
14736         M Makefile.common.in
14737         R sdccbuild.sh
14738         M as/Makefile
14739         M device/include/Makefile.in
14740         M device/lib/Makefile.in
14741         M doc/sdccman.lyx
14742         M link/Makefile
14743         M sim/ucsim/doc/Makefile.in
14744         M src/clean.mk
14745         R src/avr/peeph.rul
14746         R src/xa51/peeph.rul
14747         M support/cpp2/Makefile.in
14748         M support/makebin/Makefile
14749
14750
14751 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
14752
14753         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
14754
14755 2003-02-10  Borut Razem <borut.razem AT siol.net>
14756
14757         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
14758         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
14759         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
14760         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
14761         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
14762         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
14763         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
14764         src/z80/Makefile.bcc: Borland Makefile cleanup
14765         * as/z80/Makefile.bcc: Added Borland Makefile
14766         * support/cpp2/borland.h: Removed
14767
14768 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
14769
14770         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
14771         * src/SDCC.lex: new pragma NOIV
14772         * src/SDCCglobl.h: new pragma NOIV
14773         * src/SDCCmem.c: new pragma NOIV
14774
14775 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
14776
14777         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
14778
14779 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
14780
14781         * src/SDCCmain.c: signal handling is switched off by --debug
14782         * doc/Makefile: small fix for install; use clean.mk again
14783         * doc/clean.mk: clean *.pdf and *.html too
14784
14785 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
14786
14787         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
14788         * device/lib/printfl.c: fix a ds390 bug by making it portable
14789         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
14790         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
14791         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
14792         * debugger/mcs51/cmd.c: converted multi-line string literals
14793         * sim/ucsim/globals.cc: converted multi-line string literals
14794         * src/SDCCmain.c: introduced signal handler to remove temp files
14795         * doc/Makefile: small tweaks, implement clean
14796         * doc: removed generated files
14797
14798 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14799
14800         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
14801         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
14802         Address Record is not correctly generated for DS390."
14803
14804 2003-02-02  Borut Razem <borut.razem AT siol.net>
14805
14806         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
14807         * as/mcs51/asm.h: fixed compilation with Borland C
14808         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
14809         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
14810         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
14811         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
14812         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
14813         src/z80/Makefile.bcc: delete $(LIB) only if exist
14814         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
14815
14816 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
14817
14818         * device/include/malloc.h: introduced NULL
14819         * device/include/string.h: introduced NULL
14820         * device/include/stdlib.h: introduced NULL
14821         * device/lib/_memcpy.c: removed NULL
14822         * device/lib/_strcat.c: removed NULL
14823         * device/lib/_strchr.c: removed NULL
14824         * device/lib/_strcmp.c: removed NULL
14825         * device/lib/_strcpy.c: removed NULL
14826         * device/lib/_strcspn.c: removed NULL
14827         * device/lib/_strlen.c: removed NULL
14828         * device/lib/_strncat.c: removed NULL
14829         * device/lib/_strncmp.c: removed NULL
14830         * device/lib/_strncpy.c: removed NULL
14831         * device/lib/_strpbrk.c: removed NULL
14832         * device/lib/_strrchr.c: removed NULL
14833         * device/lib/_strspn.c: removed NULL
14834         * device/lib/_strstr.c: removed NULL
14835         * device/lib/_strtok.c: removed NULL
14836         * device/lib/malloc.c: removed NULL, include own header
14837
14838 2003-02-02    <johan AT balder>
14839
14840         * 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
14841         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
14842         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
14843         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
14844         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
14845         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
14846
14847 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14848
14849         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
14850         area 'DATA'"
14851
14852 2003-02-01    <johan AT balder>
14853
14854         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
14855
14856 2003-01-31    <johan AT CP255758-A>
14857
14858         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
14859
14860 2003-01-30    <johan AT balder>
14861
14862         * src/SDCCBBlock.c: automatic bug detection
14863         * src/SDCCicode.c: automatic bug detection
14864
14865 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14866
14867         * src/SDCCglobl.h:   now --xram-size 0 works
14868         * src/SDCCmain.c:    now --xram-size 0 works
14869
14870 2003-01-29    <johan AT balder>
14871
14872         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
14873
14874 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14875
14876         * as/mcs51/aslink.h: Added options --xram-size and --code-size
14877         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
14878         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
14879         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
14880         * src/SDCCglobl.h:   Added options --xram-size and --code-size
14881         * src/SDCCmain.c:    Added options --xram-size and --code-size
14882
14883 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
14884
14885         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
14886         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
14887
14888 2003-01-27    <johan AT balder>
14889
14890         * src/SDCC.y: fixed bug #613764
14891
14892 2003-01-26    <johan AT balder>
14893
14894         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
14895         * src/SDCCsymt.h: fixed bug #673374
14896         * src/SDCCglue.c: fixed bug #661910
14897         * src/SDCCast.c: fixed bug #458099 and 673374
14898
14899 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
14900
14901         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
14902         * as/mcs51/strcmpi.h: added
14903         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
14904         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
14905         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
14906         * as/mcs51/assym.c: strcmpi -> as_strcmpi
14907         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
14908         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
14909         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
14910         * as/mcs51/Makefile.aslink: new module strcmpi
14911         * as/mcs51/Makefile.asx8051: new module strcmpi
14912         * as/mcs51/Makefil.bcc: new module strcmpi
14913         * as/mcs51/Makefile.in: new module strcmpi
14914         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
14915
14916 2003-01-26    <johan AT balder>
14917
14918         * src/SDCCglue.c: reverted back to 1.124
14919         * src/SDCCast.c: reverted back to 1.156
14920         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
14921
14922 2003-01-25    <johan AT balder>
14923
14924         * src/SDCCglue.c: A better fix for bug #661910
14925         * src/SDCCast.c: A better fix for bug #661910
14926         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
14927
14928 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
14929
14930         * src/Makefile.in: remove spawn.o
14931         * src/SDCCmain.c: remove spawn.h
14932         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
14933         * src/spawn.c: removed
14934         * src/spawn.h: removed
14935         * support/regression/ports/ds390/spec.mk: link with -r
14936
14937 2003-01-24    <johan AT CP255758-A>
14938
14939         * src/ds390/gen.c (aopOp): fixed bug #667458
14940         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
14941         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
14942         (createIvalCharPtr): an ival doesn't always have a storage class anymore
14943
14944 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
14945
14946         * src/mcs51/peeph.def: better assembler identation by Frieder
14947         * src/mcs51/gen.c: better assembler identation by Frieder
14948
14949 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
14950
14951         * as/z80/string.h: removed for gcc 3.2
14952         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
14953         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
14954
14955 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
14956
14957         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
14958         * src/SDCCpeeph.c (replaceRule): fix bug #663503
14959         * support/regression/Makefile: separate temp files for ports
14960         * support/regression/generate-cases.py: separate temp files for ports
14961         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
14962         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
14963
14964 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
14965
14966         * moved tinitalk to device/examples/ds390
14967
14968 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
14969
14970         * as/mcs51/lkmem.c: rflag is for DS390
14971         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
14972         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
14973                          (linkEdit): move mem- and map-files the same way as ihx-files
14974         * src/z80/main.c (_setDefaultOptions): removed --generic
14975         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
14976         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
14977         * src/pic/glue.c (picglue): --c1mode works again
14978         * src/pic16/glue.c (pic16glue): --c1mode works again
14979         * src/asm.c (printCLine): fix #660034
14980
14981 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
14982
14983         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
14984         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
14985         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
14986         * as/mcs51/lkmem (summary): better fix for sp problem
14987         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
14988         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
14989         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
14990                                               remove --stack-after-data
14991
14992 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
14993
14994         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
14995         * src/SDCCutil.c (join): ugly bug: missing '\0'
14996         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
14997
14998 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
14999
15000         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
15001         * src/port.h: typo
15002         * src/pic/main.c (_asmCmd): gpasm supports -o
15003         * src/z80/main.c: more general macros
15004         * device/lib/Makefile.in: remove intermediate files
15005
15006 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
15007
15008         * .version: Bumped version number to 2.3.3
15009         * src/SDCCBBlock.c: new option -o
15010         * src/SDCCglobl.h: new option -o
15011         * src/SDCCglue.c: new option -o
15012         * src/SDCCmain.c: new option -o
15013         * src/asm.c: new option -o
15014         * src/ds390/main.c: new option -o
15015         * src/pic/glue.c: new option -o
15016         * src/pic/pcode.c: new option -o
15017         * src/pic/ralloc.c: new option -o
15018         * src/pic16/glue.c: new option -o
15019         * src/pic16/pcode.c: new option -o
15020         * src/pic16/ralloc.c: new option -o
15021         * src/z80/main.c: new option -o
15022         * device/lib/Makefile.in: use -o
15023         * support/regression/ports/ds390/spec.mk: use -o
15024         * support/regression/ports/gbz80/spec.mk: use -o
15025         * support/regression/ports/mcs51/spec.mk: use -o
15026         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
15027         * support/regression/ports/z80/spec.mk: use -o
15028         * support/regression/ports/ucz80/spec.mk: use -o
15029         * support/regression/ports/xa51/spec.mk: use -o
15030         * support/regression/fwk/lib/timeout.c: fix usage string
15031
15032 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
15033         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
15034
15035 2003-01-07    <johan AT balder>
15036
15037         * src/SDCCast.c (decorateType): fixed bug #600035
15038
15039 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
15040         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
15041         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
15042         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
15043         * src/pic/pcode.c: outcommented unused variable to remove warnings
15044         * src/pic/ralloc.c: outcommented unused variable to remove warnings
15045
15046 2003-01-06    <karl AT turbobit.com>
15047         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
15048    regression tests.
15049
15050 2003-01-06    <johan AT balder>
15051
15052         * src/SDCCicode.c: fixed array add
15053
15054 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
15055         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
15056         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
15057
15058 2003-01-04    <johan AT balder>
15059
15060         * src/SDCCval.c (getNelements): fixed the initialized array of structures
15061
15062 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15063         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
15064
15065 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
15066         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
15067         * support/regression/tests/bug-524697.c: fit mem usage into 8032
15068
15069 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
15070         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
15071
15072 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
15073         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
15074
15075 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
15076         * src/mcs51/main.c: removed {bindir}{sep} from aslink
15077
15078 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15079
15080     * in /sdcc/as/mcs51/ changed these files in order to create an
15081     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
15082     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
15083     following files to include the previous two files: aslink.dsp,
15084     Makefile.aslink, Makefile.bcc, and Makefile.in.
15085
15086     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
15087     .adb instead of .cdb
15088
15089 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15090
15091         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
15092         value from option --iram-size.
15093
15094 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15095
15096         * /sdcc/as/mcs51/lklist.c: added boundary check before using
15097         dram[] array.
15098
15099 2002-09-18    <wiml AT hhhh.org>
15100
15101         * SDCClrange.h: exposed setFromRange() and setToRange()
15102         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
15103           packRegsForAccUse() (bug 542397)
15104         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
15105           multiple times and emitting the fetch operations more than once
15106           added aopGetUsesAcc() function to allow binary operators to
15107           fetch their operands in the correct order; made genMinus() emit
15108           compact code for X = LITERAL - Y
15109
15110 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15111         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
15112         sprintf() in line 1267.
15113
15114 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15115         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
15116         like ports.
15117
15118 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
15119         Changes to aslink (All the changes are marked with 'JCF'):
15120
15121         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
15122         summary().
15123
15124         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
15125         area BSEG.  Also moves, if possible, the DATA area down into the internal
15126         ram so more space is available.
15127
15128         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
15129         sflag.
15130
15131         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
15132         not bytes.  Function summary() which creates a memory usage summary
15133         file with extension .mem.  Reports of overlaping stack and small stack
15134         size.  If the space for the stack is less than 16 bytes aslink trows a
15135         warning.
15136
15137         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
15138         the 8051.  Option 'y' for memory summary output file.
15139
15140         Changes to sdcc (All the changes are marked with 'JCF'):
15141
15142         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
15143
15144         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
15145         overlaying area for it (uses RegBankUsed[4]).
15146
15147         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
15148         bank zero as used by default.  By default aslink locates the stack
15149         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
15150         the creation of the .mem file.  Delegates the allocation of data area
15151         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
15152         the begining of the stack area to aslink.
15153
15154         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
15155         glue() in SDCCglue.c creates an area for it.
15156
15157 2002-09-03  Borut Razem <borut.razem AT siol.net>
15158         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
15159         sdcc/src/pic/glue.c:
15160         introduced atexit() handler for teporay files removal in case of
15161         errors, assertions, ...
15162
15163 2002-08-29  Borut Razem <borut.razem AT siol.net>
15164         * sdcc/support/cpp2/auto-host_vc_in.h:
15165         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
15166         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
15167         Maybe there is a similar problem with BORLANDC? It should be checked!
15168
15169         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
15170         corrected improper use of assert: the assignment to clr variable was done inside the assert.
15171         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
15172         was not executed, and the compiler (cl) launched a warning:
15173         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
15174
15175 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
15176         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
15177
15178 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
15179         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
15180
15181         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
15182           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
15183           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
15184           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
15185           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
15186           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
15187           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
15188         - added Release configuration in VS projects
15189         - review of compiler an linker options
15190         - VC .exe files are generated in bin_vc directory, not to interfere
15191           with binaries generated from other projects (cygwin, mingw, bcc ...)
15192
15193         * sdcc/src/yacc.dsp: added
15194
15195         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
15196         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
15197         and insert the version number definitions from .version
15198
15199         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
15200
15201         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
15202         added - genarate auto-host.h using auto-host_vc_in.h as template
15203
15204         * sdcc/sdcc_vc.h,
15205         removed from CVS, generated automatically
15206
15207 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
15208         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
15209
15210 2002-08-11  Borut Razem <borut.razem AT siol.net>
15211         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
15212
15213 2002-08-10  Borut Razem <borut.razem AT siol.net>
15214         * src/SDCCmain.c (main):
15215         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
15216         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
15217         The consequence was that some temporary files were not removed.
15218
15219         * src/SDCCglue.c:
15220         unification of code in functions tempfilename() and tempfile():
15221         function tempnam() is defined in Visual Studio 6.0 and .NET
15222
15223         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
15224
15225         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
15226           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
15227         - removed compiler command line option /WX: Treats all warnings as errors
15228         - update a list of source files, included into the project
15229
15230         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
15231           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
15232         changed project type to Generic Project so that can be correcly converted to VS.NET project
15233
15234         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
15235
15236         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
15237
15238         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
15239
15240         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
15241         added return 0 statements after assert() to make compiler happy
15242
15243         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
15244         added newline in the def file to keep MSC compiler satisfied
15245
15246         * sdcc/src/z80/gen.c:
15247         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
15248           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
15249         - solved MSC error in function aopDump()
15250
15251         * sdcc_vc.h: define PREFIX as "\\sdcc"
15252
15253 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
15254         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
15255
15256 2002-06-22  Scott Dattalo <scott AT dattalo.com>
15257         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
15258         - Rewrote the register banking algorithm.
15259         - Added pCode live-range analysis to registers (for now, only non-used and
15260         singly-used registers optimized away)
15261
15262         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
15263
15264         * 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.
15265
15266 2002-05-10  Scott Dattalo <scott AT dattalo.com>
15267         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
15268
15269 2002-04-22  Michael Hope  <michaelh AT vroom>
15270
15271         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
15272
15273         * configure.in (DD_COPT): Added include support required for gbdk.
15274
15275         * .version: Bumped version number just to increase it.
15276
15277         * src/SDCCmain.c: Added -nostdinc to the default options.
15278
15279 2002-04-15  Michael Hope  <michaelh AT vroom>
15280
15281         * device/lib/z80/printf.c (sprintf): Added.
15282
15283         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
15284
15285         * src/z80/peeph.def: Added transpose redundent load rule.
15286
15287         * src/z80/main.c: Added force callee saves for jaune.
15288
15289         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
15290
15291         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
15292
15293 2002-03-28  Johan Knol  <johan AT balder>
15294
15295         * src/SDCCval.c: fixed bug #532436
15296
15297 2002-03-14  Scott Dattalo <scott AT dattalo.com>
15298         * /src/port.h:
15299         Added "char *Processor" field to the port structure.
15300
15301         * /src/SDCCmain.c:
15302         Added -p option. Allows port dependent processor to be specified.
15303
15304         * all ports:
15305         Initialized the new field char *Processor field to NULL in all ports
15306
15307         * /src/pic/*:
15308         Compiler generated registers for interrupt context saving
15309         were not getting allocated.
15310
15311 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
15312
15313         * /src/SDCCast.c:
15314         Fixed left shift. Will promote the left side of a left shift
15315         if a) left shifting more than size of operand or b) when assigned
15316         to something size > size of left side
15317
15318 2002-03-14  Scott Dattalo <scott AT dattalo.com>
15319         * src/pic/*
15320         tons of changes. Register allocation has been
15321         rewritten. Added customization for the various PICs. Flow
15322         analysis is restructured. ...
15323
15324         * src/pic/device.h:
15325         Added
15326
15327         * src/pic/device.c:
15328         Added. device.c is a PIC port hack to accomodate variations
15329         in PIC devices.
15330
15331 2002-03-13  Michael Hope  <michaelh AT vroom>
15332
15333         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
15334
15335 2002-03-04  johanknol  <johanknol AT manik>
15336
15337         * /src/SDCCval.c: fixed
15338
15339         const unsigned char arr[][2] = { { 0, 1 } };
15340         t18.c:1: error: Initializer element is not constant
15341
15342 2002-03-04  bela  <bela AT manik>
15343
15344         * /device/include/mcs51reg.h:
15345         ds89c420 register definition update
15346
15347 2002-03-03    <johan AT FRIJA>
15348
15349         * support/Util/SDCCerr.c: did something, but don't no why anymore
15350
15351         * support/regression/tests/bug-524691.c: made it a little less shy
15352
15353         * src/SDCCast.c (decorateType): fixed bug #524697
15354
15355         * src/SDCCast.c: made some lineno improvements
15356
15357         * src/SDCCval.c (getNelements): changed warning to error
15358
15359         * src/SDCCglue.c (printIvalArray): changed warning to error
15360
15361         * src/SDCCicode.c: fixed a warning for mingw
15362
15363         * src/SDCCast.c (decorateType): fixed the << promotion for ops
15364
15365         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
15366
15367 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
15368
15369         * src/ds390/peeph.def:
15370         Added some more peephole rules
15371
15372         * src/ds390/gen.c: Various fixes & enhancements
15373
15374         * src/SDCClrange.c, src/SDCClrange.h:
15375         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
15376
15377         * src/ds390/ralloc.c:
15378         various fixes & enhancements (ds390) specific
15379
15380         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
15381         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
15382         from rallocs.
15383
15384         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
15385
15386 2002-03-02    <johan AT FRIJA>
15387
15388         * src/SDCCast.c (decorateType): fixed bug #524708
15389
15390         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
15391
15392         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
15393
15394 2002-03-01  Michael Hope  <michaelh AT vroom>
15395
15396         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
15397
15398         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
15399
15400 2002-03-01    <johan AT FRIJA>
15401
15402         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
15403
15404         * src/SDCCast.c (decorateType): fixed bug #524209
15405
15406         * src/SDCCval.c (valNot): fixed bug #524195
15407
15408 2002-02-26    <johan AT balder>
15409
15410         * src/xa51/gen.c: fixed a warning
15411
15412         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
15413
15414         * src/SDCCast.c (decorateType): fixed bug #522534
15415
15416 2002-02-23    <johan AT balder>
15417
15418         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
15419
15420 2002-02-22    <johan AT balder>
15421
15422         * src/SDCCast.c: fixed bug #514865
15423
15424         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
15425
15426 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
15427
15428         * sdcc/src/SDCCloop.c:
15429         Previous fix was not good. basic blocks that have "break" or "return" are
15430         not really partof a loop , but live ranges used in these blocks should
15431         be live thru the entire loop, so set partOfLoop but don't add them to
15432         loop region
15433
15434 2002-02-21    <johan AT FRIJA>
15435
15436         * src/SDCCcse.c: fixed bug #514308
15437
15438 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
15439
15440         * src/SDCCloop.c:
15441         Fixed BUG #519583. If a conditional block ended in a return/break
15442         statement inside a loop, it was not being considered part of the loop.
15443
15444         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
15445
15446 2002-02-10  Karl Bongers <karl AT turbobit.com>
15447
15448         * debugger/*:
15449         Fixed up SDCDB debugger somewhat.  Updated debugger/README
15450         with lots of comments and notes.
15451
15452         * device/examples/test2.c:
15453         Fix bug, "red" variable not being initialized(compiler complained).
15454
15455         * device/examples/Makefile, examples/test3.c:
15456         Add Makefile in device/examples folder, compiles test3.c
15457         for use as a multiple module SDCDB test case.
15458
15459         * sim/ucsim/cmd.src/cmdset.cc:
15460         Took out debug printfs in ucsim "next" command.
15461
15462         * sim/ucsim/xa.src:
15463         Karl and Johan start ucsim XA support.  Most dissassembly working,
15464         about 75% emulation done(plenty of work remaining).
15465
15466         * sim/ucsim/z80.src:
15467         Add Z80 support to ucsim, add test-ucz80 regression test,
15468         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
15469         Notice z80 compiler fails on examples/test3.c/crc code.
15470
15471 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
15472
15473         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
15474         Added support for --parms-in-bank1
15475
15476         * src/ds390/peeph.def:
15477         added a few more peephole optimzations
15478
15479         * src/ds390/main.c:
15480         1) added __builtin_inp & __builtin_outp used to read in data of given length
15481            from a memory mapped port
15482         2) added __builtin_memcmp
15483         3) added __builtin_swapw swap bytes of a short
15484
15485         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
15486         1) handle multiple send & receives from register bank1
15487         2) ralloc can now allocate DPTR1 to some liveRanges
15488
15489         * src/SDCCsymt.c, src/SDCCsymt.h:
15490         changes to handle multiple sends & receives
15491
15492         * src/SDCCptropt.h:
15493         added some pointer arithmetic optimization
15494
15495         * src/SDCCptropt.c:
15496         added some pointer arithmetic optimizations but not stable yet so not
15497         called from anywhere (will get this working shortly)
15498
15499         * src/SDCCopt.c: fixed for multiple sends & receives
15500
15501         * src/SDCCmain.c:
15502         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
15503         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
15504            set preprocessor defines (depending on options)
15505
15506         * src/SDCCicode.c, src/SDCCicode.h:
15507         changes made to handle multiple sends & receives
15508
15509         * src/SDCCglobl.h:
15510         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
15511
15512         * src/SDCCcse.c, src/SDCCcse.h:
15513         added function findbackward def (to be used in upcoming optimization)
15514
15515         * src/SDCCcflow.c, src/SDCCcflow.h:
15516         added function returnAtEnd - to determine if a basic block terminates with
15517         a RETURN iCode
15518
15519         * src/SDCCast.c, src/SDCCast.h:
15520         added option parms-in-bank1
15521
15522         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
15523         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
15524         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
15525         adjusted for --parms-in-bank1 option
15526
15527         * device/include/string.h:
15528         donot redefine "reentrant" keyword
15529
15530         * device/include/ds80c390.h: Added some more SFRs
15531
15532 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
15533
15534         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
15535
15536 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
15537
15538         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
15539
15540 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
15541
15542         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
15543
15544 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
15545
15546         * Added --xram-movc option
15547
15548 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
15549
15550         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
15551
15552 2002-01-11  Johan Knol
15553
15554         * Added math lib of Jesus Calvino-Fraga
15555
15556 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
15557
15558         * src/SDCCmain.c (processFile): fix processing of ../../src.c
15559         * support/regression/Makefile: new target test-mcs51-stack-auto
15560         * support/regression/ports/mcs51-stack-auto/spec.mk: added
15561
15562 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
15563
15564         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
15565
15566 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
15567
15568         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
15569
15570 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
15571
15572         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
15573
15574         * src/SDCCglue.h: add definition for printIvalChar()
15575
15576 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
15577
15578         * src/SDCCast.c: fix #498138 by Johan
15579
15580         * src/SDCCglue.c: fix #498138 by Johan
15581
15582 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
15583
15584         * support/regression/Makefile: fix clean
15585
15586         * support/regression/ports/ds390/support.c: fix transmission of last character
15587
15588 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
15589
15590         * /sdcc/src/ds390/gen.c:
15591         a) improved computing address of stack variable
15592         b) took out some #if 0 code
15593         c) improved parmBytes adjustment
15594         d) improved genPlusIncr & genMinusIncr
15595         e) genCmp could generate bad code (when left assigned to DPTR)
15596         f) Fixed bug in hasInc
15597
15598         * /sdcc/src/ds390/ralloc.c:
15599         a) packRegsForSupport could mess up live information (Fixed)
15600         b) packRegsDPTRuse could be incorrect for left & right shift
15601
15602         * /sdcc/src/mcs51/ralloc.c:
15603         packRegsForSupport could mess up the live information (Fixed)
15604
15605         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
15606
15607         * /sdcc/src/SDCCast.c:
15608         can reverse a loop even if function call is present as long
15609         as the loop control variable is local & is not passed as parameter
15610
15611 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15612
15613         * /sdcc/ChangeLog: *** empty log message ***
15614
15615         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
15616         More builtin function additions for TININative
15617
15618         * /sdcc/src/ds390/ralloc.c:
15619         Had broken the regression testsuite
15620
15621         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
15622
15623         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
15624         Added funcattr hasStackParms will be set for reentrant functions when there
15625         are paramteres on the stack, this helps in minimizing frame pointer generation
15626         typeFromStr can handle function pointers now
15627
15628         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
15629         *** empty log message ***
15630
15631 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15632
15633         * /src/ds390/gen.c, /src/ds390/main.c:
15634         More builtin function additions for TININative
15635
15636         * /src/ds390/ralloc.c:
15637         Had broken the regression testsuite
15638
15639         * /src/SDCCast.c: Fixed a bug in dumptree
15640
15641         * /src/SDCCsymt.c, /src/SDCCsymt.h:
15642         Added funcattr hasStackParms will be set for reentrant functions when there
15643         are paramteres on the stack, this helps in minimizing frame pointer generation
15644         typeFromStr can handle function pointers now
15645
15646         * /doc/builtins.txt, /doc/TININative.txt:
15647         *** empty log message ***
15648
15649
15650 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15651
15652         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
15653         ALPHA version for -mTININative
15654
15655         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
15656         updated to reflect changes in the port structure
15657
15658         * /src/port.h:
15659         added function do_assemble (similar to do_link) if non-null this function
15660         will be called to do assembly (-mTININative) requires a multi command
15661         assembly
15662         added function genAssemblerEnd will be called to generate assembler Epilogue
15663
15664         * /src/SDCCsymt.c:
15665         added _JavaNative to debug info printing
15666
15667         * /src/SDCCmain.c: added option --tini-libid
15668         added port->do_assemble function (-mTININative) has a multi command assemble
15669
15670         * /src/SDCCglue.c: Disabled "constExpr" check
15671         added port->genAssemblerEnd function
15672
15673         * /src/SDCCglobl.h: Added option --tini-libid value
15674
15675         * /src/SDCCast.h:
15676         tookout optimizeCompare from the header (has no external references)
15677
15678         * /src/SDCCast.c: made one more function "static"
15679
15680 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
15681
15682         * src/z80/mappings.i: Added z80asm support.
15683
15684         * src/z80/main.c: Added z80asm support on --asm=z80asm
15685
15686         * src/z80/gen.c: Fixed asm portability issues.
15687
15688         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
15689
15690         * src/SDCCglue.c (printExterns): Added global/extern split.
15691
15692 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
15693
15694         * support/regression/Makefile: added test for mcs51 model large
15695
15696         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
15697
15698         * support/regression/ports/gbz80/spec.mk: added -mgbz80
15699
15700 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
15701
15702         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
15703
15704 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
15705
15706         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
15707
15708         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
15709
15710 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
15711
15712         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
15713
15714         * support/regression/tests/simplefloat.c: Port to mcs51.
15715
15716 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
15717         * support/regression/tests/bug-485362.c: Added.
15718
15719         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
15720
15721         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
15722
15723         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
15724
15725         * src/z80/gen.c (aopDump): Added a dump function.
15726
15727 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
15728         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
15729
15730         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
15731
15732         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
15733
15734         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
15735
15736         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
15737
15738         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
15739
15740         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
15741
15742         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
15743
15744         * support/regression/ports/ds390/support.c: Use tinibios.
15745
15746         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
15747
15748 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
15749
15750         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
15751         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
15752
15753         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
15754
15755         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
15756
15757 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
15758
15759         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
15760
15761         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
15762         (packRegsForIYUse): Created and optimised.
15763
15764 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
15765
15766         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
15767 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
15768
15769         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
15770
15771         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
15772
15773         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
15774
15775 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15776
15777         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
15778
15779         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
15780
15781 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15782
15783         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
15784
15785         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
15786
15787         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
15788
15789 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
15790
15791         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
15792         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
15793         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
15794
15795         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
15796
15797         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
15798         (genNotFloat): Added.
15799         (genUminusFloat): Added.
15800
15801         * device/lib/z80/Makefile: Added floating pt stubs.
15802
15803         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
15804
15805         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
15806
15807         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
15808
15809 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15810
15811         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
15812
15813         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
15814
15815         * sdcc/support/regression/Makefile: Add port ds390.
15816
15817         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
15818
15819         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
15820
15821         * sdcc/support/regression/ports/ds390/spec.mk: Added.
15822
15823         * sdcc/support/regression/ports/ds390/support.c: Added.
15824
15825         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
15826
15827         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
15828
15829         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
15830
15831 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
15832
15833         * device/include/malloc.h: Added z80 and gbz80 support.
15834
15835         * device/lib/gbz80/heap.s: Added.
15836
15837         * device/lib/z80/heap.s: Added.
15838
15839         * device/lib/malloc.c: Added z80 and gbz80 support.
15840
15841         * support/regression/tests/malloc.c (testMalloc): Added.
15842
15843         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
15844
15845         * support/regression/tests/bug-478094.c: Added.
15846
15847         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
15848
15849 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
15850
15851         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
15852
15853         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
15854
15855         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
15856
15857         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
15858
15859         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
15860
15861 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
15862
15863         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
15864
15865 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
15866
15867         * support/regression/tests/bug-477927.c: Added.
15868
15869         * src/z80/peeph.def: Added minor rules.
15870
15871         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
15872
15873         * src/z80/peeph.def: Added jump optimisation modification.
15874
15875 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
15876
15877         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
15878
15879 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
15880
15881         * support/regression/tests/funptrs.c: Added.
15882
15883 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
15884
15885         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
15886
15887 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
15888
15889         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
15890
15891         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
15892
15893         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
15894         (movLeft2ResultLong): Created.
15895
15896         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
15897         (joinPushes): Added.  Joins two char pushes into a word push.
15898
15899 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
15900
15901         * support/cpp2/Makefile.in (install): Added creation of dest dir.
15902
15903         * support/makebin/Makefile (install): Added creation of dest dir.
15904
15905 2001-10-24 Karl Bongers <karl AT turbobit.com>
15906
15907         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
15908
15909 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
15910
15911         * src/z80/ralloc.c: Turned off faulty pack for one use.
15912
15913         * src/z80/peeph-gbz80.def: Removed redundent restart options.
15914
15915         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
15916
15917 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
15918
15919         * support/regression/Makefile: Improved clean
15920
15921         * support/regression/ports/gbz80/spec.mk: Added clean
15922
15923         * support/regression/ports/host/spec.mk: Added clean
15924
15925         * support/regression/ports/z80/spec.mk: Added clean
15926
15927         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
15928
15929         * support/regression/ports/mcs51/timeout.c: little improvements
15930
15931 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
15932
15933         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
15934
15935         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
15936
15937         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
15938
15939 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
15940
15941         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
15942
15943         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
15944
15945 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
15946         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
15947
15948         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
15949
15950         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
15951
15952         * src/mcs51/main.c (_linkCmd): Added bin path to command.
15953
15954         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
15955
15956         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
15957
15958         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
15959
15960         * support/regression/tests/longor.c: Added.
15961
15962 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
15963
15964         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
15965
15966         * as/mcs51/aslink.h: define PATH_MAX
15967
15968         * as/mcs51/asm.h: define PATH_MAX
15969
15970         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
15971
15972         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
15973
15974         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
15975
15976         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
15977
15978         * src/SDCCglobl.h: define PATH_MAX
15979
15980         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
15981
15982         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
15983
15984 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
15985
15986         * src/z80/gen.c (gencjneshort): Fixed
15987
15988         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
15989
15990 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
15991
15992         * support/regression/tests/bug-469671.c: Added.
15993
15994         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
15995
15996 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
15997
15998         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
15999
16000         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
16001
16002 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
16003
16004         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
16005
16006         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
16007
16008         * src/device/lib/_mullong.c : removed hint: nooverlay bug
16009
16010         * src/device/lib/_divuint.c : removed hint: nooverlay bug
16011
16012         * src/device/lib/_divulong.c: removed hint: nooverlay bug
16013
16014         * src/device/lib/_moduint.c : removed hint: nooverlay bug
16015
16016         * src/device/lib/_modulong.c: removed hint: nooverlay bug
16017
16018 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
16019
16020         * 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.
16021
16022         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
16023
16024         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
16025
16026 2001-10-07    <johan AT FRIJA>
16027
16028         * device/lib/gets.c (gets): fixed the return value.
16029
16030 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
16031         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
16032
16033         * 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.
16034
16035         * 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.
16036
16037         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
16038
16039         * src/pic/gen.c: Removed Safe_strdup.
16040
16041         * configure.in: Added option to enable libgc support.
16042
16043         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
16044         (bitVectUnion): Optimised.
16045         (bitVectIntersect): Optimised.
16046         (bitVectBitsInCommon): Optimised.
16047         (bitVectCplAnd): Optimised.
16048
16049         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
16050
16051 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16052
16053         * src/SDCCmain.c: distinguish between assembler debug and plain options
16054
16055         * src/avr/main.c:   remove standard assembler options
16056
16057         * src/ds390/main.c: remove standard assembler options
16058
16059         * src/mcs51/main.c: remove standard assembler options
16060
16061         * src/port.h: removed "PENDING" comment
16062
16063 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16064
16065         * src/device/lib/_mulint.c  : new, with assember functions
16066
16067         * src/device/lib/_mullong.c : new, with assember functions
16068
16069         * src/device/lib/_divuint.c : with assember functions
16070
16071         * src/device/lib/_divsint.c : with assember functions
16072
16073         * src/device/lib/_divulong.c: with assember functions
16074
16075         * src/device/lib/_divslong.c: with assember functions
16076
16077         * src/device/lib/_moduint.c : with assember functions
16078
16079         * src/device/lib/_modsint.c : with assember functions
16080
16081         * src/device/lib/_modulong.c: with assember functions
16082
16083         * src/device/lib/_modslong.c: with assember functions
16084
16085         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
16086
16087         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
16088
16089         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
16090                                       replaced _mululong.c and _mulslong.c by _mullong.c
16091
16092 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
16093
16094         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
16095
16096 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
16097
16098         * src/SDCCglue.c: test, if win32api is available for MINGW
16099
16100 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
16101
16102         * src/SDCCsymt.c: no more _modifier in printTypeChain()
16103         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
16104         * support/regression/ports/gbz80/spec.mk: removed GENERIC
16105         * support/regression/ports/host/spec.mk: removed GENERIC
16106         * support/regression/ports/mcs51/spec.mk: removed GENERIC
16107         * support/regression/ports/z80/spec.mk: removed GENERIC
16108
16109 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
16110
16111         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
16112
16113         * support/regression/tests/bug-467035.c: Created.
16114
16115 2001-10-01    <johan AT FRIJA>
16116
16117         * src/SDCC.y: fixed bug #466586 part 1
16118
16119 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
16120
16121         * SDCCicode.c: z80 has no generic pointers
16122         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
16123
16124 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
16125
16126         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
16127
16128 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
16129
16130         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
16131
16132         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
16133
16134 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
16135
16136         * configure.in: Fixed up so that ucsim is only configured once.
16137
16138         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
16139
16140         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
16141         (getPathDifference): As above.
16142
16143         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
16144
16145         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
16146
16147 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
16148         * .version: Updated to 2.3.1
16149
16150         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
16151         Added copyright header.
16152
16153         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
16154         (assemble): Added support for macro based assembler commands.
16155         (linkEdit): Added support for macro based linker commands.
16156         (preProcess): Changed the pre-processor to use macros.
16157         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
16158         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
16159
16160         * device/lib/z80/crt0.s: Added module name for debugging.
16161
16162 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
16163
16164         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
16165
16166         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
16167
16168         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
16169
16170         * src/Makefile.in: Added SDCCmacro and SDCCutil
16171
16172 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
16173
16174         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
16175
16176 2001-09-16    <johan AT FRIJA>
16177
16178         * 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.
16179
16180 2001-09-15    <johan AT FRIJA>
16181
16182         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
16183         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
16184
16185 2001-09-11    <johan AT FRIJA>
16186
16187         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
16188
16189 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
16190
16191         * support/regression/tests/bug-460444.c: Added test case.
16192
16193         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
16194         (genCast): Added justification for all of the asserts.
16195
16196 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
16197
16198         * support/regression/support.c: _xdata replaced by xdata
16199
16200         * support/regression/spec.mk: removed _generic
16201
16202 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
16203
16204         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
16205
16206         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
16207         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
16208
16209         * src/z80/peeph.def: Added a rule to optimise shift then compare.
16210
16211         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
16212
16213         * support/regression/tests/bug-460010.c: Added test case.
16214
16215         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
16216
16217 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
16218
16219         * support/regression/Makefile: inter-port-clean adjusted for mcs51
16220
16221         * support/regression/testfwk.c: removed workaround for bug #436344
16222
16223         * support/regression/tests/bp.c: use less memory with mcs51
16224
16225         * support/regression/tests/bug-441448.c: use less memory
16226
16227         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
16228
16229         * support/regression/collate-results.py: typo
16230
16231 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
16232
16233         * support/regression/tests/fetchoverlap.c: Added new test case.
16234
16235         * support/regression/tests/bp.c: Added new test case.
16236
16237         * support/regression/tests/bug-448984.c: Added new test case.
16238
16239         * support/regression/tests/pow2shifts.c: Added new test case.
16240
16241         * src/z80/gen.c: Turned off the noise it normally generates for the release.
16242         (genlshTwo): Fixed right shift for count > 8.
16243
16244         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
16245
16246 2001-09-08    <johan AT FRIJA>
16247
16248         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
16249
16250 2001-09-07    <johan AT FRIJA>
16251
16252         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
16253
16254         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
16255
16256 2001-09-06    <johan AT FRIJA>
16257
16258         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
16259         * bernhard noted me at this: "() equals to (void)" (1.38)
16260
16261 2001-09-05    <johan AT FRIJA>
16262
16263         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
16264
16265 2001-09-04    <johan AT FRIJA>
16266
16267         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
16268
16269
16270 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
16271
16272         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
16273
16274 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
16275
16276         * link/z80/aslink.h: Fixed path for PATH_MAX
16277
16278 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
16279
16280         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
16281
16282         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
16283
16284         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
16285
16286         * 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.
16287
16288 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
16289
16290         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
16291         (genCmp): Fixed up genCmp for the GB with longs.
16292
16293         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
16294
16295         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
16296
16297         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
16298
16299         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
16300
16301 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
16302
16303         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
16304
16305 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
16306
16307         * 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.
16308
16309         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
16310
16311 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
16312
16313         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
16314
16315         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
16316
16317 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
16318
16319   * sim/ucsim/configure:    little improvement of Cygwin-detection
16320   * sim/ucsim/configure.in: little improvement of Cygwin-detection
16321   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
16322   * support/regression/tests/bug-221100.c: small changes for mcs51
16323   * support/regression/tests/bug-221168.c: small changes for mcs51
16324   * support/regression/tests/bug-227710.c: small changes for mcs51
16325   * support/regression/tests/staticinit.c: small changes for mcs51
16326   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
16327   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
16328   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
16329
16330 $Revision$