* support/regression/tests/bug1816470.c: new, added
[fw/sdcc] / ChangeLog
1 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * support/regression/tests/bug1816470.c: new, added
4
5 2007-10-21 Maarten Brock <sourceforge.brock AT dse.nl>
6
7         * src/SDCCast.c (resultTypePropagate): do propagate for LEFT_OP, do not
8           propagate for *,+,- with float, fixed bug 1816470
9           (decorateType): cast to resultTypeProp instead of resultType
10
11 2007-10-19 Borut Razem <borut.razem AT siol.net>
12
13         * src/pic16/glue.c: fixed bug #983491 - "Merge duplicate strings
14           function is ineffective" for pic16 tareget
15         * support/scripts/listerr.c: corrected include path
16         * device/lib/_itoa.c: fixed bug #1806402 - _itoa and _uitoa leak to
17           adjacent memory
18
19 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
20
21         * support/regression/tests/using.c: new, added
22         * support/regression/tests/vaargs.c: fixed and enabled test
23
24 2007-10-18 Borut Razem <borut.razem AT siol.net>
25
26         * src/SDCCglue.c: fixed bug #983491 - Merge duplicate strings function
27           is ineffective
28         * support/regression/tests/bug-983491.c: added regtest for bug #983491
29
30 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
31
32         * doc/sdccman.lyx: documented option --Werror
33         * src/SDCCsymt.c (checkFunction): fixed bug 1815418 by setting
34           RegBankUsed[] earlier
35
36 2007-10-14 Maarten Brock <sourceforge.brock AT dse.nl>
37
38         * device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
39         * src/pic/glue.c,
40         * src/SDCCval.c,
41         * src/SDCCast.c,
42         * src/SDCCast.h: replaced AST_LIT_VALUE with AST_FLOAT_VALUE and
43           AST_ULONG_VALUE
44         * src/SDCCast.c (decorateType): improved optimization of tri-op
45         * src/SDCCerr.c (vwerror, setWError),
46         * src/SDCCerr.h,
47         * src/SDCCmain.c (parseCmdLine): added option --Werror to treat all
48           warnings as errors, thanks Stas Sergeev for PATCH 1813211
49
50 2007-10-13 Maarten Brock <sourceforge.brock AT dse.nl>
51
52         * src/mcs51/gen.c (leftRightUseAcc): use macro IS_OP_ACCUSE
53         * src/SDCCast.c (decorateType): optimize bit=cond?1:0, RFE 1738430
54         * support/regression/tests/bug-223113.c,
55         * support/regression/tests/bug-426632.c,
56         * support/regression/tests/bug-468811.c,
57         * support/regression/tests/bug-477835.c,
58         * support/regression/tests/bug-478094.c,
59         * support/regression/tests/bug-499644.c,
60         * support/regression/tests/bug-524209.c,
61         * support/regression/tests/bug-524211.c,
62         * support/regression/tests/packcast.c,
63         * support/regression/tests/structidx.c: added empty tests
64         * support/regression/tests/bug-607243.c: enabled test
65
66 2007-10-06 Borut Razem <borut.razem AT siol.net>
67
68         * .version, doc/sdccman.lyx: bumped version to 2.7.4 to indicate the full
69            support of universal binaries on Mac OS X
70
71 2007-10-02 Borut Razem <borut.razem AT siol.net>
72
73         * src/SDCCval.h: unified double2ul macro for all platforms
74         * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
75         * support/regression/tests/bitwise.c: added regtest for bug #1777758
76
77 2007-09-30 Borut Razem <borut.razem AT siol.net>
78
79         * src/SDCCval.h: fixed bug #1739860 - sdcc does not work correctly on some
80           platforms
81         * sdcc_vc_in.h: enabled warnings
82         * src/hc08/gen.c: fixed MSVC warning C4146: unary minus operator applied to
83           unsigned type, result still unsigned
84         * src/mcs51/peep.c: fixed gcc warning: suggest parentheses around && within ||
85
86 2007-09-28 Raphael Neider <rneider AT web.de>
87
88         * src/pic/device.c (find_device): prevent buffer underflow error
89         * src/pic/pcoderegs.c (OptimizeRegUsage): avoid dereferencing
90           the just destroyed list entry
91
92 2007-09-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
93
94         * doc/sdccman.lyx: there's a dedicated wiki page for cmake and sdcc, thanks
95           Alexander Neundorf
96
97 2007-09-18 Borut Razem <borut.razem AT siol.net>
98
99         * src/SDCCval.c: fixed MSVC warning C4146: unary minus operator
100          applied to unsigned type, result still unsigned
101
102 2007-09-17 Borut Razem <borut.razem AT siol.net>
103
104         * src/SDCC.y, src/SDCCast.c, src/SDCCcse.c, src/SDCCglue.c,
105           src/SDCCicode.c, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCval.c,
106           src/SDCCval.h, src/hc08/gen.c, src/avr/gen.c, src/ds390/gen.c,
107           src/mcs51/gen.c, src/pic/gen.c, src/pic/genarith.c, src/pic/glue.c,
108           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/genarith.c,
109           src/pic16/genutils.c, src/pic16/glue.c, src/pic16/main.c,
110           src/z80/gen.c, src/z80/ralloc.c:
111           fixed bug #1739860 - sdcc does not work correctly on some platforms
112           (not finished)
113           introduced and used ulFromVal(), double2ul(), used strtod() instead sscanf()
114
115 2007-09-17 Raphael Neider <rneider AT web.de>
116
117         * src/pic16/device.c: reverted to previous version
118         * device/lib/pic16/Makefile.common.in: quieten gpasm via -Wa,-q
119
120 2007-09-16 Raphael Neider <rneider AT web.de>
121
122         * src/pic16/device.c (pic16_dump_usection): do not reserve 0 bytes,
123           as this raises a ton of gpasm warnings, just emit a second label
124         * src/pic16/devices.inc,
125         * device/lib/pic16/pics.all,
126         * device/lib/pic16/libdev/pic18f2585.c,
127         * device/lib/pic16/libdev/pic18f2680.c,
128         * device/lib/pic16/libdev/pic18f2682.c,
129         * device/lib/pic16/libdev/pic18f2685.c,
130         * device/lib/pic16/libdev/pic18f4585.c,
131         * device/lib/pic16/libdev/pic18f4680.c,
132         * device/lib/pic16/libdev/pic18f4682.c,
133         * device/lib/pic16/libdev/pic18f4685.c,
134         * device/include/pic16/pic18f2585.h,
135         * device/include/pic16/pic18f2680.h,
136         * device/include/pic16/pic18f2682.h,
137         * device/include/pic16/pic18f2685.h,
138         * device/include/pic16/pic18f4585.h,
139         * device/include/pic16/pic18f4680.h,
140         * device/include/pic16/pic18f4682.h,
141         * device/include/pic16/pic18f4685.h,
142         * device/include/pic16/pic18fregs.h: added 18f2585, 18f2680,
143           18f2682, 18f2685, 18f4585, 18f4680, 18f4682, 18f4685,
144           patch contributed by Anton Strobl, applied with changes
145
146 2007-09-16 Raphael Neider <rneider AT web.de>
147
148         * device/include/pic16/pic18f2431.h,
149         * device/include/pic16/pic18f25j10.h,
150         * device/include/pic16/pic18f4431.h,
151         * device/include/pic16/pic18f45j10.h: adopted common include style
152         * device/include/pic16/pic18f1320.h,
153         * device/include/pic16/pic18f2320.h,
154         * device/include/pic16/pic18f2525.h,
155         * device/include/pic16/pic18f4320.h,
156         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
157         * device/include/pic16/pic18fregs.h: prepared for automatic include
158           file selection by having DEVICE.h for every DEVICE
159         * device/lib/pic16/libdev/pic18f2320.c,
160         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
161
162         * device/lib/pic16/configure.in,
163         * device/lib/pic16/configure: use rm -rf instead of rmdir
164         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
165         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
166
167 2007-09-09 Borut Razem <borut.razem AT siol.net>
168
169         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
170           distingush between i386 and ppc Mac OS X versions
171
172 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
173
174         * src/mcs51/gen.c (genReceive): fixed bug 1788177
175         * support/regression/tests/bug1788177.c: new, added
176
177 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
178
179         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
180         * device/include/mcs51/lint.h added keyword __naked
181
182 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
183
184         * src/pic16/glue.c,
185         * src/pic/glue.c,
186         * src/SDCCmem.h: removed maxRegBank
187         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
188           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
189         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
190         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
191           name and behaviour to handle banked functions
192           (scan4op): and use it to fix bug 1786213
193
194 2007-09-03 Raphael Neider <rneider AT web.de>
195
196         * device/include/pic16/pic18f248.h,
197         * device/include/pic16/pic18f258.h,
198         * device/include/pic16/pic18f448.h,
199         * device/lib/pic16/libdev/pic18f248.c,
200         * device/lib/pic16/libdev/pic18f258.c,
201         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
202           added T0CONbits, fixes #1786891
203
204 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
205
206         * src/ds390/gen.c (genFarPointerSet),
207         * src/hc08/ralloc.c (packRegisters),
208         * src/mcs51/ralloc.c (packRegisters),
209         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
210           bug 1750318
211         * src/SDCCicode.h: POINTER_SET can be true for literals too
212         * support/regression/tests/bug1750318.c: new, added
213
214 2007-08-23 Borut Razem <borut.razem AT siol.net>
215
216         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
217           library versions without the completition functionality
218
219 2007-08-22 Raphael Neider <rneider AT web.de>
220
221         * device/include/pic16/pic18f1220.h,
222         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
223
224 2007-08-12 Borut Razem <borut.razem AT siol.net>
225
226         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
227
228 2007-08-11 Borut Razem <borut.razem AT siol.net>
229
230         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
231           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
232           support/Util/SDCCerr.[ch] moved to src
233         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
234           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
235           device/examples/ds390/tinitalk/tinitalk.dsp,
236           device/examples/serialcomm/windows/serialcomm.dsp,
237           support/librarian/librarian.dsp:
238           removed linking of unused odbc32.lib and odbccp32.lib
239         * support/scripts/winres.h:
240           added for compilation with Visual C++ 2005 Express Edition
241
242 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
243
244         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
245           and CKCON1.
246
247 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
248
249         * sdccconf_in.h: update the endian test so that SPARC Solaris
250           does not throw syntax errors
251
252 2007-08-06 Borut Razem <borut.razem AT siol.net>
253
254         * doc/sdccman.lyx: removed two index entries which prevented the
255           generation of sdcc doc archive
256
257 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
258
259         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
260           instead of lyx 1.5.0.
261
262 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
263
264         * device/include/hc08/mc68hc908apxx.h: new header contributed by
265           Lucas Loizaga, with minor modifications. Thanks!
266
267 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
268
269         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
270           in sdcclib.
271
272 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
273
274         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
275           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
276           with acall/ajmp.
277
278 2007-07-22 Borut Razem <borut.razem AT siol.net>
279
280         * configure.in, configure: re-introduced .version
281         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
282           the version reverted to 2.7.0
283
284 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
285
286         * configure.in,
287         * doc/sdccman.lyx: bumped version to 2.7.3
288         * device/include/mcs51/compiler.h: fixed elif->else
289         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
290         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
291           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
292            enable accuse for bit operands
293         * src/SDCCmain.c (printVersionInfo),
294         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
295           environment descriptor
296         * src/SDCCutil.h: added getBuildEnvironment
297         * src/SDCCglue.c (initialComments): use getBuildEnvironment
298         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
299         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
300         * support/regression/tests/bug1348008.c,
301         * support/regression/tests/bug1496419.c,
302         * support/regression/tests/bug1503067.c,
303         * support/regression/tests/preproc.c: added empty tests
304
305 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
306
307         * support/regression/tests/bug1678803.c: new, added
308
309 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
310
311         * as/link/aslink.h,
312         * as/link/hc08/lkihx.c,
313         * as/link/hc08/lkrloc.c,
314         * as/link/mcs51/lkihx.c,
315         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
316           ihxExtendedLinearAddress
317         * as/link/mcs51/lkrloc.c (relr),
318         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
319           acall/ajmp, see bug 830513
320
321 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
322
323         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
324           (cseBBlock): remember aggr2ptr has been used
325         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
326           (geniCodeAssign): fixed bug 868103
327         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
328           added operandSize prototype
329         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
330           (genDataPointerSet): use max of size of right and result,
331           (gencjne): added parameter useCarry for optimization,
332           (genCmpEq): use carry if appropriate,
333           (genXor): check if operand already in carry
334         * support/regression/tests/bug-868103.c: enabled test
335
336 2007-07-12 Raphael Neider <rneider AT web.de>
337
338         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
339
340 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
341
342         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
343           from Robert Larice, thanks
344         * support/regression/tests/bitopcse.c,
345         * support/regression/tests/bitvars.c,
346         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
347         * support/regression/tests/bug-927659.c: enabled test for z80
348         * support/regression/tests/bug1738367.c: added extra tests by Frieder
349         * support/regression/tests/bug1745717.c: new, added
350         * support/regression/tests/literalop.c,
351         * support/regression/tests/nullstring.c: removed storage definitions that
352           are now in testfwk.h
353
354 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
355
356         * device/include/stdbool.h: do not define __bool_true_false_are_defined
357           and bool for targets that do not fully support it.
358         * support/regression/tests/bug1546986.c,
359         * support/regression/tests/bug1723128.c,
360         * support/regression/tests/bug1734654.c,
361         * support/regression/tests/bug1738367.c,
362         * support/regression/tests/constantRange.c: only use bool if allowed
363
364 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
365
366         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
367           Larice, also handle function pointers
368         * support/regression/tests/bug1749275.c: new, added
369
370 2007-07-03 Borut Razem <borut.razem AT siol.net>
371
372         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
373           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
374           #1746528: SDCC should ignore ':' in inline assembler comments
375         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
376
377 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
378
379         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
380         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
381
382 2007-06-29 Borut Razem <borut.razem AT siol.net>
383
384         * src/SDCCmain.c: fixed bug
385           #1744746: SDCC #4867: broken option --xram-size
386
387 2007-06-28 Borut Razem <borut.razem AT siol.net>
388
389         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
390           find out the endianess of host machine for ucsim
391
392 2007-06-27 Borut Razem <borut.razem AT siol.net>
393
394         * support/regression/generate-cases.py: corrected the file name
395           in warning
396         * configure.in, configure, sdccconf_in.h: find out the endianess of
397           host machine
398         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
399           negative size
400
401 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
402
403         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
404
405 2007-06-26 Borut Razem <borut.razem AT siol.net>
406
407         * support/regression/generate-cases.py: display warning if function
408           list is empty; implemented more flexible rule for detection of
409           testing functions, allowing return type 'void' in the same line as
410           the function name in the function definition
411         * support/regression/tests/bug-1654060.c: corrected test
412         * support/librarian/sdcclib.c: fixed warning:
413           format '%s' expects type 'char *', but argument 2 has type 'int'
414
415 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
416
417         * support/librarian/sdcclib.c: Added feature Requests [1510635]
418           Multiple infiles for sdcclib.
419
420 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
421
422         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
423           bug 1731741
424
425 2007-06-18 Borut Razem <borut.razem AT siol.net>
426
427         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
428           how to handle comments, so they have to be removed by the
429           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
430         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
431           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
432           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
433           table driven option hadling
434
435 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
436
437         * src/SDCCast.c (decorateType),
438         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
439           iCode to ast level to fix bug 1738367
440         * support/regression/tests/bug1738367.c: new, added
441
442 2007-06-15 Raphael Neider <rneider AT web.de>
443
444         * src/pic16/devices.inc,
445         * device/lib/pic16/pics.all,
446         * device/include/pic16/pic18fregs.h,
447         * device/include/pic16/pic18f[24][45]20.h,
448         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
449           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
450         * device/lib/pic16/Makefile.in: faster cleanup
451
452 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
453
454         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
455
456 2007-06-13 Raphael Neider <rneider AT web.de>
457
458         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
459
460 2007-06-12 Raphael Neider <rneider AT web.de>
461
462         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
463           suppress bit defines if NO_BIT_DEFINES is #define'd
464         * device/include/pic/pic*.h: recreated all headers to include
465           conditional bit defines
466         * device/include/pic/pic16f886.h,
467         * device/include/pic/pic16f887.h: fixed based on newer .inc file
468         * device/include/pic/recreate.sh: script to recreate the complete
469           device library files based on the currently supported devices
470
471 2007-06-12 Borut Razem <borut.razem AT siol.net>
472
473         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
474           support/regression/Makefile.in, support/scripts/build.mak,
475           support/scripts/Makefile.snapshot:
476           use new svn URL scheme
477         * doc/sdccman.lyx: SDCC Wiki moved to
478           http://sdcc.wiki.sourceforge.net/
479
480 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
481
482         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
483         * support/regression/tests/bug1734654.c: added
484
485 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
486
487         * src/SDCCast.c (decorateType): optimized '?' for equal operands
488         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
489           with literal operands
490
491 2007-06-10 Borut Razem <borut.razem AT siol.net>
492
493         * as/link/z80/lklibr.c: fixed mingw build warning
494           lklibr.c:575: warning: implicit declaration of function 'tolower'
495         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
496           src/z80/main.c: move target specific options from src/SDCCmain.c
497           to src/<target>/main.c
498
499 2007-06-09 Borut Razem <borut.razem AT siol.net>
500
501         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
502           removed unused swap_sense; removed outBitCLong, replaced with outBitC
503         * support/regression/tests/bug-1294691.c: added
504
505 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
506
507         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
508           can also be static, fixes bug 1733438
509         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
510           have absolute address too
511           (computeType): added optimization for 'cond ? true : false'
512         * support/regression/tests/absolute.c: added test for static absolute var
513
514 2007-06-08 Raphael Neider <rneider AT web.de>
515
516         * src/regression/Makefile: suppress parallel builds, allow easy
517           switching between pic14/pic16 ports
518         * src/regression/picregs.h: added pic14/16 header file switch
519         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
520           inline.c,nestfor.c,string1.c}: include "picregs.h"
521
522 2007-06-07 Borut Razem <borut.razem AT siol.net>
523
524         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
525           permanent solution to suppress GCC 4.2.0 c++ warning:
526           deprecated conversion from string constant to `char *'
527           use 'const char *' where ever required
528         * support/regression/generate-cases.py: implemented more flexible rule
529           for detection of testing functions, allowing white-spaces surrounding
530           the function name and the 'void' parameter.
531         * support/regression/tests/constantRange.c,
532           support/regression/tests/scott-compare3.c: fixed failing regression
533           tests, uncovered by implementation of more flexible rule for detection
534           of testing functions
535
536 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
537
538         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
539
540 2007-06-04 Borut Razem <borut.razem AT siol.net>
541
542         * configure.in, configure, config_vc.awk: sdcc version number is now
543           stored in configure.in; removed .version
544         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
545           doc/INSTALL.txt: version bumped to 2.7.2
546         * sim/ucsim/configure.in, sim/ucsim/configure:
547           use "read" to read from .version
548
549 2007-06-03 Borut Razem <borut.razem AT siol.net>
550
551         * */Makefile.in: removed annoying warning:
552           Makefile:xx: Makefile.dep: No such file or directory
553
554 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
555
556         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
557           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
558         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
559         * src/SDCCast.c (resultTypePropagate): propagate for '!',
560           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
561           bugfix: only use newBoolLink for bit result type
562         * src/SDCCicode.c (geniCodeLogic): added param tree,
563           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
564           (geniCodeLogicAndOr): use IS_BIT,
565           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
566           (ast2iCode): added tree param to geniCodeLogic for comparisons
567         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
568         * support/regression/tests/bug1723128.c: added test NotZero
569
570 2007-06-01 Borut Razem <borut.razem AT siol.net>
571
572         * SDCPP synchronized with GCC CPP release version 4.2.0,
573           currently the latest release:
574         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
575           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
576           support/cpp2/cppdefault.h, support/cpp2/except.h,
577           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
578           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
579           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
580           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
581           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
582           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
583           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
584           support/cpp2/opts.h, support/cpp2/output.h,
585           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
586           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
587           support/cpp2/system.h, support/cpp2/version.c,
588           support/cpp2/Makefile.in: modified
589         * support/cpp2/opts-common.c: added
590         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
591         * device/lib/pic16/libdev/pic18f[24]5j10.c:
592           search for included source file in local directory
593         * sim/ucsim/configure, sim/ucsim/configure.in:
594           temporary solution to suppress GCC 4.2.0 c++ warning:
595           deprecated conversion from string constant to `char *'
596
597 2007-06-01 Raphael Neider <rneider AT web.de>
598
599         * device/lib/pic/libdev/pic12f683.c,
600         * device/include/pic/pic12f683.h: added GPIO bits
601
602 2007-06-01 Raphael Neider <rneider AT web.de>
603
604         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
605           quotation marks, clarified role of PIC14 vs. PIC16 ports
606         * src/pic16/devices.inc,
607         * device/include/pic16/pic18fregs.h,
608         * device/include/pic16/pic18f[24][45]j10.h,
609         * device/lib/pic16/pics.all,
610         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
611           18f24j10, 18f25j10, 18f44j10, and 18f45j10
612         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
613           for new devices as they are not yet supported by gputils
614
615 2007-05-31 Borut Razem <borut.razem AT siol.net>
616
617         * Small Device C Compiler 2.7.0 released
618         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
619           changed sdcc version to 2.7.1
620         * support/scripts/sdcc.nsi: added How to create WIN32 release
621           setup.exe package
622
623 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
624
625         * doc/sdccman.lyx: documented initialization and allocation of absolute
626           variables, bit parameter passing, the need for function pointers to be
627           reentrant and alpha quality support of inline and retrict
628
629 2007-05-26 Borut Razem <borut.razem AT siol.net>
630
631         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
632           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
633         * docs/knownbugs.html: updated
634
635 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
636
637         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
638           thanks Jan Waclawek
639         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
640           AOP_CRY and ruonly
641           (gencjneshort): optimized when left is AOP_DIR
642         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
643           initializing unions in a struct/array
644         * support/regression/fwk/include/testfwk.h: added defines for data, near
645           and far for host and z80
646         * support/regression/tests/bug1723128.c: new, added
647
648 2007-05-22 Borut Razem <borut.razem AT siol.net>
649
650         * doc/knownbugs.html: updated
651
652 2007-05-21 Raphael Neider <rneider AT web.de>
653
654         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
655           error message instead
656         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
657
658 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
659
660         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
661
662 2007-05-21 Raphael Neider <rneider AT web.de>
663
664         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
665           closes #1722392
666         * src/regression/gpsim_assert.h,
667         * src/regression/Makefile,
668         * src/regression/pcodeopt.c: regression test for the above fix
669
670 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
671
672         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
673           jumps to self, fixed bug 1717281
674
675 2007-05-10 Borut Razem <borut.razem AT siol.net>
676
677         * support/scripts/gen_known_bugs.pl: cosmetic fix
678         * doc/knownbugs.html: generated by gen_known_bugs.pl
679
680 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
681
682         * src/SDCCast.c (createFunction): also generate non-inlined version of
683           function for functions declared as "static inline"
684         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
685           function can be inlined after non-inlined version generated.
686
687 2007-05-10 Borut Razem <borut.razem AT siol.net>
688
689         * support/scripts/gen_known_bugs.pl: added script
690           which generates knownbugs.html
691
692 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
693
694         * doc/knownbugs.html: updated for release 2.7.0
695
696 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
697
698         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
699
700 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
701
702         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
703           (throughout): updated generating comments
704         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
705           (throughout): updated generating comments
706         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
707           rule instead of at the second, or it might skip lines when removing the
708           complete match
709         * support/regression/tests/bug1714204.c: changed test to foo
710
711 2007-05-08 Borut Razem <borut.razem AT siol.net>
712
713         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
714           thanks to SDCC Distributed Compile Farm members,
715           added Z80 and GBZ80 command line options
716         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
717
718 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
719
720         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
721         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
722         * support/regression/tests/longlit.c: modified to be tested at all and
723           to pass the actual test
724
725 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
726
727         * device/include/mcs51/uPSD33xx.h: Added.
728
729 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
730
731         * device/lib/_gptrput.c,
732         * device/lib/_gptrget.c: removed old code,
733          (_gptrgetWord),
734         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
735         * support/regression/tests/bug1714204.c: new, added
736
737 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
738
739         * support/regression/tests/regtrack.c: test was never executed
740           because of the regression test being picky about white spaces.
741         * device/lib/mcs51/crtclear.asm: added comment
742
743 2007-05-06 Raphael Neider <rneider AT web.de>
744
745         * device/lib/pic/Makefile.rules,
746         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
747           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
748
749 2007-05-06 Raphael Neider <rneider AT web.de>
750
751         * src/pic16/device.h,
752         * src/pic16/main.h,
753         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
754           _pic16_setDefaultOptions): removed/reordered command-line args
755         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
756           devices, regrouped command line args, environment variables),
757           clarified sone points, added sections on how to add devices to the
758           PIC14/PIC16 ports
759
760 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
761
762         * src/z80/peeph.def: fixed bug in rule 2
763
764 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
765
766         * src/port.h: added TARGET_MCS51_LIKE
767         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
768           take advantage of it too
769         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
770           (shiftR2Left2Result): Optimized: don't check shifting by 0
771         * src/z80/peeph-z80.def,
772         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
773           modifications, see patch 1700823
774         * src/mcs51/peep.c (): fixed bug 1712928
775         * support/regression/tests/bug1712928.c: new, added
776
777 2007-05-05 Borut Razem <borut.razem AT siol.net>
778
779         * device/lib/pic16/Makefile.common.in,
780           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
781           removed bash dependencies
782
783 2007-05-01 Borut Razem <borut.razem AT siol.net>
784
785         * src/SDCCicode.c:
786           fixed bug #1710507: --i-code-in-asm makes compile fail
787           all iCode comments are now one liners
788         * src/mcs51/gen.c: fixed memory leak
789
790 2007-05-01 Raphael Neider <rneider AT web.de>
791
792         * device/lib/pic/libdev/*.c
793         * device/include/pic/*.h: regenerated all device libs from updated
794           .inc files
795         * support/scripts/inc2h.pl: documented usage, now uses strict to
796           catch more bugs
797
798 2007-04-30 Borut Razem <borut.razem AT siol.net>
799
800         * doc/sdccman.lyx:
801           fixed bug #1669175: Problem with space in output paths
802           documented how to use paths with spaces for Windows users
803
804 2007-04-29 Borut Razem <borut.razem AT siol.net>
805
806         * Fixed svn:eol-style and svn:keywords properties
807         * src/SDCCval.c: fixed bug
808           #1592871: Segfault with "large" const arrays of characters
809           replaced recursion with iteration
810         * Removed svn:executable property from non-executable files
811
812 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
813
814         * src/mcs51/gen.c (genRet): fixed bug 1707003
815
816 2007-04-27 Raphael Neider <rneider AT web.de>
817
818         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
819           createReachingDefinitions,assignValnums,pic16_destructDF,
820           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
821           prevent NULL pointer dereferences
822         * device/lib/pic/libdev/pic16f886.c,
823         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
824           prevent building them, gputils do not really support them yet
825
826 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
827
828         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
829           helps printf_small. 32 bytes more __idata mem.
830
831 2007-04-27 Raphael Neider <rneider AT web.de>
832
833         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
834           return early when pb or pb->pcHead is NULL (patch #1708427)
835         * src/regression/empty.c,
836         * src/regression/Makefile: added test with empty functions
837         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
838
839 2007-04-27 Borut Razem <borut.razem AT siol.net>
840
841         * src/SDCCast.c: fixed feature request
842           #1547512: Redundant strings linked when using sizeof("abc")
843
844 2007-04-23 Borut Razem <borut.razem AT siol.net>
845
846         * doc/sdccman.lyx, src/SDCCmain.c:
847           peep-hole comments are generated only if --fverbose-asm option is
848           specified and --no-peep-comments is not, as proposed by Frieder.
849         * support/regression/Makefile.in: compile regression tests with
850           --fverbose-asm option so one can "grep" whether a new (or an old)
851           peephole is (still) applied; requested by Frieder.
852
853 2007-04-23 Kevin Buettner <kevin AT buettner.to>
854
855         * device/include/pic/pic16f886.h,
856         * device/include/pic/pic16f887.h,
857         * device/lib/pic/libdev/pic16f886.c,
858         * device/lib/pic/libdev/pic16f887.c,
859         * device/include/pic/pic14devices.txt,
860         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
861
862 2007-04-23 Kevin Buettner <kevin AT buettner.to>
863
864         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
865           fixes #1704666
866
867 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
868
869         * device/lib/_memset.c: assembler version for mcs51
870
871 2007-04-22 Borut Razem <borut.razem AT siol.net>
872
873         * support/scripts/listerr.c: program to create the list of errors and
874           warnings list from - added
875         * doc/sdccman.lyx: removed the note
876           "For list of warnings and corresponding codes, see err_warn.txt"
877         * src/SDCCsymt.c: fixed bug #1699804:
878           Bug with some uses of sizeof(static local array) (MCS51)
879         * support/regression/tests/bug-1699804.c: added
880
881 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
882
883         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
884           (main): added option -i,
885           (asmbl, case S_INCL): use search_path_fopen,
886           mostly from patch 1579668 by Peter Miller, thanks
887         * src/z80/main.c: fixed typo --callee-saves-bc
888         * device/include/mcs51/compiler.h: added sfrword for Tasking
889
890 2007-04-20 Borut Razem <borut.razem AT siol.net>
891
892         * src/z80/main.c: replaced reserved keyword asm with asmblr
893
894 2007-04-19 Borut Razem <borut.razem AT siol.net>
895
896         * src/port.h: use const pointers to strings
897         * src/SDCCargs.h: declared getStringArg() and getIntArg()
898         * src/pic16/main.c: include SDCCargs.h
899         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
900           const char, since the strings are dynamically allocated
901         * src/SDCCmain.c: options.code_seg and options.const_seg are
902           dynamically allocated; check port specific command line options
903           before the general ones
904         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
905
906 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
907
908         * device/include/ds400rom.h,
909         * device/lib/ds390/lcd390.c,
910         * device/lib/ds390/memcpyx.c,
911         * device/lib/ds390/rtc390.c,
912         * device/lib/ds400/ds400rom.c,
913         * device/lib/ds400/memcpyx.c,
914         * device/lib/hc08/_ret.c: more replacements of keywords with their
915           double underscore equivalents
916         * device/lib/ds390/Makefile.in,
917         * device/lib/ds400/Makefile.in,
918         * device/lib/gbz80/Makefile.in,
919         * device/lib/hc08/Makefile.in,
920         * device/lib/mcs51/Makefile.in,
921         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
922
923 2007-04-17 Borut Razem <borut.razem AT siol.net>
924
925         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
926           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
927           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
928           to --fverbose-asm, to be gcc'ish
929
930 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
931
932         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
933
934 2007-04-17 Borut Razem <borut.razem AT siol.net>
935
936         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
937         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
938           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
939           with their double underscore equivalent
940
941 2007-04-14 Borut Razem <borut.razem AT siol.net>
942
943         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
944           source"
945
946 2007-04-13 Borut Razem <borut.razem AT siol.net>
947
948         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
949           C99 standard
950         * device/examples/serialcomm/windows/serial.[ch],
951           device/examples/serialcomm/windows/test_serialcomm.cpp:
952           updated by Bela Torok
953         * device/examples/serialcomm/windows/serialcomm.dsw,
954           device/examples/serialcomm/windows/serialcomm.dsp: added
955
956 2007-04-13 Jan Waclawek <wek AT efton.sk>
957
958         * doc/sdccman.lyx: additions and changes at various places
959           (submitted as #1697136).
960           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
961
962 2007-04-10 Borut Razem <borut.razem AT siol.net>
963
964         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
965           LyX file format changed to 245
966         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
967           "FreeWare" replaced with "free open source"
968
969 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
970
971         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
972
973 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
974
975         * device/include/pic16/pic18fregs.h,
976         * device/lib/_bp.c,
977         * device/lib/_decdptr.c,
978         * device/lib/_divsint.c,
979         * device/lib/_divslong.c,
980         * device/lib/_divuint.c,
981         * device/lib/_divulong.c,
982         * device/lib/_fs2schar.c,
983         * device/lib/_fs2sint.c,
984         * device/lib/_fs2slong.c,
985         * device/lib/_fs2uchar.c,
986         * device/lib/_fs2uint.c,
987         * device/lib/_fs2ulong.c,
988         * device/lib/_fsadd.c,
989         * device/lib/_fscmp.c,
990         * device/lib/_fsdiv.c,
991         * device/lib/_fseq.c,
992         * device/lib/_fsget1arg.c,
993         * device/lib/_fsget2args.c,
994         * device/lib/_fsgt.c,
995         * device/lib/_fslt.c,
996         * device/lib/_fsmul.c,
997         * device/lib/_fsneq.c,
998         * device/lib/_fsnormalize.c,
999         * device/lib/_fsreturnval.c,
1000         * device/lib/_fsrshift.c,
1001         * device/lib/_fssub.c,
1002         * device/lib/_fsswapargs.c,
1003         * device/lib/_gptrget.c,
1004         * device/lib/_gptrgetc.c,
1005         * device/lib/_gptrput.c,
1006         * device/lib/_logexpf.c,
1007         * device/lib/_modsint.c,
1008         * device/lib/_modslong.c,
1009         * device/lib/_moduint.c,
1010         * device/lib/_modulong.c,
1011         * device/lib/_mulint.c,
1012         * device/lib/_mullong.c,
1013         * device/lib/_schar2fs.c,
1014         * device/lib/_ser.c,
1015         * device/lib/_setjmp.c,
1016         * device/lib/_sint2fs.c,
1017         * device/lib/_slong2fs.c,
1018         * device/lib/_spx.c,
1019         * device/lib/_uchar2fs.c,
1020         * device/lib/_uint2fs.c,
1021         * device/lib/_ulong2fs.c,
1022         * device/lib/asincosf.c,
1023         * device/lib/atanf.c,
1024         * device/lib/calloc.c,
1025         * device/lib/ds390/tinibios.c,
1026         * device/lib/ds400/tinibios.c,
1027         * device/lib/expf.c,
1028         * device/lib/free.c,
1029         * device/lib/hc08/_mulint.c,
1030         * device/lib/logf.c,
1031         * device/lib/malloc.c,
1032         * device/lib/printf_fast.c,
1033         * device/lib/printf_tiny.c,
1034         * device/lib/printfl.c,
1035         * device/lib/realloc.c,
1036         * device/lib/ser_ir.c,
1037         * device/lib/serial.c,
1038         * support/regression/tests/libmullong.c: replaced all special keywords
1039           with their double underscore equivalent
1040         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1041         * device/lib/Makefile.in: compile libs with --std-c99 instead of
1042           --std-sdcc99
1043         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
1044           (genRet): if the bit-symbol is ruonly it already is in the carry
1045         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
1046         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
1047         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
1048           type UCHAR if dest is not bit
1049
1050 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
1051
1052         * device/include/math.h,
1053         * device/lib/cotf.c,
1054         * device/lib/expf.c,
1055         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
1056
1057 2007-04-01 Borut Razem <borut.razem AT siol.net>
1058
1059         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
1060           fixed bug #1692042: input buffer overflow...scanner uses REJECT
1061         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
1062           gcc_unreachable() called internal_error()...
1063
1064 2007-03-30 Raphael Neider <rneider AT web.de>
1065
1066         * src/pic/ralloc.c (isData): suppress garbage debug output
1067
1068 2007-03-28 Borut Razem <borut.razem AT siol.net>
1069
1070         * doc/sdccman.lyx:
1071           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
1072           is developed, built and used worldwide, and the word "night" doesn't
1073           make any sense.
1074
1075 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
1076
1077         * device/include/mcs51/C8051F360.h: new, added
1078         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
1079
1080 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1081
1082         * src/SDCC.y (declaration_specifiers, function_specifier),
1083         * support/Util/SDCCerr.c,
1084         * support/Util/SDCCerr.h,
1085         * src/SDCCsymt.h,
1086         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
1087           inline keyword
1088         * src/SDCCmem.c (deallocParms),
1089         * src/SDCCast.c: support for function inlining, not quite complete
1090         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
1091           'restrict' qualifier
1092
1093 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1094
1095         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
1096           (saveRBank, unsaveRBank): don't save bits,
1097           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
1098         * support/regression/tests/bug1535242.c: new, added
1099         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
1100           thanks Alexey Shamrin <shamrin AT gmail.com>,
1101           made assert.h header ANSI compliant (added a check for NDEBUG macro,
1102           removed header guard)
1103         * .version,
1104         * sdcc.spec: bumped version to 2.6.5
1105         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
1106
1107 2007-03-22 Borut Razem <borut.razem AT siol.net>
1108
1109         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
1110           fixed bug #1653671: sdcdb integration into ddd is broken
1111
1112 2007-03-22 Raphael Neider <rneider AT web.de>
1113
1114         * src/pic/gen.c (popGetExternal): augmented to also create references
1115           to external variables (not only labels),
1116           (genCall): comment on plan to reduce PAGESEL overhead,
1117           (genFunction, genEndFunction): also save/restore FSR around interrupt
1118           handling code, removed lots of unused code
1119           (genDivOneByte): release acquired temp register
1120         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
1121           of popGetExternal
1122         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
1123           for registers that need to be saved during interrupts (FSR, STATUS,
1124           PCLATH; W needs special handling), currently only FSR is used
1125
1126 2007-03-22 Raphael Neider <rneider AT web.de>
1127
1128         * device/include/pic/pic14devices.txt: 16f688 has only one config word
1129
1130 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1131
1132         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
1133
1134 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
1135
1136         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
1137
1138 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
1139
1140         * as/link/aslink.h: added LKOBJEXT
1141         * as/link/hc08/link_hc08.dsp,
1142         * as/link/hc08/Makefile.bcc,
1143         * as/link/hc08/Makefile.in,
1144         * as/link/mcs51/aslink.dsp,
1145         * as/link/mcs51/Makefile.bcc,
1146         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
1147         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
1148         * as/link/lkaomf51.c: merged and moved
1149         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
1150         * as/link/z80/lkdata.c,
1151         * as/link/lkdata.c: merged and moved
1152         * as/link/hc08/lkmain.c,
1153         * as/link/mcs51/lkmain.c: cosmetic changes
1154         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
1155         * as/link/lklex.c: use LKOBJEXT
1156         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
1157           ANSI-fied functions, removed bubble-sorts
1158         * as/link/z80/lksym.c           as/link/lksym.c: merged,
1159           ANSI-fied functions
1160         * as/link/z80/linkgbz80.dsp,
1161         * as/link/z80/linkz80.dsp,
1162         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
1163           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
1164         * as/link/z80/lkhead.c,
1165         * as/link/z80/lklex.c: deleted
1166         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
1167         * as/link/z80/lkmain.c: added copyfile()
1168
1169 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1170
1171         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
1172
1173 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1174
1175         * device/lib/_strlen.c: assembler version for mcs51
1176
1177 2007-03-13 Raphael Neider <rneider AT web.de>
1178
1179         * device/include/pic16/pic18f2221.h,
1180         * device/include/pic16/pic18f2321.h,
1181         * device/include/pic16/pic18f2331.h,
1182         * device/include/pic16/pic18f4221.h,
1183         * device/include/pic16/pic18f4321.h,
1184         * device/include/pic16/pic18f4331.h: fixed config byte location names
1185         * support/scripts/inc2h-pic16.pl: removed debug output, emit
1186           consistently named config byte locations
1187
1188 2007-03-13 Borut Razem <borut.razem AT siol.net>
1189
1190         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1191           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
1192           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
1193           as/link/z80/Makefile.in, as/z80/Makefile.in:
1194           introduced LDFLAGS
1195
1196 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1197
1198         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
1199         * device/lib/printf_large.c: pointer was converted to generic
1200         pointer for mcs51 models other than model-small (Maarten noticed)
1201
1202 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1203
1204         * device/include/mcs51/ADuC84x.h: Added.
1205
1206 2007-03-10 Borut Razem <borut.razem AT siol.net>
1207
1208         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
1209           fixed RFE #1624219: double backslashes in filenames;
1210           functions hexEscape(), octalEscape() and copyStr() moved from
1211           SDCCval.c to SDCCutil.c and made them glovbally available
1212
1213 2007-03-09 Borut Razem <borut.razem AT siol.net>
1214
1215         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
1216           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
1217           1673361: Missaligned comments in output files
1218
1219 2007-03-09 Raphael Neider <rneider AT web.de>
1220
1221         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
1222
1223 2007-03-09 Raphael Neider <rneider AT web.de>
1224
1225         * src/pic/gen.c,
1226         * src/pic/glue.c,
1227         * src/pic/ralloc.c: suppress undesired debug output
1228         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
1229
1230 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1231
1232         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
1233
1234 2007-03-07 Borut Razem <borut.razem AT siol.net>
1235
1236         * device/lib/pic16/libdev/pic18f[24][34]31.c:
1237           search include files in the current directory
1238
1239 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
1240
1241         * src/SDCCglue.c (emitMaps, glue),
1242         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
1243           absolute xdata
1244         * support/regression/tests/absolute.c: added xdata test
1245
1246 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
1247
1248         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
1249           added condition to macro, fixes bug 1666080
1250
1251 2007-03-02 Raphael Neider <rneider AT web.de>
1252
1253         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
1254
1255 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1256
1257         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
1258         be cleared. Unconditionally set __XPAGE
1259         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
1260
1261 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1262
1263         * src/SDCCglobl.h,
1264         * src/SDCCmain.c,
1265         * src/mcs51/gen.c,
1266         * src/mcs51/rtrack.c,
1267         * src/ds390/gen.c,
1268         * doc/sdccman.lyx: added --no-gen-comments
1269         * src/mcs51/peeph.def: added 192.b, disabled 185
1270
1271 2007-02-25 Raphael Neider <rneider AT web.de>
1272
1273         * src/pic16/gen.c (genCast): fixed typo
1274         * device/lib/pic16/Makefile.subdir: only install existing files
1275         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
1276
1277 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1278
1279         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
1280         * device/lib/mcs51/crtclear.asm,
1281         * device/lib/mcs51/crtxclear.asm: renumbered labels
1282         * device/lib/mcs51/Makefile.in: added crtcall.asm
1283         * doc/sdccman.lyx: documented mcs51 crt* library startup code
1284         * src/mcs51/gen.c (movc): removed,
1285           (aopGet, genPlusBits): clear a after loading the carry (possibly from
1286             acc.x or psw.x),
1287           (toCarry, genSend, genRet): added function toCarry,
1288           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
1289           (assignBit, genAssign, genCast): added function assignBit
1290         * src/mcs51/Makefile.bcc: added rtrack.c
1291         * src/mcs51/ralloc.h: made valueKnown a bitfield
1292         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
1293           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
1294           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
1295         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
1296         * src/z80/gen.c: added AOP_IS_PAIRPTR,
1297           (_pop): only pop valid pairs, see gencjneshort,
1298           (gencjneshort): return pair that still needs to be popped, restructured,
1299           (gencjne, genCmpEq): call _pop
1300
1301 2007-02-23 Raphael Neider <rneider AT web.de>
1302
1303         * device/include/pic/pic14devices.txt: 16f684 has only one config word
1304
1305 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1306
1307         * device/include/mcs51/P89LPC925.h: Added.
1308
1309 2007-02-18 Raphael Neider <rneider AT web.de>
1310
1311         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
1312
1313 2007-02-17 Borut Razem <borut.razem AT siol.net>
1314
1315         * support/cpp2/directives.c, support/cpp2/version.c:
1316           synchronized with GCC CPP 4.1.2
1317
1318 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1319
1320         * src/mcs51/rtrack.h,
1321         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
1322           by checking the strings passed by emitcode() to the assembler.
1323           Feel free to change. This in part addresses RFE #482179.
1324           Set environment variable SDCC_RTRACK to enable.
1325         * src/mcs51/gen.c: inserted hooks
1326         * src/mcs51/ralloc.h: added two members to struct regs
1327         * support/regression/tests/regtrack.c: added
1328
1329 2007-02-14 Borut Razem <borut.razem AT siol.net>
1330
1331         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
1332         * Makefile.in: applied patch from Makefile related part of
1333           #1469393: Compiler does not initialize static data
1334
1335 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1336
1337         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
1338           for better fix of bug 1273984, compiles pic16 rand.c
1339
1340 2007-02-12 Borut Razem <borut.razem AT siol.net>
1341
1342         * src/pic16/main.c: fixed pic16 standard library directory bug
1343
1344 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1345
1346         * src/hc08/gen.c (genSwap): fix swap regression test
1347
1348 2007-02-10 Borut Razem <borut.razem AT siol.net>
1349
1350         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
1351           with same scope
1352         * support/regression/tests/bug-1654060.c: added regression test for
1353           #1654060
1354
1355 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
1356
1357         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
1358         bit moves in return statement
1359
1360 2007-02-09 Borut Razem <borut.razem AT siol.net>
1361
1362         * src/SDCC.y: fixed bug #1654060 typedef within function causes
1363           syntax error
1364
1365 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1366
1367         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
1368         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
1369
1370 2007-02-07 Raphael Neider <rneider AT web.de>
1371
1372         * src/pic16/devices.inc,
1373         * device/include/pic16/pic18fregs.h,
1374         * device/include/pic16/pic18f[24][34]31.h,
1375         * device/lib/pic16/libdev/pic18f[24][34]31.c,
1376         * device/lib/pic16/pics.all: added 18f[24][34]31 family
1377         * device/lib/pic16/libio/i2c.ignore: do not build i2c
1378
1379 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1380
1381         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
1382           can this have lived here for so many years?
1383         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
1384           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
1385         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
1386
1387 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
1388
1389         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
1390         appended by loop induction must be at the very end of the eBBlock
1391
1392 2007-02-05 Kevin Vigor
1393
1394         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
1395
1396 2007-02-05 Borut Razem <borut.razem AT siol.net>
1397
1398         * support/regression/fwk/lib/timeout.c: native WIN32 port,
1399           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
1400
1401 2007-02-03 Borut Razem <borut.razem AT siol.net>
1402
1403         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
1404           applied patch #1646602 option to set default signedness of char to
1405           unsigned, added -funsigned-char command line option,
1406           thanks to Gunther Jehle
1407         * device/lib/Makefile.in: added the -f option to rm so it doesn't
1408           prompt for file deletion a few hundred times (especially the
1409           subversion files, which have ro permissions so it asks for
1410           confirmation), thanks to Simon McAuliffe;
1411           added {} + option to find in order to remove multiple files from a
1412           single rm commad
1413
1414 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1415
1416         * device/include/mcs51/SST89x5xRDx.h: Added.
1417
1418 2007-02-02 Raphael Neider <rneider AT web.de>
1419
1420         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
1421         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
1422
1423 2007-02-01 Raphael Neider <rneider AT web.de>
1424
1425         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
1426           config words again
1427
1428 2007-01-31 Borut Razem <borut.razem AT siol.net>
1429
1430         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
1431           if compiled with GCC. Thanks to Raphael Neider
1432
1433 2007-01-31 Raphael Neider <rneider AT web.de>
1434
1435         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
1436             operand names, handles name and (name + n) for all n,
1437           (sameBank): restructured, also check bank allocation policy,
1438         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
1439           (pic14_operandsAllocatedInSameBank): check whether to operands
1440             will be allocated into the same bank (i.e., section) to reduce
1441             BANKSEL overhead, queried from pcode.c:sameBank,
1442           (pic14printLocals): reintroduced clustering registers into a single
1443             section: all compiler generated symbols will now reside in one
1444             bank (per file), reducing BANKSEL overhead and code size,
1445           (showAllMemmaps): use local dbuf where possible
1446
1447 2007-01-29 Raphael Neider <rneider AT web.de>
1448
1449         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
1450           (call_libraryfunc): retrieve/create symbol and mark as used,
1451           (genFunction): mark defined functions as non-extern and add again
1452            to code memmap for later output
1453         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
1454           (pic14printLocals): reworked for new symbol emission,
1455           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
1456           showAllMemmaps): reworked symbol output using dbufs, added handling
1457             of string literals (still incomplete),
1458           (picglue): removed symbol emission, moved into showAllMemmaps,
1459           (emitSymbolSet): new workhorse for symbol output,
1460           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
1461
1462 2007-01-29 Borut Razem <borut.razem AT siol.net>
1463
1464         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
1465           component contains the extension separator.
1466
1467 2007-01-28 Borut Razem <borut.razem AT siol.net>
1468
1469         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
1470           on WIN32
1471         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
1472           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
1473           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
1474           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
1475           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
1476           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
1477           src/z80/gen.c, support/Util/MySystem.c:
1478           accept slash and backslash as directory separator on WIN32 and
1479           Cygwin ports
1480
1481 2007-01-28 Raphael Neider <rneider AT web.de>
1482
1483         * src/pic16/devices.inc,
1484         * device/include/pic16/pic18f[24][23]21.h,
1485         * device/include/pic16/pic18fregs.h,
1486         * device/lib/pic16/libdev/pic18f[24][23]21.c,
1487         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
1488         * device/lib/pic16/libio/adc.ignore,
1489         * device/lib/pic16/libio/i2c.ignore,
1490         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
1491           family, as gputils do not yet support the devices
1492         * device/lib/pic16/Makefile.subdir: ignore errors on install
1493         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
1494           headers and libraries from gputils .inc files
1495
1496 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1497
1498         * doc/sdccman.lyx: add printf_fast_f precision limitation note
1499
1500 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1501
1502         * doc/sdccman.lyx: add printf benchmarks
1503
1504 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1505
1506         * device/lib/printf_fast.c: fix %c, char promoted to int
1507         * device/lib/printf_tiny.c: fix %c, char promoted to int
1508
1509 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1510
1511         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
1512
1513 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1514
1515         * support/regression/tests/swap.c: 64 bit hosts failed
1516         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
1517
1518 2007-01-25 Raphael Neider <rneider AT web.de>
1519
1520         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
1521           based on absolute register address, patch by Alex Blond
1522
1523 2007-01-22 Raphael Neider <rneider AT web.de>
1524
1525         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
1526           emitted, do not emit them again...
1527
1528 2007-01-22 Raphael Neider <rneider AT web.de>
1529
1530         * src/regression/bank1.c, src/regression/compare6.c,
1531           src/regression/add.c: cosmetic changes
1532         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
1533         * src/pic/gen.c: fixed global zero and one,
1534           (aopForSym): removed unued code,
1535           (aopGet): assert aop is defined, check and use `index' of
1536             pCodeImmd operands (fixes #1630908),
1537         * src/pic/pcode.c (get_op): added output of generic pointer tag,
1538           (register_reassign): prevent accidental register unification,
1539           (ReuseReg): cosmetic changes (also above)
1540         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
1541           pic14emitStaticSeg): do not emit initialized data,
1542           (printIval*): replaced with working versions,
1543           (pic14createInterruptVect,picglue): use idata for initialized data,
1544             now init data should work in all modules (not only main()),
1545         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
1546
1547 2007-01-21 Borut Razem <borut.razem AT siol.net>
1548
1549         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
1550           use -fPIC or -fpic if they are supported and not ignored
1551         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
1552         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
1553
1554 2007-01-20 Borut Razem <borut.razem AT siol.net>
1555
1556         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
1557           implemented RFE #1470316: allow "$" in variable names
1558
1559 2007-01-20 Raphael Neider <rneider AT web.de>
1560
1561         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
1562
1563 2007-01-20 Raphael Neider <rneider AT web.de>
1564
1565         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
1566         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
1567         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
1568         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
1569           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
1570         * device/lib/pic/libdev/pic*.c,
1571         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
1572         * device/lib/pic/libdev/Makefile.in: show progress
1573
1574 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1575
1576         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
1577         * support/scripts/sdcc_cygwin_mingw32,
1578         * support/scripts/sdcc_mingw32,
1579         * support/scripts/build.mak: replaced --datadir by --datarootdir for
1580         conformance with autoconf 2.6
1581
1582 2007-01-19 Raphael Neider <rneider AT web.de>
1583
1584         * src/pic/device.c (register_map): fixed list construction
1585         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
1586           (genMod): removed case for genModbits,
1587           (genModbits): removed as now unused/unimplemented
1588         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
1589
1590 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1591
1592         * support/regression/tests/swap.c: added in response to #1638622
1593         * doc/sdccman.lyx: synced version, minor changes
1594
1595 2007-01-18 Borut Razem <borut.razem AT siol.net>
1596
1597         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
1598           thanks to Gunther Jehle
1599         * src/asm.c: don't die if the file drfined in #line couldn't be opened
1600         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
1601           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
1602           use filename in lineno instead.
1603         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
1604           print the file name in ast_print()
1605
1606 2007-01-18 Borut Razem <borut.razem AT siol.net>
1607
1608         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
1609           defined in MSVC
1610         * src/SDCC.lex: stringLiteral() returns const char pointer,
1611           EOF detection in stringLiteral(), fixed asmbuf memory leak,
1612           fixed column counting
1613         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
1614           accept const char pointer as parameter
1615         * src/SDCCdwarf2.c: corrected buffer size
1616
1617 2007-01-17 Borut Razem <borut.razem AT siol.net>
1618
1619         * support/Util/dbuf_string.c: fixed for amd64
1620
1621 2007-01-15 Borut Razem <borut.razem AT siol.net>
1622
1623         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
1624           removed terminal symbol ELIPSIS, since it was never generated by the
1625           lexer and it was wrongly used in parameter_identifier_list rule
1626
1627 2007-01-15 Raphael Neider <rneider AT web.de>
1628
1629         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
1630             code page and data banking description
1631         * src/pic/genarith.c,
1632         * src/pic/gen.h: removed bit arithmetic functions,
1633             updated exit(1) to exit(EXIT_FAILURE)
1634         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
1635         * device/include/pic16/pic18f2455.h,
1636         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
1637             TRISD and TRISE, fixed/added some bit names
1638         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
1639         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
1640             updated pic18f2455.{c,h} instead of duplicating them
1641
1642 2007-01-14 Borut Razem <borut.razem AT siol.net>
1643
1644         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
1645           Cannot debug files that contain spaces in the path name
1646           by converting spaces in asm file name to underscores
1647
1648 2007-01-13 Borut Razem <borut.razem AT siol.net>
1649
1650         * doc/sdccman.lyx: fixed format errors
1651
1652 2007-01-10 Borut Razem <borut.razem AT siol.net>
1653
1654         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
1655           codeseg/constseg #pragma fail
1656         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
1657         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
1658           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
1659           suppoprt/cpp2/sdcpp.[ch]: house cleaning
1660
1661 2007-01-09 Borut Razem <borut.razem AT siol.net>
1662
1663         * get rid of diagnistic.[ch], pretty-print.[ch],
1664           c-pretty-print.[ch], ... used just for error, warning, ...
1665           message formatting
1666         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
1667           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
1668           suppoprt/cpp2/pretty-print.[ch]:
1669           removed
1670         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
1671           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
1672           suppoprt/cpp2/sdcpp.dsp:
1673           changed
1674
1675 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
1676
1677         * device/lib/printf_large.c (output_float): removed recursion,
1678           use smaller buffer on stack for mcs51,
1679           fixed bug printing 1.96
1680         * support/regression/tests/snprintf.c: added test
1681
1682 2007-01-07 Borut Razem <borut.razem AT siol.net>
1683
1684         * use dynamic memory buffers instead temporary files
1685         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1686           added
1687         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1688           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1689           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1690           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1691           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1692           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1693           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1694           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1695           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1696           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1697           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1698           support/Util/dbuf.c, support/Util/dbuf.h:
1699           modified
1700         * .version, sdcc.spec: bumped version to 2.6.4
1701
1702 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1703
1704         * src/port.h: added TARGET_Z80_LIKE macro
1705         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1706           output PSEG location if --xram-loc or --xstack-loc was used
1707         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1708
1709 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1710
1711         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1712         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1713         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1714         * sdcc.dsw: moved project files into subdir
1715         * as/hc08/as_hc08.dsp,
1716         * as/hc08/Makefile.bcc,
1717         * as/hc08/Makefile.in,
1718         * as/mcs51/Makefile.bcc,
1719         * as/mcs51/Makefile.in,
1720         * as/z80/Makefile.bcc,
1721         * as/z80/Makefile.in,
1722         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1723         * as/hc08/asm.h,
1724         * as/mcs51/asm.h,
1725         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1726         * as/hc08/asmain.c,
1727         * as/hc08/assym.c,
1728         * as/mcs51/asmain.c,
1729         * as/mcs51/assym.c,
1730         * as/z80/assym.c: removed include "strcmpi.h"
1731         * as/hc08/strcmpi.c,
1732         * as/hc08/strcmpi.h,
1733         * as/mcs51/strcmpi.c,
1734         * as/mcs51/strcmpi.h,
1735         * support/Util/strcmpi.c,
1736         * support/Util/strcmpi.h: removed files
1737         * as/strcmpi.c: added as_strncmpi()
1738
1739 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1740
1741         * sdcc.dsw: Added some dependencies on project config.dsp
1742
1743 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1744
1745         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1746           with [di]ram_start to fix a regresion
1747
1748 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1749
1750         * configure.in: added missing mcs51 in status output
1751         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1752         directory
1753         * debugger/mcs51/clean.mk (distclean): remove config.h
1754         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1755         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1756         options.h, s-options-h and options.c
1757         * support/cpp2/clean.mk: unused, removed
1758         * Makefile.common.in,
1759         * main_in.mk,
1760         * as/Makefile.in,
1761         * as/hc08/Makefile.in,
1762         * as/hc08/clean.mk,
1763         * as/mcs51/Makefile.in,
1764         * as/mcs51/clean.mk,
1765         * as/z80/clean.mk,
1766         * as/z80/conf.mk,
1767         * as/z80/Makefile.in,
1768         * as/z80/clean.mk,
1769         * as/link/Makefile.in,
1770         * as/link/hc08/Makefile.in,
1771         * as/link/hc08/clean.mk,
1772         * as/link/mcs51/Makefile.in,
1773         * as/link/mcs51/clean.mk,
1774         * as/link/z80/Makefile.in,
1775         * as/link/z80/clean.mk,
1776         * as/link/z80/conf.mk,
1777         * debugger/mcs51/Makefile.in,
1778         * debugger/mcs51/clean.mk,
1779         * device/include/Makefile.in,
1780         * device/lib/Makefile.in,
1781         * device/lib/mcs51/Makefile.in,
1782         * device/lib/pic/Makefile.in,
1783         * device/lib/pic/Makefile.common.in,
1784         * device/lib/pic/Makefile.subdir,
1785         * device/lib/pic/Makefile.rules,
1786         * device/lib/pic16/libio/Makefile.in,
1787         * device/lib/pic16/Makefile.subdir,
1788         * device/lib/pic16/libdev/Makefile.in,
1789         * device/lib/pic16/Makefile.rules,
1790         * device/lib/pic16/Makefile.common.in,
1791         * sim/ucsim/avr.src/Makefile.in,
1792         * sim/ucsim/main_in.mk,
1793         * sim/ucsim/cmd.src/Makefile.in,
1794         * sim/ucsim/doc/Makefile.in,
1795         * sim/ucsim/gui.src/Makefile.in,
1796         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1797         * sim/ucsim/gui.src/serio.src/Makefile.in,
1798         * sim/ucsim/hc08.src/Makefile.in,
1799         * sim/ucsim/libltdl/Makefile.in,
1800         * sim/ucsim/s51.src/Makefile.in,
1801         * sim/ucsim/sim.src/Makefile.in,
1802         * sim/ucsim/sim.src/conf.mk,
1803         * sim/ucsim/xa.src/Makefile.in,
1804         * sim/ucsim/z80.src/Makefile.in,
1805         * src/Makefile.in,
1806         * src/clean.mk,
1807         * src/port.mk,
1808         * support/cpp2/Makefile.in,
1809         * support/librarian/Makefile.in,
1810         * support/librarian/clean.mk,
1811         * support/makebin/Makefile.in,
1812         * support/makebin/clean.mk,
1813         * support/packihx/Makefile.in,
1814         * support/regression/Makefile.in,
1815         * support/regression/ports/ds390/spec.mk,
1816         * support/regression/ports/gbz80/spec.mk,
1817         * support/regression/ports/hc08/spec.mk,
1818         * support/regression/ports/mcs51/spec.mk,
1819         * support/regression/ports/mcs51-large/spec.mk,
1820         * support/regression/ports/mcs51-medium/spec.mk,
1821         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1822         * support/regression/ports/pic14/spec.mk,
1823         * support/regression/ports/pic16/spec.mk,
1824         * support/regression/ports/mcs51-stack-auto/spec.mk,
1825         * support/regression/ports/ucz80/spec.mk,
1826         * support/regression/ports/xa51/spec.mk,
1827         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1828         adding a slash after $(top_builddir) and/or adding @datarootdir@
1829         * configure.in,
1830         * debugger/mcs51/configure.in,
1831         * device/lib/pic/configure.in,
1832         * device/lib/pic16/configure.in,
1833         * sim/ucsim/configure.in,
1834         * support/cpp2/configure.in,
1835         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1836         * configure,
1837         * debugger/mcs51/configure,
1838         * device/lib/pic/configure,
1839         * device/lib/pic16/configure,
1840         * sim/ucsim/configure,
1841         * support/cpp2/configure,
1842         * support/packihx/configure: generated with autoconf 2.60
1843
1844 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1845
1846         * as/link/hc08/lkihx.c (newArea),
1847         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1848
1849 2007-01-02 Borut Razem <borut.razem AT siol.net>
1850
1851         * doc/sdccman.lyx: documented #pragma sdcc_hash
1852         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1853           initialized to 0
1854         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1855
1856 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1857
1858         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1859         empty 'while'-loop to work correctly, see regression test 'while.c'
1860         * support/regression/tests/while.c: added
1861
1862 2007-01-01 Borut Razem <borut.razem AT siol.net>
1863
1864         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1865           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1866           support/cpp2/libcpp/sdcpp.c:
1867           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1868         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1869         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1870
1871 2006-12-31 Borut Razem <borut.razem AT siol.net>
1872
1873         * SDCPP synchronized with GCC CPP release version 4.1.1,
1874           currently the latest release:
1875         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1876           support/cpp2/libcpp/include/cpp-id-data.h
1877           support/cpp2/libiberty/fopen_unlocked.c
1878           support/cpp2/libiberty/md5.c
1879           support/cpp2/md5.h
1880           support/cpp2/opt-functions.awk
1881           support/cpp2/opt-gather.awk
1882           support/cpp2/optc-gen.awk
1883           support/cpp2/opth-gen.awk:
1884           added
1885         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1886           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1887           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1888           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1889           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1890           support/cpp2/diagnostic.h, support/cpp2/except.h,
1891           support/cpp2/hwint.h, support/cpp2/input.h,
1892           support/cpp2/intl.h, support/cpp2/move-if-change,
1893           support/cpp2/opts.c, support/cpp2/opts.h,
1894           support/cpp2/output.h, support/cpp2/prefix.c,
1895           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1896           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1897           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1898           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1899           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1900           support/cpp2/version.c:
1901           modified
1902         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1903           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1904           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1905           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1906           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1907           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1908           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1909           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1910           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1911           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1912           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1913           moved
1914         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1915           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1916           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1917           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1918           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1919           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1920           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1921           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1922           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1923           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1924           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1925           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1926           support/cpp2/system.h:
1927           deleted / moved
1928
1929 2006-12-31 Borut Razem <borut.razem AT siol.net>
1930
1931         * configure.in, configure: fixed bug #1538756: configure dies if bison
1932           and flex are not installed, 2nd try
1933
1934 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1935
1936         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1937         400.x for better code in RFE 899102
1938
1939 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1940
1941         * src/SDCCpeeph.c (deadMove),
1942         * src/port.h,
1943         * src/mcs51/peep.h: renamed 'op' by 'reg'
1944         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1945         (scan4op): small change for removeDeadMove(), added support for
1946         'callee saves' and/or PACLL function calls,
1947         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1948         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1949         left in new dispatcher mcs51DeadMove()
1950         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1951         removeDeadMove()
1952         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1953
1954 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1955
1956         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1957           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1958
1959 2006-12-30 Borut Razem <borut.razem AT siol.net>
1960
1961         * support/cpp2/spacs.h: deleted from svn
1962         * configure.in, configure: fixed bug #1538756: configure dies if bison
1963           and flex are not installed
1964
1965 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1966
1967         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1968           with this z80 passes printf float test when enabled
1969         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1970
1971 2006-12-28 Borut Razem <borut.razem AT siol.net>
1972
1973         * support/cpp2/config.in, support/cpp2/configure.in,
1974           support/cpp2/configure, support/cpp2/Makefile.in:
1975           fix for the solaris build
1976
1977 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1978
1979         * src/SDCC.y (type_specifier2, pointer),
1980         * src/SDCCsymt.h,
1981         * src/SDCCsymt.c (mergeSpec, checkSClass),
1982         * support/Util/SDCCerr.c,
1983         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1984         * support/valdiag/valdiag.py: Allow test cases to specify
1985           required language standard
1986         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1987         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1988
1989 2006-12-27 Borut Razem <borut.razem AT siol.net>
1990
1991         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1992         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1993           mbchar removed
1994         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1995           fixed for borland C
1996         * support/cpp2/libiberty/Makefile.bcc: updated
1997         * src/pic16/main.c: fixed #pragma udata handling
1998         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1999
2000 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
2001
2002         * src/SDCCpeeph.c: made labelHashEntry global,
2003         made pcDistance, FBYNAME static,
2004         (pcDistance): made static, use isComment and isLabel,
2005         (deadMove): added,
2006         (getLabelRef): added, extracted from labelRefCount(),
2007         (labelRefCount): use new getLabelRef(),
2008         (callFuncByName): made static, added deadMove,
2009         use isComment and isLabel,
2010         (newPeepRule): made static, set isLabel,
2011         (isLabelDefinition): added parameter isPeepRule to allow '%' in
2012         labels from peephole rules,
2013         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
2014         when isComment or isLabel is set
2015         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
2016         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
2017         to make them global
2018         * src/mcs51/peep.h: added
2019         * src/mcs51/peep.c: added, implements mcs51DeadMove()
2020         * src/port.h: added peep->deadMove to port structure
2021         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
2022         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
2023         deadMove, finally removed no. 1 and 2
2024         * src/mcs51/gen.c,
2025         * src/pic/gen.c,
2026         * src/z80/gen.c,
2027         * src/z80/ralloc.c,
2028         * src/pic16/gen.c,
2029         * src/ds390/gen.c,
2030         * src/hc08/gen.c: mark lines with isComment or isLabel
2031         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
2032         * .version,
2033         * sdcc.spec: bumped version to 2.6.3
2034
2035 2006-12-26 Borut Razem <borut.razem AT siol.net>
2036
2037         * support/cpp2/Makefile.in: added dependency on options.h
2038         * configure: regenerated
2039         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
2040         * support/cpp2/Makefile.in: added vasprintf.c
2041
2042 2006-12-25 Borut Razem <borut.razem AT siol.net>
2043
2044         * SDCPP synchronized with GCC CPP release version 3.4.6,
2045           the latest release before 4.x:
2046         * support/cpp2/Makefile.in, support/cpp2/config.h,
2047           support/cpp2/configure, support/cpp2/configure.in,
2048           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
2049           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
2050           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
2051           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
2052           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
2053           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
2054           support/cpp2/cpptrad.c, support/cpp2/except.h,
2055           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
2056           support/cpp2/hwint.h, support/cpp2/intl.h,
2057           support/cpp2/line-map.c, support/cpp2/line-map.h,
2058           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
2059           support/cpp2/output.h, support/cpp2/prefix.c,
2060           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
2061           support/cpp2/system.h, support/cpp2/version.c:
2062           modified
2063         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
2064           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
2065           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
2066           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
2067           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
2068           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
2069           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
2070           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
2071           support/cpp2/move-if-change, support/cpp2/opts.c,
2072           support/cpp2/opts.h, support/cpp2/opts.sh,
2073           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
2074           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
2075           support/cpp2/win32, support/cpp2/win32/dirent.c,
2076           support/cpp2/win32/dirent.h:
2077           added
2078         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
2079         * support/cpp2/sdcpp.h: renamed from sdcc.h
2080         * sdcppinit.c: deleted
2081
2082 2006-12-23 Borut Razem <borut.razem AT siol.net>
2083
2084         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2085           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
2086           preproc.c: an other try to fix bug #982435: introduced
2087           -pedantic-parse-number command line option and pedantic_parse_number
2088           pragma
2089
2090 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
2091
2092         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
2093            BSEG handling,
2094           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
2095            corrected overlayed areax addresses, warn about memory overlaps
2096         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
2097         * src/avr/main.c,
2098         * src/ds390/main.c,
2099         * src/hc08/main.c,
2100         * src/mcs51/main.c,
2101         * src/pic16/main.c,
2102         * src/pic/main.c,
2103         * src/xa51/main.c,
2104         * src/z80/main.c,
2105         * src/port.h: added xabs_name and iabs_name
2106         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
2107           (glue, emitMaps): create and emit maps d_abs and i_abs
2108         * src/SDCCglue.h: cosmetic changes
2109         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
2110         * src/SDCCmem.h,
2111         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
2112           (allocDefault): put absolute, initialized globals in them
2113         * support/regression/tests/absolute.c: added absolute bdata test
2114         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
2115
2116 2006-12-20 Borut Razem <borut.razem AT siol.net>
2117
2118         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
2119         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
2120           added regression test for bug #982435
2121
2122 2006-12-18 Borut Razem <borut.razem AT siol.net>
2123
2124         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
2125         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
2126           small cosmetic changes
2127         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
2128         * support/regression/tests/bug-1351710.c: added regression test
2129
2130 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2131
2132         * doc/sdccman.lyx: added the long missed iCode table
2133           "<where is figure II?>", added links to wiki
2134
2135 2006-12-17 Borut Razem <borut.razem AT siol.net>
2136
2137         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
2138           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
2139           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
2140           unified table driven pragma handling, pragma argument type checking
2141         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
2142           current one - version 1.1.3
2143         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
2144
2145 2006-12-13 Raphael Neider <rneider AT web.de>
2146
2147         * src/pic/device.h: removed AssignedMemory structure and macros
2148         * src/pic/device.c: removed global finalMapping (linker assigns
2149             memory locations),
2150           (register_map): add SFRs to remembered memRanges
2151           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
2152           assignFixedRegisters,assignRelocatableRegisters): removed,
2153           (setMaxRAM,validAddress): adapted accordingly,
2154           (pic14_hasSharebank,pic14_getSharedStack): only report and use
2155             reasonably sized sharebanks,
2156         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
2157           (allDefsOutOfRange): removed unused code,
2158         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
2159             handling
2160         * src/pic/pcode.c (register_reassign): removed recursion warning,
2161             fired far too often,
2162         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
2163             to use existing pic14_stringInSet() to avoid duplicate symbols,
2164             tidied up the code a bit,
2165           (pic14printLocals): added in symmetry to printExterns, replaces
2166             writeUsedRegs more or less,
2167           (picglue): call new pic14_printLocals(),
2168         * device/include/pic/pic*.h: removed #pragma memmap directives,
2169             information gathered from include/pic/pic14devices.txt
2170         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
2171
2172 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
2173
2174         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
2175
2176 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2177
2178         * device/include/mcs51/cc2430.h: fixed missing ';'
2179
2180 2006-12-10 Raphael Neider <rneider AT web.de>
2181
2182         * device/lib/pic16/libc/stdio/vfprintf.c,
2183         * device/lib/pic16/libc/stdio/printf_small.c,
2184         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
2185           char arguments, as char varargs are cast to int by the caller,
2186           hopefully fixes #1604915 (other device libraries are still affected)
2187
2188 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2189
2190         * src/mcs51/ralloc.c (packRegsForAssign),
2191         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
2192
2193 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
2194
2195         * device/include/malloc.h: removed init_dynamic_memory
2196         * device/lib/malloc.c: made init_dynamic_memory static and automatically
2197           call it once from malloc. Also use _sdcc_heap[] from _heap.c
2198         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
2199         * device/lib/libsdcc.lib,
2200         * device/lib/Makefile.in,
2201         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
2202         * doc/sdccman.lyx: documented use of new _heap.c
2203         * support/regression/tests/malloc.c: removed init_dynamic_memory
2204         * src/cdbFile.c(spacesToUnderscores): new function,
2205           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
2206           1068030
2207         * device/include/tinibios.h: removed defines for putchar and getchar
2208         * device/lib/ds390/Makefile.in: added putchar.c
2209         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
2210
2211 2006-12-09 Borut Razem <borut.razem AT siol.net>
2212
2213         * support/cpp2/sdcc.h: prevent multiple inclusion
2214         * support/cpp2/options.h: deleted
2215
2216 2006-12-08 Borut Razem <borut.razem AT siol.net>
2217
2218         * support/cpp2/sdcc.h: removed x*alloc() macros
2219         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
2220         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
2221           support/cpp2/sdcpp.sdc: x*alloc files added to the project
2222         * support/cpp2/system.h: moved #include "sdcc.h"
2223         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
2224           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
2225           added
2226         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
2227           -funsigned-char options
2228         * support/cpp2/sdcppmain.c: fixed bug 1611411
2229
2230 2006-12-07 Borut Razem <borut.razem AT siol.net>
2231
2232         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
2233           directive
2234
2235 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2236
2237         * src/SDCCsymt.c (addDecl): fixed bug 1609244
2238         * src/SDCCmain.c (linkEdit): fixed bug 1609279
2239         * doc/sdccman.lyx,
2240         * .version: bumped to 2.6.2 because a) it's been a while
2241           b) the linker sources have moved c) the preprocessor is upgraded
2242
2243 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2244
2245         * support/regression/tests/snprintf.c: some checks
2246         * lib/src/printf_large.c: %bc: read char instead of int from stack
2247
2248 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
2249
2250         * device/include/mcs51/cc2430.h: inserted _XPAGE
2251
2252 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2253
2254         * device/include/mcs51/cc2430.h: added
2255
2256 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
2257
2258         * device/include/asm/default/features.h,
2259         * device/include/asm/ds390/features.h,
2260         * device/include/mcs51/at89s53.h,
2261         * device/include/ser.h,
2262         * device/include/ser_ir.h,
2263         * device/include/serial.h: changed keywords to double underscore variants,
2264           fixes bug 1590261 some more, thanks Steven Borley
2265
2266 2006-12-01 Raphael Neider <rneider AT web.de>
2267
2268         * src/pic/pcode.c (register_reassign): do not crash on recursive code
2269           but emit warning (recursion is not supported for pic14)
2270
2271 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2272
2273         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
2274         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
2275
2276 2006-11-30 Raphael Neider <rneider AT web.de>
2277
2278         * src/pic/device.c (dump_sfr): always emit symbols
2279         * src/pic/glue.c (pic14printPublics): fixed typo
2280
2281 2006-11-30 Raphael Neider <rneider AT web.de>
2282
2283         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
2284           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
2285           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
2286            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
2287            a sharebank, use a non-shared bank for the stack if none available
2288         * src/pic/device.h (struct memRange): added linked list next field,
2289           added prototypes for above functions
2290         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
2291           (typeRegWithIdx): accept fixed and unfixed stack registers
2292         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
2293           the stack, handle shared and banked stack (except for WSAVE),
2294           (insertBankSel): removed useless optimization (will never fire),
2295           (FixRegisterBanking): added optimization for devices with only one
2296           possibly aliased bank of memory, like 16f84
2297         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
2298           devices have no SHAREBANK in the linker script
2299         * device/include/pic/pic14devices.txt: documented memmap
2300         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
2301
2302 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2303
2304         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
2305           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
2306           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
2307           genhc08Code): switched most of the D (debug) macros to DD (detailed
2308           debug) macros to better control clutter in the generated .asm file.
2309         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
2310           genRightShift): fixed bug with non-constant bit shift stored to
2311           a volatile result (SF Open Discussion forum thread #1616749).
2312           Single byte case is not yet optimized.
2313
2314 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
2315
2316         * device/include/asm/mcs51/features.h,
2317         * device/include/malloc.h,
2318         * device/include/stdio.h: changed keywords to double underscore variants,
2319           fixes bug 1590261
2320
2321 2006-11-27 Borut Razem <borut.razem AT siol.net>
2322
2323         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2324           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
2325           support/cpp2/output.h, support/cpp2/cppinit.c,
2326           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2327           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2328           support/cpp2/cppdefault.c, support/cpp2/system.h,
2329           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2330           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
2331           support/cpp2/prefix.c, support/cpp2/except.h,
2332           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
2333           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
2334           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2335           support/cpp2/version.c, support/cpp2/cppmain.c,
2336           support/cpp2/version.h, support/cpp2/hashtable.c,
2337           support/cpp2/cpperror.c:
2338           synchronized with GCC CPP release version 3.3.6,
2339           the latest where cppmain.c still exists.
2340         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
2341           support/cpp2/sdcppinit.c: added
2342
2343 2006-11-27 Borut Razem <borut.razem AT siol.net>
2344
2345         * support/cpp2/cpplex.c:
2346           fixed _asm ... _endasm handling bug, introduce with GCC CPP
2347           synchronization
2348         * support/cpp2/cpplib.c: removed definitions of unused variables
2349
2350 2006-11-26 Borut Razem <borut.razem AT siol.net>
2351
2352         * support/cpp2/libiberty.h: commented out x*alloc() declarations
2353           since they are redefined by macros in support/cpp2/sdcc.h
2354         * support/cpp2/sdcc.h: x*alloc macro redefinition
2355
2356 2006-11-25 Borut Razem <borut.razem AT siol.net>
2357
2358         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2359           support/cpp2/configure, support/cpp2/Makefile.in,
2360           support/cpp2/cppfiles.c, support/cpp2/output.h,
2361           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
2362           support/cpp2/config.h, support/cpp2/cpplib.h,
2363           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2364           support/cpp2/cppdefault.c, support/cpp2/config.in,
2365           support/cpp2/system.h, support/cpp2/cpplex.c,
2366           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
2367           support/cpp2/cppdefault.h, support/cpp2/prefix.c
2368           support/cpp2/hwint.h, support/cpp2/mbchar.h,
2369           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
2370           support/cpp2/configure.in, support/cpp2/intl.h,
2371           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
2372           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2373           support/cpp2/version.c, support/cpp2/cppmain.c,
2374           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
2375           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
2376           support/cpp2/cpperror.c,
2377           support/cpp2/libiberty/safe-ctype.c,
2378           support/cpp2/libiberty/safe-ctype.h,
2379           support/cpp2/libiberty/splay-tree.c,
2380           support/cpp2/libiberty/obstack.c,
2381           support/cpp2/libiberty/lbasename.c,
2382           support/cpp2/libiberty/splay-tree.h,
2383           support/cpp2/libiberty/obstack.h:
2384           synchronized with GCC CPP release version 3.2.3,
2385           the latest before integration of cpp into gcc
2386         * support/cpp2/except.h, support/cpp2/line-map.c,
2387           support/cpp2/line-map.h,
2388           support/cpp2/libiberty/hex.c,
2389           support/cpp2/libiberty/concat.c,
2390           support/cpp2/libiberty/filenames.h: added
2391         * support/cpp2/intl.c: deleted
2392
2393 2006-11-24 Borut Razem <borut.razem AT siol.net>
2394
2395         * src/SDCC.y: enabled compilation of empty source file
2396         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
2397           "ISO C forbids an empty source file"
2398         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
2399           if all the code is ifdefed out.
2400
2401 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2402
2403         * src/hc08/gen.c (genPcall): fix for bug #1601032
2404
2405 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2406
2407         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
2408         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
2409         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
2410         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
2411         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
2412         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
2413         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
2414         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
2415         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
2416         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
2417         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
2418         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
2419         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
2420         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
2421         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
2422           Renamed to all upper case as per the standard set by SiLabs
2423
2424 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2425
2426         * device/include/mcs51/C8051F520.h: new, added
2427         * device/include/mcs51/compiler.h: added link about predefined macros
2428
2429 2006-11-23 Raphael Neider <rneider AT web.de>
2430
2431         * src/regression/Makefile: add -L path to fresh library
2432         * src/regression/simulate: emphasize FAILED output
2433         * src/regression/create_stc: output _failures from gpsim
2434         * src/regression/compare4.c,
2435         * src/regression/rotate6.c: fixed char literals,
2436           all compile, all run =8-D
2437
2438         * src/pic/pcode.h: added isPCASMDIR macro
2439         * src/pic/gen.c (genAnd): fixed bit offset
2440         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
2441           packBits): unified register numbering schemes,
2442           (newReg): do not insert stack registers into hash table,
2443           (initStack): unpinned pseudo stack, simplified,
2444           (typeRegWithIdx): fixed retrieval of stack registers,
2445         * src/pic/pcode.c (addpCodeComment,sameBank): added,
2446           (pCodeReplace): removed invalid assertion,
2447           (insertPCodeInstruction): fixed newly added labels,
2448           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
2449           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
2450           DumpFlow): removed unsed (broken?) code,
2451           (insertBankSel): prevent STATUS from being BANKSELed,
2452           (FixRegisterBanking): rewritten from scratch, implemented generic
2453             optimizations (suppress BANKSELs to same register and to registers
2454             present in all banks),
2455           (AnalyzeBanking): update flow after BANKSELection
2456
2457         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
2458             sharebank, let linker place it, mark STKxx symbols as emitted
2459
2460 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2461
2462         * src/regression/arrays.c,
2463         * src/regression/bank1.c,
2464         * src/regression/bool2.c,
2465         * src/regression/compare7.c,
2466         * src/regression/compare8.c,
2467         * src/regression/compare9.c,
2468         * src/regression/compare10.c,
2469         * src/regression/configword.c,
2470         * src/regression/for.c,
2471         * src/regression/mult1.c,
2472         * src/regression/pointer1.c,
2473         * src/regression/rotate6.c,
2474         * src/regression/string1.c,
2475         * src/regression/struct1.c,
2476         * src/regression/Makefile: make PIC14 regression tests run again
2477           (3 fail, 6 won't compile)
2478
2479 2006-11-21 Raphael Neider <rneider AT web.de>
2480
2481         * device/include/pic16/pic18f4550.h,
2482         * device/include/pic16/pic18f4455.h,
2483         * device/lib/pic16/libdev/pic18f4550.c,
2484         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
2485         * configure.in: removed superfluous closing bracket
2486
2487 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2488
2489         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
2490           always positive.
2491
2492 2006-11-21 Raphael Neider <rneider AT web.de>
2493
2494         * src/pic/device.{c,h}: added pic14_getPIC()
2495         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
2496           (genAnd): added PIC code for one case, fixes #1597044
2497         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
2498           SFRs that are present in all banks (e.g., STATUS)
2499
2500 2006-11-20 Raphael Neider <rneider AT web.de>
2501
2502         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
2503           INCFSZ/INCFSZW and declared them as changing Z bit,
2504           (insertPCodeInstruction): correctly invert the above instructions,
2505           fixes #1599333,
2506           (DoBankSelect): don't panic on po_immediates
2507
2508 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2509
2510         * as/link/aslink.h,
2511         * as/link/mcs51/lkihx.c (newArea),
2512         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
2513         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
2514
2515 2006-11-11 Raphael Neider <rneider AT web.de>
2516
2517         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
2518           bitfield symbols, fixes #1579535 (once more...).
2519
2520 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2521
2522         * support/regression/generate-cases.py,
2523         * support/regression/fwk/include/testfwk.h,
2524         * support/regression/fwk/lib/testfwk.c: used code pointers,
2525           (about 50kByte less code generated for mcs51)
2526
2527 2006-11-06 Borut Razem <borut.razem AT siol.net>
2528
2529         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2530           debugger/mcs51/configure: fixed failed check because the function
2531           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
2532           who submitted the patch for gpsim.
2533         * debugger/mcs51/configure.in: removed the result message
2534         * debugger/mcs51/Makefile.in: fixed the config.status warning
2535           "... seems to ignore the --datarootdir setting"
2536
2537 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
2538
2539         * device/include/mcs51/c8051f020.h,
2540         * device/include/mcs51/c8051f040.h,
2541         * device/include/mcs51/c8051f060.h,
2542         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
2543         * src/z80/gen.c (gencjneshort),
2544         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
2545
2546 2006-10-31 Borut Razem <borut.razem AT siol.net>
2547
2548         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2549           debugger/mcs51/configure: get readline version
2550
2551 2006-10-30 Borut Razem <borut.razem AT siol.net>
2552
2553         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
2554         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2555           debugger/mcs51/configure: locate readline even when cross compiling
2556         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
2557
2558 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2559
2560         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
2561           serial port.
2562
2563 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2564
2565         * device/include/malloc.h,
2566         * device/lib/calloc.c,
2567         * device/lib/free.c,
2568         * device/lib/malloc.c,
2569         * device/lib/realloc.c: moved definition of struct into sources
2570         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
2571
2572 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2573
2574         * as/asx8051.dsp: corrected output directories
2575         * as/link/hc08: new directory for hc08 linker
2576         * as/hc08/aslink.h,             as/link/aslink.h,
2577         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
2578         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
2579         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
2580         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
2581         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
2582         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
2583         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
2584         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
2585         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
2586         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
2587         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
2588         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
2589         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
2590         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
2591         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
2592         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
2593         * as/link/hc08/conf.mk,
2594         * configure,
2595         * configure.in,
2596         * Makefile.in,
2597         * sdcc.dsw: moved hc08 linker to as/link/hc08
2598         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
2599         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
2600         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
2601         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
2602         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
2603         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
2604         * as/link/mcs51/aslink.dsp,
2605         * as/link/mcs51/Makefile.in: factored out the common files
2606         * as/hc08/lkstore.c: deleted, use the one already in as/link/
2607         * as/clean.mk: extra cleaning common files
2608         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
2609         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
2610         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
2611
2612 2006-10-29 Raphael Neider <rneider AT web.de>
2613
2614         * src/pic/ralloc.c (newReg): create aliases for registers with
2615           multiple names to fix #1579535 and #1584001,
2616           (regWithIdx,dirregWithName): resolve aliases on lookup
2617         * src/pic/pcode.c (DoBankSelect): die with error message on failing
2618           bankselect
2619         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
2620           to prevent build errors on small devices
2621
2622 2006-10-28 Raphael Neider <rneider AT web.de>
2623
2624         * src/pic/gen.c (genFunction,genCall): drop "same code page"
2625           assumption within interrupt handlers, fixes #1584940
2626         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
2627           "emitted" to avoid emitting them again in udata
2628
2629 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2630
2631         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2632         Removed.
2633
2634 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2635
2636         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2637         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
2638         on/off CR to CRLF conversion.
2639
2640 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2641
2642         * doc/sdccman.lyx: updated IRQ section
2643
2644 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2645
2646         * device/lib/serial_io.c: removed
2647         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
2648         replacements for serial_io.c
2649
2650 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
2651
2652         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
2653
2654 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2655
2656         * device/lib/serial_io.c: Default putchar() and getchar() for
2657           mcs51 uses serial port.
2658
2659 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
2660
2661         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
2662
2663 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2664
2665         * support/regression/ports/mcs51/support.c: smaller
2666         _sdcc_external_startup()
2667         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
2668
2669 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2670
2671         * device/lib/gbz80/crt0.s,
2672         * device/lib/gbz80/crt0_rle.s,
2673         * device/lib/gbz80/div.s,
2674         * device/lib/gbz80/fstubs.s,
2675         * device/lib/gbz80/heap.s,
2676         * device/lib/gbz80/mul.s,
2677         * device/lib/gbz80/putchar.s,
2678         * device/lib/gbz80/stubs.s,
2679         * device/lib/z80/crt0.s,
2680         * device/lib/z80/crt0_rle.s,
2681         * device/lib/z80/div.s,
2682         * device/lib/z80/fstubs.s,
2683         * device/lib/z80/heap.s,
2684         * device/lib/z80/mul.s,
2685         * device/lib/z80/putchar.s,
2686         * device/lib/z80/stubs.s: reverted, I was mistaken
2687
2688 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2689
2690         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2691         * support/regression/ports/mcs51/support.c: removed race
2692         condition on TI in _putchar allowing to use serial port mode 0
2693
2694 2006-10-20 Borut Razem <borut.razem AT siol.net>
2695
2696         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2697
2698 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2699
2700         * device/lib/gbz80/crt0.s,
2701         * device/lib/gbz80/crt0_rle.s,
2702         * device/lib/gbz80/div.s,
2703         * device/lib/gbz80/fstubs.s,
2704         * device/lib/gbz80/heap.s,
2705         * device/lib/gbz80/mul.s,
2706         * device/lib/gbz80/putchar.s,
2707         * device/lib/gbz80/stubs.s,
2708         * device/lib/z80/crt0.s,
2709         * device/lib/z80/crt0_rle.s,
2710         * device/lib/z80/div.s,
2711         * device/lib/z80/fstubs.s,
2712         * device/lib/z80/heap.s,
2713         * device/lib/z80/mul.s,
2714         * device/lib/z80/putchar.s,
2715         * device/lib/z80/stubs.s: removed all leading underscores from area names
2716
2717 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2718
2719         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2720           regression tests are not waiting in the simulator for simulated
2721           transmission of debug output
2722
2723 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2724
2725         * device/lib/printf_large.c: slightly smaller
2726         * doc/sdccman.lyx: do not use spaces within html links
2727
2728 2006-10-16 Borut Razem <borut.razem AT siol.net>
2729
2730         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2731           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2732           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2733           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2734           debugger/mcs51/configure:
2735           [ 1185668 ] add gnu readline support to sdcdb - enabled
2736
2737 2006-10-16 Raphael Neider <rneider AT web.de>
2738
2739         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2740           fixes #1577882, removes close to all banking optimizations
2741
2742 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2743
2744         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2745           variables in code memory
2746         * support/regression/tests/absolute.c: added test for this
2747
2748 2006-10-15 Raphael Neider <rneider AT web.de>
2749
2750         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2751           devices,
2752           (BankSelect): emit BANKSEL before touching linker-placed regs,
2753           fixes #1570934
2754
2755 2006-10-10 Raphael Neider <rneider AT web.de>
2756
2757         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2758         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2759         * src/pic/main.c (_pic14_parseOptions),
2760         * src/pic/main.h: mostly reverted to previous state, now use results
2761             from SDCCmain.c's argument parsing
2762
2763 2006-10-10 Borut Razem <borut.razem AT siol.net>
2764
2765         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2766           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2767           [ 1185668 ] add gnu readline support to sdcdb -
2768           prepared for READLINE, not enabled yet,
2769           thanks to <tal.bav AT gmail.com>
2770
2771 2006-10-10 Raphael Neider <rneider AT web.de>
2772
2773         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2774         * src/pic16/devices.inc,
2775         * device/include/pic16 (pic18f[24]620.h),
2776         * device/include/pic18fregs.h,
2777         * device/lib/pic16/pics.all,
2778         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2779             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2780             Gary Plumbridge and Anton Strobl
2781
2782 2006-10-10 Raphael Neider <rneider AT web.de>
2783
2784         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2785           --stack-siz=NUM options to configure the argument passing stack
2786         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2787         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2788           (pic14_getSharebankSize): obey --stack-siz=NUM,
2789           (pic14_getSharebankAddress): obey --stack-loc=NUM
2790
2791 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2792
2793         * doc/sdccman.lyx: added to the manual
2794         * doc/figures/ddd_example.png: added (neither pdflatex nor
2795         most browsers seem to like the .eps file)
2796
2797 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2798
2799         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2800         to /tmp and /var/tmp acc. LSB
2801         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2802         RESULT_TYPE_IFX
2803         * support/regression/tests/onebyte.c: added test
2804
2805 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2806
2807         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2808
2809 2006-10-05 Borut Razem <borut.razem AT siol.net>
2810
2811         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2812           thanks to dfulab:
2813           - sdcc.dsw: changed property eol-style to CRLF
2814           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2815
2816 2006-10-04 Raphael Neider <rneider AT web.de>
2817
2818         * device/include/pic/{pic16f84.h,pic16f84a.h},
2819         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2820           from patch #1522504, thanks to Robas Teodor
2821
2822 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2823
2824         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2825           fixes bug 1566015
2826
2827 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2828
2829         * src/pic16/glue.c (pic16emitMaps),
2830         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2831         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2832         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2833         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2834           Philipp Krause
2835         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2836         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2837
2838 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2839
2840         * support/librarian/sdcclib.c: Added option -l.
2841         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2842           usage totals.
2843         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2844           using Windows command prompt.
2845
2846 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2847
2848         * device/lib/libsdcc.lib: added module rand
2849         * src/ds390/ralloc.c (rematStr),
2850         * src/hc08/ralloc.c (rematStr),
2851         * src/mcs51/ralloc.c (rematStr),
2852         * src/z80/ralloc.c (rematStr): made output more consistent
2853         * src/mcs51/gen.c: cosmetic changes
2854
2855 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2856
2857         * src/port.h: added mem.cabs_name to PORT
2858         * src/ds390/main.c,
2859         * src/hc08/main.c,
2860         * src/mcs51/main.c,
2861         * src/pic16/main.c,
2862         * src/pic/main.c,
2863         * src/xa51/main.c,
2864         * src/z80/main.c: added cabs_name initializers
2865         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2866           constants
2867           (emitMaps): emit absolutes in code memory into cabs_name
2868         * src/SDCCmem.c,
2869         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2870         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2871         * support/regression/fwk/include/testfwk.h: added define for at
2872         * support/regression/tests/absolute.c: added, new
2873
2874 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2875
2876         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2877           optimizations, see also patch 887161 by Stas Sergeev
2878         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2879           to be necessary anymore,
2880           (102, 103, 104, 127): renamed all occurances of bp to _bp
2881
2882 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2883
2884         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2885           thanks Weston T. Schmidt for patch 1555221
2886         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2887         * src/SDCCicode.c(geniCodeMultiply): small optimization
2888
2889 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2890
2891         * device/include/stdlib.h: added rand prototypes
2892         * device/lib/rand.c: new, added
2893         * device/lib/Makefile.in: added rand.c
2894         * src/z80/peeph.def,
2895         * src/z80/peeph-gbz80.def,
2896         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2897
2898 2006-09-20 Raphael Neider <rneider AT web.de>
2899
2900         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2901
2902 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2903
2904         * as/link/aslink.h: cosmetic changes
2905         * as/link/mcs51/Makefile.in,
2906         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2907
2908 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2909
2910         * as/link/aslink.h,
2911         * as/link/mcs51/aslink.h,
2912         * as/link/z80/aslink.h: merged and moved to as/link/
2913         * as/link/lkstore.c,
2914         * as/link/mcs51/lkstore.c: moved to as/link/
2915         * as/link/clean.mk: remove *.o
2916         * as/link/mcs51/alloc.h: deleted
2917         * as/link/mcs51/lkarea.c: added lnksect prototype
2918         * as/link/mcs51/lkdata.c,
2919         * as/link/mcs51/lklex.c,
2920         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2921         * as/link/mcs51/lkmem.c,
2922         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2923         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2924         * as/link/mcs51/aslink.dsp,
2925         * as/link/mcs51/Makefile.aslink,
2926         * as/link/mcs51/Makefile.bcc,
2927         * as/link/mcs51/Makefile.in: updated for moved files
2928         * as/link/z80/lkarea.c,
2929         * as/link/z80/lkhead.c,
2930         * as/link/z80/lklex.c,
2931         * as/link/z80/lklibr.c,
2932         * as/link/z80/lklist.c,
2933         * as/link/z80/lkmain.c,
2934         * as/link/z80/lkrloc.c,
2935         * as/link/z80/lksym.c: synced with mcs51
2936         * as/link/z80/lkdata.c,
2937         * as/link/z80/lkeval.c,
2938         * as/link/z80/lkihx.c,
2939         * as/link/z80/lks19.c: cosmetic changes
2940         * as/link/z80/Makefile.in,
2941         * as/link/z80/linkgbz80.dsp,
2942         * as/link/z80/linkz80.dsp: updated for moved files
2943
2944 2006-09-16 Borut Razem <borut.razem AT siol.net>
2945
2946         * debugger/mcs51/sdcdb.c: partially fixed
2947           [ 1203664 ] sdcdb fails to open files w. two "." periods
2948         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2949           debugger/mcs51/symtab.h: fixed indenting
2950         * configure.in, configure: up to date with latest Maarten's changes
2951
2952 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2953
2954         as/link/mcs51
2955         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2956         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2957         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2958         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2959         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2960         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2961         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2962         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2963         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2964         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2965         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2966         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2967         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2968         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2969         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2970         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2971         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2972         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2973         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2974         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2975         as/link/mcs51/alloc.h,
2976         as/link/mcs51/clean.mk,
2977         as/link/mcs51/conf.mk,
2978         as/link/mcs51/Makefile.bcc,
2979         as/link/mcs51/Makefile.in,
2980         as/link/mcs51/readme.390,
2981         as/link/mcs51/strcmpi.c,
2982         as/link/mcs51/strcmpi.h,
2983         as/mcs51/clean.mk,
2984         as/mcs51/Makefile.bcc,
2985         as/mcs51/Makefile.in,
2986         configure,
2987         Makefile.in,
2988         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2989
2990 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2991
2992         * as/link,
2993         * as/link/Makefile.in,
2994         * as/link/z80/linkgbz80.dsp,
2995         * as/link/z80/linkz80.dsp,
2996         * configure,
2997         * link,
2998         * link/clean.mk,
2999         * link/Makefile.in,
3000         * link/README,
3001         * link/z80,
3002         * link/z80/aslink.h,
3003         * link/z80/clean.mk,
3004         * link/z80/conf.mk,
3005         * link/z80/linkgbz80.dsp,
3006         * link/z80/linkz80.dsp,
3007         * link/z80/lkarea.c,
3008         * link/z80/lkdata.c,
3009         * link/z80/lkeval.c,
3010         * link/z80/lkgb.c,
3011         * link/z80/lkgg.c,
3012         * link/z80/lkhead.c,
3013         * link/z80/lkihx.c,
3014         * link/z80/lklex.c,
3015         * link/z80/lklibr.c,
3016         * link/z80/lklist.c,
3017         * link/z80/lkmain.c,
3018         * link/z80/lkrloc.c,
3019         * link/z80/lks19.c,
3020         * link/z80/lksym.c,
3021         * link/z80/Makefile.in,
3022         * Makefile.in,
3023         * sdcc.dsw: moved link/ to as/link/
3024
3025 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
3026
3027         * as/mcs51/i51mch.c (machine): fixed warning
3028
3029 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
3030
3031         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
3032
3033 2006-09-09 Borut Razem <borut.razem AT siol.net>
3034
3035         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
3036           sdcdb WIN32 native port
3037         * src/clean.mk: fixed
3038
3039 2006-09-08 Borut Razem <borut.razem AT siol.net>
3040
3041         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
3042
3043 2006-09-08 Raphael Neider <rneider AT web.de>
3044
3045         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
3046         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
3047             to gplink to disable processor mismatch warning and to allow
3048             the use of devices with only aliased (shared) memory banks,
3049           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
3050
3051 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3052
3053         * doc/sdccman.lyx: Some re-formating plus example on using
3054           #pragma preproc_asm +/-
3055
3056 2006-09-07 Borut Razem <borut.razem AT siol.net>
3057
3058         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
3059           section
3060
3061 2006-09-06 Borut Razem <borut.razem AT siol.net>
3062
3063         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
3064           line at sdcc.nsi:153
3065         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
3066
3067 2006-09-05 Borut Razem <borut.razem AT siol.net>
3068
3069         * configure.in, configure: support for winsock2
3070         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
3071           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
3072           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
3073           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
3074           debugger/mcs51/symtab.h: sdcdb WIN32 native port
3075
3076 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
3077
3078         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
3079           and OP_DEFS
3080         * support/regression/tests/bug1551947.c: new, added
3081         * src/SDCCsymt.h: strings are char* not byte*
3082
3083 2006-09-05 Raphael Neider <rneider AT web.de>
3084
3085         * device/lib/pic16/libdev/pic18f4550.c,
3086           device/include/pic16/pic18f4550.h: added PORTD/TRISD
3087             declarations/definitions from patch #1520949
3088
3089 2006-09-05 Raphael Neider <rneider AT web.de>
3090
3091         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
3092           byte-aligned bitfields, fixes #1539278
3093
3094 2006-09-05 Raphael Neider <rneider AT web.de>
3095
3096         * src/pic/gen.c (genReceive): skip unreferenced arguments,
3097           fixes #1544120
3098
3099 2006-09-04 Borut Razem <borut.razem AT siol.net>
3100
3101         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
3102         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
3103           -mno-cygwin is a part of the compiler name
3104         * support/scripts/sdcc_mingw32: don't disable ucsim
3105
3106 2006-09-03 Borut Razem <borut.razem AT siol.net>
3107
3108         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
3109         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
3110
3111 2006-09-03 Raphael Neider <rneider AT web.de>
3112
3113         * src/pic/ralloc.c,
3114         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
3115           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
3116           fixes #1550049
3117
3118 2006-09-01 Borut Razem <borut.razem AT siol.net>
3119
3120         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
3121           to make ppc-osx happy
3122
3123 2006-08-31 Borut Razem <borut.razem AT siol.net>
3124
3125         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
3126         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
3127         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
3128         * support/regression/ports/ds390/spec.mk,
3129           support/regression/ports/mcs51/spec.mk,
3130           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
3131           To run regression tests in mingw environment:
3132           make DEV_NULL=NUL CC=gcc
3133
3134 2006-08-30 Borut Razem <borut.razem AT siol.net>
3135
3136         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
3137           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
3138           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
3139           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
3140           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
3141           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
3142           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
3143           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
3144           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
3145           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
3146           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
3147           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
3148           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
3149           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
3150           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
3151           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
3152           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
3153           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
3154           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
3155           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
3156           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
3157           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
3158           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
3159           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
3160           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
3161           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
3162           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
3163           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
3164           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
3165           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
3166           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
3167           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
3168           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
3169           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
3170           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
3171           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
3172           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3173           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
3174           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
3175           ucsim WIN32 native port
3176
3177 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3178
3179         * doc/sdccman.lyx: added note on dynamic memory heap initialization
3180
3181 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3182
3183         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
3184         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
3185
3186 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
3187
3188         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
3189         * support/regression/tests/bug1546986.c: new, added
3190         * as/mcs51/.cvsignore,
3191         * debugger/mcs51/.cvsignore,
3192         * src/.cvsignore: deleted
3193
3194 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3195
3196         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
3197           definitions)
3198
3199 2006-08-20 Borut Razem <borut.razem AT siol.net>
3200
3201         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
3202           removed cl_listen_console::match(), cl_console::match(),
3203           restructured cl_commander::proc_input()
3204
3205 2006-08-16 Borut Razem <borut.razem AT siol.net>
3206
3207         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
3208           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
3209           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
3210
3211 2006-08-14 Borut Razem <borut.razem AT siol.net>
3212
3213         * support/regression/Makefile.in,
3214           support/regression/ports/pic14/gpsim.cmd,
3215           support/regression/ports/pic14/spec.mk,
3216           support/regression/ports/pic14/support.c:
3217           added pic14 regression test
3218
3219 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
3220
3221         * as/doc/asxhtm.html: documented changed ABS behaviour
3222         * as/doc/README: fixed some typos
3223
3224 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
3225
3226         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
3227           not defined on host
3228
3229 2006-08-12 Borut Razem <borut.razem AT siol.net>
3230
3231         * support/regression/fwk/include/testfwk.h,
3232           support/regression/fwk/lib/testfwk.c,
3233           support/regression/generate-cases.py,
3234           support/regression/Makefile.in:
3235           regression test framework does not depend on function pointers and
3236           variable arguments
3237
3238 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
3239
3240         * device/include/stddef.h: c temporary hack to fix bug 1518273
3241
3242 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3243
3244         * device/include/mcs51/cc2510fx.h: added
3245         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
3246           to projects.
3247
3248 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
3249
3250         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
3251         * as/z80/Makefile.in: added strcmpi.c
3252         * as/z80/z80adr.c: added upper case registers and lower case conditionals
3253         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
3254
3255 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
3256
3257         * device/lib/gbz80/asm_strings.s,
3258         * device/lib/gbz80/crt0_rle.s,
3259         * device/lib/gbz80/div.s,
3260         * device/lib/gbz80/mul.s,
3261         * device/lib/gbz80/shift.s,
3262         * device/lib/z80/asm_strings.s,
3263         * device/lib/z80/crt0_rle.s,
3264         * device/lib/z80/div.s,
3265         * device/lib/z80/mul.s,
3266         * device/lib/z80/shift.s: changed to all lower case menmonics except the
3267           flags which are all upper case
3268
3269 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3270
3271         * as/z80/asm.h: made CASE_SENSITIVE 1
3272         * link/z80/aslink.h: made CASE_SENSITIVE 1
3273         * src/z80/gen.c (throughout): made all conditionals upper case
3274         * support/regression/tests/bug1503067.c: new
3275
3276 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3277
3278         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
3279           (shiftIntoPair): added case 2 for PAIR_IY,
3280           (setupToPreserveCarry): replaced parameters with iCode and check if
3281            PAIR_DE is in use to fix bug 1399290,
3282           (genPlus, genMinus): updated call to setupToPreserveCarry
3283         * support/regression/tests/bug1399290.c: new
3284
3285 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
3286
3287         * device/lib/Makefile.in (Z80SOURCES): enabled float support
3288         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
3289         * src/ds390/gen.c (shiftRLong),
3290         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
3291         * src/mcs51/gen.c (sameReg): changed to sameByte,
3292           (xch_a_aopGet): new,
3293           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
3294            shiftRLong): fixed bug 1533966
3295         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
3296           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
3297         * support/regression/Makefile.in: disabled z80, enabled ucz80
3298         * support/regression/tests/float_trans.c: enabled test for z80 and host
3299         * support/regression/tests/shifts2.c: new, for testing bug 1533966
3300
3301 2006-08-01 Borut Razem <borut.razem AT siol.net>
3302
3303         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
3304           comparison is always false due to limited range of data type
3305           on PPC64 machine (openpower-linux1) where "char = unsigned char"
3306
3307 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
3308
3309         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
3310         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
3311         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
3312         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
3313
3314 2006-07-31 Borut Razem <borut.razem AT siol.net>
3315
3316         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
3317           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
3318           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
3319           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
3320           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
3321           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
3322           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
3323           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
3324           enable ucsim mingw compilation. Serial port is disabled,
3325           since it uses termios.h API, which is not available on native
3326           WIN32
3327
3328 2006-07-31 Borut Razem <borut.razem AT siol.net>
3329
3330         * Small Device C Compiler 2.6.0 released
3331         * support/scripts/sdcc.nsi: added FULL_DOC option
3332         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
3333
3334 2006-07-28 Borut Razem <borut.razem AT siol.net>
3335
3336         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
3337         * doc/INSTALL.txt: updated
3338
3339 2006-07-27 Borut Razem <borut.razem AT siol.net>
3340
3341         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
3342           device/lib/pic/libdev/Makefile.in: fixed bug
3343           [ 1438354 ] pic libsdcc: distclean doesn't work
3344         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
3345           device/lib/pic16/libio/Makefile.in: fixed bug
3346           [ 1438344 ] pic16 lib: clean doesn't work properly
3347         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
3348
3349 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
3350
3351         * device/lib/pic/libsdcc/fsdiv.c,
3352         * device/lib/pic/libsdcc/fsmul.c,
3353         * device/lib/pic16/libsdcc/float/fsdiv.c,
3354         * device/lib/pic16/libsdcc/float/fsmul.c,
3355         * device/lib/_fsdiv.c,
3356         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
3357         * support/regression/tests/bug1520966.c: added
3358         * doc/knownbugs.html: removed [ 1520966 ] from the list
3359
3360 2006-07-25 Borut Razem <borut.razem AT siol.net>
3361
3362         * configure.in, configure, sdccconf_in.h: fixed bug
3363           [ 1519095 ] regression test onebyte.c fails on ppc64 host
3364         * doc/knownbugs.html: removed [ 1519095 ] from the list
3365
3366 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
3367
3368         * doc/knownbugs.html: added, contains list of known bugs at release
3369         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
3370
3371 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3372
3373         * device/include/mcs51/compiler.h: added SFRX for xdata based special
3374           function registers and corrected defaults with additional warning
3375         * device/lib/malloc.c: cosmetic changes
3376         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
3377         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
3378           (fillGaps): and used it
3379
3380 2006-07-20 Raphael Neider <rneider AT web.de>
3381
3382         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
3383           output unless SDCCPICDEBUG is set
3384         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
3385           output if SILENT is set
3386
3387 2006-07-11 Borut Razem <borut.razem AT siol.net>
3388
3389         * doc/README.txt: updated
3390
3391 2006-07-10 Borut Razem <borut.razem AT siol.net>
3392
3393         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
3394           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
3395           in WIN32 installation
3396         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
3397           release candidate 1
3398
3399 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
3400
3401         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
3402         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
3403
3404 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
3405
3406         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
3407
3408 2006-07-06 Borut Razem <borut.razem AT siol.net>
3409
3410         * support/regression/tests/bitfields.c:
3411           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
3412         * support/regression/tests/constantRange.c:
3413           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
3414
3415 2006-07-04 Borut Razem <borut.razem AT siol.net>
3416
3417         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
3418           src/port.mk,
3419           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3420           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3421           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3422           reverted changes from 2006-07-03
3423         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
3424         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
3425           added CPPFLAGS, used by the host port
3426
3427 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
3428
3429         * support/regression/valdiag/tests/switch.c,
3430         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
3431         * support/regression/tests/libmullong.c: fixed for host
3432         * support/regression/ports/host/spec.mk: disable all warnings for host,
3433         SDCC runs with --less-pedantic too
3434
3435 2006-07-03 Borut Razem <borut.razem AT siol.net>
3436
3437         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
3438           defined CPPFLAGS
3439         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
3440         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3441           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3442           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3443           include ../port.mk
3444         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
3445           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3446           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
3447           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
3448
3449 2006-07-02 Raphael Neider <rneider AT web.de>
3450
3451         * src/pic16/devices.inc,
3452         * device/include/pic16/pic18fregs.h,
3453         * device/include/pic16/pic18f4550.h,
3454         * device/lib/pic16/pics.all,
3455         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
3456
3457 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
3458
3459         * as/hc08/lkaomf51.c (OutputName),
3460         * as/mcs51/lkaomf51.c (OutputName),
3461         * as/z80/asmain.c (asmbl),
3462         * src/ds390/main.c (asmLineNodeFromLineNode),
3463         * src/hc08/ralloc.c (hc08_assignRegisters),
3464         * src/mcs51/main.c (asmLineNodeFromLineNode),
3465         * src/xa51/ralloc.c (checkRegMask),
3466         * src/xa51/gen.c (emitcode),
3467         * src/z80/gen.c (_emit2),
3468         * src/SDCCast.c (searchLitOp),
3469         * src/SDCCglobl.h,
3470         * support/packihx/packihx.c,
3471         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
3472         * src/ds390/gen.c (aopPutUsesAcc),
3473         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
3474         * support/regression/tests/libmullong.c (mullong_wrapper),
3475         * src/SDCCsymt.c (powof2),
3476         * src/SDCCast.c,
3477         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
3478         * src/SDCCsymt.h: added TYPE_TARGET_*
3479         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
3480         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
3481         SDCCast because 1) header problems 2) this is the right place
3482         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
3483         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
3484         prototype
3485
3486 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
3487
3488         * src/SDCCicode.h: removed buggy semicolon in unused macro
3489         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
3490         search for previous definiton of auto symbols too,
3491         (findPrevUse): fixed logic of emitWarnings
3492
3493 2006-06-26 Raphael Neider <rneider AT web.de>
3494
3495         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
3496           PCLATH and PCLATU on interrupts, potentially fixes #1505141
3497
3498 2006-06-25 Raphael Neider <rneider AT web.de>
3499
3500         * device/lib/pic/libm: NEW, added math library functions
3501         * device/lib/pic/libsdcc: NEW; added float support functions
3502         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
3503         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
3504           NEW, added math related headers
3505         * device/include/asm/pic/features.h: NEW
3506         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
3507           (popGet): allow larger offsets for AOP_PCODE,
3508           (genDataPointerSet): handle literals explicitly, more debug output,
3509           (genAssign): fixed for float using aopLiteral ;-)
3510         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
3511           GOTO initialisation routine
3512         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
3513           flag on registers, fixes #1469043 (local variables do not work)
3514         * src/pic/main.c (_pic14_do_link),
3515         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
3516           available
3517
3518 2006-06-25 Borut Razem <borut.razem AT siol.net>
3519
3520         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
3521           characters printed (not including the trailing '\0' used to end
3522           output to strings). Problem detected in regression test bug-927659.c.
3523           NOTE: printf() family functions should return int instead
3524           unsigned int!
3525         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
3526           specifier are printed as themselves
3527         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
3528           support flags, width and precision specifiers
3529
3530 2006-06-24 Borut Razem <borut.razem AT siol.net>
3531
3532         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
3533           to the list of sdcc tagrets not supporting bit type
3534         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
3535           testfor pic16 due to bug:
3536           [ 1511794 ] pic16: regression test bug-895992.c fails
3537
3538 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
3539
3540         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
3541         * src/SDCCglue.c (initPointer), fixed bug 1496419
3542         * support/regression/tests/bug1496419.c: new, added
3543
3544 2006-06-22 Borut Razem <borut.razem AT siol.net>
3545
3546         * support/regression/ports/pic16/support.c: use gpsim usart module from
3547           libgpsim_modules library
3548
3549 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3550
3551         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
3552         IP0H to IPH0.
3553
3554 2006-06-19 Raphael Neider <rneider AT web.de>
3555
3556         * src/pic/glue.h,src/pic16/glue.h: added prototypes
3557         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
3558           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
3559           (pic14printExterns,pic14printPublics,pic16printPublics,
3560           pic16_printExterns): use new functions to emit symbols
3561           (picglue,pic16glue): emit publics before emitting externs
3562         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
3563           locally defined functions to avoid bug #1443651
3564         * support/regression/tests/bug-716242.c: removed pic16 workaround
3565         * support/regression/ports/pic16/spec.mk: ignore errors during build
3566
3567 2006-06-19 Raphael Neider <rneider AT web.de>
3568
3569         * src/pic/glue.h: added pic14aopLiteral prototype
3570         * src/pic/glue.c (pic14aopLiteral): return unsigned int
3571         * src/pic/gen.c: removed stdint.h dependency
3572           (aopGet): use Safe_strdup()
3573           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
3574           (genDataPointerSet): use pic14aopLiteral()
3575         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
3576           for pic16; thanks to Bernhard and Maarten
3577
3578 2006-06-18 Borut Razem <borut.razem AT siol.net>
3579
3580         * support/regression/tests/structflexarray.c: flexible array members
3581           not supported by gcc < 3
3582         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
3583           GUI tool by default
3584         * src/pic/gen.c: don't include [p]strdin.h on solaris
3585         * support/Util/pstdint.h: addad svn attributes
3586         * support/regression/tests/constantRange.c,
3587           support/regression/tests/rotate.c: include inttypes.h instead
3588           stdint.h on solaris, addad svn attributes
3589
3590 2006-06-18 Raphael Neider <rneider AT web.de>
3591
3592         * src/SDCCsymt.c (initCSupport): change return type of divschar to
3593           int for PIC16
3594         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
3595           (pic16_genMinusBits): simplified sign-extension
3596           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
3597             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
3598             adjusted to correctly handle mixed-signed operands, disabled
3599             now unused multiplciation routines
3600         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
3601           (assignResultValue): added argument denoting the size of the result
3602             as returned by the function (fixes upcasts in assigning from
3603             function calls: char foo(); int i = foo();)
3604           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
3605             function result to assignResultValue
3606           (genMult): disabled inlined multiplication code
3607           (genDiv): augmented to also handle the modulus operator, fixed to
3608             handle mixed-signed operands correctly
3609           (genMod): simply call genDiv, disabled unused code
3610           (genAssign): fixed missing (sign-)extension on result
3611         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
3612             valid char operands, allow signed operands for native code, added
3613             division and modulo operator handling
3614         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
3615
3616         As a consequence, onebyte.c (if split into two files) and muldiv.c
3617         pass regression tests.
3618
3619 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3620
3621         * doc/Makefile.in: two runs of makeindex seem needed to get
3622         correct page references in the index of sdccman.pdf
3623         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
3624
3625 2006-06-17 Borut Razem <borut.razem AT siol.net>
3626
3627         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
3628
3629 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3630
3631         * doc/sdccman.lyx: updated, added (porting source code, debugging),
3632         mentioned ec2drv and paulmon
3633
3634 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
3635
3636         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
3637           consecutive abs areas
3638           (find_empty_space, allocate_space): added map to handle codemap or
3639            xdatamap,
3640           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
3641            absolute idata and xdata
3642         * as/mcs51/lkmem.c (summary2): updated legend
3643
3644 2006-06-16 Raphael Neider <rneider AT web.de>
3645
3646         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
3647
3648 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
3649
3650         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
3651           1208515
3652         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
3653
3654 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
3655
3656         * src/port.h (struct PORT): added field gp_tags, to hold the tag
3657         value of generic pointers,
3658         * src/avr/main.c,
3659           src/ds390/main.c,
3660           src/hc08/main.c,
3661           src/izt/i186.c,
3662           src/izt/tlcs900h.c,
3663           src/mcs51/main.c,
3664           src/pic/main.c,
3665           src/pic16/main.c,
3666           src/xa51/main.c,
3667           src/z80/main.c: PORT structure, added elements for gp_tags field,
3668         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
3669         fields in the PORT structure of each port,
3670         * src/SDCCast.c (decorateType): allow processing of generic pointers
3671         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
3672         S_FIXED symbols
3673
3674 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
3675
3676         * link/z80/lkgb.c,
3677         * link/z80/lkgg.c,
3678         * src/pic16/gen.c,
3679         * src/pic16/main.c,
3680         * src/pic16/pcode.c,
3681         * src/pic/main.c,
3682         * src/pic/pcoderegs.c,
3683         * src/SDCCicode.c,
3684         * src/SDCCmain.c,
3685         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3686           bug 1504689 on minGW
3687
3688 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3689
3690         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3691
3692 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3693
3694         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3695
3696 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3697
3698         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3699           for optimization
3700
3701 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3702
3703         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3704         to a char variable. Fixed bug #1504211
3705         * device/include/pic16/adc.h,
3706         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3707         and fixed bug #1364390
3708
3709 2006-06-10 Borut Razem <borut.razem AT siol.net>
3710
3711         * CVSROOT: removed the CVS left-over
3712
3713 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3714
3715         * as/hc08/asmain.c (asexit),
3716         * as/hc08/lkmain.c (lkexit),
3717         * as/mcs51/asmain.c (asexit),
3718         * as/mcs51/lkmain.c (lkexit),
3719         * src/SDCCglue.c (DEFSETFUNC),
3720         * src/SDCCmain.c (linkEdit, assemble),
3721         * support/librarian/sdcclib.c (AddRel),
3722           replaced unlink() by standard C remove()
3723         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3724         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3725           gatherImplicitVariables): new, added to fix bug 608752,
3726           (createFunction): added gatherImplicitVariables()
3727         * src/SDCCast.h: added createRMW prototype
3728         * src/SDCCsymt.h (struct symbol): added infertype
3729         * support/regression/tests/bug608752.c: new, added
3730
3731 2006-06-10 Raphael Neider <rneider AT web.de>
3732
3733         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3734           multibyte dummy reads (fixes #1503234)
3735
3736 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3737
3738         * device/include/mcs51/compiler.h: new, added header file to enable
3739           creating common sfr definition header files for different compilers
3740
3741 2006-06-05 Raphael Neider <rneider AT web.de>
3742
3743         * src/pic16/{pcode.h,genarith.c}:
3744           introduced pCodeOp combining any two pCodeOps (previously only
3745           two register operands could be combined), removed pcop2 from
3746           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3747         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3748         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3749           rewritten to use new PO_TWO_OPS
3750         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3751         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3752           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3753           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3754           (pic16_get_op): embraced return arg to allow #define return(x),
3755             added new case for combined opcodes
3756           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3757           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3758            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3759
3760 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3761
3762         * src/SDCCval.c (checkConstantRange): added
3763         * src/SDCCval.h: added checkConstantRange
3764         * support/Util/SDCCerr.c,
3765         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3766         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3767         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3768         * src/SDCCast.c (decorateType): added checkConstantRange,
3769         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3770         can be emitted with the correct always true/false warning,
3771         added optimization for double '!';
3772         result of decorateType() must be assigned back to the tree, because
3773         decorateType() can change the tree
3774         * src/SDCCicode.c (geniCodeLogic),
3775         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3776         (checkConstantRange): removed, it was only a fragment which never
3777         emitted a warning
3778         * src/SDCCsymt.c (computeType): fixed promotion for
3779         "-1 < (unsigned bit) b"
3780         * src/pic/ralloc.c (packRegsForAssign),
3781         * src/pic16/ralloc.c (packRegsForAssign),
3782         * src/hc08/ralloc.c (packRegsForAssign),
3783         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3784         from mcs51
3785         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3786         * support/regression/tests/constantRange.c: added
3787         * support/valdiag/tests/constantRange.c: added
3788         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3789
3790 2006-06-02 Borut Razem <borut.razem AT siol.net>
3791
3792         * support/regression/ports/pic16/support.c: increase stack size
3793           to 255 bytes
3794         * support/regression/Makefile.in: sort tests by name so that the
3795           resutlts can be compared on different machines / platforms
3796
3797 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3798
3799         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3800         * src/ds390/gen.c (emitLabel): new, added,
3801           (genDjnz): fixed stack overflow bug,
3802           (throughout): cosmetic changes to sync with mcs51/gen.c,
3803           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3804         * src/mcs51/gen.c (genEndFunction): small optimization,
3805           (throughout): cosmetic changes to sync with ds390/gen.c
3806
3807 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3808
3809         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3810           (_print_format): fixed printing pointers
3811         * src/mcs51/gen.c (emitLabel, movb): new, added,
3812           (genAssign): small optimization,
3813           (genDjnz): fixed stack overflow bug,
3814           (throughout): replaced sprintf with SNPRINTF,
3815           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3816           replaced emitcode("mov", "b,...") with MOVB(...),
3817           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3818           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3819         * src/mcs51/peeph.def: added rules 140 and 264
3820         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3821           so they may get optimized into registers
3822
3823 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3824
3825         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3826           immediately when encountered,
3827           (printUsage): always use stderr even on windows
3828
3829 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3830
3831         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3832         (processParms): fixed bug #1247551
3833         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3834         parseCmdLine, main): print '--version' to stdout,
3835         print 'help' to stdout if --help is given,
3836         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3837         arguments are given; fixed --help
3838
3839 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3840
3841         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3842         * support/regression/tests/bug-1493710.c: added
3843
3844 2006-05-27 Borut Razem <borut.razem AT siol.net>
3845
3846         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3847           static instead auto
3848         * support/regression/ports/pic16/support.c: increase stack size
3849           from default 64 bytes to 128 bytes
3850         * support/regression/tests/staticinit.c,
3851           support/regression/tests/float.c: regression tests fully enabled
3852           for pic16 port by putting the initialized data arrays into the code
3853           section
3854         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3855           This was changed by mistake in the previous version.
3856
3857 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3858
3859         * src/pic16/gen.c (genFunction, genEndFunction): some
3860         beautifications, fixed bug with falsely restoring FSR2 in large
3861         stack model, thanks to Beau E. Cox for reporting the bug
3862
3863 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3864
3865         * debugger/mcs51/break.c,
3866         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3867           use %p to print pointers, made address variables unsigned
3868         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3869         * debugger/mcs51/symtab.c (parseSymbol): must return something
3870         * src/mcs51/gen.c (aopForSym): small optimization,
3871            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3872           (freeAsmop): added missing break,
3873           (aopPut): removed parameter bvolatile, determine it inside the function,
3874           (saveRegisters, unsaveRegisters): small optimization,
3875           (genIpush): removed pointless check,
3876           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3877           replaced sprintf with SNPRINTF,
3878           replaced strcpy with strncpyz,
3879           updated aopPut calls,
3880           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3881         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3882
3883 2006-05-24 Borut Razem <borut.razem AT siol.net>
3884
3885         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3886           modification of test for the pic16 port, put the array to the code
3887           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3888
3889 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3890
3891         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3892         * support/Util/pstdint.h: added
3893
3894 2006-05-22 Borut Razem <borut.razem AT siol.net>
3895
3896         * src/regression/Makefile: removed bool2.c test, added -q linker option
3897         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3898           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3899           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3900           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3901           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3902           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3903           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3904           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3905           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3906
3907 2006-05-22 Raphael Neider <rneider AT web.de>
3908
3909         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3910           bug #1492360 (problematic due to generic pointers, see code)
3911
3912 2006-05-22 Borut Razem <borut.razem AT siol.net>
3913
3914         * support/regression/ports/pic16/specs.mk: removed stack size linker
3915           directive
3916         * support/regression/tests/array.c,
3917           support/regression/tests/bitopcse.c,
3918           support/regression/tests/bug-908454.c,
3919           support/regression/tests/malloc.c: modified for pic16 regression test
3920         * support/regression/tests/bitfields.c:
3921           pic16 - excluded bitfileds of size > 8
3922         * support/regression/tests/bp.c: pic16 - reduced data size
3923         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3924         * support/regression/tests/bug-460010.c:
3925           pic16 - used the absolute address the fits in memory
3926         * support/regression/tests/bug-716242.c:
3927           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3928         * support/regression/tests/float.c:
3929           pic16 - excluded - data size too big
3930         * support/regression/tests/onebyte.c:
3931           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3932         * support/regression/tests/shifts.c:
3933           pic16 - function names probably have to differ in first X characters
3934           (gpasm limitation?)
3935         * support/regression/tests/staticinit.c:
3936           pic16 - excluded some tests due error: no target memory available for
3937           section ".idata"
3938
3939 2006-05-22 Borut Razem <borut.razem AT siol.net>
3940
3941         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3942           second try. Thanks Stas Sergeev once more.
3943
3944 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3945
3946         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3947           (genLeftShift, genRightShift): fixed bug 1491627
3948         * src/hc08/peeph.def (rules 7, 8.x): added
3949         * support/regression/tests/shifts.c (ShiftLeftByParam,
3950           ShiftRightByParam, testShiftByParam): added to test variable shifting
3951
3952 2006-05-20 Raphael Neider <rneider AT web.de>
3953
3954         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3955         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3956           (allocReg): add only new registers to dynAllocRegs,
3957           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3958             #1489055, #1445850, and probably #1483693
3959
3960 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3961
3962         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3963         bug in for-loop that didn't emit the last of CONFIG and ID registers
3964
3965 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3966
3967         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3968           with offset
3969         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3970           1489016, 1434401 and 1490124
3971         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3972           1489016, 1434401 and 1490124
3973
3974 2006-05-17 Borut Razem <borut.razem AT siol.net>
3975
3976         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3977           thanks Stas Sergeev
3978
3979 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3980
3981         * device/include/mcs51/P89c51RD2.h,
3982         * device/include/mcs51/P89LPC901.h,
3983         * device/include/mcs51/P89LPC922.h,
3984         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3985
3986 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3987
3988         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3989         to fix missing stack pragma in compiled binary object file,
3990
3991 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3992
3993         * support/packihx/configure.in,
3994         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3995         determine sizeof basic types even while cross compiling
3996
3997 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3998
3999         * src/avr/gen.c (aopop),
4000         * src/ds390/gen.c (aopOp),
4001         * src/hc08/gen.c (aopOp),
4002         * src/mcs51/gen.c (aopop),
4003         * src/pic16/gen.c (pic16_aopOp),
4004         * src/pic/gen.c (aopOp),
4005         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
4006         if size of operand is smaller than spill location
4007
4008 2006-05-12 Borut Razem <borut.razem AT siol.net>
4009
4010         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
4011           have to have CR/LF line endings even if they are checked out on *nix
4012           or on WIN32 in cygwin binmode
4013
4014 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
4015
4016         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
4017         * device/include/ds80c390.h: added sfr16 definitions
4018         * src/ds390/gen.c,
4019         * src/ds390/gen.h,
4020         * src/ds390/main.c,
4021         * src/ds390/ralloc.c,
4022         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
4023           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
4024           bit returning functions
4025         * support/regression/tests/sfr16.c: enabled test on ds390
4026
4027 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4028
4029         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
4030         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
4031
4032 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
4033
4034         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
4035         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
4036           (cl_address_space constructor): removed expensive initialization,
4037           (cl_address_space::get_cell): extended for late initialization,
4038           (cl_address_space::*): use late initialization,
4039           (cl_address_decoder::activate): removed expensive initialization,
4040           This reduced regression test running time by 25%
4041
4042 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
4043
4044         * packihx/,
4045         * configure.in,
4046         * configure,
4047         * sdcc.dsw,
4048         * Makefile.bcc,
4049         * Makefile.in,
4050         * support/packihx/Makefile.in,
4051         * support/packihx/clean.mk,
4052         * support/packihx/Makefile.bcc,
4053         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
4054
4055 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4056
4057         * src/SDCCval.c (valNot): fix for regression test failure
4058           of not.c on big endian hosts
4059
4060 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
4061
4062         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
4063
4064 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4065
4066         * device/lib/mcs51/Makefile.in: changed string comparison operator
4067           to = for POSIX compliance; == is bash extension
4068
4069 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
4070
4071         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
4072           kosmonaut_pirx
4073
4074 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
4075
4076         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
4077         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
4078         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
4079         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
4080         bug report #1478657,
4081
4082 2006-05-05 Borut Razem <borut.razem AT siol.net>
4083
4084         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
4085           making the html
4086
4087 2006-05-02 Borut Razem <borut.razem AT siol.net>
4088
4089         * doc/Makefile.in: removed *.ind dependency since there is no rule to
4090           create *.ind, which made make to fail if invoked with -j 2
4091
4092 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
4093
4094         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
4095           Hubert Sack for patch 1479782
4096
4097 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
4098
4099         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
4100
4101 2006-05-01 Raphael Neider <rneider AT web.de>
4102
4103         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
4104           (create_pic): store only prefix-free device name,
4105           (init_pic): check for device names with "16" prefix,
4106           (list_valid_pics),
4107         * src/pic/device.h (struct PIC_device),
4108         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
4109             stored device name,
4110         * device/include/pic/pic12f{635,675,629,683}.h,
4111         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
4112         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
4113         * device/include/pic/pic16f505.h,
4114         * device/lib/pic/libdev/pic16f505.c: removed
4115         * device/include/pic/pic14devices.txt: added support for pic12f
4116             devices, removed unsupported non 16-bit devices
4117             [above changes provided by patch from Zik Saleeba]
4118         * src/pic/*, src/pic16/*, device/include/pic16/*,
4119           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
4120
4121 2006-05-01 Borut Razem <borut.razem AT siol.net>
4122
4123         * configure.in, configure, doc/Makefile.in:
4124           sync with nightly build makefile - latex, dvipdf and dvips
4125           not needed any more
4126
4127 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
4128
4129         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
4130         in the library source
4131
4132 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
4133
4134         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
4135
4136 2006-04-28 Raphael Neider <rneider AT web.de>
4137
4138         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
4139         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
4140           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
4141         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
4142
4143 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
4144
4145         * device/lib/pic/libdev/Makefile.in,
4146         * device/lib/hc08/Makefile.in,
4147         * device/lib/gbz80/Makefile.in,
4148         * device/lib/z80/Makefile.in,
4149         * device/lib/ds390/Makefile.in,
4150         * device/lib/ds400/Makefile.in: added srcdir to include search path,
4151         thanks to Borut for the bug report
4152         * configure.in,
4153         * configure: always create doc/Makefile independent from --enable-doc
4154         * Makefile.in: always install from directory doc independent from
4155         --enable-doc
4156         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
4157         removed
4158         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
4159         * doc/Makefile.in: install *.txt if present
4160         * device/include/Makefile.in (install): added installation of pic/*.inc
4161         and pic/*.txt files again, they were erroneously removed
4162
4163 2006-04-28 Raphael Neider <rneider AT web.de>
4164
4165         * src/pic/{gen.c,main.h,pcode.c},
4166         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
4167             concerning signedness with casts
4168
4169 2006-04-28 Raphael Neider <rneider AT web.de>
4170
4171         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
4172             definition of an interrupt handler,
4173         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
4174             interrupt handler stuff from picglue() to separate routine,
4175           (picglue): enabled definition of intr handlers in files w/o main()
4176
4177 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4178
4179         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
4180           compilation with MSVC 2005 Express Edition (VC8)
4181
4182 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
4183
4184         * device/lib/Makefile: fixed build of gbz80 lib
4185
4186 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4187
4188         * support/regression/tests/bug-460010.c,
4189         * support/regression/tests/bug-524691.c,
4190         * support/regression/tests/bug-716242.c: removed conditional defines
4191           that are already in testfwk.h
4192
4193 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4194
4195         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
4196           (AccAXRsh1): added, shift right by 1,
4197           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
4198            AccAXLrl1
4199         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
4200
4201 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
4202
4203         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
4204         remove cast to same type
4205         * src/SDCCast.c (decorateType): fix for RFE 1475742,
4206         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
4207         * as/z80/Makefile,
4208         * link/z80/Makefile: removed, they have moved to
4209         Makefile.in files
4210         * configure,
4211         * configure.in: replaced duplicate message about ucsim by missing sdcpp
4212         * install-sh: fix bug #1204398 by setting umask 0022
4213         * device/lib/Makefile: separate build of z80 and gbz80 lib
4214
4215 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
4216
4217         Enabled VPATH feature: changed nearly all Makefiles (149 files).
4218         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
4219
4220         One basic decision: e.g. src/clean.mk includes further files. In order
4221         to make this work there are two solutions:
4222         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
4223           run configure on them. This way they can use
4224           'include $(srcdir)/port-clean.mk'
4225         - always include clean.mk by the Makefile at the same level. To avoid
4226           that `make clean` tries to include and build Makefile.dep the
4227           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
4228           implemented, because now even `make uninstall` doesn't create
4229           Makefile.in. clean.mk could be eliminated by pasting it in
4230           Makefile.in.
4231
4232         * debugger/mcs51/Makefile.in: build own objects from library sources
4233         (SLIB, SDCC) in current directory
4234
4235         * configure, configure.in: renamed --disable-device-lib-build in
4236         --disable-device-lib; added --enable-doc, the required tools are
4237         searched by configure; added result message; the toolchain for the
4238         belonging ports are now only built, if the port is enabled.
4239
4240         * support/regression/*: all output is written in directory gen, because
4241         the fwk and ports directories don't livet in the build tree using vpath
4242
4243         * doc/sdccman.lyx: renamed --disable-device-lib-build to
4244         --disable-device-lib, added --enable-doc, added section VPATH
4245
4246         * sim/ucsim/configure.in,
4247         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
4248         z80 are enabled by default
4249
4250 2006-04-24 Raphael Neider <rneider AT web.de>
4251
4252         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
4253             to config word, "pic14_"-prefixed some extern functions
4254           (pic14_emitConfigWord): emit __config directive(s) if assignment to
4255             config word has been found
4256         * src/pic/device.h: added prototypes
4257         * src/pic/pcode.c: added "pic14_"-prefix where needed
4258         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
4259             fixup
4260         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
4261             words,
4262           (pic14emitRegularMap): ignore config words,
4263           (pic14createInterruptVect): moved generating __config directives away
4264           (picglue): have __config directives emitted
4265
4266 2006-04-24 Borut Razem <borut.razem AT siol.net>
4267
4268         * doc/Makefile: sync with nightly build makefile
4269
4270 2006-04-24 Raphael Neider <rneider AT web.de>
4271
4272         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
4273             registers that have not been assigned proper liveranges,
4274             fixes #1469504 and #1474602,
4275           (pCodeRegOptimizeRegUsage): fixed typo in comment
4276
4277 2006-04-24 Borut Razem <borut.razem AT siol.net>
4278
4279         * device/examples/main8051.c: deleted - it was removed from CVS
4280           24.mar.2000 and after that modified 18.feb.2001, so it reappered
4281           after the transition to Subversion
4282         * src/SDCCalloc.h: deleted - it was removed  from CVS
4283           3.feb.2001 and after that modified 18.feb.2001, so it reappered
4284           after the transition to Subversion
4285         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
4286           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
4287           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
4288           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
4289
4290 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
4291
4292         * as/asx8051.dsp: added mcs51/strcmpi.h
4293         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
4294         * as/hc08/aslink.h: updated lnksect prototype
4295         * as/hc08/asm.h,
4296         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
4297         * as/hc08/asmain.c,
4298         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
4299           (newdot): handle A_ABS
4300         * as/hc08/asout.c,
4301         * as/mcs51/asout.c (outarea): output address
4302         * as/hc08/lkaomf51.c,
4303         * as/mcs51/lkaomf51.c: disabled unused array UsageType
4304         * as/hc08/m08pst.c,
4305         * as/mcs51/i51pst.c,
4306         * as/z80/z80pst.c: "ABS" is not A_OVR
4307         * as/hc08/lkarea.c (newarea): read a_addr,
4308           (lnkarea): added codemap array, sort absolute areas to the front,
4309            combine all GSINITx/GSFINAL,
4310           (find_empty_space, allocate_space): new functions,
4311           (lnksect): return next address, handle absolute sections
4312         * as/mcs51/lkarea.c (newarea): read a_addr,
4313           lnksect2 prototype changed,
4314           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
4315           (find_empty_space, allocate_space): new, factored out of lnksect2,
4316           (lnksect2): return next address, handle absolute sections
4317         * as/hc08/lkhead.c,
4318         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
4319         * as/hc08/lklibr.c (addfile, fndsym),
4320         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
4321           index out of range and detect both '\' and '/'
4322         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
4323         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
4324           regression tests (ds390 cannot return bool yet)
4325         * doc/sdccman.lyx: changed version number, document changed --no-peep,
4326           document critical interrupts on z80, document changed SDCC define
4327         * src/asm.c (_asxxxx_mapping): fixed .org directive,
4328           (_a390_mapping): added .org directive
4329         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
4330           (genMultOneByte): fixed warnings
4331         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
4332           ones
4333         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
4334         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
4335           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
4336         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
4337         * src/pic16/main.c: removed newReg prototype
4338         * src/pic16/pcode.c,
4339         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
4340           warnings
4341         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
4342           ones
4343         * src/pic16/ralloc.c
4344         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
4345           to fix warnings
4346         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
4347           from short to PIC_OPTYPE
4348         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
4349         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
4350           optype from short to PIC_OPTYPE
4351         * src/port.h: made int_size unsigned to fix warnings
4352         * src/SDCC.y: fixed warning on MSVC
4353         * src/SDCCicode.c (getArraySizePtr): return unsigned int
4354         * src/SDCCopt.c (convertToFcall): fixed warnings
4355         * src/SDCCsymt.h: removed double prototype for genSymName
4356         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
4357           offset int to fix warnings
4358
4359 2006-04-22 Borut Razem <borut.razem AT siol.net>
4360
4361         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4362           references to CVS replaced with Subversion
4363
4364 2006-04-21 Borut Razem <borut.razem AT siol.net>
4365
4366         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4367           references to CVS replaced with Subversion
4368
4369 2006-04-19 Borut Razem <borut.razem AT siol.net>
4370
4371         * src/version.awk: adapted for svn
4372         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
4373           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
4374           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
4375           /binutils-avr/etc/*.vi, *.jin: removed all properties
4376           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
4377
4378 2006-04-19 Borut Razem <borut.razem AT siol.net>
4379
4380         * CVS to Subversion migration completed
4381
4382 2006-04-18 Borut Razem <borut.razem AT siol.net>
4383
4384         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
4385           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
4386
4387 2006-04-17 Borut Razem <borut.razem AT siol.net>
4388
4389         * device/include/Makefile.in: added pic/*.inc to the installation
4390
4391 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
4392
4393         * support/regression/collate-results.py: fixed output in case of
4394         a valdiag error
4395         * support/regression/generate-cases.py: fixed splitting of pathnames
4396         with dots
4397         * as/hc08/lklibr.c (addfile),
4398         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
4399
4400 2006-04-11 Raphael Neider <rneider AT web.de>
4401
4402         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
4403         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
4404         * src/pic16/pcode.c (assignValnums): fixed #1460578
4405
4406 2006-04-11 Raphael Neider <rneider AT web.de>
4407
4408         * device/lib/pic/libdev/*.c,
4409         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
4410           fixes #1468739, enables compilation in --std-c99 mode
4411         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
4412
4413 2006-04-11 Raphael Neider <rneider AT web.de>
4414
4415         * src/pic/device.c (find_device): removed debug output
4416           (list_valid_pics): enabled verbose listing of supported devices
4417         * device/include/stdbool.h: define bool as char for pic14/16 as well
4418
4419 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4420
4421         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
4422
4423 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4424
4425         * .version: bumped version to 2.5.6
4426         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
4427
4428 2006-04-06 Raphael Neider <rneider AT web.de>
4429
4430         * .version: bumped version to 2.5.6 (pic14 ABI changed)
4431         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
4432         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
4433           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
4434             pic14_constructAbsMap
4435           (pic14printPublics): declare absolute global symbols as global
4436           (pic14createInterruptVect),
4437         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
4438           (newReg): assume new registers unused, use correct name in
4439             hashtable (reg->name instead of name), more debugLog output
4440         * src/pic/device.h (PIC_device): added fields for verbose output
4441         * src/pic/device.c: moved device definition to pic14devices.txt,
4442             added routines for runtime parsing of pic14devices.txt,
4443             added support for second config word
4444         * src/pic/main.c (_process_pragma): removed #pragma maxram,
4445           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
4446           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
4447           (_pic14_parseOptions): moved pCodeInitRegisters here
4448           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
4449         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
4450           (pCodeInitRegisters): rewrapped comments, perpared new approach to
4451             handling the pseudo stack
4452         * device/lib/Makefile.in: ignore failures in objects-pic16,
4453         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
4454         * device/lib/pic/NEWS: document new dependency on picXXX.lib
4455         * device/lib/pic/Makefile.subdir,
4456         * device/lib/pic16/Makefile.subdir: improved clean rules
4457         * device/lib/pic/libdev/: NEW, pic14 device libraries
4458         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
4459         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
4460         * device/include/Makefile.in: create subdir and install pic14 headers
4461         * device/include/pic/p16f_common.inc: removed unused declarations
4462         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
4463             PICs from inc2h.pl v1.6,
4464             replaced BIT_AT macros with struct declarations
4465         * device/include/pic/pic14devices.txt: definition of supported devices,
4466             all above improvements contributed by Zik Saleeba, thanks
4467         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
4468         * support/scripts/sdcc.nsi: also install pic14 device libraries and
4469             headers
4470
4471 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4472
4473         * device/include/mcs51/c8051f410.h: added interrupt numbers,
4474         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
4475           thanks to Charles Olds
4476
4477 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4478
4479         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
4480
4481 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4482
4483         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
4484         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
4485         * support/regression/bug1464657.c: added, new test
4486
4487 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4488
4489         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
4490           version number
4491
4492 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4493
4494         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
4495           --no-peep and --peep-file <file> are used don't use default rules but
4496           do use the <file>
4497
4498 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4499
4500         * src/mcs51/gen.c (genCall): fixed bug 1457608
4501
4502 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4503
4504         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
4505         changes seem to cause (trigger?) problems with the build system.
4506
4507 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
4508
4509         * src/SDCCpeeph.c (operandsLiteral): new, added,
4510           (callFuncByName): inserted operandsLiteral
4511         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
4512
4513 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4514
4515         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
4516         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
4517
4518 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4519
4520         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
4521           implemented patch 1120823 Thanks to Willy De la Court (normal
4522           interrupts need an interrupt number now if they are made critical),
4523           and enabled nesting of critical functions though not for gbz80
4524           (genCritical, genEndCritical): added functions
4525           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
4526         * src/z80/mappings.i: added "ei" to all mappings
4527
4528 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4529
4530         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
4531         submitted by the Debian SDCC maintainer Aurelien Jarno:
4532         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
4533         archive with gcc 4.1 on mips and wrote the patch"
4534
4535 2006-03-16 Raphael Neider <rneider AT web.de>
4536
4537         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
4538           the left operand is shorter than the result (c* = lit-c* + int),
4539           fixes bug #1450796
4540         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
4541           OP_SYMBOL
4542
4543 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4544
4545         * src/.version: increased version number to 2.5.5
4546         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
4547         linking is done manually in pic16 port's _linkEdit,
4548         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
4549         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
4550         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
4551         allocate asmop as AOP_ACC,
4552         (aopForRemat): added parameter 'bool result' in function declaration,
4553         (pic16_aopGet): return AOP_ACC when accessing WREG,
4554         (pic16_popGetTempReg): minor modification,
4555         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
4556         'pic16_allocWithIdx',
4557         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
4558         calling function in absolute addresses,
4559         (genAssign): take into account AOP_ACC asmop,
4560         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
4561         * src/pic16/pcoderegs.c: some debug functions and lines added,
4562         * src/pic16/ralloc.c (decodeRegType): added but commented out,
4563         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
4564         register too,
4565         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
4566         call to allocReg, not by manually allocating a new one,
4567         (pic16_assignRegisters): now before going through the register
4568         allocating functions mark all registers as free. This eliminates some
4569         side effects resulting from peephole parser done earlier in the backbone
4570
4571 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
4572
4573         * src/SDCCicode.c (geniCodeLogic),
4574         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
4575
4576 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
4577
4578         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
4579           (genSend): bugfix, do not allocate and free twice,
4580           (shiftRLong): handle partially overlapping aops
4581         * support/regression/tests/bitopcse.c: fixed warning redefined idata
4582
4583 2006-03-08 Borut Razem <borut.razem AT siol.net>
4584
4585         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
4586           for pic16
4587
4588 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
4589
4590         * support/regression/tests/bug1409955.c: new, added
4591         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
4592         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
4593           (aopForSym, aopOp): increment asmop.allocated if reused,
4594           (freeAsmop): decrement asmop.allocated and check for zero instead of
4595           using asmop.freed,
4596           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
4597           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
4598            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
4599            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
4600            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
4601            genSignedRightShift, genRightShift, genDataPointerGet,
4602            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
4603            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
4604             in reverse order from allocation,
4605           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
4606             added swappedLR to keep track
4607         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
4608           pdata & code for GCC, z80, gbz80 & hc08
4609         * support/regression/tests/zeropad.c: moved defines to testfwk.h
4610
4611 2006-03-08 Raphael Neider <rneider AT web.de>
4612
4613         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
4614
4615 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
4616
4617         * device/include/mcs51/c8051f410.h: new SiLabs mcu
4618         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
4619         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
4620
4621 2006-03-06 Borut Razem <borut.razem AT siol.net>
4622
4623         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
4624           made the linker quiet
4625
4626 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4627
4628         * src/pic16/gen.c (genPcall): fixed bug #1443644
4629         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
4630         which dumps before the function entry point a data byte which represents
4631         the number of the local variables used by the specified function, added
4632         'xinst' for initial support for Extended Instruction Support,
4633         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
4634         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
4635         port->fun_prefix anymore (may change later),
4636         (genFunction, genEndFunction): do not store/restore local registers for
4637         _main (this should take care the --main-return command line option in
4638         the future),
4639         (genOr): removed some legacy pic-port instructions,
4640         * src/pic16/genarith.c (genAddLit): re-enabled old code because
4641         performing operations with SFR's causes data to be written more than
4642         once to each SFR. Perhaps SFRs should be handled in special cases...
4643         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
4644         pcode.h
4645         * src/pic16/main.c (_process_pragma): stack bound checking did not take
4646         into account for stack starting position,
4647         (struct OPTIONS pic16_optionsTable): added command line argument
4648         --extended or -y for Extended Instruction Support,
4649         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
4650         (deassignLRs): *** perhaps the most important change, old 'for' code
4651         (commented out for reference), didn't account for some registers which
4652         were left marked 'not free' after a pointer operation. The change
4653         reduces register usage a lot in some cases
4654
4655 2006-03-04 Borut Razem <borut.razem AT siol.net>
4656
4657         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
4658           _clean
4659         * support/regression/tests/bug-524697.c: decreased array size for
4660           mcs51 to fit into the internal RAM
4661         * support/regression/Makefile.in: a little bit more verbose
4662
4663 2006-03-03 Borut Razem <borut.razem AT siol.net>
4664
4665         * support/regression/fwk/lib/testfwk.c,
4666           support/regression/fwk/include/testfwk.h: introduced function
4667           _prints(), nonrecursive _printn(), call _initEmu() from main()
4668         * support/regression/ports/gbz80/support.asm,
4669           support/regression/ports/ucz80/support.asm,
4670           support/regression/ports/z80/support.asm,
4671           support/regression/ports/ds390/support.c,
4672           support/regression/ports/hc08/support.c,
4673           support/regression/ports/host/support.c,
4674           support/regression/ports/mcs51/support.c,
4675           support/regression/ports/xa51/support.c: added empty _initEmu()
4676           function
4677         * support/regression/ports/pic16/gpsim.cmd,
4678           support/regression/ports/pic16/spec.mk,
4679           support/regression/ports/pic16/support.c,
4680           support/regression/Makefile.in: added pic16 regression test
4681
4682 2006-03-01 Raphael Neider <rneider AT web.de>
4683
4684         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4685           genConstPointerGet): use safe way of generating MOVFF to cover
4686             literals as well as registers, fixes bug #1440527
4687         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4688             dereference
4689           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4690             more correctly, fixes bug #1232186
4691           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4692         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4693             gplink guess the correct processor in more cases, applied patch
4694             from Till Riedel attached to and fixing bug #1436552
4695
4696 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4697
4698         * support/regression/tests/array.c: added, contains check for #1434401
4699         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4700
4701 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4702
4703         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4704         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4705         * device/include/mcs51/c8051f326.h,
4706         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4707         * device/include/mcs51/c8051f000.h,
4708         * device/include/mcs51/c8051f018.h,
4709         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4710           PCON_IDLE,PCON_STOP and added sfr16 definitions
4711
4712 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4713
4714         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4715           genGetWord): fixed bug 1409955
4716
4717 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4718
4719         * device/include/hc08/mc68hc908gp32.h,
4720         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4721
4722 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4723
4724         * src/SDCCast.c (constExprValue): return NULL if not a value
4725         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4726         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4727         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4728
4729 2006-02-13 Borut Razem <borut.razem AT siol.net>
4730
4731         * src/regression/ptrarg.c: added, fails due to bug #1430967
4732         * src/regression/Makefile: ptrarg.c added, ...
4733
4734 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4735
4736         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4737         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4738
4739 2006-02-11 Borut Razem <borut.razem AT siol.net>
4740
4741         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4742           print "Processor: xxx" message to stdout only if --verbose
4743
4744 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4745
4746         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4747         * support/regression/tests/bug1426356.c: added
4748         * support/regression/tests/bitfields.c: removed 2 tests
4749
4750 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4751
4752         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4753         * device/include/mcs51/c8051f330.h,
4754         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4755           PCON_IDLE,PCON_STOP and added sfr16 definitions
4756         * device/lib/_divsint.c,
4757         * device/lib/_divuint.c,
4758         * device/lib/_divulong.c,
4759         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4760           register bank bug for small stackauto
4761
4762 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4763
4764         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4765
4766 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4767
4768         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4769         * all.dsp: corrected several bin paths
4770         * device/include/mcs51/c8051f120.h,
4771         * device/include/mcs51/c8051f300.h,
4772         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4773           to PCON_IDLE,PCON_STOP
4774         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4775         * device/lib/printf_large.c (output_float): fixed bug 1388703
4776         * support/regression/tests/bug1057979.c: added test for bug 1388703
4777
4778 2006-02-08 Raphael Neider <rneider AT web.de>
4779
4780         * src/pic/pcode.c (pciTRIS): fixed typo,
4781           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4782           (LinkFlow): fixed handling of flows that end in a call,
4783           (ReuseReg): perform safety check earlier
4784         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4785             to work with flows at the beginning of a pBlock,
4786             fixes #1426557 (Symbol not previously defined),
4787           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4788             usage information
4789           (RemoveUnusedRegisters): update register usage info
4790         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4791             created, reuse existing ones instead
4792         * src/pic/gen.c (genPcall): fixed #1424719
4793
4794 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4795
4796         * link/z80/lkmain.c,
4797         * link/z80/lklex.c,
4798         * link/z80/lkdata.c,
4799         * link/z80/aslink.h: fixed build on current cygwin:
4800         replaced getline() by lk_getline()
4801
4802 2006-02-01 Borut Razem <borut.razem AT siol.net>
4803
4804         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4805           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4806           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4807           src/regression/bool1.c, src/regression/bool2.c,
4808           src/regression/bool3.c, src/regression/call1.c,
4809           src/regression/compare.c, src/regression/compare10.c,
4810           src/regression/compare2.c, src/regression/compare3.c,
4811           src/regression/compare4.c, src/regression/compare5.c,
4812           src/regression/compare6.c, src/regression/compare7.c,
4813           src/regression/compare8.c, src/regression/compare9.c,
4814           src/regression/configword.c, src/regression/for.c,
4815           src/regression/inline.c, src/regression/mult1.c,
4816           src/regression/nestfor.c, src/regression/or1.c,
4817           src/regression/pointer1.c, src/regression/ptrfunc.c,
4818           src/regression/rotate1.c, src/regression/rotate2.c,
4819           src/regression/rotate3.c, src/regression/rotate4.c,
4820           src/regression/rotate5.c, src/regression/rotate6.c,
4821           src/regression/rotate7.c, src/regression/string1.c,
4822           src/regression/struct1.c, src/regression/sub.c,
4823           src/regression/sub2.c, src/regression/switch1.c,
4824           src/regression/while.c, src/regression/xor.c,
4825           src/regression/create_stc, src/regression/simulate,
4826           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4827           regression tests
4828         * src/regression/gpsim_assert.h: added
4829
4830 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4831
4832         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4833         ((void (code *) (void)) 0) ();
4834         * as/hc08/aslex.c,
4835         * as/hc08/aslink.h,
4836         * as/hc08/asm.h,
4837         * as/hc08/asmain.c,
4838         * as/hc08/lkdata.c,
4839         * as/hc08/lklex.c,
4840         * as/hc08/lkmain.c,
4841         * as/mcs51/aslex.c,
4842         * as/mcs51/aslink.h,
4843         * as/mcs51/asm.h,
4844         * as/mcs51/asmain.c,
4845         * as/mcs51/lkdata.c,
4846         * as/mcs51/lklex.c,
4847         * as/mcs51/lkmain.c,
4848         * as/z80/aslex.c,
4849         * as/z80/asm.h,
4850         * as/z80/asmain.c: fixed build on current cygwin:
4851         replaced getline() by as_getline()
4852
4853 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4854
4855         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4856         declarator in the symbol chain
4857         * src/SDCCsymt.h,
4858         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4859         parameter list for function pointers
4860         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4861         * support/regression/tests/bug-716242.c: added
4862
4863 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4864
4865         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4866         offset if possible
4867         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4868
4869 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4870
4871         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4872         inifinitely recurseable, added static
4873         * support/regression/tests/bug-1408066.c: added
4874
4875 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4876
4877         * src/SDCCicode.h,
4878         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4879         renamed, added possibility to create "postLoopLbl"-labels
4880         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4881         newiTempLoopHeaderLabel
4882         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4883         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4884         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4885         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4886         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4887         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4888         (basicInduction): fixed bug #136564, made static,
4889         (loopInduction): changed parameter of basicInduction, made static,
4890         (addPostLoopBlock): added
4891         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4892         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4893         findLoopEndSeq
4894         * support/regression/tests/bug-136564.c: added
4895         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4896         --std-sdcc99 to LIBSDCCFLAGS
4897
4898 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4899
4900         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4901         while loop
4902         * support/regression/tests/bug-1406131.c: added
4903
4904 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4905
4906         * src/SDCCast.c (decorateType): fix promotion of unary minus
4907         * src/SDCCsymt.c (computeType): beautified
4908         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4909         (valUnaryPM, valComplement): fix sign and promotion,
4910         (valNot): ANSI: result type is int (SDCC: unsigned char)
4911         * support/regression/tests/uminus.c: speedup by removing superflous
4912         test case 'int'
4913         * support/regression/tests/onebyte.c: added promotion and signedness
4914         tests for unary minus
4915         * support/regressions/tests/bug-477927.c: disable warning about
4916         uninitialized variables
4917         * support/regression/tests/not.c: added
4918
4919 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4920
4921         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4922         * src/mcs51/gen.c (gen51Code): show final register usage after
4923         fillGaps in asm with --i-code-in-asm
4924         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4925         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4926         incUsed, rliveClear, adjustIChain): made static,
4927         (setFromRange): excluded because it's unused,
4928         (findPrevUseSym, markWholeLoop): added,
4929         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4930         through all branches of predecessors enables sdcc to emit the warning
4931         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4932         (rlivePoint): made static, added parameter emitWarnings which is only
4933         true during the first run out of two,
4934         (findRecursiveSucc, findRecursivePred): removed,
4935         (computeLiveRanges): made static, added parameter emitWarnings,
4936         (dumpIcRlive): added for debugging only
4937         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4938         removed prototype of setFromRange()
4939         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4940         in call of computeLiveRanges()
4941         * support/regression/tests/bug-895992.c: added
4942         * support/regression/tests/bug-971834.c: added
4943         * support/valdiag/tests/bug-895992.c: added
4944         * support/valdiag/tests/bug-971834.c: added
4945
4946 2005-12-18 Raphael Neider <rneider AT web.de>
4947
4948         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4949           (genUnpackBits): improved code for direct operands,
4950           (genPackBits): improved code for literal assignment to bitfields
4951             and for direct destination operands (no FSR indirection),
4952             prevented redundant AND, fixes #1362800,
4953           (AccLsh): added parameter to disable masking of the result
4954         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4955           skip instructions with side-effects (like incfsz),
4956           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4957         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4958         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4959           fixes #1375263
4960
4961 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4962
4963         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4964         volatile variables as spill location
4965
4966 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4967
4968         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4969         replacing literals
4970         * support/regression/tests/bug-1376320.c: added
4971
4972 2005-12-08 Raphael Neider <rneider AT web.de>
4973
4974         * src/pic/device.c: renamed is_shared to pic14_is_shared
4975         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4976         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4977           (is_valid_identifier): added for above workaround
4978
4979 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4980
4981         * device/lib/Makefile.in: fixed to enable port-specific-objects
4982         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4983           char, thanks Hubert Sack
4984         * doc/sdccman.lyx: documented --xstack-loc,
4985           elaborated a bit more on interrupts and pitfalls,
4986           removed "setjmp/longjmp unsupported",
4987           documented some unsupported C99 features
4988         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4989         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4990           if, thanks Hubert Sack
4991         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4992         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4993           make make_library
4994         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4995           regression tests can report resource usage (rfe 700441)
4996         * support/regression/collate-results.py: report resource usage
4997         * support/regression/ports/ds390/spec.mk,
4998         * support/regression/ports/hc08/spec.mk,
4999         * support/regression/ports/mcs51/spec.mk,
5000         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
5001         * support/regression/ports/ds390/uCsim.cmd,
5002         * support/regression/ports/hc08/uCsim.cmd,
5003         * support/regression/ports/mcs51/uCsim.cmd,
5004         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
5005         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
5006           library, use the default one
5007         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
5008           building the library
5009
5010 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
5011
5012         * config.dsp: added dependency on .version and configure_vc.awk
5013         * device/include/setjmp.h: updated for --stack-auto and --xstack
5014         * device/include/mcs51/at89c51snd1c.h: corrected line endings
5015         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
5016         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
5017         * device/lib/libsdcc.lib: added _setjmp
5018         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
5019           (decorateType): fixed bug 1372851,
5020           (optimizeGetHbit): fixed warning
5021         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
5022           array initialisation
5023         * support/regression/tests/bug1057979.c: added test for bug 1358192
5024         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
5025
5026 2005-12-03 Borut Razem <borut.razem AT siol.net>
5027
5028         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
5029           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
5030
5031 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
5032
5033         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
5034         createIval): implement symbol independant "flexible array member",
5035         (createIvalCharPtr): implemented flexible array initialisation with a
5036         string
5037         * src/SDCCsymt.c (copyStruct): removed,
5038         (getSize): fixed misleading comment,
5039         (getAllocSize): removed, the additional allocation size is now in
5040         sym->flexArrayLength,
5041         (checkStructFlexArray): new, syntax checks for flexible array members,
5042         (compStructSize): added syntax checks for "flexible array members"
5043         (copyStruct): removed,
5044         (copyLinkChain): removed inefficient fix for bug 770487
5045         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
5046         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
5047         symbol->flexArrayLength
5048         * src/SDCCerr.c,
5049         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
5050         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
5051         * support/regression/tests/structflexarray.c: added
5052         * support/valdiag/tests/structflexiblearray.c: added
5053
5054 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
5055
5056         * src/SDCCast.c (decorateType): fixed bug 1368489
5057         * support/Util/SDCCerr.c,
5058         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
5059
5060 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5061
5062         * device/include/mcs51/at89c51snd1c.h: added file submitted by
5063           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
5064
5065 2005-11-27 Borut Razem <borut.razem AT siol.net>
5066
5067         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
5068           support/cpp2/mkdeps.h: added command line option
5069           -obj-ext=<extension> to SDCPP to define object file externion, used
5070           for generation of make dependencies (-M)
5071         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
5072
5073 2005-11-26 Borut Razem <borut.razem AT siol.net>
5074
5075         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
5076           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
5077           added pic and pic16 libraries
5078
5079 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5080
5081         * device/include/float.h: Corrected typo in prototype of __fsgt
5082
5083 2005-11-25 Borut Razem <borut.razem AT siol.net>
5084
5085         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
5086           added creation of model-mcs51-stack-auto libraries
5087
5088 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
5089
5090         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
5091         and fields-list too
5092         * src/SDCCast.c (createIvalArray): removed obsolete comment
5093
5094 2005-11-24 Borut Razem <borut.razem AT siol.net>
5095
5096         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
5097           added missing device/lib/mcs51/crt*.asm sources
5098
5099 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
5100
5101         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
5102
5103 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
5104
5105         * device/lib/_fs2schar.c,
5106         * device/lib/_fs2sint.c,
5107         * device/lib/_fs2slong.c: optimized inline asm
5108
5109 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5110
5111         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
5112           Better handling of floats between -1.0 and 0.0.
5113
5114 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5115
5116         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
5117           (the missing "if"s prohibited removal of redundant labels)
5118
5119 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5120
5121         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
5122           Properly convert floats between -1.0 and 0.0 to long, int, and char
5123           types (max integer value of negative floats tends to zero).
5124         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
5125           Removed changes made so to work properly with floats between
5126           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
5127           and _fs2char.c
5128
5129 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
5130
5131         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
5132         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
5133         (genCast) cosmetic change
5134         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
5135         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
5136         from mcs51
5137         * support/regression/tests/bitfields (testSignedBitfields): added
5138
5139 2005-11-18 Borut Razem <borut.razem AT siol.net>
5140
5141         * sdcc/device/lib/Makefile.in: remove all unnecessary files
5142         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
5143           introduced SILENT option to make building of pic16 libraries less
5144
5145 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5146
5147         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
5148           Now they work properly with floats between -1.0 and 0.0
5149         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
5150
5151 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5152
5153         * src/SDCCicode.c (printOperand): added missing else
5154
5155 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
5156
5157         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
5158         reformatted for better readability
5159         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
5160         signed bitfields
5161
5162 2005-11-17 Borut Razem <borut.razem AT siol.net>
5163
5164         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
5165           introduced SILENT option to make building of pic16 libraries less
5166           verbose - used for nightly snapshot build
5167         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
5168           available on Win32 platforms.
5169         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
5170           medium, large, pic and pic16
5171
5172 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5173
5174         * device/lib/printf_large.c: Temporary patch for bug 1358192:
5175           printf("%f"...) sets fraction to zero.
5176
5177 2005-11-16 Raphael Neider <rneider AT web.de>
5178
5179         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
5180           fixes #1357221
5181         * src/pic/gen.c (genIfx): implemented for CARRY bit
5182         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
5183           to generic pointers, fixes #1357332,
5184           (pic16_movLit2f): NEW,
5185           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
5186
5187 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5188
5189         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
5190
5191 2005-11-11 Raphael Neider <rneider AT web.de>
5192
5193         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
5194         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
5195           compute pointer's type from operand,
5196           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
5197           improved single bit reads, fixes bug #1353379
5198
5199 2005-11-09 Borut Razem <borut.razem AT siol.net>
5200
5201         * support/scripts/sdcc.nsi: added lib/pic to the package
5202
5203 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
5204
5205         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
5206
5207 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5208
5209         * support/regression/tests/bug1348008.c: added
5210         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
5211         * support/regression/tests/bug1337835.c: updated comment
5212
5213 2005-11-06 Borut Razem <borut.razem AT siol.net>
5214
5215         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
5216           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
5217           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5218           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
5219           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
5220           dynamic construction of cl_error_class and derivates - 2.nd try
5221
5222 2005-11-05 Borut Razem <borut.razem AT siol.net>
5223
5224         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
5225           bug, which caused Bus Errors on sparc solaris
5226
5227 2005-11-04 Borut Razem <borut.razem AT siol.net>
5228
5229         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
5230           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
5231           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5232           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
5233           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
5234           and derivates to resolve the initialization problem on OSX
5235
5236 2005-11-02 Borut Razem <borut.razem AT siol.net>
5237
5238         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
5239           corrected typo - #include <winsock2.h>
5240
5241 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
5242
5243         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
5244           (_asxxxx_mapping): added org directive for future enhancements
5245
5246 2005-11-01 Borut Razem <borut.razem AT siol.net>
5247
5248         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
5249           enabled sockets on WIN32
5250         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
5251
5252 2005-10-31 Borut Razem <borut.razem AT siol.net>
5253
5254         * support/regression/generate-cases.py: escape backslashes in {testcase}:
5255           WIN32 backslash path delimiters should be escaped when used in C strings
5256         * support/regression/tests/bitfields.c: exclude failing assertions for
5257           __CYGWIN32__ and __MINGW32__ hosts
5258
5259 2005-10-30 Borut Razem <borut.razem AT siol.net>
5260
5261         * src/SDCCutil.c: corrected double comparison typo
5262
5263 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
5264
5265         * device/lib/medium/Makefile: added for new memory model medium
5266         * device/include/asm/mcs51/features.h: updated for medium/pdata
5267         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
5268           added Multiply & Accumulate sbit's and MAC0_PAGE define
5269         * device/include/mcs51/c8051f300.h: added sfr16 definitions
5270         * device/include/mcs51/c8051f310.h: added sfr16 definitions
5271         * device/lib/_mullong.c: update for medium model
5272         * device/lib/incl.mk: added medium model
5273         * doc/sdccman.lyx: documented medium model
5274         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
5275         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
5276         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
5277         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
5278           (allocParms): set SCLS and OCLS to pdata for medium model
5279         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
5280           for pdata,
5281           (powof2): return <0 if not power of 2
5282         * src/avr/gen.c (genBitWise): use updated powof2
5283         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
5284           (shiftR2Left2Result): small optimization in setup, save acc when storing,
5285           (shiftLLeftOrResult): use B if necessary
5286         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
5287         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
5288         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
5289         * support/regression/Makefile.in: added test-mcs51-medium
5290         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
5291
5292 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
5293
5294         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
5295         specifier unsigned
5296         * device/lib/time.c (mktime): fixed bug 1334315
5297
5298 2005-10-28 Raphael Neider <rneider AT web.de>
5299
5300         * device/include/pic/p16f_common.inc: added common declarations
5301         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
5302
5303 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5304
5305         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
5306           (aopPutUsesAcc): added to predict accumulator use,
5307           (assignResultValue): save acc if necessary,
5308           (genMinusDec): store result if indirectly addressed,
5309           (genDivOneByte):  save acc if necessary,
5310           (movLeft2Result): bugfix if left already in acc,
5311           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
5312             attention to accumulator use (esp. pdata),
5313           (genReceive): receive pdata correctly
5314         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
5315         * src/SDCCicode.h: added isOperandInPagedSpace prototype
5316
5317 2005-10-27 Raphael Neider <rneider AT web.de>
5318
5319         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
5320
5321 2005-10-27 Raphael Neider <rneider AT web.de>
5322
5323         * .version: changed version to 2.5.4
5324         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
5325         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
5326           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
5327             arithmetics support routines
5328         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
5329         * device/lib/Makefile.in: also create installdir for pic
5330
5331         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
5332           pic14 port as well
5333         * src/pic/device.c (dump_sfr): rewritten to delegate register
5334           placement to the linker (use `extern sym' rather than sym EQU addr),
5335           (validAddress): fixed to check last specified address
5336         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
5337           (popGetLit): truncate literal value to 8 bit,
5338           (popGet): moved assert to more appropriate place
5339           (popGetExternal): create pCode operand from and mark the according
5340             symbol as being `extern'
5341           (popGetAddr): added sanity check on immediate's offset, provide
5342             GPOINTER tag on demand
5343           (aopPut): fixed for immediates,
5344           (mov2w_op): move operand's address or contents to WREG (depending on
5345             operand type), safer variant of mov2w,
5346           (movwf,call_libraryfunc): NEW, handy abbreviations,
5347           (get_argument_pcop,get_return_val_pcop,pass_argument,
5348           get_returnvalue): interface for accessing function parameters and
5349             return values,
5350           (assignResultValuei,genRet): use new parameter/return value interface
5351           (pic14_getDataSize): back to old version handling generic pointers,
5352           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
5353             provided implementation and/or fixed old one,
5354           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
5355             calls, removed legacy 8051 reference code
5356           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
5357           (loadSignToC): NEW, move the operands sign bit to CARRY,
5358           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
5359             genRightShiftSigned, accepts negative shift counts,
5360           (setup_fsr): load FSR and adjust IRP (indirect memory access),
5361           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
5362             generic pointers, __data pointers and __code pointers,
5363           (genUnpackBits,genPackBits): rewritten to work with generic pointers
5364             and signed bitfields, limit bitfields to 8 bit,
5365           (genDataPointerGet): fixed number of bytes read,
5366           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
5367           (genPointerGet,genPointerSet): fixed handling of __code pointers,
5368             pointers to constant data are no longer assumed to point to __code
5369             space, removed invalid pointer types,
5370           (bitpatternFromVal): retrieve the PICs representation of an integer
5371             or float literal,
5372           (genDataPointerSet): fixed assigning to po_immediate operands,
5373           (genGenPointerSet): implemented as library call,
5374           (genIfx): fixed incorrect condition,
5375           (genAddrOf): limit generic pointers' addresses to 2 bytes,
5376             provide GPOINTER tag according to destination's storage class,
5377           (genCast): added code to handle casting to generic pointers, added
5378             sign-/zero extension of the result
5379           (aop_isLitLike,op_isLitLike): fixed handling of immediates
5380         * src/pic/gen.h: added macros to access IRP bit in STATUS register
5381         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
5382           extend the result
5383         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
5384           address/register resides in the shared banks
5385           (emitSymbolToFile): improved to handle global and `pinned' symbols,
5386             put all variables into separate sections (have the linker arrange
5387             them)
5388           (picglue): put init code and interrupt handlers in separate sections
5389         * src/pic/main.c: added port specific options table, modified to PORT
5390           structure to make GPOINTERs 3 byte, added pic14_options
5391           (_pic14_do_link): private linking routine (update paths to libraries,
5392             add libsdcc.lib by default)
5393         * src/pic/main.h: declare pic14_options
5394         * src/pic/pcode.c: fixed instructions i/o relations,
5395           (RegCond): reverted to correct version,
5396           (newpCodeOpLit): truncate literals to 8 bit,
5397           (genericPrint): added debug output,
5398           (getRegFromInstruction): fixed for various operand types, simplified
5399           (BuildFlow): fixed broken handling of isntructions with labels
5400           (LinkFlow): start at last instruction in flow (skip trailing comments),
5401             pass the flow on to the next instruction after CALL
5402           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
5403           (insertPCodeInstruction): fixed inserting after a skip instruction,
5404           (DoBankSelect): fixed for labeled instructions
5405           (OptimizepBlock): honor --nopeep switch
5406           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
5407         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
5408         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
5409           (pCodeOptime2pCodes): allow disabling this optimization via
5410             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
5411             but is still buggy), started implementation of a dataflow based
5412             pCode optimization (CSE + dead code elimination)
5413           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
5414         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
5415           names are independant of the stack location and therefore portable across
5416           devices
5417
5418 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5419
5420         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
5421           (selectSpil): fixed bug 1337835 by not spilling bit variables
5422         * support/regression/tests/bug1337835.c: added test for this bug
5423         * src/mcs51/peeph.def: restart after rule 3.c,
5424           addded rules 263.x to optimize loading constants
5425
5426 2005-10-26 Raphael Neider <rneider AT web.de>
5427
5428         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
5429         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
5430           (genAssign): emit warning when casting literals to generic pointer
5431             type, also applies when taking the address of a fixed variable,
5432           (genCast): improved casting to generic pointers
5433         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
5434           extern variables, added verbose error message
5435         * device/include/pic16/{string.h,errno.h}: added #pragma library c
5436
5437 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
5438
5439         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
5440         carry must be complemented too
5441         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
5442         could be emitted by genMinus
5443         * src/SDCCval.c (constVal): fixed bug 1305065
5444
5445 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
5446
5447         * src/SDCCast.c (addCast): added promotion for bit variables
5448         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
5449         promotion casts + optimisation
5450         (optimizeGetWord): fix warning 'i' might be used uninitialized
5451         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
5452         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
5453
5454 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
5455
5456         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
5457         all chars are promoted to int; promotion should be handled in SDCCast.c
5458
5459 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5460
5461         * device/lib/_strcmp.c: Fixed bug 1326457
5462
5463 2005-10-11 Raphael Neider <rneider AT web.de>
5464
5465         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
5466         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
5467
5468 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5469
5470         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
5471         * support/regression/tests/sfr16.c: added test for the sfr32 bug
5472
5473 2005-10-04 Raphael Neider <rneider AT web.de>
5474
5475         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
5476           device/lib/pic16/pics.all: added pic18f1320
5477         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
5478
5479 2005-09-30 Raphael Neider <rneider AT web.de>
5480
5481         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
5482         * src/pic16/devices.inc: NEW, provides device descriptions
5483         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
5484
5485 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
5486
5487         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
5488           GETHBIT
5489
5490 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
5491
5492         * doc/sdccman.lyx: updated Highest Order Bit documentation,
5493           documented Any Order Bit, Higher Order Byte and Higher Order Word
5494         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
5495         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
5496           (optimizeGetAbit): new, to get any bit, not only the high bit,
5497           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
5498           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
5499           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
5500           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
5501             RIGHT_OP: also try GETBYTE, GETWORD optimization,
5502             GETABIT, GETBYTE, GETWORD: decorate them,
5503           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
5504           (ast_print): added GETABIT, GETBYTE, GETWORD
5505         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
5506         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
5507           (geniCodeBinary): new generic binary icode,
5508           (ast2iCode): added GETABIT, GETBYTE, GETWORD
5509         * src/port.h: updated comment for PORT.hasExtBitOp
5510         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
5511           (genGetByte): new, to get a single byte,
5512           (genGetWord): new, to get a word from a long,
5513           (gen51Code): added GETABIT, GETBYTE, GETWORD
5514         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
5515
5516 2005-09-23 Raphael Neider <rneider AT web.de>
5517
5518         * configure.in, configure: have device/lib/pic configured
5519         * device/lib/Makefile.in: added model-pic14
5520         * device/lib/clean.mk: added pic/ to clean rule
5521         * device/lib/pic: added rudimentary pic14 library providing support
5522           functions for multiplication/division/generic pointer access
5523         * src/SDCCopt.c (convilong): mark support functions as extern
5524           for pic14 port as well
5525         * src/pic/gen.c (genMult): added assertions,
5526           (genpic14Code): emit warning on unhandled iCodes
5527         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
5528         * src/pic/pcode.c (pCodeOpCopy),
5529         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
5530           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
5531           SFR_REGISTER}), made safe for future extensions
5532         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
5533           instructions even if preceeded by SKIP instructions (also remove
5534           them); removed unused code
5535         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
5536           prevents leaving parts of the structure uninitialized after copying
5537
5538 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
5539
5540         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
5541           ago by me
5542         * support/regression/tests/addsub.c: added test for the bug
5543
5544 2005-09-21 Raphael Neider <rneider AT web.de>
5545
5546         * device/include/pic16/pic18f1220.h,
5547           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
5548         * device/lib/pic16/Makefile.rules: added missing opening paren
5549         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
5550           are provided in genutils.c,
5551           (genUminusFloat,genUminus,genCmpEq): added asserts on different
5552           operand/result sizes,
5553           (genCmp): assert on NULL pointers first, then check deref'ed values
5554         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
5555           result size
5556
5557 2005-09-18 Raphael Neider <rneider AT web.de>
5558
5559         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
5560           as these are now unused,
5561           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
5562         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
5563           local, avoids uninitialized pointer dereference on r->name
5564         * src/pic16/ralloc.c (newReg): fixed indentation
5565
5566 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
5567
5568         * src/SDCCval.c (constVal): fixed bug 730366
5569         * support/Util/SDCCerr.c,
5570         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
5571
5572 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5573
5574         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
5575
5576 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
5577
5578         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
5579
5580 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5581
5582         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
5583           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5584         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
5585           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5586         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
5587         * packihx/packihx.c (hexDigit): made c unsigned char
5588         * as/mcs51/lklibr.c (fndsym),
5589         * link/z80/lkgb.c (gb),
5590         * link/z80/lklibr.c (fndsym),
5591         * link/z80/lkrloc.c (relr),
5592         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
5593         * src/SDCC.lex (checkCurrFile, process_pragma),
5594         * src/SDCCglue.c (spacesToUnderscores),
5595         * src/SDCCmain.c (setParseWithComma, processFile),
5596         * src/asm.c (tvsprintf, printCLine),
5597         * src/avr/gen.c (emitcode, aopPut),
5598         * src/ds390/gen.c (emitcode),
5599         * src/hc08/gen.c (emitcode, emitinline),
5600         * src/mcs51/gen.c (emitcode, genInline),
5601         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5602           tokenizeLineNode),
5603         * src/pic/ralloc.c (debugLog),
5604         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5605           tokenizeLineNode),
5606         * src/pic16/ralloc.c (debugLog),
5607         * src/z80/main.c (_process_pragma):
5608            made all ctype.h function calls safe
5609         * src/SDCCopt.c: include math.h for fabs
5610         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
5611           and used them throughout the code to make ctype.h function calls safe
5612         * src/ds390/main.c (asmLineNodeFromLineNode),
5613         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
5614         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
5615            unsigned char*
5616         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
5617           (newpCodeAsmDir): made ctype.h function calls safe
5618         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
5619           pic16_emitcode):  made lbp unsigned char*
5620         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
5621           (pic16_newpCodeAsmDir): made ctype.h function calls safe
5622         * src/xa51/gen.c (emitcode),
5623         * src/z80/gen.c (_emit2): made lbp unsigned char*
5624         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
5625            char*
5626
5627 2005-09-05 Raphael Neider <rneider AT web.de>
5628
5629         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
5630           access bank splitpoint
5631
5632 2005-09-05 Raphael Neider <rneider AT web.de>
5633
5634         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
5635
5636 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
5637
5638         * .version: changed to version 2.5.3
5639         * doc/sdccman.lyx: changed version to 2.5.3,
5640           documented --codeseg and --constseg and pragma codeseg and constseg,
5641           documented bit parameters (reentrant) and bit returning
5642         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
5643            currFunc->recvSize, but is this ok for all ports?
5644           (ast2iCode): result of ~ on unsigned char must be cast to int for
5645            bool to work
5646         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
5647           function pointers in bit space
5648         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
5649           (processFuncArgs): call port.reg_parm() with reentrancy info
5650         * src/port.h,
5651         * src/avr/main.c,
5652         * src/ds390/main.c,
5653         * src/hc08/main.c,
5654         * src/pic/main.c,
5655         * src/pic16/main.c,
5656         * src/xa51/main.c,
5657         * src/z80/main.c: port.reg_parm prototype extended with
5658           "bool reentrant" parameter
5659         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
5660           options.stackAuto for allocating bit register parameters
5661         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
5662           (genSend): set BitBankUsed if it is,
5663           (selectRegBank): factored out of genCall for use in genPcall,
5664           (genCall): removed redundant dtype assignmen, use selectRegBank,
5665           (genPcall): handle returning in Carry properly, save in F0 if needed,
5666           (genReceive): handle bit register parameters
5667         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
5668           (mcs51_assignRegisters): enable bit registers for all reentrant
5669            functions and don't set BitBankUsed unconditionally
5670         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
5671         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
5672         * support/regression/tests/funptrs.c: added tests for BOOL and for return
5673
5674 2005-08-27 Borut Razem <borut.razem AT siol.net>
5675
5676         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
5677         ppc-osx (Darwin) does not support -u option. It seems that it is
5678         supported only on Linux - GNU cp
5679
5680 2005-08-25 Borut Razem <borut.razem AT siol.net>
5681
5682         * sim/ucsim/gui.src/serio.src/Makefile.in,
5683           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5684           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5685           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5686           install and strip, since the strip at /usr/ccs/bin should be used
5687           on solaris
5688
5689 2005-08-24 Borut Razem <borut.razem AT siol.net>
5690
5691         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5692
5693 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5694
5695         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5696         ffffffffu
5697
5698 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5699
5700         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5701         * as/mcs51/lkmain.c (link_main): fixed warning
5702         * device/include/stdbool.h: ds390 has no advanced bit support yet
5703         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5704         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5705         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5706           and updated their macros
5707         * src/SDCCval.c (constVal): updated comment for renamed b_long
5708
5709 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5710
5711         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5712         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5713           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5714           (oprio): set priority for '['
5715         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5716            and adb_24_bit
5717         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5718         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5719         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5720         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5721           added overlayable BIT_BANK area
5722         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5723           (summary2): explain 'T' in legenda
5724         * as/mcs51/lkrloc.c: replaced old K&R style,
5725           (relr): added R_BIT processing,
5726           (errmsg): added "Bit-addressable relocation error",
5727           (adb_bit): added for converting from byte- to bit-addressable space,
5728           (adb_24_bit): added for converting from byte- to bit-addressable space
5729         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5730            used in reentrant functions now even as return value
5731         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5732         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5733           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5734         * src/SDCCglobl.h: added indicator BitBankUsed
5735         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5736            the bit registers b0-b7
5737         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5738           (geniCodeCast): fixed bug 1263853,
5739           (geniCodeLogicAndOr): put result in bool or char,
5740           (geniCodeReceive): added parameter func for accessing the return type,
5741           (geniCodeFunctionBody): pass func to geniCodeReceive
5742         * src/SDCCmain.c: added indicator BitBankUsed
5743         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5744         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5745           (checkSClass): don't put automatic bool/bit on stack,
5746           (checkFunction): removed check on function cannot return bit
5747         * src/SDCCsymt.h: added newBoolLink prototype
5748         * src/mcs51/gen.c (rb1regs): added bit registers,
5749           (movc): created for assigning to carry,
5750           (pushReg, popReg): created for pushing registers,
5751           (sameRegs): check both AOP_REG and AOP_CRY types,
5752           (aopOp): handle bit registers,
5753           (aopPut): optimization no self-assign,
5754           (saveRegisters): push reg->base (bits) only once for bit registers,
5755            and use pushReg,
5756           (unsaveRegisters): pop reg->base only once and use popReg,
5757           (assignResultValue): added parameter func and return in carry for bits,
5758           (genIpush): optimization no reload in A if not changed,
5759           (genSend): bit parameters in reentrant functions are passed in bit
5760            registers by first assigning to bits in B, then save registers and
5761            copy B to bits,
5762           (genCall): handle returning in Carry properly, save it in F0 if needed,
5763           (genPcall): updated assignResultValue call, this is not safe yet for bit
5764            returning function !!!
5765           (genFunction): don't generate equ's for bit registers and use pushReg,
5766           (genEndFunction): take care of bit returning functions and use popReg,
5767           (genRet): return bit in Carry,
5768           (genIfx): optimize bit registers and other directly addressable bits,
5769           (genReceive): updated assignResultValue call
5770         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5771           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5772            registers when using stack-auto
5773         * src/mcs51/ralloc.c (_G): added allBitregs,
5774           (regs8051): added the bit registers,
5775           (createStackSpil): use macro IS_BIT,
5776           (getRegBit): added to allocate a bit register, else spill,
5777           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5778           (updateRegUsage): factored out to ease stepping while debugging,
5779           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5780            also allocate bit registers,
5781           (fillGaps): handle bit registers,
5782           (findAllBitregs): added to create bit vector with all bit registers,
5783           (mcs51_allBitregs): returns this bit vector,
5784           (mcs51_assignRegisters): when using stack-auto use bit registers for
5785            passing parameters and creating local variables
5786         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5787
5788 2005-08-22 Borut Razem <borut.razem AT siol.net>
5789
5790         * device/lib/Makefile.in: replaced find option -or with -o
5791           to make it run on solaris
5792
5793 2005-08-22 Raphael Neider <rneider AT web.de>
5794
5795         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5796           fixes #1265442 (crash on Solaris)
5797
5798 2005-08-20 Borut Razem <borut.razem AT siol.net>
5799
5800         * configure, configure.in: added tests for libsocket and libnsl libraries,
5801           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5802           from support/regression/Makefile.in
5803         * support/regression/Makefile.in: added
5804         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5805         * sim/ucsim/libtool: regenerated on sparc-solaris
5806         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5807           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5808           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5809           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5810           sparc-solaris, which doesn't use GNU ld linker
5811         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5812         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5813
5814 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5815
5816         * src/mcs51/peeph.def: updated comments
5817
5818 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5819
5820         * device/lib/_gptrget.c,
5821         * device/lib/_gptrput.c: slightly shorter
5822         * doc/sdccman.lyx: incremented version
5823         * src/mcs51/peeph.def: moved peephole comments to the line of first
5824           change to better keep line correlation, reanimated 186.e
5825         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5826
5827 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5828
5829         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5830           David Saxton with quotes around file name.
5831
5832 2005-08-15 Borut Razem <borut.razem AT siol.net>
5833
5834         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5835           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5836           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5837           make tests run on x86_64 platform
5838
5839 2005-08-13 Raphael Neider <rneider AT web.de>
5840
5841         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5842           as it might be executed DURING a build (parallel make is wonderful)
5843
5844 2005-08-13 Raphael Neider <rneider AT web.de>
5845
5846         * device/lib/Makefile.in (port-specific-objects-pic16):
5847           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5848         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5849           dependency
5850         * device/lib/pic16/Makefile.rules: build subdirs before creating
5851           the library, removed builddir rule, create $(builddir) early in
5852           recurse rule, use empty recurse rule for leaf directories
5853         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5854           mkdir errors (race condition), removed duplicate suffix "hex"
5855           from clean rules
5856         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5857         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5858           prevents mkdir -p from aborting on Alpha
5859
5860 2005-08-12 Raphael Neider <rneider AT web.de>
5861
5862         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5863           db-statements in order to allow for arrays of pointers in code
5864           sections to be placed without interspersed 0-padding, fixes
5865           bug #1256215
5866         * (emitStatistics): fixed division by zero for pic18f1220
5867         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5868           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5869         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5870         * (pic16_pCodeConstString): keep track of already emitted string
5871           literals to prevent "duplicate definitions of symbol _str_NR"
5872         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5873           debug message
5874         * device/lib/Makefile.in: ignore failing PIC16 library builds
5875         * device/lib/pic16/Makefile: do not build if gputils are missing
5876         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5877
5878 2005-08-10 Raphael Neider <rneider AT web.de>
5879
5880         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5881           my last commit)
5882
5883 2005-08-10 Raphael Neider <rneider AT web.de>
5884
5885         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5886           Rokas' patch to add the new fixed point type "__fixed16x16"
5887         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5888           functions for __fixed16x16 arithmetics
5889         * device/lib/pic16: reimplemented the build system to support
5890           a separate build directory, better handling of libio (create
5891           the library in a separate subdir for each architecture) and
5892           easier configuration (centralized in Makefile.common)
5893
5894 2005-08-07 Raphael Neider <rneider AT web.de>
5895
5896         * src/pic16/gen.c (genrshTwo): fixed sign extension
5897         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5898         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5899           added T0CONbits
5900         * device/include/pic16/pic18f4220.h: NEW, header for
5901           pic18f4220 and pic18f4320
5902         * device/include/pic16/pic18fregs.h: added new devices,
5903           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5904         * device/include/pic16/signal.h: resolved name clashes
5905           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5906           to also allow testing for interrupt enable bits, added
5907           comments on how to use the macros
5908         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5909         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5910           register definitions for the devices
5911         * device/lib/pic16/pics.all: added new devices
5912         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5913           allocated memory
5914         * device/lib/pic16/libc/stdlib/memfree: do not count
5915           the block header as free memory
5916         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5917           simplified and added missing end-of-blocklist-marker
5918           (reported by Peter Onion, fixes #1252814)
5919         * (_mergeHeapBlock): fixed loop condition
5920         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5921           len==0, restructured code
5922         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5923           up a bit, reduced bitfield accesses, prevent endless loops
5924           in case of heap corruption
5925         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5926           "unreferenced arguments/must return a value" warnings
5927         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5928           replaced BAUDREG with SPBRG
5929         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5930           device/lib/pic16/debug/gstack/gstack.c: replaced
5931           _naked, _asm, _endasm with __naked, __asm, __endasm
5932
5933 2005-08-05 Raphael Neider <rneider AT web.de>
5934
5935         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5936           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5937
5938 2005-08-05 Borut Razem <borut.razem AT siol.net>
5939
5940         * device/lib/Makefile.in: added missing ';'
5941         * configure: removed ^M characters
5942
5943 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5944
5945         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5946           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5947           License
5948
5949 2005-08-04 Borut Razem <borut.razem AT siol.net>
5950
5951         * configure.in: pic16 libraries build 2nd try - enable running
5952           configure in device/lib/pic16
5953         * configure: regenerated from configure.in
5954         * device/lib/Makefile.in: create $(PORT)/bin directory
5955
5956 2005-08-03 Raphael Neider <rneider AT web.de>
5957
5958         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5959           to get/set values via pointers
5960         * (genUnpackBits,genPackBits): changed detection of
5961           ptr->bitfield vs. sym.bitfield, fixed access via generic
5962           pointers, removed dead (wrong) code for multibyte bitfields
5963         * (genNearPointerGet, genGenPointerGet): removed useless code,
5964           fixed bitfield detection, fixes #1250594
5965         * (genNearPointerSet): removed useless code
5966         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5967           and introduced macro pic16_emitpcode that conditionally emits
5968           the origin of the following pCode (useful for debugging SDCC)
5969         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5970         * (createDefmap): fixed handling of LFSR for --optimize-df
5971
5972 2005-08-02 Borut Razem <borut.razem AT siol.net>
5973
5974         * device/lib/Makefile.in: pic16 libraries build enabled since
5975           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5976
5977 2005-08-02 Raphael Neider <rneider AT web.de>
5978
5979         * src/pic16/gen.c (genPackBits): removed deprecated warning
5980         * (genGenPointerSet): fixed bitfield detection
5981
5982 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5983
5984         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5985
5986 2005-07-31 Raphael Neider <rneider AT web.de>
5987
5988         * device/lib/pic16/libdev/pic18f458.c,
5989           device/include/pic16/pic18f458.h: added missing T0CONbits
5990
5991 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5992
5993         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5994
5995 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5996
5997         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5998
5999 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6000
6001         * device/include/mcs51/at89c51ed2.h: added.
6002
6003 2005-07-23 Raphael Neider <rneider AT web.de>
6004
6005         * src/pic/gen.h: added emitpcode macro for debugging
6006         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
6007           and replace by macro adding debug information on demand
6008         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
6009         * (gencjne): tried to fix; replaced with correct (slower) code
6010         * (gen{Unp,P}ackBits): fixed single bit access
6011         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
6012         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
6013           previous instruction
6014         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
6015           register has to be handled with care (forbidding movement
6016           of assignments/uses, removing assignments completely, ...)
6017         * (pCodeOptime2pCodes): make use of regIsSpecial
6018         * added lots of debugging output (commented out)
6019         * src/pic/rallloc.c (deassignLRs): prevent operand registers
6020           from being reused as result UNLESS it is known to work
6021
6022 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
6023
6024         * support/Util/dbuf.h: include <stddef.h> for size_t
6025         * .version: changed to version 2.5.2
6026
6027 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6028
6029         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
6030
6031 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6032
6033         * src/hc08/gen.c (genMinus): fixed bug #1241835,
6034           (genModOneByte): removed needless psha/pula
6035
6036 2005-07-22 Raphael Neider <rneider AT web.de>
6037
6038         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
6039           have PIC14 handled like PIC16, fixes broken pic14 linker calls
6040         * src/pic/gen.c (resolveIfx): do not "invent" labels
6041         * (genSkipc): changed to positive logic
6042         * (genSkipCond): removed as no longer needed
6043         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
6044           backport from PIC16
6045         * (genLeftShift): check operands are in different registers
6046         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
6047           INCF does not update CARRY...
6048         * src/pic/main.c: fixed _linkCmd
6049         * src/pic/pcode.c (unlinkpCode): added inactive code
6050         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
6051           alive (do not assign result and operand overlapping registers)
6052
6053 2005-07-22 Raphael Neider <rneider AT web.de>
6054
6055         * src/pic/device.c (dump_sfr): replaced register declaration with
6056           call to emitSymbolToFile() to avoid duplicate symbols
6057         * (assignRelocatableRegisters): do not declare external symbols
6058         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
6059           right (take size of type, not etype)
6060         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
6061         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
6062         * (packRegsForAccUse): disabled assignment of WREG as
6063           the result reg to prevent occurence of just fixed #1235003,
6064           fixes #1242954
6065         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
6066           symbols (avoids duplicate symbols in .asm file)
6067         * (pic14emitRegularMap): use emitSymbolToFile()
6068         * src/pic/gen.c (aopOp): fixed spillLocation handling
6069         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
6070         * (genDataPointerSet): removed unneccessary variables/output
6071
6072 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
6073
6074         * as/mcs51/lkarea.c: enlarged codemap for banked memory
6075         * device/lib/mcs51/crtbank.asm: added # to 0x0F
6076
6077 2005-07-21 Raphael Neider <rneider AT web.de>
6078
6079         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
6080           architecture cannot handle them efficiently, fixes bug #1235003
6081         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
6082           check for empty sets before using them (fixes bug #1232190)
6083
6084 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
6085
6086         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
6087           (lnksect2): generate warnings for memory overlap
6088         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
6089           constseg to set the name of these segments so you can instruct the linker
6090           to place them in banks
6091         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
6092         * src/SDCCglobl.h: added MODEL_HUGE to enum,
6093           added code_seg and const_seg to options
6094         * src/SDCCglue.c (emitMaps): use options.const_seg,
6095           (createInterruptVect): put interrupt vectors in segment HOME,
6096           (glue): put HOME before static segment and put the main glue in HOME,
6097           (glue): use options.code_seg
6098         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
6099         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
6100           these segments so you can instruct the linker to place them in banks
6101           (linkEdit): use code_loc for HOME segment which should be the first
6102           segment in code memory now
6103         * src/SDCCmem.c: fixed more stuff like bug 1238386
6104         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
6105           (changePointer): don't change function pointers to code pointers for
6106           banked functions,
6107           (compareType): added exceptional check for banked function pointers
6108         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
6109         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
6110           after static in code memory
6111         * src/mcs51/gen.c: added aopLiteralLong prototype,
6112           (aopForSym): use getSize for functions,
6113           (genCall): generate banked calls over one trampoline __sdcc_banked_call
6114           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
6115           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
6116           the segment,
6117           (genPcall): use call for literal function pointers and generate banked
6118           calls over the one trampoline so there's only one place for the user to
6119           modify according to his/hers hardware,
6120           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
6121           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
6122         * src/mcs51/main.c: added keyword banked,
6123           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
6124         * support/Util/SDCCerr.c,
6125         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
6126           needed for passing the bank and address to the trampoline
6127         * device/lib/mcs51/crtbank.asm: added for bankswitching
6128         * device/lib/mcs51/Makefile: added crtbank
6129
6130 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6131
6132         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
6133           for fields at offset 0 of a struct or union as reported
6134           on 2005-07-07 in the developer mailing list.
6135
6136 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
6137
6138         * src/SDCCmem.c: fixed bug 1238386
6139
6140 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6141
6142         * src/mcs51/peeph.def: added labelrefcounting for peepholes
6143           (patch #1144962), added peephole 300, enabled 259.x
6144         * doc/sdccman.lyx: removed screenshot and provided link instead
6145
6146 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6147
6148         * doc/sdccman.lyx: added section about debugging with ddd
6149         * doc/figures/ddd_example.eps: screenshot of debugging session
6150
6151 2005-07-04 Raphael Neider <rneider AT web.de>
6152
6153         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
6154           like CODE pointers, fixes #1115683
6155         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
6156           call, fixes bugs #1232211, #1228110,
6157           fixed wrong casts to pCodeFlow from pCodeInstructions
6158
6159 2005-07-04 Raphael Neider <rneider AT web.de>
6160
6161         * src/pic/gen.c (popGet): changed assert to allow for
6162           bit operands
6163         * (popGetAddr): changed signature to provide
6164           an additional index, patched all call sites
6165         * (genCmpEq): handle literal-like operands correctly
6166         * (genAddrOf): added sanity checks on __code/__data pointers
6167         * (genAssign): added handling of symbols from __code section
6168         * (gencjne): do not generate code for comparisons whose result
6169           is neither stored nor used, fixes bug #1171114
6170         * (AccLsh, AccRsh): operate on operand instead of WREG
6171         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
6172           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
6173           by known count
6174         * rewrote complete shift-by-literal logic, commented unused
6175           functions out
6176         * (genConstPointerGet): get multiple bytes (if result size > 1),
6177           fixed handling of non-immediate addresses
6178         * (genPointerGet): handle CODE pointers like CONST pointers
6179         * (genpic14Code): insert C-SRC lines as Cource-pCodes
6180         * ({aop,op}_isLitLike): NEW, single place to decide whether an
6181           operand is to be treated as a literal or not
6182         * (mov2w,genPcall,genCmpEq),
6183           src/pic/genarith.c: use aop_isLitLike() to decide between
6184           literal/register contents
6185         * (addSign): added missing offset
6186         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
6187           only emit comment in debug-mode,
6188           use {aop,op}_isLitLike throughout the file
6189         * src/pic/glue.c: fix initializers for pointers (work in progress)
6190         * src/pic/pcode.c (get_op): honor index on _const symbols
6191         * ({reset,dump}pCodeStatistics): NEW, estimate code size
6192         * (dumppBlock): added pCode size estimation
6193         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
6194           check for IS_SYMOP before OP_SYMBOL'ing
6195         * fixed indentation, compacted switch-statements
6196         * (allocReg): find free register and allocate it instead of
6197           allocating new registers all the time
6198         * (deassignLRs): prevent POINTER_GET's from being assigned the same
6199           registers as its operands (necessary only for multibyte GETs)
6200
6201 2005-07-01 Raphael Neider <rneider AT web.de>
6202
6203         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
6204           debugging .asm-output macros FENTRY + FEXIT
6205         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
6206           way... I wonder...
6207         * (emitpComment): NEW, printf to pCode
6208         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
6209           offset handling
6210         * (popGetAddr): NEW, variant of popGet to access an immediates
6211           high(er) bytes instead of the n'th byte of memory they reference,
6212           replaced popGet with popGetAddr where neccessary
6213         * (genDataPointerGet): reactivated and fixed implementation
6214         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
6215           accesses
6216         * (genDataPointerSet): fixed multibyte assignments
6217         * (genpic14Code): fixed --i-code-in-asm handling
6218         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
6219         * (genPlus): fixed index-out-of-bounds error
6220         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
6221         * src/pic/ralloc.c: added debugging output macro FENTRY2
6222         * (spillThis): fixed indentation, enbraced for-body for clarity
6223         * (rematStr): commented out as now unused
6224         * (regTypeNum): commented out special spill case (overwrites
6225           arbitrary values)
6226         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
6227
6228 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
6229
6230         * doc/sdccman.lyx: documented sfr16/sfr32,
6231           added example for using storage class with function pointers
6232         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
6233
6234 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
6235
6236         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
6237         * device/lib/_itoa.c,
6238         * device/lib/_ltoa.c: optimized codesize
6239         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
6240           but don't know how to suppress the double warning.
6241         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
6242         * support/Util/SDCCerr.c,
6243         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
6244
6245 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
6246
6247         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
6248           fixed old K&R prototypes
6249         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
6250         * device/lib/_gptrget.c,
6251         * device/lib/_gptrgetc.c,
6252         * device/lib/_gptrput.c: changed versions for new memory indicator values,
6253           also new versions for small generic pointers and banked generic pointers
6254         * src/port.h: added const_name
6255         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
6256         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
6257         * src/SDCCcse.c (findPrevIc): check all associative operators
6258         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
6259         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
6260         * src/SDCCmem.c: updated comments,
6261           set far-space to 0 for pdata, results in optimized code
6262         * src/SDCCmem.h: added macro CONST_NAME
6263         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
6264           moving the info into the highest bits, see also gptrget/gptrput
6265         * src/src.dsp: added sdcc.ico to project files
6266         * src/avr/gen.c (genCast): fixed bug 0x%d
6267         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
6268         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
6269           relation between ptr_type and DCL_TYPE,
6270           (genCast): fixed bug 0x%d
6271         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
6272           (CODE)" for const_name
6273         * src/hc08/gen.c (genCast): fixed bug 0x%d
6274         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
6275           (hc08_port): added "CONST (CODE)" for const_name
6276         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
6277           (aopForRemat, adjustArithmeticResult): disconnected direct relation
6278           between ptr_type and DCL_TYPE,
6279           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
6280           operand* and took AOP() inside function so sfr-ness can be checked,
6281           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
6282           new prototype,
6283           (genFunction, genEndFunction): optimized stack setup,
6284           (genMinus): optimized for literals with ending zeroes (in bytes),
6285           (genCast): fixed bug 0x%d
6286         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
6287           (mcs51_port): added "CONST (CODE)" for const_name
6288         * src/mcs51/peeph.def: made rule 226 more generic
6289         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
6290         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
6291         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
6292         * src/z80/main.c (z80_port): added NULL for const_name,
6293           (gbz80_port): added NULL for const_name
6294         * support/regression/tests/bug663539.c,
6295         * support/regression/tests/sfr16.c: new tests
6296
6297 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6298
6299         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
6300
6301 2005-06-24 Raphael Neider <rneider AT web.de>
6302
6303         * device/lib/pic16/libdev/pic18f[68][567]20.c:
6304           corrected typos...
6305         * device/include/pic16/signal.h: added USBIF
6306           and SIG_USB
6307
6308 2005-06-24 Raphael Neider <rneider AT web.de>
6309
6310         * device/lib/pic16/libdev/pic18f2455.c,
6311           device/include/pic16/pic18f2455.h: NEW
6312         * device/include/pic16/pic18fregs.h,
6313           device/lib/pic16/pics.all,
6314           src/pic16/device.c: added 18f2455
6315         * device/lib/pic16/libdev/pic18f[68][567]20.c,
6316           device/include/pic16/{pic18f[68][567].h,usart.h}:
6317           replaced MULTIPLE_USARTS define with more relaible
6318           compatibility sfrs (for USART access)
6319
6320 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
6321
6322         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
6323           and the output asm file line is printed on two lines.
6324
6325 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6326
6327         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
6328           BGT, BLE, BHI, and BLS instructions
6329         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
6330           genCmpEq): removed
6331         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
6332           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
6333           fixes bug #1216342
6334         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
6335
6336 2005-06-15 Raphael Neider <rneider AT web.de>
6337
6338         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
6339         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
6340         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
6341           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
6342           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
6343
6344 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6345
6346         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
6347           Marcel Telka in bug #1215704
6348
6349 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
6350
6351         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
6352           located in shared memory bank.
6353
6354 2005-05-31 Raphael Neider <rneider AT web.de>
6355
6356         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
6357           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
6358           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
6359
6360 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
6361
6362         * device/lib/_strncpy.c: fixed the fix
6363
6364 2005-05-26 Raphael Neider <rneider AT web.de>
6365
6366         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
6367           initializers with \0, bug #1208187
6368         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
6369           intializers with \0, bug #1208187
6370
6371 2005-05-26 Raphael Neider <rneider AT web.de>
6372
6373         * src/pic16/glue.c (pic16_printIvalChar): fixed string
6374           initializers with \0, bug #1208187
6375         * src/pic16/main.c (_process_pragma): added sanity checks
6376           for stack position and size, emit warnings when appropriate
6377
6378 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
6379
6380         * device/lib/_strncpy.c: fixed not filling with \0
6381
6382 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6383
6384         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
6385           createFunction),
6386         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
6387           compound_statement),
6388         * src/SDCCsymt.h,
6389         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
6390
6391 2005-05-24 Raphael Neider <rneider AT web.de>
6392
6393         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
6394
6395 2005-05-24 Raphael Neider <rneider AT web.de>
6396
6397         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
6398           TRISE definitions, closes bug #1162453
6399
6400 2005-05-22 Raphael Neider <rneider AT web.de>
6401
6402         * src/pic16/main.c (_process_pragma): check for missing
6403           arguments to pragmas code and udata
6404         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
6405           consistency fixes to match other headers (thanks to Jim Paris)
6406         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
6407
6408 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
6409
6410         * src/SDCCicode.c (isOperandEqual): fixed missing ;
6411
6412 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
6413
6414         * support/regression/tests/bug1198642.c: new test
6415         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
6416         * src/SDCCcse.c (findPrevIc): added comment, please have a look
6417         * support/scripts/resource.h,
6418         * support/scripts/resource.rc,
6419         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
6420         * support/scripts/sdcc.ico: added 32x32 icon
6421
6422 2005-05-18 Raphael Neider <rneider AT web.de>
6423
6424         * device/lib/pic16/libdev/pic18f*.c,
6425         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
6426           keywords to "__sfr" and "__at (X)"
6427         * device/include/pic16/pic18fregs.h: added pic18f4520
6428         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
6429           #1203088 (MPLAB compatibility)
6430
6431 2005-05-17 Raphael Neider <rneider AT web.de>
6432
6433         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
6434         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
6435         * device/lib/pic16/pics.all: added new devices
6436         * src/pic16/device.c: added support for pic18f4520
6437
6438 2005-05-16 Raphael Neider <rneider AT web.de>
6439         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
6440         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
6441         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
6442           convenience function for bit access
6443
6444 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6445
6446         * device/lib/printf_large.c: fixed bug 1193299
6447         * support/regression/tests/bug1057979.c: added test %3.3s
6448
6449 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6450
6451         * device/include/mcs51/8051.h,
6452         * device/include/mcs51/8052.h: made parseable with lint
6453         * device/include/mcs51/lint.h: added include file for (sp)lint
6454         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
6455         * doc/cdbfileformat.lyx,
6456         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
6457
6458 2005-05-14 Raphael Neider <rneider AT web.de>
6459
6460         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
6461         * device/lib/pic16/libc/stdlib/itoa.c (new)
6462         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
6463         * device/lib/pic16/libio/Makefile: exclude subdir according to
6464           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
6465         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
6466         * src/pic16/gen.c (genFunction): prevent annoying warning
6467         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
6468           nameclashes on BeOS
6469         * support/cpp2/cppmain.c (cpp_output_string): new
6470         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
6471           fixes bug 1116802
6472
6473 2005-05-13 Borut Razem <borut.razem AT siol.net>
6474
6475         * src/SDCCmain.c (linkEdit): fixed bug 1195202
6476
6477 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6478
6479         * .version: changed to version 2.5.1; back to bleeding edge development
6480
6481 2005-05-11 Borut Razem <borut.razem AT siol.net>
6482
6483         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
6484           generate PDF version 1.3 documents
6485
6486 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6487
6488         * .version: changed to version 2.5.0
6489
6490 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6491
6492         * doc/sdccman.lyx: updated weblinks, index and smaller updates
6493
6494 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6495
6496         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
6497         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
6498         well as many smaller updates.
6499         * .version: changed to version 2.5.0-pre1
6500
6501 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6502
6503         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
6504
6505 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6506
6507         * support/regression/tests/bug1185672.c: added
6508         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
6509           bug 1185672
6510         * src/mcs51/gen.c (genCall): added comments, made it look safer
6511         * src/mcs51/gen.c (genEndFunction): simplified
6512
6513 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6514
6515         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
6516
6517 2005-04-14 Borut Razem <borut.razem AT siol.net>
6518
6519         * fixed bug 1045046 - SIGSEGV with really simple code?:
6520           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
6521           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
6522
6523 2005-04-14 Borut Razem <borut.razem AT siol.net>
6524
6525         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
6526           src/pic16/device.h: temporarily disabled experimental #inline pragma
6527           for 2.5.0 release
6528
6529 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
6530
6531         * device/include/z80/stdio.h,
6532         * device/include/z80/string.h: removed these highly incomplete files so
6533           SDCC can use the default ones in device/include/
6534
6535 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6536
6537         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
6538         gcc warning.
6539         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
6540         fix sdcpp warnings.
6541
6542 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6543
6544         * device/include/malloc.h: removed redundant __reentrant prototypes
6545         * device/lib/_mullong.c: added working xstack variant in asm (C version
6546           doesn't pass regression tests)
6547         * device/lib/bpx.c: used __data and made bpx char for mcs51
6548         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
6549           (createFunction): fixed bug with xstackPtr
6550         * src/SDCCcse.c: corrected comments
6551         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
6552           (killDeadCode, eBBlockFromiCode): removed unused code
6553         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
6554           corrected comments
6555         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
6556           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
6557           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
6558           (genModOneByte): fixed warning in MSVC
6559         * src/mcs51/main.c (): added comments
6560         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
6561
6562 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6563
6564         * src/SDCCmain.c (linkEdit): oops, changed one line too many
6565
6566 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
6567
6568         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
6569
6570 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
6571
6572         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
6573         characters arrays of larger size than the declared one.
6574
6575 2005-04-10 Borut Razem <borut.razem AT siol.net>
6576
6577         * src/pic/gen.c (genInline),
6578           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
6579           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
6580           (findNextInstruction), (findPrevInstruction),
6581           (findInstructionUsingLabel),
6582           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
6583         * src/pic/pcode.c (findLabel): added missing '\n'
6584         * src/src.dsp: added SDCCdwarf2.c to the project
6585
6586 2005-04-09 Borut Razem <borut.razem AT siol.net>
6587
6588         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
6589
6590 2005-04-08 Raphael Neider <rneider AT web.de>
6591
6592         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
6593           into the chain after a given one) and mergeDefmapSymbols (combine
6594           defmap entries for each symbol per pcode)
6595         * (createDefmap): have defmap entries merged in the end
6596         * (defmapReplaceSymRef): split defmap entries covering two accesses to
6597           a symbol before replacing one access type's symbol, merge symbols in
6598           the end (replacement symbol might already have an entry)
6599         * (assignValnums): keep reference to written WREG intact
6600
6601 2005-04-08 Raphael Neider <rneider AT web.de>
6602
6603         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
6604           Alpha)
6605
6606 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
6607
6608         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
6609         bytes
6610
6611 2005-04-07 Raphael Neider <rneider AT web.de>
6612
6613         * device/include/pic16/usart.h: added compatibility defines for
6614           devices with more than one USART
6615         * device/include/pic16/pic18f[68][567]20.h: activated above defines
6616
6617 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6618
6619         * device/lib/Makefile.in: updated for port specific include
6620
6621 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6622
6623         * support/regression/ports/mcs51/spec.mk: added mcs51 include
6624
6625 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6626
6627         * device/include/8051.h,
6628         * device/include/8052.h,
6629         * device/include/at89S8252.h,
6630         * device/include/at89c55.h,
6631         * device/include/at89x051.h,
6632         * device/include/at89x51.h,
6633         * device/include/at89x52.h,
6634         * device/include/mcs51reg.h,
6635         * device/include/reg51.h,
6636         * device/include/reg764.h,
6637         * device/include/regc515c.h,
6638         * device/include/sab80515.h: (re)moved these 12 files
6639         * device/include/mcs51/8051.h,
6640         * device/include/mcs51/8052.h,
6641         * device/include/mcs51/at89S8252.h,
6642         * device/include/mcs51/at89c55.h,
6643         * device/include/mcs51/at89x051.h,
6644         * device/include/mcs51/at89x51.h,
6645         * device/include/mcs51/at89x52.h,
6646         * device/include/mcs51/mcs51reg.h,
6647         * device/include/mcs51/reg51.h,
6648         * device/include/mcs51/reg764.h,
6649         * device/include/mcs51/regc515c.h,
6650         * device/include/mcs51/sab80515.h: and added them here
6651
6652 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6653
6654         * device/include/stdarg.h: changed SDCC specific keywords to double
6655           underlined form.
6656         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
6657           mcs51 and ds390.
6658         * device/include/hc08/mc68hc908gp32.h,
6659         * device/include/hc08/mc68hc908jb8.h,
6660         * device/include/hc08/mc68hc908jkjl.h,
6661         * device/include/hc08/mc68hc908qy.h: fixed comments
6662         * device/include/mcs51/README: updated
6663         * device/include/mcs51/c8051f120.h: added PINRSF
6664         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
6665         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
6666           amidst code. Also inline is not supported.
6667
6668 2005-04-06 Raphael Neider <rneider AT web.de>
6669
6670         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
6671         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
6672           callers stack/frame pointers
6673
6674 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6675
6676         * device/include/pic16/usart.h: added, missing in previous commit,
6677         * device/include/pic16/adc.h: fixed typo,
6678         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6679         commit,
6680         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6681         <p18fxxx.inc>
6682         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6683         uninitialized because a bug appears with gplink
6684         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6685         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6686         complains for unrecognised option
6687
6688 2005-04-05 Raphael Neider <rneider AT web.de>
6689
6690         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6691           structs as well (using memcpy)
6692         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6693           on ISRs (GOTO has no label)
6694         * src/pic16/device.h: added OF_OPTIMIZE_DF
6695         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6696           new data flow analysis/optimization
6697         * src/pic16/pcode.c: added (prototypes for and implementation of)
6698           dataflow analysis functions, fixed pCodeInstructions' inCond and
6699           outCond values, made RCALL a branch instruction
6700         * (pic16_unlinkpCode): keep C line if possible
6701         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6702           C line moved if possible
6703         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6704         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6705           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6706         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6707           new flow)
6708         * (pic16_getJumptabpCode): NEW, needed in...
6709         * (LinkFlow): fixed handling of jumptables, calls and conditional
6710           branches
6711         * (pic16_InsertCommentAfter): NEW
6712         * (pic16_pCodeReplace): made verbose and flow preserving
6713         * (AnalyzeFlow): added call to data flow analysis
6714         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6715         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6716         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6717
6718 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6719
6720         * src/SDCCast.c (decorateType): fixed bug #1105626
6721
6722 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6723
6724         * device/include/asm/pic16/features.h,
6725         * pic18f*.h headers,
6726         * device/include/pic16/adc.h,
6727         * device/include/pic16/delay.h,
6728         * device/include/pic16/i2c.h,
6729         * device/include/pic16/malloc.h,
6730         * device/include/pic16/stdio.h,
6731         * device/include/pic16/stdlib.h,
6732         * device/include/pic16/string.h,
6733         * device/lib/pic16/libc/stdio/printf_tiny.c,
6734         * device/lib/pic16/libc/stdio/printf_small.c,
6735         * device/lib/pic16/libc/stdio/strmgpsim.c,
6736         * device/lib/pic16/libc/stdio/strmmssp.c,
6737         * device/lib/pic16/libc/stdio/strmusart.c,
6738         * device/lib/pic16/libc/stdio/vfprintf.c,
6739         * device/lib/pic16/libc/stdlib/ltoa.c,
6740         * device/lib/pic16/libc/stdlib/putchar.c,
6741         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6742         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6743         * device/lib/pic16/libc/stdlib/memchrram.c,
6744         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6745         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6746         * device/lib/pic16/libio/adc/adcbusy.c,
6747         * device/lib/pic16/libio/adc/adcread.c,
6748         * device/lib/pic16/libio/adc/adcsetch.c,
6749         * device/lib/pic16/libio/usart/ubaud.c,
6750         * device/lib/pic16/libio/usart/ubusy.c,
6751         * device/lib/pic16/libio/usart/udrdy.c,
6752         * device/lib/pic16/libio/usart/uopen.c,
6753         * device/lib/pic16/libio/usart/uputc.c,
6754         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6755         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6756         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6757         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6758         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6759         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6760         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6761         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6762         specific keywords to double underlined form,
6763         * device/lib/pic16/libc/Makefile.rules,
6764         * device/lib/pic16/libsdcc/Makefile.rules,
6765         * device/lib/pic16/libm/Makefile,
6766         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6767         to compile with C standard set in Makefile.common
6768         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6769         rand.c and crc.c in compilation process,
6770         * device/lib/pic16/libsdcc/int/divuint.c,
6771         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6772         `c' from signed to unsigned,
6773         * device/lib/pic16/startup/crt0.c,
6774         * device/lib/pic16/startup/crt0i.c,
6775         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6776         keywords to double underlined form, bug fixes in _do_cinit function
6777         which prevented the correct initialization of the .idata segment,
6778         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6779         core to enter a infinite loop
6780         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6781
6782 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6783
6784         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6785
6786 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6787
6788         * device/include/Makefile.in: add support for hc08 subdirectory
6789         * device/include/hc08/: new subdirectory
6790         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6791         Lucas Loizaga, thanks!
6792         * device/include/hc08/mc68hc908qy.h,
6793         * device/include/hc08/mc68hc908gp32.h,
6794         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6795         their own directory. Changed internal macro names to use the compiler
6796         reserved namespace. Changed SDCC specific keywords to double
6797         underlined form.
6798         * device/include/math.h,
6799         * device/include/malloc.h,
6800         * device/include/stdarg.h,
6801         * device/include/stdbool.h
6802         * device/include/string.h,
6803         * device/include/tinibios.h,
6804         * device/include/ds400rom.h,
6805         * device/include/8051.h,
6806         * device/include/8052.h,
6807         * device/include/80c51xa.h,
6808         * device/include/at89c55.h,
6809         * device/include/at89S8252.h,
6810         * device/include/at89x51.h,
6811         * device/include/at89x52.h,
6812         * device/include/ds80c390.h,
6813         * device/include/reg764.h,
6814         * device/include/regc515c.h,
6815         * device/include/sab80515.h,
6816         * device/include/mcs51/c8051f000.h,
6817         * device/include/mcs51/c8051f018.h,
6818         * device/include/mcs51/c8051f020.h,
6819         * device/include/mcs51/c8051f040.h,
6820         * device/include/mcs51/c8051f060.h,
6821         * device/include/mcs51/c8051f120.h,
6822         * device/include/mcs51/c8051f300.h,
6823         * device/include/mcs51/c8051f310.h,
6824         * device/include/mcs51/c8051f320.h,
6825         * device/include/mcs51/c8051f330.h,
6826         * device/include/mcs51/c8051f350.h,
6827         * device/include/z180.h: Changed SDCC specific keywords to double
6828         underlined form.
6829
6830 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6831
6832         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6833         18F4455,
6834         * (pic16_assignConfigWordValue): disable testing of configuration
6835         register value with config mask,
6836         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6837         function with port->fun_prefix,
6838         * (genFunction): when generating a naked interrupt function never
6839         create an absolute segment placed in interrupt vector address, place
6840         the actual interrupt function at IVA instead, when an interrupt
6841         function is generated with unspecified interrupt then do not create
6842         the absolute section,
6843         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6844         code for generating a call to generic pointer get/put function with
6845         a call to function pic16_callGenericPointer(),
6846         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6847         the call to the generic pointer get/put functions with prefixing the
6848         function name with port->fun_prefix,
6849         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6850         * src/pic16/main.c (_process_pragma): prefix function with
6851         port->fun_prefix,
6852         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6853         calling assembler, old 18Fxxxx macro is deprecated,
6854         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6855         PC_ASMDIR in while condition,
6856         * (findInstruction): add PC_ASMDIR in while condition,
6857         * (buildCallTree): prefix main with port->fun_prefix,
6858         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6859         identifier for variable with banked access in instructions BTFSS,
6860         BTFSC, BCF, BSF, BTG
6861         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6862         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6863         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6864         perform optimization when enviroment variable NO_REG_OPT is set,
6865         * (insideLRBlock): NEW, return 1 if register is inside an
6866         INF_LOCALREGS block,
6867         * (RemoveRegFromLRBlock): remove a register that is completely
6868         eliminated by register optimization, but it is still left in local
6869         register store/restore in/from stack block,
6870         * (Remove2pcodes): after removing register, check to see if it
6871         should be removed from local register store/restore in/from stack
6872         block,
6873         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6874         DUMMY_READ_VOLATILE,
6875
6876         * device/include/pic16/adc.h: minor prototype modifications and
6877         update,
6878         * device/include/pic16/malloc.h: added GPL notice various
6879         modifications,
6880         * device/include/pic16/stdint.h: NEW, standard header for ints
6881         * device/include/pic16/delay.h: NEW, header for delay functions,
6882         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6883         delay1mtcy,
6884         * device/include/pic16/signal.h: NEW, header providing helper macros
6885         for implementing signal handlers,
6886         * device/include/pic16/stdio.h: added prototypes for functions,
6887         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6888         prototypes for stdin and stdout, added macro PUTCHAR to
6889         automatically implement putchar function prototype,
6890         * device/include/pic16/usart.h: modified and updated USART library,
6891         * device/lib/pic16/libio/adc/,
6892         * device/lib/pic16/libio/i2c: some modifications to improve library
6893         performance,
6894         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6895         family of functions,
6896         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6897         family of functions and other sources,
6898         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6899         of the PIC18Fxx[28] devices,
6900         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6901         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6902         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6903         _do_cinit function, because the previous failed when local variables
6904         where not placed in the same memory bank,
6905         * device/lib/pic16/libsdcc/char/: various modifications to improve
6906         library performance,
6907         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6908         information on the new functions of the c library and more...
6909
6910 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6911
6912         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6913
6914 2005-03-26 Raphael Neider <rneider AT web.de>
6915
6916         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6917           if condition == CARRY)
6918         * (genCmp): adapted to new genSkipc semantics
6919         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6920           on rIfx (genCmp was broken)
6921
6922 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6923
6924         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6925         * src/z80/main.c (_keywords[]),
6926         * src/SDCCglobal.h (struct options),
6927         * src/SDCC.y,
6928         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6929         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6930         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6931         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6932         always available in leading double underscore form. The C99 support is
6933         mostly missing, but it's a start.
6934         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6935         reserved identifier "__data".
6936
6937 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6938
6939         * src/mcs51/peeph.def: fixed bug 1170013
6940
6941 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6942
6943         * device/include/mcs51reg.h: fixed bug 842007
6944
6945 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6946
6947         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6948         last time.
6949
6950 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6951
6952         * src/port.h (struct PORT),
6953         * src/avr/ralloc.c (avr_assignRegisters),
6954         * src/avr/main.c,
6955         * src/ds390/ralloc.c (ds390_assignRegisters),
6956         * src/ds390/main.c,
6957         * src/hc08/ralloc.c (hc08_assignRegisters),
6958         * src/hc08/main.c,
6959         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6960         * src/mcs51/main.c,
6961         * src/pic/ralloc.c (pic14_assignRegisters),
6962         * src/pic/main.c,
6963         * src/pic16/ralloc.c (pic16_assignRegisters),
6964         * src/pic16/main.c,
6965         * src/xa51/ralloc.c (xa51_assignRegisters),
6966         * src/xa51/main.c,
6967         * src/z80/ralloc.c (z80_assignRegisters),
6968         * src/z80/ralloc.h,
6969         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6970         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6971         * src/SDCCcse.h,
6972         * src/SDCCdflow.c (computeDataFlow),
6973         * src/SDCCdflow.h,
6974         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6975         * src/SDCCloop.h,
6976         * src/SDCCcflow.c (*),
6977         * src/SDCCcflow.h,
6978         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6979         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6980         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6981         immedDom() returning wrong block; probably fixes bug #1160833)
6982
6983 2005-03-20 Borut Razem <borut.razem AT siol.net>
6984
6985         * support/scripts/inc2h.pl: WIN32 port
6986
6987 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6988
6989         * device/lib/makefile.in: added abs.c and labs.c
6990
6991 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6992
6993         * device/include/stdint.h: added
6994         * device/lib/abs.c: added
6995         * device/lib/labs.c: added
6996         * device/include/stdlib.h: added abs() and labs() prototypes
6997         * device/lib/libsdcc.lib: added abs and labs
6998         * device/include/float.h,
6999         * device/lib/_fsmul.c,
7000         * device/lib/printf_fast.c,
7001         * device/lib/printf_tiny.c: updated comments
7002
7003 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7004
7005         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
7006         bug #1164313
7007
7008 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7009
7010         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
7011         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
7012
7013 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
7014
7015         * device/lib/printf_large.c: removed inline assembly for portability and
7016           readability. Use printf_fast if speed or size are more important.
7017         * src/pic16/gen.c: removed conditions around use of DEBUGpc
7018         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
7019
7020 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
7021
7022         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
7023         prevent compiler warning
7024
7025 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
7026
7027         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
7028         moved to level 0 and declared as static. Also they are explicit
7029         placed in access bank. This was necessery because some times they
7030         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
7031         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
7032         optimizations. Currently only compare to unsigned char is implemented,
7033         * src/pic16/gen.c: added fReturnIdx array,
7034         * (struct resolvedIfx) is moved to gen.h and made public,
7035         * (struct _G): added sregsAlloc and sregsAllocSet fields,
7036         * (aopForSym): added an optimization to directly store in stack of
7037         the operand of a SEND iCode,
7038         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
7039         but as registers instead (AOP_REG) using the fReturnIdx array,
7040         * (pic16_freeAsmop): remove the freed register from the
7041         _G.sregsAlloc field,
7042         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
7043         a compare of 'WREG',
7044         * (pic16_popGetTempRegCond): changed function prototype, now
7045         function takes also a bitVector argument v which holds the current
7046         set of registers that are allocated for stack access by aopForSym,
7047         registers allocated in aopForSym for accessing stack symbols are not
7048         any more part of the functions usedRegs field,
7049         * (genCall): some times aopOp is called for a stack variable to be
7050         send, aopForSym might perform the push, if this is true make sure
7051         that genCall doesn't push the variable twice by testing _G.resDirect,
7052         * (genFunction): changed testing for unspecified interrupt number
7053         from 256 to INTNO_UNSPEC,
7054         * modified selection scheme of frame pointer generation. Previously
7055         if function did use local registers a frame pointer was generated,
7056         now a frame pointer is generated only if function has arguments
7057         (that need PLUSW2 register access), or has stack arguments, or the
7058         compiler is not instructed to omit the frame pointer,
7059         * (genEndFunction): before restoring local registers that were saved
7060         in the function preamble, also restore the registers that *might*
7061         have been allocated for stack access,
7062         * (genRet): removed some old comments,
7063         * (genCmp, the active (RN's) version): added a call to the
7064         pic16_genCmp_special function to perform the compare with a more
7065         robust and optimized way,
7066         * (genInline): a feature has been added in inline code generation,
7067         which allows a wildcard variable substitution when writing inline
7068         assembly. Code is incomplete and experimental therefore undocumented,
7069         * (genCast): changed order of aopOp for result and right to allow
7070         aopForSym to directly load the result if possible,
7071         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
7072         perform an optimized compare on some selected special occasions,
7073         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
7074         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
7075         generate an IVT any more,
7076         * src/pic16/main.c (pic16_optionsTable): added command line option
7077         --optimize-cmp,
7078         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
7079         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
7080         macros,
7081         * src/pic16/NOTES: Raphael Neider added in list of active developers
7082         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
7083         jumptable_end to prevent bug #,
7084         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
7085         inCond and outCond fields,
7086         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
7087         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
7088         turn off register spilling,
7089         * (packRegsForOneUse): synced with other ports' versions although it
7090         is not used currently,
7091         * (pic16_packRegisters): added an optimization while reading
7092         structure bitfields, some registers may be saved (malloc code is
7093         decreased by 80 bytes)
7094
7095 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
7096
7097         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
7098         left is a bitfield, if yes, then don't optimize assignment. Perhaps
7099         this can be optimized more?
7100
7101 2005-03-10 Raphael Neider <rneider AT web.de>
7102
7103         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
7104           genNearPointerGet): (hopefully) fixed access to bitfields via
7105           pointers (p->bitN = x; and x = p->bitN; failed)
7106
7107 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
7108
7109         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
7110
7111 2005-03-09 Raphael Neider <rneider AT web.de>
7112
7113         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
7114
7115 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
7116
7117         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
7118         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
7119           (regTypeNum): set REG_BIT type if necessary
7120         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
7121         * support/regression/tests/critical.c: check bug 1144613
7122
7123 2005-03-02 Raphael Neider <rneider AT web.de>
7124
7125         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
7126
7127 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7128
7129         * src/avr/ralloc.c (serialRegAssign),
7130         * src/ds390/ralloc.c (serialRegAssign),
7131         * src/hc08/ralloc.c (serialRegAssign),
7132         * src/mcs51/ralloc.c (serialRegAssign),
7133         * src/pic/ralloc.c (serialRegAssign),
7134         * src/pic16/ralloc.c (serialRegAssign),
7135         * src/xa51/ralloc.c (serialRegAssign),
7136         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
7137
7138 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
7139
7140         * src/SDCCast.c (decorateType): fixed bug 1124787
7141
7142 2005-02-20 Hubert Sack <sack AT digiplan.de>
7143         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7144
7145         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
7146         patch #1121755
7147
7148 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7149
7150         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
7151         to keep the correct label reference count when adding/removing references
7152         to labels. A peephole file using this is appended to patch #1144962.
7153
7154 2005-02-14 Raphael Neider <rneider AT web.de>
7155
7156         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
7157         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
7158         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
7159           retrievals of result operand's value on assignment
7160
7161 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
7162
7163         * device/include/pic16/string.h: modified prototype for memccpy()
7164         to memccpy(void *, void *, char, size_t)
7165         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
7166         check whether to omit frame pointer or not,
7167         * (genInline): convert all occurences of "\n" to LF in inline
7168         assembler blocks, this helps formatting the inline text,
7169         * (pic16_loadFSR0): modified prototype,
7170         * (genNearPointerGet, genNearPointerSet): reorganization of code,
7171         removed some 8051 legacy code,
7172         * (genPackBits): enabled handling bitfields exceeding one byte in size,
7173         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
7174         before allocating temporary registers in functions,
7175
7176 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
7177
7178         * support/regression/tests/bitvars.c: corrected the "fix"
7179
7180 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
7181
7182         * support/regression/tests/bitvars.c,
7183         * support/regression/tests/bitwise.c,
7184         * support/regression/tests/rotate.c: "fixed" problems on Alpha
7185
7186 2005-02-10 Raphael Neider <rneider AT web.de>
7187
7188         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
7189           different size for Alpha
7190         * src/pic16/gen.c (genCmpEq) : improved compare with 0
7191
7192 2005-02-09 Raphael Neider <rneider AT web.de>
7193
7194         * src/SDCC.lex(doPragma) : save and restore warning options as well
7195           (also added new stack plus clone- and copyAndFreeSDCCERRG())
7196         * have #pragma less_pedantic set the errorlevel to WARNING
7197           (fixes #1117001)
7198         * (cloneOptimize) : fixed wrong malloc's size
7199         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
7200           facilitate correct handling of #pragma (save|restore)
7201
7202 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
7203
7204         * src/mcs51/gen.c: removed non-standard C nameless struct/union
7205
7206 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
7207
7208         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
7209
7210 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
7211
7212         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
7213
7214 2005-02-02 Raphael Neider <rneider AT web.de>
7215
7216         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
7217         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
7218         * (pic16_storeForReturn): fixed to allow returning function pointers
7219         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
7220         * device/include/pic16/{stddef.h,stdbool.h}: added
7221
7222 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
7223
7224         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
7225
7226 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
7227
7228         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
7229         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
7230          appeared to be required
7231
7232 2005-01-31 Borut Razem <borut.razem AT siol.net>
7233
7234         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
7235           include/mcs51 and include/z80 directories to the package
7236
7237 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7238
7239         * src/hc08/gen.c (genFunction): fixed bug #1112752
7240
7241 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7242
7243         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
7244
7245 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7246
7247         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
7248
7249 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
7250
7251         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
7252
7253 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
7254
7255         * device/include/c8051fxxx.h: removed these 6 files
7256         * device/include/mcs51/c8051fxxx.h: added these 11 new files
7257
7258 2005-01-26 Raphael Neider <rneider AT web.de>
7259
7260         * src/pic16/gen.c (genAssign): fixed assignment from longs
7261           in codespace (were cut to three bytes)
7262         * (genDummyRead): implemented (except for CODESPACE...),
7263           fixed bug #1108575
7264         * src/pic16/glue.c (emitStatistics): beautified
7265         * device/lib/pic16/libm/Makefile: added include path
7266
7267 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7268
7269         * src/z80/gen.c (aopPut): fixed bug #1103902
7270
7271 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7272
7273         * device/lib/expf.c: fixed bug #1095792
7274
7275 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
7276
7277         * device/lib/pic16/libm: added Math library sources
7278
7279 2005-01-24 Raphael Neider <rneider AT web.de>
7280
7281         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
7282           to enable upcast to pCodeOpReg2 (there is no type tag to
7283           differenciate the two and pic16_popGet2p cast into PCOR2)
7284         * src/pic16/main.c (_process_pragma): fixed another malloc bug
7285           (sizeof(sectNames) changed to sizeof(sectName))
7286           Both patches fix segfaults under MinGW.
7287
7288 2005-01-23 Raphael Neider <rneider AT web.de>
7289
7290         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
7291           Safe_[mc]?alloc()'ed variables
7292         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
7293           of (byte sized) temporaries (assign them to WREG for now)
7294         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
7295           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
7296           this might fix SIGSEGVs on MinGW...
7297         * src/SDCCopt.c (killDeadCode): restored original behaviour
7298           (volatile operands might get thrown away though)
7299
7300 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
7301
7302         * src/pic16/gen.c: fixed bug #1106975,
7303         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
7304         pointer update, INTCON is saved, global interrupts are disabled and
7305         restored after updateing TOS.
7306         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
7307         * added function attribute 'shadowregs' to take advantage of shadow
7308         registers,
7309         * added function attribute 'wparam' as an alternative to the wparam
7310         pragma,
7311         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
7312         user declares a non-ISR function as 'shadowregs',
7313         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
7314
7315 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
7316
7317         * .version: bumped version number to 2.4.8
7318         * device/lib/pic16/pics.all: list of PIC18F devices supported by
7319         pic16 port,
7320         * device/lib/pic16/libio/i2c/: I2C module support library,
7321         * device/include/pic16/i2c.h: I2C support library header,
7322         * device/lib/pic16/libc/stdio/: standard IO support sources,
7323         * (printf_small.c): printf_small() source, supports float print,
7324         * (printf_tiny.c): printf_tiny() source, does not support floats,
7325         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
7326         enable global optimizations for entire library source, other
7327         Makefiles in the source tree are also modified to reflect this,
7328         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
7329         function,
7330         * doc/sdccman.lyx: updated to reflect new changes,
7331         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
7332         sym->onStack if-case,
7333         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
7334         sbit, idata, _idata, xdata, _xdata,
7335         * added pragma library, to link an external library, (see doc),
7336         * removed command line options, --pomit-config-words, --pomit-ivt,
7337         --pleave-reset-vector,
7338         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
7339         when calling assembler to reflect memory model used, also define
7340         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
7341         reflect stack model used,
7342         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
7343         on stack return NULL,
7344
7345 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7346
7347         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
7348           of the operands is volatile. Fixes #1020220
7349
7350 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7351
7352         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
7353         * (OptimizeRegUsage): make sure that there is really no other flow where
7354           the first pCode is used
7355
7356 2005-01-22 Raphael Neider <rneider AT web.de>
7357
7358         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
7359           to fix #1106967 (pCode->seq are not set up correctly)
7360
7361 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7362
7363         * src/SDCCglue.c (glue): make sure code area is declared before the
7364         static initialization area.
7365
7366 2005-01-21 Raphael Neider <rneider AT web.de>
7367
7368         * device/lib/Makefile.in: fixed test for pic16 install dir
7369         * device/lib/pic16/*/Makefile*: modified compile flags to enable
7370           optimizations
7371         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
7372           added --optimize-goto compiler switch and pragma wparam documentation
7373         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
7374         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
7375           and PRODH closing bug #1071770 (peephole optimizer)
7376
7377 2005-01-19 Raphael Neider <rneider AT web.de>
7378
7379         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
7380           cmdLine buffers (used when calling sdcpp...) are large enough
7381           (MAX_PATH=256 truncates arguments leading to system halts when
7382           used in MinGW...)
7383         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
7384         * (genUminus): rewritten to for efficiency
7385         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
7386           used uninitialized in some cases)
7387         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
7388           copy the third byte from the int -- now assumes 0x80 (data memory)
7389         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
7390           operands (genAddLit expects the iCode's operands to swapped as
7391           well), fixed leftover bytes (crashed for short left operands)
7392         * (pic16_genMinusDec): performance improvements, removed false
7393           PIC14 emitSKPNCs
7394         * (pic16_genMinus): fixed to cope with differently sized operands
7395         * src/pic16/glue.c (pic16_glue): added new banksel optimization
7396           for --obanksel > 1
7397         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
7398         * src/pic16/graph.[ch]: implementation of directed graphs, used by
7399           new banksel optimization
7400         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
7401           analysis for temporary registers (segfaults...)
7402         * src/pic16/peeph.def: added rule
7403
7404 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
7405
7406         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
7407         which converts a float number to its ASCII representation
7408         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
7409         functions to convert the fractional and integer part of a float to ASCII,
7410         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
7411         realloc.c): added _MALLOC_SPEC to explicit place variables in data
7412         ram
7413         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
7414         _STATMEM macros,
7415         * device/include/pic16/adc.h: added GPL info,
7416         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
7417         a pCodeOp as tested operand,
7418         * (genNearPointerGet): optimized bit testing, does not use
7419         intermediate register for bit value, test directly instead with
7420         BTFSS, BTFSC, works only for single bits,
7421         * (genpic16Code): dump the name of the iCode in the asm,
7422         * src/pic16/ralloc.c (decodeOp): removed static declaration and
7423         renamed to pic16_decodeOp,
7424         * (serialRegAssign): do not allocate a temporary register for iCode
7425         sequences that test a single bit for 1/0
7426
7427 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
7428
7429         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
7430         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
7431         access stack and frame pointers. They are initially assigned to
7432         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
7433         accessing SFRs. Updated all occurences of modification of stack or
7434         frame pointer in gen.c and pcode.c,
7435         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
7436         assigning of a literal value to pointers,
7437         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
7438         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
7439         selected
7440
7441 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7442
7443         * doc/sdccman.lyx: update documentation about stack pragma, added
7444         some info for stack memory models
7445
7446 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7447
7448         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
7449
7450 2005-01-08 Raphael Neider <rneider AT web.de>
7451
7452         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
7453           udata sections to fix bug #1097823
7454
7455 2005-01-05 Raphael Neider <rneider AT web.de>
7456
7457         * src/pic16/gen.c (genGenericShift): added handling of differently
7458           sized left operand and result
7459
7460 2005-01-04 Raphael Neider <rneider AT web.de>
7461
7462         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
7463         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
7464           to hold the condition bit)
7465         * added new version of genCmp (old code available via #define)
7466         * added new version of genShiftLeft/genShiftRight in a generic
7467           way, now supports shifting by negative values
7468         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
7469           shiftCount (expected by genGenericShift)
7470         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
7471         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
7472           dump
7473         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
7474           is an invalid literal too...)
7475
7476 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
7477
7478         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
7479         from Raphael Neider,
7480         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
7481         for 8-bit literals. This fixes some literal operands which are sign
7482         extended to 16-bits ints when instruction needs only 8-bits.
7483
7484 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
7485
7486         * device/lib/logf.c: added mcs51 assembly version
7487         * device/lib/expf.c: added mcs51 assembly version
7488         * device/lib/_logexpf.c: new shared asm code for expf and logf
7489         * device/include/math.h: add defines for assembly math library
7490         * device/lib/Makefile.in: build new _logexpf.c
7491         * device/lib/libfloat.lib: use new _logexpf.c
7492
7493 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7494
7495         * src/pic/device.c
7496         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
7497           device types which have less than 0x7f registers.
7498
7499 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7500
7501         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
7502
7503 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7504
7505         * device/lib/printf_fast.c: only build on supported arch.
7506         * device/lib/printf_tiny.c: only build on supported arch.
7507         * device/lib/printf_fast_f.c: only build if asm float lib
7508         * device/lib/_fsget1arg.c: only build if asm float lib
7509         * device/lib/_fsget2args.c: only build if asm float lib
7510         * device/lib/_fsnormalize.c: only build if asm float lib
7511         * device/lib/_fsreturnval.c: only build if asm float lib
7512         * device/lib/_fsrshift.c: only build if asm float lib
7513         * device/lib/_fsswapargs.c: only build if asm float lib
7514         * device/include/stdio.h: don't provide print_fast,
7515           print_fast_f, print_tiny prototypes if --xstack used
7516
7517 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
7518
7519         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
7520         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
7521           to the SOURCES
7522
7523 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7524
7525         * device/lib/printf_fast_f.c: same as printf_fast, but
7526           with floating point enabled
7527         * device/lib/printf_fast.c: minor tweaks
7528         * device/include/stdio.h: add printf_fast_f
7529
7530 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7531
7532         * src/SDCCmain.c: make --float-reent default for mcs51
7533         * device/lib/_fsadd.c: added mcs51 assembly version
7534         * device/lib/_fssub.c: added mcs51 assembly version
7535         * device/lib/_fsmul.c: added mcs51 assembly version
7536         * device/lib/_fsdiv.c: added mcs51 assembly version
7537         * device/lib/_fseq.c: added mcs51 assembly version
7538         * device/lib/_fsneq.c: added mcs51 assembly version
7539         * device/lib/_fsgt.c: added mcs51 assembly version
7540         * device/lib/_fslt.c: added mcs51 assembly version
7541         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
7542         * device/lib/Makefile.in: add _fscmp to build
7543         * device/lib/libfloat.lib: add _fscmp to build
7544
7545 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7546
7547         * device/lib/_fs2slong.c: added mcs51 assembly version
7548         * device/lib/_fs2sint.c: added mcs51 assembly version
7549         * device/lib/_fs2schar.c: added mcs51 assembly version
7550         * device/lib/_fs2ulong.c: added mcs51 assembly version
7551         * device/lib/_fs2uint.c: added mcs51 assembly version
7552         * device/lib/_fs2uchar.c: added mcs51 assembly version
7553         * device/lib/_slong2fs.c: added mcs51 assembly version
7554         * device/lib/_sint2fs.c: added mcs51 assembly version
7555         * device/lib/_schar2fs.c: added mcs51 assembly version
7556         * device/lib/_ulong2fs.c: added mcs51 assembly version
7557         * device/lib/_uint2fs.c: added mcs51 assembly version
7558         * device/lib/_uchar2fs.c: added mcs51 assembly version
7559         * device/include/float.h: added #define to select asm vs c
7560
7561 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
7562
7563         * device/lib/printf_fast.c: improvements to float output
7564         * device/include/float.h: add defines for assembly float library
7565         * device/lib/_fsget1arg.c: receive 1 float arg
7566         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
7567         * device/lib/_fsnormalize.c: normalize a float
7568         * device/lib/_fsreturnval.c: return float, various helper routines
7569         * device/lib/_fsrshift.c: right shift a float's mantissa
7570         * device/lib/_fsswapargs.c: swap 2 floats
7571         * device/lib/Makefile.in: build these 6 new files for mcs51
7572         * device/lib/libfloat.lib: add these 6 files to the library
7573
7574 2004-12-26 Borut Razem <borut.razem AT siol.net>
7575
7576         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
7577           built by gcc 3.4.2
7578
7579 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
7580
7581         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
7582           and fully reentrant and register bank neutral.
7583         * device/lib/printf_fast.c: added float (not enabled by default),
7584           added compact/slower integer (also not enabled by default),
7585           improved size/speed of fast integer code, other minor changes
7586         * device/include/stdio.h, device/lib/Makefile.in,
7587           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
7588
7589 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
7590
7591         * src/pic16/pcode.c: declaring variables other than at the start of a
7592           block is not supported in C by VC6.
7593
7594 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
7595
7596         * applied a previous patch from Raphael Neider that wasn't included
7597         in the previous commits, which fixes infinite loops within jumptable
7598         improvements,
7599         * made some fixes that previous patches introduced
7600
7601 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
7602
7603         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
7604         that fixes an issue with AOP_PCODE asmop's offset,
7605         * (pic16_popCopyReg): update instance field too,
7606         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
7607         function of pic port,
7608         * (genCmp, genAnd, genAssign),
7609         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
7610
7611 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
7612
7613         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
7614         variables initial values to idata section,
7615         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
7616         variables in some functions. This utilizes parmBytes field of iCode
7617         structure to hold the offset of the variable in stack. (might be
7618         able to use the stack field too?)
7619         * applied patch from Raphael Neider # ### , # ###
7620         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
7621         variable initial values in idata section,
7622         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
7623         for static variables with initial value
7624         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
7625         applied fix in while loop from Raphael Neider.
7626
7627 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
7628
7629         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
7630         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
7631         * src/ds390/ralloc.c (serialRegAssign): spill bits
7632         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
7633         * support/Util/SDCCerr.c,
7634         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
7635         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
7636         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
7637
7638 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
7639
7640         * device/include/sdcc-lib.h: inserted LGPL, added includes
7641           asm/ds390/features.h and asm/mcs51/features.h
7642         * device/include/asm/default/features.h,
7643         * device/include/asm/gbz80/features.h,
7644         * device/include/asm/z80/features.h: added empty _AUTOMEM
7645           and _STATMEM
7646         * device/include/asm/ds390/features.h,
7647         * device/include/asm/mcs51/features.h: added files with defines for
7648           _AUTOMEM and _STATMEM indicating automatic and static storage class
7649         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
7650         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
7651         * src/SDCCicode.c (geniCodeCast),
7652         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
7653         * src/SDCCloop.c (loopInduction): removed unused variable lr
7654         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
7655           to convertToFcall to include char modulo (RFE 1065037), added check
7656           if left operand is unsigned and use abs of literal value
7657         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
7658           as it doesn't work after conversion from peephole.def to peephole.rul
7659         * src/mcs51/gen.c (toBoolean): added check for size,
7660           (genModOneByte): optimized code for signed char modulo a literal
7661           power of 2 (thanks to Hubert Sack),
7662           (genRRC): removed unnecessary "clr c",
7663           (genRLC): replaced "add a,acc" with cheaper "rlc a"
7664         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
7665           jump optimization,
7666           swapped rules 256.c and 256.d,
7667           extended 256.d by using new multiple checks (thanks Erik),
7668           added rules 256.e and 256.f,
7669           updated rule 261.a and 261.b to new generated code
7670         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
7671
7672 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7673
7674         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
7675           induction related bugs, including first part of bug #1074377
7676
7677 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
7678
7679         * applied patch from bug-report #1076292,
7680         * applied patches for genAnd and Goto-optimizations for Raphael
7681         Neider,
7682         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7683         dump a less iCode information,
7684         * src/pic16/device.h (pic16_options_t): added field debgen,
7685         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7686         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7687         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7688         puclic,
7689         * (various functions): added macros FENTRY and FENTRY2 to functions,
7690         to emit function prologue,
7691         * (various functions): fixed indentation,
7692         * (genNearPointerGet): fixed loading of FSR0,
7693         * (genPackBits): applied patch from Raphael Neider to fix updating
7694         of FSR0 and touching only the modified bits,
7695         * src/pic16/genarith.c (various functions): added macros FENTRY to
7696         emit function prologue in comments,
7697         * src/pic16/pcode.h: added functions debugf2, debugf3,
7698         * src/pic16/ralloc.c: partial fix for packForPush caused
7699         segmentation fault,
7700
7701 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7702
7703         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7704           <stsp AT users.sourceforge.net> with reversed byte order
7705         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7706
7707 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7708
7709         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7710           bug #1074377
7711         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7712         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7713
7714 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7715
7716         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7717
7718 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7719
7720         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7721           conditions,
7722           (setFromConditionArgs): friendly operand parser for peephole rules,
7723           (operandBaseName, operandsNotRelated): new peephole condition
7724           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7725           architecture specific register naming into account, handles n-way
7726           comparisons, and supports quoted literals
7727         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7728
7729 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7730
7731         * src/mcs51/peeph.def: fixed bug #1076940
7732
7733 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7734
7735         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7736
7737 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7738
7739         Adding support for replacing ljmps with sjmps in jumptables
7740         generated for switch statements. For now you need to set the
7741         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7742         Now 4 algorithms for mcs51 jumptable generation are used:
7743         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7744         addresses loaded pc-relative for up to 112 cases and stack-pushing
7745         target addresses loaded with offset from dptr for up to 256 cases.
7746
7747         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7748         * src/mcs51/main.c: adapted constants for switch table generation
7749         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7750
7751 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7752
7753         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7754         * support/regression/tests/bug1057979.c: added test for bug 1073386
7755
7756 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7757
7758         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7759         compilers
7760
7761 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7762
7763         * src/pic16/device.h,
7764         * src/pic16/genarith.c,
7765         * src/pic16/glue.c,
7766         * src/pic16/main.c,
7767         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7768
7769 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7770
7771         Large cummulative patch for pic16 port.
7772         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7773         to call when a stack overflow occurs,
7774         * (malloc.h): added CVS Id tag,
7775         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7776         variable,
7777         * added libc directory. The current version of LibC contains string
7778         functions, ctype functions and macros and some functions of the
7779         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7780         be extensively tested in the future. Standard disclaimer here.
7781         Library is not automatically build yet. But one can build it by
7782         invoking 'make' inside the libc directory.
7783         * added ADC library under libio. Preliminary version yet.
7784
7785         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7786         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7787         aopForRemat() now and not by pic16_aopOp(),
7788         * (pic16_popGetTempReg): removed warning messgae when allocating
7789         temporary registers, its a buggy feature and will be removed,
7790         * (pic16_popGet): set register instance field in AOP_CRY,
7791         * (pic16_outBitC): fixed for results in size greater than 1,
7792         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7793         * (pic16_storeForReturn): optimized return of 0,
7794         * (genCmp): experimental code for new genCmp which uses PIC18's
7795         special compare&skip instructions. Initial tests fail some times
7796         with variables grater than 1 byte in size, so new code is disabled,
7797         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7798         a single bit,
7799         * (genCast): began a fix to optimize the casting of a bit to another
7800         bit, now assigning a bitfield to another bitfield will fail, sorry,
7801         * src/pic16/main.c: disabled the use of lr-support feature,
7802         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7803         * added some function prototypes, added function _debugf prototype,
7804         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7805         bits with offset (case PO_GPR_BIT),
7806         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7807         command line,
7808         * (isBankInstruction): modified to return 0 for no banking instruction,
7809         and 1 for banking instruction,
7810         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7811         caused stop processing pCodes after a inline assembly block,
7812         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7813         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7814         registers when it shouldn't,
7815         * src/pic16/ralloc.c (allocReg): add preliminary support for
7816         supporting a limited set of temporary registers,
7817
7818 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7819
7820         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7821           genDataPointerSet): ensure assignments always copy in MSB to LSB
7822           order,
7823           (loadRegFromAop): recognize CLRH optimization,
7824           (genFunction): optimize RECEIVE iCodes in reentrant functions
7825
7826 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7827
7828         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7829           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7830           selected.
7831         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7832         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7833           contiguous with data
7834
7835 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7836
7837         * device/lib/_gptrget.c (_gptrget),
7838         * device/lib/_gptrgetc.c (_gptrgetc),
7839         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7840           instead of sjmp to ret
7841         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7842           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7843
7844 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7845
7846         * .version: bumped version to 2.4.7
7847         * device/lib/_gptrget.c (_gptrget): is now _naked
7848         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7849         * device/lib/_gptrput.c (_gptrput): is now _naked
7850         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7851           (createFunction): fixed xstack
7852         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7853         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7854           or bit either,
7855           (geniCodeCritical): store original interrupt state in an iTemp bit
7856           var unless stack-auto
7857         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7858         * src/SDCCmain.c (setIncludePath): added include/target to search path
7859         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7860         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7861           prototype,
7862           (processFuncArgs): put bit vars in bit area
7863         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7864           unsaveRBank): fixed xstack,
7865           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7866           (genFunction, genEndFunction): fixed xstack,
7867           (genAssign): optimization don't walk backwards through mem
7868         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7869         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7870         * support/regression/Makefile: also make library (for stack-auto) when
7871           making "all" and added "test-mcs51-xstack-auto"
7872         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7873         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7874         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7875         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7876         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7877           make-library by MAKE_LIBRARY
7878         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7879           regression tests for xstack
7880         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7881         * support/regression/tests/critical.c: test for critical on mcs51
7882
7883 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7884
7885         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7886           built version of sdcc instead of installed version
7887
7888 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7889
7890         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7891         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7892           vprintf.c now
7893         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7894         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7895           WARNING: remove device/lib/build/z80/printf.o by hand when
7896           updating from previous build!
7897         * device/lib/z80/printf.c: updated comment
7898         * support/regression/tests/bug1057979.c: test all ports now
7899         * support/regression/tests/bug1065458.c: file added
7900
7901 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7902
7903         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7904           *_start and *_end symbols for static functions
7905
7906 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7907
7908         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7909           and search crt0.o in all library paths,
7910           (setIncludePath): proper handling of --nostdinc,
7911           (setLibPath): proper handling of --nostdlib
7912         * support/regression/Makefile,
7913         * support/regression/ports/ds390/spec.mk,
7914         * support/regression/ports/gbz80/spec.mk,
7915         * support/regression/ports/hc08/spec.mk,
7916         * support/regression/ports/mcs51/spec.mk,
7917         * support/regression/ports/mcs51-large/spec.mk,
7918         * support/regression/ports/mcs51-stack-auto/spec.mk,
7919         * support/regression/ports/z80/spec.mk: use include and lib files from
7920           built version of sdcc instead of installed version
7921         * doc/sdccman.lyx: fixed typo in --nostdinc
7922
7923 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7924
7925         * src/pic/pcode.c,
7926         * src/pic/device.c,
7927         * src/pic/ralloc.c,
7928         * src/pic/gen.c : added support to generate code for struct bit fields.
7929
7930 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7931
7932         * as/xa51/xa_version.h,
7933         * device/include/errno.h,
7934         * device/include/regc515c.h,
7935         * device/lib/_itoa.c,
7936         * device/lib/_ltoa.c,
7937         * device/lib/ser_ir_cts_rts.c,
7938         * sim/ucsim/xa.src/glob.cc,
7939         * sim/ucsim/xa.src/inst_gen.cc,
7940         * sim/ucsim/xa.src/xa_bit.cc,
7941         * sim/ucsim/xa.src/xa_sfr.cc,
7942         * sim/ucsim/z80.src/inst_dd.cc,
7943         * sim/ucsim/z80.src/inst_fdcb.cc,
7944         * support/scripts/keil2sdcc.pl,
7945         * src/pic16/pic16.dsp,
7946         * src/pic16/pic16a.dsp: corrected cvs line endings
7947         * device/lib/printf_large.c: fixed bug 1057979
7948         * src/pic16/gen.c: fixed non-C standard code
7949         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7950         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7951         * support/regression/ports/mcs51/support.c: reload T1 asap
7952         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7953           pdata use and clear idata startup behaviour
7954         * support/regression/tests/bug1057979.c: added
7955
7956 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7957
7958         * device/examples/ds390/ow390/ad26.h,
7959         * device/examples/ds390/ow390/cnt1d.h,
7960         * device/examples/ds390/ow390/crcutil.c,
7961         * device/examples/ds390/ow390/ownet.h,
7962         * device/examples/ds390/ow390/owsesu.c,
7963         * device/examples/ds390/ow390/swt12.h,
7964         * device/examples/ds390/ow390/swtoper.c,
7965         * device/examples/ds390/ow390/temp10.h,
7966         * device/examples/ds390/ow390/thermodl.c,
7967         * device/examples/ds390/tinitalk/tinitalk.dsp,
7968         * device/examples/ds390/tinitalk/tinitalk.dsw,
7969         * device/examples/mcs51/clock/hw.h,
7970         * device/examples/mcs51/simple2/go.bat,
7971         * device/examples/serialcomm/windows/serial.h,
7972         * device/examples/xa51/dummy.c,
7973         * device/examples/xa51/hello.c,
7974         * device/include/80c51xa.h,
7975         * device/include/at89x051.h: corrected cvs line endings
7976
7977 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7978
7979         * src/pic16/main.c (options): added command line --gstack, to trace
7980         stack over/under flows,
7981         * added pragma 'wparam' to allow passing first byte of function
7982         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7983         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7984         call to __gstack_test function and sets up the symbol as extern,
7985         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7986         * popaop): added call to pic16_testStackOverflow,
7987         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7988         wparamList list,
7989         * (genCall, genPcall): now all parameters are passed via stack
7990         except in functions that are pass to wparam pragma in which WREG is
7991         used too,
7992         * (genPcall): REENTRANT flag is checked to see if variable prototype
7993         contains reentrant keyword, don't call a non-reentrant function, via
7994         a reentrant function pointer or vice versa, functions are never
7995         passed via WREG,
7996         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7997         D.Winkler,
7998         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7999         SIGSEGV when accessing a NULL register stucture,
8000         * (pic16_printGPointerType): modified to handle UPPER modifier for
8001         function initializers, changed prototype of function to simpler one,
8002         * (pic16_printIvalFuncPtr): check to see if function is already
8003         added in externs list,
8004         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
8005         optimized a move from W to SFR with a move to the same register
8006         later after a CALL,
8007         * device/lib/pic16/debug: NEW directory, contains debug features
8008         which are enabled when linking with libdebug.lib, currently command
8009         line option --gstack enables stack pointer tracing for over/under
8010         flow, corresponding sources are in debug/gstack
8011
8012 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
8013
8014         * doc/sdccman.lyx: updated SDCC version,
8015         * (PIC16 port): update list of command line options,
8016         * src/pic16/device.h (structure pic16_options_t): added field gstack
8017         to enable stack overflow tracing on push/pops,
8018         * src/pic16/device.c (statistics structure): added statistics
8019         structure,
8020         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
8021         pic16_dump_int_registers): increase statistics counters for each
8022         * variable which is encountered
8023         * (pic16_dump_usection): emit each .udata variable to its own udata
8024         section,
8025         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
8026         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
8027         parameters via stack, otherwise use old scheme,
8028         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
8029         assembler output file,
8030         * src/pic16/main.c: added command line options --gstack to enable
8031         push/pop tracing for stack overflow,
8032         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
8033         instructions): added size of each instruction,
8034         * (pic16_countInstruction): estimate size of instructions in
8035         the_pFile list, inline assembly blocks are not counted,
8036         * (pic16_FixRegisterBanking): trace previous register usage, when
8037         banksel optimizations is greater than 0, don't emit a redudant
8038         banksel directive,
8039
8040 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
8041
8042         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
8043         * src/pic16/ralloc.c : applied same fix for pic16.
8044         * src/pic/gen.c : tidied it up a little.
8045
8046 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8047
8048         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
8049         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
8050
8051 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8052
8053         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
8054
8055 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8056
8057         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
8058         non-reentrant function __modsint in the interrupt function (thus
8059         corrupting math operations during serial I/O)
8060         * device/lib/ser_ir.c: as above, changed buffersize
8061         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
8062         256.c,d for zeroing
8063         * doc/Makefile: added option -t for rsync
8064
8065 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8066
8067         * src/SDCCast.h (struct ast),
8068         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
8069
8070 2004-10-20 Borut Razem <borut.razem AT siol.net>
8071
8072         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
8073         package
8074
8075 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
8076
8077         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
8078         makefile targets,
8079         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
8080         support functions to replace long sequences of MOVFF's from access
8081         bank registers to stack and vice versa,
8082         * src/pic16/device.h: added new field opt_flags, where optimization
8083         flags can be set to enable certain features,
8084         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
8085         * pBlock, (genFunction, genEndFunction): surroung loop for
8086         saving/loading used registers in stack with PC_INFO pCodes,
8087         INF_LREGS. Code in between can then be optimized by pCode optimizer
8088         to support function calls,
8089         * (genDataPointerSet): fixed bug which loaded float fields in
8090         structures with corrupt data,
8091         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
8092         in a standard way debug info on stderr. Feature used for developing
8093         and debugging only,
8094         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
8095         obsolete chunks of code,
8096         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
8097         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
8098         * pic16/src/pcode.c (pic16_newpCodeInfo,
8099         * (pic16_newpCodeOpLocalRegs),
8100         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
8101         feature,
8102         * (pic16_pCodeConstString): printing of the initial value of a
8103         symbol as a comment is inhibited since parsing was already done by
8104         copyStr and output is corrupt,
8105         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
8106
8107 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8108
8109         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
8110
8111 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
8112
8113         * as/mcs51/lkarea.c: removed old K&R style,
8114           (lnksect): changed check on boundary error,
8115           (lnksect2): changed check on boundary error,
8116           (lnksect2): extend XSTK to end of page if size = 1
8117         * as/mcs51/lkmain.c: removed old K&R style,
8118           (Areas51): create l_IRAM symbol
8119         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
8120         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
8121           model-mcs51-stack-auto, added model-mcs51-xstack-auto
8122         * device/lib/_mullong.c: added version to be compiled with xstack
8123         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
8124         * device/lib/mcs51/crtxclear.asm: clear pdata as well
8125         * device/lib/mcs51/crtxstack.asm: fixed comment
8126         * src/SDCCglue.c: maxInterrupts defaults to 0,
8127           (emitMaps): added pdata,
8128           (createInterruptVect): (re)moved default,
8129           (glue): added pdata,
8130           (glue): moved __start__xstack to XSTK with default size 1
8131         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
8132           and options.float_rent when options.stackAuto is set,
8133           (linkEdit): only write XDATA_NAME if provided on command line
8134         * src/SDCCmem.h,
8135         * src/SDCCmem.c: added pdata
8136         * src/port.h: added pdata_name to PORT
8137         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
8138           (saveRegisters, unsaveRegisters): removed usage of B,
8139           (genMinus): fixed accumulator clash,
8140           (genJumpTab): added comment, this needs another look
8141         * src/mcs51/gen.c: added check for "B in use" paranoia,
8142           added pushB() and popB()
8143         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
8144           chance
8145         * src/avr/main.c,
8146         * src/ds390/main.c,
8147         * src/hc08/main.c,
8148         * src/mcs51/main.c,
8149         * src/pic/main.c,
8150         * src/pic16/main.c,
8151         * src/xa51/main.c,
8152         * src/z80/main.c: (reset_regparms) made void parameter explicit and
8153           added PSEG (PAG,XDATA) or NULL to port specifier
8154         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
8155         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
8156           (_mcs51_genInitStartup): removed __start__xstack equ,
8157           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
8158         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
8159         * src/z80/gen.c (_rleAppend): fixed warnings
8160         * support/regression/tests/zeropad.c: added pdata test
8161         * .version: bumped to 2.4.6
8162
8163 2004-10-17 Borut Razem <borut.razem AT siol.net>
8164
8165         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
8166         as a part of nightly build
8167
8168 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
8169
8170         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
8171         WREG holds the first byte function parameters,
8172         * (aopForSym): take special case for symbols which are in FARSPACE
8173         but in CODESPACE too,
8174         * (assignResultValue): modified to take into account _G.useWreg,
8175         * (genCall): don't use wreg for parameter passing when function is
8176         declared as reentrant, too, added optimization INCF to stack
8177         pointer when stack parameter count is 1,
8178         * (genFunction, genEndFunction): refurnished and fixed to not using
8179         wreg for passing parameters when function has varargs or is
8180         reentrant, fixed bug with symbol name compare for generating
8181         functions in absolute address,
8182         * (pic16_storeForReturn): refurnished,
8183         * (genCmp): began writing a new version of the function, not ready
8184         yet, therefore it is disabled,
8185         * (genAssign): do not read code memory when assigning a function to
8186         a pointer function,
8187         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
8188         array of characters, not pointer,
8189         * (pic16initialComments): in debug mode emit an .ident directive for
8190         the assembler,
8191         * (_process_pragma): emit a new warning type (internal to pic16)
8192         when setting stack to default length, emit a similar warning when
8193         placing a function at absolute address and address is not word aligned
8194         * (_pic16_parseOptions): added 'return TRUE' statement,
8195         * (_pic16_linkEdit): if compiling a source, then add the source's
8196         file object, first in the list of objects to link,
8197
8198 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
8199
8200         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
8201         * src/pic/main.c : removed VC warning.
8202         * src/pic/gen.c : changed comment.
8203
8204 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
8205
8206         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
8207         reference to a deprecated symbol _GPTRREG was causing failure to
8208         link. Thanks G. M. Gallant for the info.
8209
8210 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
8211
8212         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
8213         comments for Bugs item #954788.
8214
8215 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
8216
8217         * src/pic16/device.c (pic16_dump_gsection,
8218         * pic16_groupRegistersInSection): handle symbols declared to be in
8219         access bank differently,
8220         * src/pic16/gen.c (struct _G): added field resDirect,
8221         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
8222         send values read from stack directly to result and don't allocate
8223         temporary values,
8224         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
8225         same registers,
8226         * (pic16_sameRegsOfs): NEW,
8227         * (freeAsmop): if _G.resDirect is set then do not mark registers as
8228         free because they were not allocated from temporary pool,
8229         * pic16_popRegFromString): workaround to fix a problem with
8230         allocating variables twice or never,
8231         * (genGenPointerGet): using PRODL instead of FSR0H,
8232         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
8233         instead of FSR0H,
8234         * (genAssign): take advantage of the _G.resDirect flag,
8235         * (genCast): around line 11844, use mov2f instead of directly
8236         MOVFF'ing between operands to account for literal values,
8237         * src/pic16/genutils.c: some new debug functions for gpsim have been
8238         added,
8239         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
8240         float with integer part only,
8241         * src/pic16/main.c (_process_pragma): handle pragma udata access to
8242         place variables in access bank
8243         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
8244         updated sources to reflect recent changes in gen.c
8245
8246 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
8247
8248         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
8249         sources that searched for headers in installation path, now the
8250         device/include/pic16 is used,
8251         * src/pic16/glue.c (pic16glue),
8252         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
8253         .line directives if not in debug mode, this suppresses assembler's
8254         warnings for ignored directives
8255
8256 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
8257
8258         * src/port.h: made reset_regparms prototype void parameter explicit.
8259         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
8260         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
8261         * doc/sdccman.lyx: documented warning disabling and how to use
8262           printf_large to make it print floats.
8263         * device/include/stdbool.h: NEW
8264         * device/lib/_atof.c,
8265         * device/lib/_divuint.c,
8266         * device/lib/_divulong.c,
8267         * device/lib/expf.c,
8268         * device/lib/printf_large.c,
8269         * device/lib/sincosf.c,
8270         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
8271         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
8272           a completely reentrant lib.
8273
8274 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
8275
8276         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
8277         * device/include/pic16/stdio.h: fixed bug with colon
8278
8279 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
8280
8281         * device/include/pic16/stdio.h,
8282         * device/include/pic16/stdlib.h,
8283         * device/include/pic16/math.h: NEW
8284         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
8285         declared as _naked to reduce overhead
8286         * device/lib/Makefile.in (target port-specific-objects-pic16):
8287         changed * to *.* so to ignore the CVS directory,
8288         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
8289         stacked variables back in stack,
8290         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
8291         corruption
8292
8293 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
8294
8295         * .version: bumped version number to 2.4.5
8296         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
8297         * support/Util/SDCCerr.c (messages structure): added entry for
8298         W_POSSBUG2
8299
8300         Large cumulative patch for pic16 port and libraries.
8301         * device/include/pic16/sdcc-lib.h,
8302         * device/include/pic16/stdarg.h,
8303         * device/include/asm/pic16/features.h,
8304         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
8305         * device/include/pic16/float.h: changes reentrant keyword with
8306         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
8307         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
8308         updated target build-libraries to include objects from gptr,
8309         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
8310         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
8311         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
8312         all function headings,
8313         * src/SDCCmain.c: added global parameter userIncDirsSet,
8314         * (parseCmdLine): when option -I is encountered add directory to
8315         userIncDirsSet too,
8316         * src/version.awk: added space between control and long,
8317         * src/pic16/NOTES: added some notes for the port,
8318         * src/pic16/gen.c: added prototype for mov2fp function,
8319         * (fReturnpic16[]): properly named return value registers,
8320         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
8321         * (aopForSym): added code to handle symbols with onStack flag set,
8322         symbols onStack are allocated PTRSIZE bytes,
8323         * (aopFreeAsmop): handles special case where asmops are stack objects,
8324         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
8325         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
8326         added argument lock to trace flaws in allocating temporary registers
8327         when developing port,
8328         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
8329         * (pic16_popRegFromString): reenabled allocating a direct register
8330         from string,
8331         * (assignResultValue): various beautifications,
8332         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
8333         referenced function argument,
8334         * (genIpush): reenabled to allow stacked arguments, handles only
8335         ic->parmPush iCodes,
8336         * (genCall, genPcall): major changes to allow for variable argument
8337         functions, fixed a bug with falsely restoring stack pointer after
8338         returning from call,
8339         * (genFunction): pending code for critical function,
8340         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
8341         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
8342         * (genNearPointerGet): fixed bug with indirect reading, was always
8343         reading from INDF0
8344         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
8345         pointers,
8346         * (genAddrOf): rewrote code to take address of a stacked function parameter
8347         * (genCast): fixed casting to generic pointer type,
8348         * src/pic16/gen.h: added AOP_STA,
8349         * (struct asmop): added field stk,
8350         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
8351         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
8352         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
8353         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
8354         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
8355         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
8356         generic pointers,
8357         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
8358         and library paths,
8359         * (pic16_port structure): generic pointer size is set to 3,
8360         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
8361         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
8362         compiler warning,
8363         * src/pic16/ralloc.c (allocReg): prevent allocating register when
8364         operand is an iTemp,
8365
8366 2004-09-24 Martin Helmling <mh AT octo-soft.de>
8367
8368         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
8369         * debugger/mcs51/simi.c: addapt new syntax of s51
8370
8371 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
8372
8373         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
8374         * src/pic16/pcode.c: commented out some calls to free() in order to
8375         fix bug #989576,
8376
8377 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8378
8379         * src/SDCCicode.h,
8380         * src/SDCCicode.c (isiCodeInFunctionCall),
8381         * src/avr/ralloc.c (selectSpil),
8382         * src/pic/ralloc.c (selectSpil),
8383         * src/pic16/ralloc.c (selectSpil),
8384         * src/ds390/ralloc.c (selectSpil),
8385         * src/hc08/ralloc.c (selectSpil),
8386         * src/xa51/ralloc.c (selectSpil),
8387         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
8388         stack in the middle of a function call sequence (fixes bug #1020268)
8389         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
8390         costs associated with the minimum switch case.
8391
8392 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8393
8394         * src/SDCC.lex: fixed bug #1030549
8395
8396 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8397
8398         * src/SDCCcse.h (struct cseDef),
8399         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
8400         over a function call if the CSE is derived from a symbol whose
8401         address has been taken (fixes bug #1029883)
8402         * support/regression/tests/bug-1029883: a new regression test for
8403         this bug
8404
8405 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8406
8407         * src/hc08/gen.c (emitinline): fixed bug #1029778
8408         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
8409         to a cast object is no longer a syntax error ("fixes" bug #1030006,
8410         and starts toward RFE #905167)
8411
8412 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
8413
8414         * src/pic16/gen.c (mov2f): New function to move an operand to
8415         another without considering if it is a literal or a register,
8416         * (pic16_sameRegs): don't check if they are both AOP_REG,
8417         * (AccRsh): removed andmask=0 lines,
8418         * (genLeftShift): duplicated to be improved in future versions,
8419         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
8420         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
8421         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
8422         * (pic16initMnemonics): added initialization for POC_INFSNZW,
8423         * (insertBankSwitch): fixed inserting banksel directives algorithm
8424         for instructions that follow a skip instruction, this fixes a report
8425         for broken subtraction code generation,
8426         * src/pic16/ralloc.c (deassignLRs): do not free register if current
8427         iCode is a left op, just in case result and right share the same
8428         registers
8429
8430 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8431
8432         * src/hc08/main.c,
8433         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
8434         preservation of HX
8435         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
8436         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
8437         on 2004-09-12; it was buggy
8438
8439 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
8440
8441         * src/SDCCsymt.h: removed RESULT_CHECK
8442         * src/SDCCast.c,
8443         * src/SDCCglue.c,
8444         * src/SDCCval.c,
8445         * src/pic/glue.c,
8446         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
8447
8448 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
8449
8450         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
8451         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
8452         configuration values no more rejected by compiler, they are assigned
8453         to configuration registers with a warning message instead,
8454         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
8455         the for-loop so last conf register is emitted too,
8456         * (_pic16_initPaths): link library libsdcc.lib by default,
8457         * (_hasNativeMulFor): modified test for multiplication according to
8458         Raphael Neider's remarks. Integer multiplication is also done with
8459         support functions,
8460         * device/include/pic16/pic18fregs.h: corrected type error in while
8461         testing and including 18f6720 header file
8462
8463 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
8464
8465         * src/pic16/device.h (pic16_options): removed field use_crt,
8466         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
8467         until an optimization to handle single bits is added,
8468         * (pic16_loadFSR0): moved before genUnpackBits,
8469         * (genAnd): some white lines removed,
8470         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
8471         leave_reset flags in pic16_options when using crt modules,
8472
8473 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
8474
8475         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
8476           for bugs 898889 & 979599. Also used some safer print instructions.
8477
8478 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
8479
8480         * src/pic16/device.h (pic16_options_t): added field use_crt,
8481         crt_name, no_crt,
8482         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
8483         catch a probable future bug,
8484         * src/pic16/gen.c: aopIdx function commented out,
8485         * (genAssign): commented out old code which used aopIdx,
8486         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
8487         code, added if conditionals to take into account the --use-crt
8488         command line options,
8489         * src/pic16/main.c (pic16_optionsTable): added new command line
8490         options, --use-crt= and --no-crt,
8491         * (_pic16_linkEdit): now the proper crt object is added in the
8492         linker command line except than when --no-crt is specified,
8493         * src/pic16/pcode.c,
8494         * src/pic16/pcode.h: added some structures and functions for a new
8495         optimization scheme to compansate for instruction overhead between
8496         same iCodes, this scheme is currently under development and is not
8497         working in any way,
8498         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
8499         to && operator,
8500         * device/lib/pic16/startup/crt0i.c,
8501         * device/lib/pic16/startup/crt0iz.c: added global char variable
8502         __uflags to force the generation of an idata section
8503
8504 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
8505
8506         * doc/Makefile,
8507         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
8508         * doc/sdccman.lyx: updated sdcc version to 2.4.4
8509
8510 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8511
8512         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
8513         Frieder) and clarified the default code optimization mode
8514
8515 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8516
8517         * src/SDCC.lex (doPragma, process_pragma),
8518         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
8519         "opt_code_size", and "opt_code_balanced"
8520         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
8521         regrouped options by category, added support for category headers
8522         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
8523         and "--opt-code-size"
8524         * doc/sdccman.lyx: documented these new options and pragmas
8525         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
8526         preference into account
8527
8528 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8529
8530         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
8531           geniCodePreDec): Fixed bug 904237 by generating a warning
8532         * src/SDCCerr.h,
8533         * src/SDCCerr.c: added warning W_SIZEOF_VOID
8534
8535 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
8536
8537         * src/pic/device.c : When no max ram set validate full memory range.
8538         * src/pic/pcode.c,
8539         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
8540
8541 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8542
8543         * device/lib/_gptrget.c,
8544         * device/lib/_gptrput.c: updated comment
8545         * device/lib/calloc.c,
8546         * device/lib/free.c,
8547         * device/lib/malloc.c,
8548         * device/lib/realloc.c: added LGPL, made them reentrant-safe
8549         * src/SDCCcse.c (cseBBlock),
8550         * src/SDCCicode.c (printOperand, geniCodeArray),
8551         * src/SDCCicode.h (struct operand): fixed bug 868103
8552         * support/regression/tests/bug-868103.c: added
8553         * src/SDCCast.c (searchLitOp),
8554         * src/SDCCcse.h (struct cseDef),
8555         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
8556         * src/SDCCicode.h (struct operand),
8557         * src/SDCCsymt.h (struct sym_link),
8558         * src/avr/gen.c (hasInc),
8559         * src/ds390/gen.c (hasInc),
8560         * src/hc08/gen.c (genPlusIncr, hasInc),
8561         * src/mcs51/gen.c (hasInc),
8562         * src/pic16/glue.c (pic16_printIvalChar),
8563         * src/pic16/ralloc.c (regWithIdx),
8564         * src/xa51/gen.c (hasInc) : removed warnings
8565         * src/SDCCast.c (createBlock): added comment ???
8566         * src/hc08/ralloc.c: updated comments
8567
8568 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8569
8570         * doc/sdccman.lyx: updated section on switch statements, added
8571         section about semaphore locking
8572         * doc/Makefile: added option -info for latex2html
8573         * device/lib/_gptrget.c,
8574         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
8575
8576 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8577
8578         * src/pic/device.h,
8579         * src/pic/device.c,
8580         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
8581          maxram is less than 0x100.
8582
8583 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8584
8585         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
8586
8587 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8588
8589         * src/port.h,
8590         * src/mcs51/main.c,
8591         * src/ds390/main.c,
8592         * src/z80/main.c,
8593         * src/hc08/main.c,
8594         * src/pic/main.c,
8595         * src/pic16/main.c,
8596         * src/avr/main.c,
8597         * src/xa51/main.c
8598         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
8599         a jump table is the best form for a switch statement, including
8600         automatic insertion of missing cases to make the case range
8601         continuous. Developed in collaboration with Frieder Ferlemann.
8602
8603 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8604
8605         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
8606         accumulator result if it needs sign extension
8607
8608 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8609
8610         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
8611
8612 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8613
8614         * device/lib/gbz80/printf.c,
8615         * device/lib/z80/printf.c: removed define for NULL
8616
8617 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8618
8619         * as/xa51/xa_link.c,
8620         * device/examples/ds390/ow390/ad26.c,
8621         * device/examples/ds390/ow390/cnt1d.c,
8622         * device/examples/ds390/ow390/counter.c,
8623         * device/examples/ds390/ow390/ds2480.h,
8624         * device/examples/ds390/ow390/ds2480ut.c,
8625         * device/examples/ds390/ow390/findtype.c,
8626         * device/examples/ds390/ow390/gethumd.c,
8627         * device/examples/ds390/ow390/owllu.c,
8628         * device/examples/ds390/ow390/ownetu.c,
8629         * device/examples/ds390/ow390/swt12.c,
8630         * device/examples/ds390/ow390/swtloop.c,
8631         * device/examples/ds390/ow390/temp.c,
8632         * device/examples/ds390/ow390/temp10.c,
8633         * device/examples/ds390/ow390/thermo21.c,
8634         * device/examples/ds390/ow390/tinilnk.c,
8635         * device/examples/ds390/ow390/tstfind.c,
8636         * device/examples/serialcomm/windows/serial.cpp,
8637         * device/examples/serialcomm/windows/test_serialcomm.cpp,
8638         * device/include/reg51.h: fixed line endings for cvs
8639
8640 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8641
8642         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
8643         packRegsForAccUse, packRegisters): new accumulator register
8644         packing algorithm
8645         * support/regression/ports/hc08/support.c (_putchar): suppress
8646         warning of unused variable
8647         * src/SDCCicode.c: added SWAP entry to codeTable
8648
8649 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
8650
8651         * device/lib/sprintf.c: forgot to add this file before previous commit
8652
8653 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
8654
8655         * src/pic16/gen.c (genPackBits): added operand right in function
8656         parameters, load result directly if p_type is POINTER (that is
8657         called by genNearPointerSet)
8658         * (genUnPackBits): added operand left in function parameters,
8659         * (genNearPointerGet, genNearPointerSet): prevent the loading of
8660         FSR0 if accessing bitfields,
8661
8662 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
8663
8664         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
8665           _print_format; updated printf, sprintf, vsprintf
8666         * device/include/asm/default/features.h: corrected comment/define
8667         * device/lib/Makefile.in: added sprintf.c
8668         * device/lib/libsdcc.lib: added sprintf module
8669         * device/lib/printf_large.c,
8670         * device/lib/vprintf.c,
8671         * device/lib/sprintf.c: totally refactored printf_large and vprintf
8672           into these 3 files
8673         * support/regression/Makefile: changed ALL_PORTS into a usefull default
8674         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
8675         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
8676           hc08 test
8677         * support/regression/tests/zeropad.c: define idata as data for hc08
8678
8679 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8680
8681         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8682         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8683         labels are referenced at least once (even if a reference is not found)
8684         * src/hc08/gen.c (emitcode): set isComment flag for comments
8685         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8686         loads), rules 6a..6b (optimize jumps to return)
8687
8688 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8689
8690         * device/lib/acosf.c (acosf),
8691         * device/lib/asinf.c (asinf),
8692         * device/lib/atanf.c (atanf),
8693         * device/lib/ceilf.c (ceilf),
8694         * device/lib/cosf.c (cosf),
8695         * device/lib/coshf.c (coshf),
8696         * device/lib/cotf.c (cotf),
8697         * device/lib/fabsf.c (fabsf),
8698         * device/lib/floorf.c (floorf),
8699         * device/lib/log10f.c (log10f),
8700         * device/lib/logf.c (logf),
8701         * device/lib/sinf.c (sinf),
8702         * device/lib/sinhf.c (sinhf),
8703         * device/lib/sqrtf.c (sqrtf),
8704         * device/lib/tanf.c (tanf),
8705         * device/lib/tanhf.c (tanhf),
8706         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8707         replaced all instances of "reentrant" in the library functions
8708         defined in math.h with this macro.
8709         * support/regression/tests/float_trans.c: reenabled test for hc08
8710
8711 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8712
8713         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8714         erroneously deleted
8715
8716 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8717
8718         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8719         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8720         multi-byte volatile operands are used
8721         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8722         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8723         initialization to area GSINIT0 so that it would always precede
8724         any static initializers in GSINIT
8725         * support/regression/tests/zeropad.c: fixed idata define for hc08
8726         * support/regression/tests/bug-927659.c,
8727         * support/regression/tests/float_trans.c: disabled tests for hc08
8728         pending missing library routines
8729         * .version: increased version number to 2.4.4 - hc08 port now passes
8730         regression tests
8731
8732
8733 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8734
8735         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8736         * Makefile.common.in,
8737         * as/Makefile,
8738         * as/hc08/Makefile.in,
8739         * as/mcs51/Makefile.in,
8740         * as/z80/Makefile.in,
8741         * debugger/mcs51/Makefile.in,
8742         * device/include/Makefile.in,
8743         * device/lib/Makefile.in,
8744         * doc/Makefile,
8745         * link/Makefile,
8746         * link/z80/Makefile.in,
8747         * packihx/Makefile.in,
8748         * sim/ucsim/main_in.mk,
8749         * sim/ucsim/avr.src/Makefile.in,
8750         * sim/ucsim/doc/Makefile.in,
8751         * sim/ucsim/gui.src/serio.src/Makefile.in,
8752         * sim/ucsim/hc08.src/Makefile.in,
8753         * sim/ucsim/s51.src/Makefile.in,
8754         * sim/ucsim/xa.src/Makefile.in,
8755         * sim/ucsim/z80.src/Makefile.in,
8756         * src/Makefile.in,
8757         * support/cpp2/Makefile.in,
8758         * support/librarian/Makefile,
8759         * support/makebin/Makefile: added DESTDIR to the install path proposed
8760         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8761         * doc/sdccman.lyx: added DESTDIR documentation
8762
8763 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8764
8765         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8766         instruction for interrupt handlers, use fast returns when returning
8767         from high priority interrupts
8768
8769 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8770
8771         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8772         code generation
8773         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8774         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8775         bugs, ported much of Bernhard's code from mcs51
8776         * src/mcs51/gen.c (genSend),
8777         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8778         than one when calling a reentrant function
8779         * device/lib/_mullong.c: defined an alternate struct layout for big
8780         endian ports (hc08)
8781
8782 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8783
8784         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8785         test
8786
8787 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8788
8789         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8790         are sane and complete before asking the port its prefered parameter
8791         passing method (fixes bug #1017633)
8792         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8793         and _ret3
8794
8795 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8796
8797         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8798         problem in bitfields >= 8 bits.
8799
8800 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8801
8802         * src/SDCCsymt.c: undid changes that were not meant to be committed
8803
8804 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8805
8806         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8807
8808 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8809
8810         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8811           copied and wrong bit got inverted
8812
8813 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8814
8815         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8816         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8817         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8818         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8819         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8820         assignments to bitfields at known addresses
8821         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8822         reads from bitfields at known addresses
8823         * src/hc08/ralloc.c (packRegisters),
8824         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8825         genhc08Code): optimize pointer get values used as conditionals
8826         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8827         and branch
8828
8829 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8830
8831         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8832         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8833         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8834         as conditionals
8835
8836 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8837
8838         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8839
8840 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8841
8842         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8843         related problems
8844
8845 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8846
8847         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8848
8849 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8850
8851         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8852         mcs51 port
8853
8854 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8855
8856         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8857
8858 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8859
8860         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8861         cases use more compact code.
8862
8863 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8864
8865         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8866
8867 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8868
8869         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8870
8871 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8872
8873         * src/SDCCsymt.h,
8874         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8875         parameter of changePointer() from symbol* to sym_link*
8876         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8877         * src/SDCCsymt.c (compareType): void* type is castable to other
8878         pointers, but not necesarily an exact match.
8879         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8880         is no longer blindly treated as an exact match.
8881         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8882
8883 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8884
8885         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8886
8887 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8888
8889         * src/pic/gen.c,
8890         * src/pic/pcode.c,
8891         * src/pic/ralloc.h,
8892         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8893
8894 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8895
8896         * src/pic/device.c,
8897         * src/pic/device.h,
8898         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8899
8900 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8901
8902         * src/mcs51/gen.c (emitcode): fixed bug #992819
8903
8904 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8905
8906         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8907           there's no need to make it worse
8908
8909 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8910
8911         * src/mcs51/ralloc.c (deassignLR),
8912         * src/ds390/ralloc.c (deassignLR),
8913         * src/hc08/ralloc.c (deassignLR),
8914         * src/z80/ralloc.c (deassignLR),
8915         * src/pic/ralloc.c (deassignLR),
8916         * src/pic16/ralloc.c (deassignLR),
8917         * src/avr/ralloc.c (deassignLR),
8918         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8919         rlivePoint): fixed another part of bug #971834
8920
8921 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8922
8923         * src/z80/main.c: enabled "critical" keyword
8924         * src/z80/mappings.i,
8925         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8926         functions (fixes bug #979646)
8927         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8928
8929 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8930
8931         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8932           such as c:\mydir.
8933
8934 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8935
8936         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8937           doesn't disable too much optimizations
8938
8939 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8940
8941         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8942
8943 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8944
8945         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8946
8947 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8948
8949         * src/pic/gen.c tidied up tabs
8950         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8951         * src/pic/main.c tidied up tabs
8952         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8953         * src/pic/pcoderegs.c tidied up tabs
8954         * src/pic/ralloc.c tidied up tabs
8955
8956 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8957
8958         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8959         to S_FIXED for pic16 port and when symbol is not in level 0,
8960         allocate for S_REGISTER storage class and pic16 port, too,
8961         * src/pic16/device.h: prototype for checkSym,
8962         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8963         * (pic16_assignConfigWordValue): test the value and the mask to
8964         validate that the value is suitable for the configuration word,
8965         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8966         collect extern declared symbols, don't emit symbol twice, check
8967         first if symbol is in publics set first,
8968         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8969         * added command line '--fstack' which enables an experimental
8970         feature for stack access, too buggy to be used yet...
8971         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8972         * (pic16_allocDirReg): when register has storage class S_REGISTER
8973         allocate in pic16_dynAccessRegs,
8974         * device/include/pic16/pic18f????.h: modified configuration word
8975         naming convention, words started as CONFIG0H but should be CONFIG1H
8976
8977 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8978
8979         * device/include/mcs51reg.h: fixed bug 970993
8980
8981 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8982
8983         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8984         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8985         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8986         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8987         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8988         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8989           error/warning numbers,
8990           added function setWarningDisabled()
8991         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8992         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8993           _memcmp.c _memmove.c calloc.c realloc.c free.c
8994         * support/regression/tests/malloc.c: added tests for new functionality
8995         * support/regression/tests/zeropad.c: added tests for truncated initializers
8996           and initialized char arrays starting with '\x0'
8997         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8998
8999 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
9000
9001         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
9002
9003 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9004
9005         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
9006         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
9007         peephole 177.e. Thanks to anonymous
9008
9009 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
9010
9011         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
9012         function isn't used in the source but referenced as a
9013         variable initializer then declare it as extern in .asm file
9014
9015 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
9016
9017         * .version: increased version number to 2.4.3
9018
9019         Adding version extension according to ChangeLog CVS revision
9020         * src/Makefile.in (target all): added dependency 'version.h'
9021         * (rule version.h): added rule to create version.h from ChangeLog,
9022         * (rule dep): added dependency version.h,
9023         * src/version.awk: AWK script to create version.h
9024         * src/SDCCdwarf2.c (dwWriteModule),
9025         * src/SDCCglue.c (initialComments),
9026         * src/SDCCmain.c (printVersionInfo): modified to write after
9027         version string the version extension number,
9028         * src/SDCCutil.c: included "version.h"
9029         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
9030         number,
9031         * src/SDCCutil.h: added prototype for getBuildNumber
9032
9033         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
9034         includeDirsSet, too,
9035         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
9036         const char [] is found in function prototype...
9037
9038         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
9039         moving to WREG with source is already in WREG,
9040         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
9041         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
9042         * (aopForSym): stack'ed symbols are partially supported, added
9043         if-clause to support symbols in FARSPACE,
9044         * (sameRegs): added test for AOP_ACC to see if registers are same,
9045         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
9046         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
9047         * (pic16_popRegFromString): will not allocate a new register if it
9048         doesn't find one by name, bug may have introduced...
9049         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
9050         * (genIpush): revived to use pic16 port's stack,
9051         * (genAddrOf): added incomplete case for stack'ed operand,
9052         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
9053         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
9054         can handle multibyte operands,
9055         * src/pic16/glue.c (pic16_printIval*): some debug info added,
9056         * (pic16initialComments): added message for MPLAB compatibility
9057         mode enabled,
9058         * src/pic16/main.h: prototype for pic16_mplab_comp,
9059         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
9060         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
9061         * (_pic16_linkEdit): NEW, handles link stage, transferred here
9062         because of increased complexity of procedure,
9063         * (_process_pragma): stack pragma changed to format 'stack pos len',
9064         emit symbol '_stack_end' to conform with gplink,
9065         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
9066         to search for register,
9067         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
9068         PO_GPR_REGISTER,
9069         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
9070         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
9071         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9072         case for PO_GPR_REGISTER,
9073         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
9074         dies, the new era is ahead !...
9075         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
9076         pic16_dynInternalRegs,
9077         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
9078         * (pic16_allocDirReg): minor optimizations and bug fixes,
9079         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
9080
9081         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
9082         load stack and frame pointer with address of 'stack_end' symbol
9083
9084 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
9085
9086         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
9087         without source code but only variable initializers
9088
9089 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
9090
9091         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
9092         external are not declared as extern to reduce overhead while linking
9093
9094 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
9095
9096         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
9097
9098 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
9099
9100         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
9101           Yee Keat for the patch
9102         * src/SDCCast.c (decorateType): fixed bug #979599
9103         * src/ds390/gen.h: removed local fReturnSizeDS390
9104         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
9105         * src/ds390/gen.c (genAnd, genOr, genXor),
9106         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
9107
9108 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
9109
9110         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
9111         add relFilesSet to $3, manipulate $2 to handle linking of object
9112         files without source files in command line,
9113         * device/include/pic16 (all headers): added ID location macros,
9114         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
9115         entries for ID location bytes,
9116         * (pic16_assignIdByteValue): NEW,
9117         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
9118         added field dumpcalltree to pic16_options_t,
9119         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
9120         is used instead of pic16_Gstack_base_addr, check if (ifx) before
9121         emitting rFalseIfx label after check_carry label,
9122         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
9123         pic16_emitDIRegs), NEW
9124         * (pic16glue): dump .calltree file when option --calltree found,
9125         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
9126         * (_pic16_genAssemblerPreamble): emit ID locations after
9127         configuration registers,
9128         * (pic16_linkCmd): modifications of the link command,
9129         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
9130         * (pic16_pCodeInitRegisters): don't init stack registers,
9131         * (pic16_findPrevInstruction): fixed bug,
9132         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
9133         bug with immediate registers,
9134         * (buildCallTree): traces stack push and pop,
9135         * (pct2): dump also stack usage for each function,
9136         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
9137         * (pic16_allocDirReg): various modifications,
9138         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
9139         fixed to 1,
9140
9141 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
9142
9143         * src/pic16/pcode.c: removed buggy double colon
9144
9145 2004-07-01 Borut Razem <borut.razem AT siol.net>
9146
9147         * support/scripts/sdcc.nsi: added include/pic16 to setup
9148
9149 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
9150
9151         * device/lib/Makefile.in: fixed bug in target objects-pic16,
9152         * device/lib/pic16/Makefile: prefixed with dash (-) command under
9153         target 'clean',
9154         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
9155         specific command line arguments. Also added sample lkr script
9156         for placing a variable at a specific memory bank.
9157         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
9158         at a specific memory bank,
9159         * (pic16_dump_isection): fixed bug which caused string literals to
9160         be omitted when dumping idata section,
9161         * (pic16_groupRegistersInSection): added code to handle registers
9162         in specific memory banks,
9163         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
9164         public, all references are renamed too,
9165         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
9166         AOP_DPTR2,
9167         * (pic16_storeForReturn): added case to handle when dest is WREG,
9168         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
9169         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
9170         pic16_rel_udata, check to see if that register is marked as being
9171         a member of a specific memory bank,
9172         * (pic16_printIvalCharPtr): added code to add string literals either
9173         to code or the idata sections,
9174         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
9175         also accept the 'udata' pragma,
9176         * src/pic16/main.h: new structure types sectName and sectSym
9177         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
9178         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
9179         * (pic16_findPrevInstruction): fixed, it returned nothing,
9180         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
9181         instruction combinations,
9182         * (pic16_FixRegisterBanking): heavily reorganised,
9183         * (pic16_AnalyzeBanking): if generating banksel directives is
9184         disabled, then don't call FixRegisterBanking at all,
9185         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
9186         completely removed,
9187         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
9188
9189 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
9190
9191         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
9192         Phuah Yee Keat <yk.phuah AT nestac.com>
9193
9194 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
9195
9196         * src/pic16/glue.c (pic16createInterruptVect): function now emits
9197         correctly the IVT even if it is relocated to some other location
9198
9199 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
9200
9201         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
9202         * device/include/pic16/pic18f2220.h: NEW,
9203         * device/lib/pic16/libdev/pic18f2220.c: NEW,
9204         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
9205         * src/pic16/device.c (struct Pics16): added info for 18f2220,
9206         * src/pic16/device.h (struct pic16_options): added ivt_loc and
9207         nodefaultlibs, ivt_loc is the location of the interrupt vector
9208         table, and nodefaultlibs signs that default libraries should not be
9209         linked in link stage,
9210         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
9211         according to --ivt-loc argument,
9212         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
9213         when pragma stack is found,
9214
9215 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9216
9217         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
9218         256 (range check), 257 (do while), 258.a-f (bit banging
9219         f.e. on 3-wire SPI bus)
9220
9221 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9222
9223         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
9224         variables used exclusively within a loop
9225
9226 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
9227
9228         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
9229
9230 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9231
9232         * src/SDCClrange.c (computeClash): fixed bug #971834
9233
9234 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9235
9236         * src/mcs51/gen.c (genCmp): fixed bug #975903
9237         * src/hc08/gen.c (operandsEqu),
9238         * src/ds390/gen.c (operandsEqu),
9239         * src/z80/gen.c (operandsEqu),
9240         * src/pic/gen.c (operandsEqu),
9241         * src/pic16/gen.c (operandsEqu),
9242         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
9243         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
9244
9245 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9246
9247         * src/SDCCcse.c (cseBBlock): fixed bug #966963
9248
9249 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
9250
9251         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
9252         default case in switch statement,
9253         * glue.c (pic16_initPointer): expr is initialised via decoarteType
9254         to eliminate problem with initialisation of pointers, but problem
9255         still exists,
9256         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
9257         * (emitStaticSegment): removed various lines emitting debug info,
9258         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
9259         added processor registers for utilizing EEPROM,
9260         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
9261         configurable and set 8
9262
9263 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
9264
9265         * .version: increased version number to 2.4.2,
9266
9267         Cumulative patch for pic16 port
9268         * src/pic16/device.c: changed scheme to dump initial values for
9269         variables in idata segment, all print_idata* functions were removed,
9270         now the pic16_printIval* will be called,
9271         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
9272         * _pic16_printPointerType, pic16_printPointerType,
9273         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
9274         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
9275         NEW, similar to the respective functions in SDCCglue.c,
9276         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
9277         way, emitting hex bytes,
9278         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
9279
9280 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9281
9282         * src/avr/ralloc.c (serialRegAssign),
9283         * src/xa51/ralloc.c (serialRegAssign),
9284         * src/pic/ralloc.c (serialRegAssign),
9285         * src/pic16/ralloc.c (serialRegAssign),
9286         * src/hc08/ralloc.c (serialRegAssign),
9287         * src/z80/ralloc.c (serialRegAssign),
9288         * src/ds390/ralloc.c (serialRegAssign),
9289         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
9290
9291 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9292
9293         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
9294         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
9295
9296 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
9297
9298         Cumulative patch for pic16 port:
9299         * src/pic16/device.h (typedef PIC16_device) modified fields for
9300         defining microcontrollers,
9301         * src/pic16/device.c: added new info for all devices in Pics16 array,
9302         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
9303         to be optimised out by the pCode optimiser,
9304         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
9305         specially, bug reported by G.M. Gallant,
9306         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
9307         as force'd so that cannot be optimised out by pCode optimiser,
9308         * src/pic16/pcode.c,
9309         * src/pic16/pcodepeeph.c,
9310         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
9311         they are disabled by default, but can be enabled explicit with
9312         command argument --denable-peeps, for testing,
9313         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
9314         --pomit-ivt in COMPILE_FLAGS
9315
9316 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9317
9318         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
9319           compilation on MSVC
9320
9321 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9322
9323         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
9324
9325 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9326
9327         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
9328         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
9329
9330 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
9331
9332         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
9333         would only assign 0x300001 register.
9334
9335 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
9336
9337         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
9338         in COMPILE_FLAGS. Thanks to G. Gallant for report.
9339
9340 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9341
9342         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
9343         for ds80c400
9344         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
9345         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
9346         added peephole 254 (left shift), 255 (jump table)
9347
9348 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
9349
9350         * device/lib/Makefile.in: removed comment line with model-pic16,
9351         * (target port-specific-objects-pic16): the libraries and objects
9352         are copied to the build directory form the device/lib/pic16/bin
9353         directory
9354
9355         Cumulative patch concerning pic16 port:
9356         * library directory has been re-organized,
9357         * added support for PIC18F1220,
9358         * added headers and library sources for chips 18f1220,18f6520,
9359         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
9360
9361         * configuration registers setting has changed, now each supported
9362         device has a complete description of the registers it uses,
9363         * all initialisations are moved to idata sections, these section
9364         can be absolute or relocatable,
9365         * fixed initialisation of codespace variables,
9366         * fixed warning about PCLATU and gpsim,
9367         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
9368         * (genAssign): use table reads when assigning from variables in codespace,
9369         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
9370         char/int variables placed in codespace,
9371         * (pic16_emitConfigRegs): NEW, emits a list with configuration
9372         registers set in .asm file, no need for --pomit-config-words anymore,
9373         * (pic16glue): some 8051 legacy segments are commented out
9374         (to be removed completely),
9375         * added support for alternative assembler and linker with --asm=
9376         and --link= command line arguments,
9377         * peepholes are disabled automatically in the port, no need to
9378         specify on command line,
9379         * port supports natively char/int/long multiplication, but converts
9380         all divisions to support functions,
9381         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
9382         to the file set in variable $2,
9383         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
9384         strings in ASCII format and not in hex,
9385         * ralloc.c (serialRegAssign): added a triplet of conditional calls
9386         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
9387         allocate proper register if iCodes aren't temporary,
9388
9389 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
9390
9391         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
9392
9393 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
9394
9395         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
9396         is commented out
9397
9398 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9399
9400         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
9401         computed address is reused
9402         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
9403         multi-byte bitfields
9404
9405 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9406
9407         * src/z80/gen.c: (genArrayInit): must check for pointers too
9408
9409 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9410
9411         * support/regression/tests/zeropad.c: never meant to commit the
9412           nestedstruct test: removed, added check for GCC version
9413
9414 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
9415
9416         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
9417         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
9418         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
9419           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
9420           bugs 928906 and 954082 half-empty initializers
9421         * src/SDCCsymt.h,
9422         * src/SDCCsymt.c (getAllocSize): added for above fix
9423         * src/z80/gen.c (genArrayInit): fixed bug 741044
9424         * support/regression/tests/zeropad.c: added tests
9425
9426 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
9427
9428         * src/pic16/device.c (pic16_dump_section): corrected bug which
9429         caused some symbols of the libraries to be misplaced
9430
9431 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9432
9433         * src/pic16/glue.c,
9434         * src/pic16/ralloc.h,
9435         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
9436         to fix conflict with pic port
9437
9438 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9439
9440         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
9441         externs configuration variables,
9442         * src/pic16/ralloc.h,
9443         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
9444         prototype in header, commented out some debug messages
9445
9446 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
9447
9448         * src/pic16/glue.c,
9449         * src/pic16/main.c,
9450         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
9451         for gpasm COFF object generation. Thanks to D. Hawkins for
9452         his patch info
9453
9454 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9455
9456         * src/ds390/main.c,
9457         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
9458         Brock for spotting this)
9459         * src/ds390/gen.c (genEndFunction),
9460         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
9461         interrupt handler and critical. Disable push/pop optimizations when
9462         peephole optimizations disabled.
9463
9464 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9465
9466         Updated pic16 library sources and headers.
9467         * device/lib/pic16/pic18f*/ ,
9468         * device/include/pic16/*.h: modified to handle structured SFR
9469         definitions
9470
9471 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9472
9473         * src/port.h (PORT structure): added hook initPaths, now each
9474         port can declare its own default search paths,
9475         which can been seen with the --print-search-dirs option,
9476         see pic16 port for example,
9477         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
9478         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
9479         * (doPrintSearchDirs): NEW, replaces in a central manner the
9480         printing of search dirs which was split in set*Paths functions,
9481         * (main): added call to port->initPaths and doPrintSearchDirs,
9482         * src/avr/main.c,
9483         * src/ds390/main.c,
9484         * src/hc08/main.c,
9485         * src/izt/i186.c,
9486         * src/izt/tlcs900h.c,
9487         * src/mcs51/main.c,
9488         * src/pic/main.c,
9489         * src/pic16/main.c: modified port structures to reflect addition of
9490         initPaths hook,
9491
9492         * src/pic16/device.c (regCompare): registers are finally sorted by name,
9493         * (pic16_dump_section): for registers in same address reserve memory once,
9494         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
9495         to no_banksel,
9496         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
9497         result is greater in size than right or left,
9498         * (pic16_genUMult8X8_8): there are some cases where the result can
9499         be 16 bits size, so handle these,
9500         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
9501         * (pic16_outBitC): modified to emit pcodes,
9502         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
9503         or not,
9504         * (genDivOneByte): implemented algorithm to divide 8-bits,
9505         * (genCmp): uncommented goto, but issues still exist,
9506         * (genAnd): fixed a bug with variables >8bits,
9507         * (genPackBits): optimization added that uses BCF/BSF to change a
9508         single bit,
9509         * (genAssign): fixed bug when assigning floating point literals,
9510         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
9511         __sdcc_gsinit_startup label,
9512         * src/pic16/main.c (_pic16_init): removed search directory
9513         initialisations,
9514         * (_pic16_initPaths): NEW, used to initialise search directories,
9515         * (_hasNativeMulFor): support functions for all except char/int
9516         multiplication, and char division,
9517         * (PIC16_port struct): modified entry for native mul support,
9518         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
9519         no_banksel option,
9520         * (buildCallTree): call to register_usage is ifdef'ed out,
9521
9522 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9523
9524         * device/include/string.h: applied Stas Sergeev's patch to make this
9525         header file compatible with the preprocessor -Wundef option
9526         * src/SDCCmain.c (main): abort compilation if preprocessor reports
9527         failure (fixes bug #941458)
9528
9529 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9530
9531         * src/SDCCopt.c (killDeadCode): fixed bug #907733
9532         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
9533         that the variable, not the function, should be static
9534         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
9535         to be consistent with non-literal case
9536
9537 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9538
9539         * src/SDCCast.c (isConformingBody): fixed bug #949967
9540         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
9541         convilong): fixed bug #952086
9542
9543 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9544
9545         * src/SDCCmem.c (allocVariables): fixed bug #955321
9546
9547 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9548
9549         * src/hc08/main.c (_hc08_genAssemblerEnd),
9550         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
9551         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
9552         completely eliminated the use of a temporary file
9553         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
9554         when more than one file linked
9555         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
9556
9557 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9558
9559         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
9560         which fixes bug #543481
9561         * support/regression/tests/bug-751703.c: fixed comments left from a
9562         cut and paste error
9563         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
9564         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
9565         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
9566         scopes
9567         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
9568         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
9569         are now changed to underscores in moduleName
9570
9571 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9572
9573         * as/mcs51/lkmem.c: better fix for bug #954173
9574
9575 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
9576         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9577
9578         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
9579         * device/include/c8051f000.h,
9580         * device/include/c8051f120.h,
9581         * device/include/c8051f300.h,
9582         * device/include/c8051f310.h,
9583         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
9584         PWM16) and detab'ed
9585
9586 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9587
9588         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
9589         and mailing lists, doc'ed --no-peep-comments, removed reference
9590         to knoppix (newest version has no LyX/LaTeX), other minor changes
9591         * src/SDCCglue.c (glue): save 2 bytes stack space with
9592         option --main-return. The ljmp could probably be avoided too
9593
9594 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9595
9596         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
9597
9598 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9599
9600         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
9601         * src/SDCCopt.c (isLocalWithoutDef),
9602         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
9603         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
9604         (credit to Maarten Brock for patch #949363, on which this is based)
9605         * support/regression/tests/bug-751703.c: some test cases of extern used
9606         within inner scopes.
9607
9608 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9609
9610         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
9611         SPEC_STRUCT
9612         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
9613         struct definitions
9614         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
9615         dwWriteLabel): fix to create valid debugger symbols even when
9616         the module name has non-alphanumeric symbols in it
9617         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
9618         when a variable's allocation has been optimized away
9619
9620
9621 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9622
9623         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
9624         * src/hc08/main.c,
9625         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
9626         * src/mcs51/main.c,
9627         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
9628         * src/ds390/main.c,
9629         * src/z80/gen.c (z80_emitDebuggerSymbol),
9630         * src/z80/main.c,
9631         * src/pic/gen.c (pic14_emitDebuggerSymbol),
9632         * src/pic/main.c,
9633         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
9634         * src/pic16/main.c,
9635         * src/avr/gen.c (avr_emitDebuggerSymbol),
9636         * src/avr/main.c,
9637         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
9638         * src/xa51/main.c,
9639         * src/SDCCdebug.c (emitDebuggerSymbol),
9640         * src/SDCCdebug.h,
9641         * src/port.h: added a debugger struct to the port struct. Added a
9642         callback for defining debugger symbols
9643
9644         * src/SDCCast.c (createLabel),
9645         * src/SDCC.y (labeled_statement): mark all compiler generated labels
9646         with isitmp = 1
9647         * src/SDCCicode.h,
9648         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
9649         iCode back to the ast for the function
9650
9651         * src/hc08/ralloc.c (hc08_assignRegisters),
9652         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
9653         unneeded fields from the regs struct.
9654         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
9655         pushReg() & pullReg() functions instead of emitcode()
9656
9657         * src/hc08/gen.c (genLabel, genhc08Code),
9658         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
9659
9660         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
9661         debugger hooks
9662
9663         * src/hc08/gen.c (genEndFunction, genhc08Code),
9664         * src/hc08/gen.h,
9665         * src/mcs51/gen.c (genEndFunction, gen51Code),
9666         * src/mcs51/gen.h,
9667         * src/ds390/gen.c (genEndFunction, gen390Code),
9668         * src/ds390/gen.h,
9669         * src/z80/gen.c (genEndFunction, genZ80Code),
9670         * src/z80/gen.h,
9671         * src/z80/z80.h,
9672         * src/pic/gen.c (genEndFunction, genpic14Code),
9673         * src/pic/gen.h,
9674         * src/pic16/gen.c (genEndFunction, genpic16Code),
9675         * src/pic16/gen.h,
9676         * src/avr/gen.c (genEndFunction, genAVRCode),
9677         * src/avr/gen.h,
9678         * src/xa51/gen.c (genEndFunction, genXA51Code),
9679         * src/xa51/gen.h,
9680         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9681         specific code to cdbFile.c and out of the backend code generators
9682
9683         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9684         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9685         starting address is now 0
9686
9687         * as/hc08/asm.h,
9688         * as/hc08/m08pst.c,
9689         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9690         assembler directive for DWARF support
9691         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9692
9693         * src/src.dsp,
9694         * src/Makefile.in,
9695         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9696
9697 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9698
9699         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9700         and inappropriate peephole optimization in jump tables
9701
9702 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9703
9704         * as/hc08/m08pst.c,
9705         * src/SDCCglue.c: sdccopt works for the hc08 port now
9706
9707 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9708
9709         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9710
9711 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9712
9713         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9714
9715 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9716
9717         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9718         rules
9719         * src/SDCCmain.c,
9720         * src/SDCCglobl.h,
9721         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9722         comments from the peephole optimizer replacement rules
9723         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9724         symbols
9725         * src/SDCCcse.c (updateSpillLocation),
9726         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9727         equivalents
9728         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9729         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9730         objects far pointers
9731
9732 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9733
9734         * src/SDCCsymt.h: a missing part of my last change
9735         * src/pic/ralloc.c (regTypeNum),
9736         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9737
9738 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9739
9740         * src/SDCCicode.h,
9741         * src/SDCCicode.c (aggrToPtrDclType),
9742         * src/SDCCptropt.h,
9743         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9744         ptrPseudoSymConvert),
9745         * src/pic/ralloc.c (regTypeNum),
9746         * src/pic16/ralloc.c (regTypeNum),
9747         * src/hc08/ralloc.c (regTypeNum),
9748         * src/ds390/ralloc.c (regTypeNum),
9749         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9750         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9751
9752 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9753
9754         * link/z80/lkmain.c (afile),
9755         * as/hc08/lkmain.c (afile),
9756         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9757         prevent a pointer problem when a filename has no directory and
9758         no extension specified.
9759
9760 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9761
9762         * link/z80/lkmain.c (afile): allow periods in directory names
9763         * link/z80/lkmain.c (afile),
9764         * as/mcs51/lkmain.c (afile),
9765         * as/hc08/lkmain.c (afile): allow linker script file to have an
9766         extension other than ".lnk"
9767         * link/z80/lklex.c (getfid),
9768         * link/z80/lkmain.c (parse),
9769         * as/mcs51/lklex.c (getfid),
9770         * as/mcs51/lkmain.c (parse),
9771         * as/hc08/lklex.c (getfid),
9772         * as/hc08/lkmain.c (parse): Support comments in the linker script
9773         file on lines by themselves and after filenames
9774
9775 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9776
9777         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9778
9779 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9780
9781         * src/z80/peeph-z80.def: removed some peephole rules that don't
9782         work with multibyte arithmetic (fixed bug #937126)
9783         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9784         to registers and not global variables
9785         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9786         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9787         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9788         checking for assignments not internally generated (fixed bug #931895)
9789         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9790         structure member (fixed bug #930072)
9791
9792 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9793
9794         * src/SDCCmain.c (linkEdit),
9795         * src/hc08/main.c (_hc08_parseOptions),
9796         * as/hc08/Makefile.in,
9797         * as/hc08/aslink.h,
9798         * as/hc08/asm.h,
9799         * as/hc08/m08pst.c,
9800         * as/hc08/lkrloc.c (relr, rele),
9801         * as/hc08/lkarea.c (lnkarea)
9802         * as/hc08/lkmain.c (afile, parse),
9803         * as/hc08/lkelf.c: support for ELF output
9804         * as/hc08/lks19.c (s19),
9805         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9806
9807 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9808
9809         * as/mcs51/lkihx.c: Fixed bug #899105.
9810
9811 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9812
9813         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9814         .dsp files from Unix to DOS.
9815
9816 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9817
9818         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9819         function pointers; we have been compliant for several months now.
9820         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9821         change that was accidently commented out
9822         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9823         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9824         bug #922319
9825
9826 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9827
9828         * src/hc08/gen.c: output of all of the internal debugging information
9829         is now controlled by the D() macro; it is disabled by default
9830
9831 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9832
9833         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9834         harder to keep the same registers during a CAST iCode
9835         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9836         long via int can be done in a single cast, if the signedness is
9837         correct.
9838         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9839         putchar() in tinibios.c in ds390's library
9840
9841 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9842
9843         * src/SDCCast.c (decorateType): fixed bug #898889,
9844         cast result of a literal complement too
9845         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9846         fixed check for bitfields
9847
9848 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9849
9850         * src/SDCCicode.c (geniCodeLogic): made it static,
9851         (geniCodeLogicAndOr): added in order to fix bug #905492,
9852         (ast2iCode): fixed bug #905492
9853         * support/regression/tests/bug-905492.c: added
9854         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9855         (processParms): fixed bug #927659: don't copy parms, this will clear
9856         decorated flag
9857         * support/regression/tests/bug-927659.c: added
9858
9859 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9860
9861         * src/SDCCast.c (addCast): don't cast float to char
9862         * device/lib/libsdcc.lib: added _memmove
9863
9864 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9865
9866         * device/lib/large/Makefile: fixed parallel execution by
9867         replacing `make` by `$(MAKE)`
9868
9869 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9870
9871         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9872         offsets (fixes bug #923936)
9873
9874 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9875
9876         * device/lib/small/Makefile: fixed parallel execution by
9877         replacing `make` by `$(MAKE)`
9878
9879 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9880
9881         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9882
9883 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9884
9885         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9886         * src/regression/Makefile: Regression test was not running.
9887
9888 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9889
9890         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9891         complement if possible
9892         * src/SDCCval.c (valComplement),
9893         * src/SDCCicode.c (operandOperation): fixed complement of literal
9894         * support/regression/tests/onebyte.c (testComplement): added
9895
9896 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9897
9898         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9899         return an optimized tree; actually replace actParm with the new tree
9900         * src/SDCCast.h: added some parantheses to remove side effects
9901         * support/regression/tests/bug-920866.c
9902
9903 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9904         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9905         Bit operands were not being handled properly in the pic14 port.
9906         (now src/regression/add.c passes again).
9907
9908 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9909
9910         * src/SDCC.y (labeled_statement): case and default no longer require
9911         a following statement (RFE #893037)
9912
9913 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9914
9915         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9916         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9917         disabled (fixes bug #916294)
9918         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9919         "mov a,acc"; patch provided by Lenny Story
9920         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9921
9922 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9923
9924         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9925         functions
9926         * src/ds390/gen.c (genFunction, genEndFunction),
9927         * src/ds390/ralloc.c (ds390_assignRegisters),
9928         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9929         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9930         pushed if there are parameters passed on the stack. Also, a cleaner
9931         way to decide if r0/r1 should be pushed/popped. (Together they fix
9932         bug #918693)
9933
9934 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9935
9936         * doc/sdccman.lyx,
9937         * device/lib/mcs51/crtpagesfr.asm,
9938         * device/lib/mcs51/crtxinit.asm,
9939         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9940         to avoid confusion with Si Lab's SFRPAGE register.
9941
9942 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9943
9944         * src/SDCCglue.c (emitMaps): allow public sfr variables
9945         * src/SDCCglue.c (initialComments): include compiler build date
9946         with compiler version and put the timestamp of the generated
9947         assembly file on a serperate line to be less confusing.
9948         * src/port.h: added genInitStartup hook
9949         * src/avr/main.c,
9950         * src/ds390/main.c,
9951         * src/hc08/main.c,
9952         * src/pic/main.c,
9953         * src/pic16/main.c,
9954         * src/xa51/main.c,
9955         * src/z80/main.c: genInitStartup initialize as NULL (default to
9956         historical behaviour)
9957         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9958         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9959         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9960         library instead of hard coding it into the compiler.
9961         * support/regression/ports/mcs51-stack-auto/spec.mk,
9962         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9963         * device/lib/mcs51/Makefile,
9964         * device/lib/small/Makefile,
9965         * device/lib/large/Makefile,
9966         * device/lib/mcs51/crtpagesfr.asm,
9967         * device/lib/mcs51/crtstart.asm,
9968         * device/lib/mcs51/crtxclear.asm,
9969         * device/lib/mcs51/crtxinit.asm,
9970         * device/lib/mcs51/crtclear.asm,
9971         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9972         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9973         and into user configurable files.
9974         * device/lib/clean.mk: clean mcs51 directory too
9975         * support/regression/tests/longlit.c: added static to T1 declaration
9976         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9977         accesses in the initialization code
9978
9979 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9980
9981         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9982         OSCTRIMVAL as noted in bug #916008
9983
9984 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9985
9986         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9987         in loops with multiple exits (reported as incorrect registers
9988         used by Martin Helmling in Sdcc-user list)
9989
9990 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9991
9992         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9993         made ds390 register extensions look less like error messages
9994
9995 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9996
9997         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9998         reported by Adam Wozniak in Sdcc-user list
9999
10000 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
10001
10002         * src/SDCCast.c (decorateType): fixed with bug and promotion in
10003         arithmetic optimizations, added debug output
10004
10005 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
10006
10007         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
10008         * sdcc.spec: updated and split sdcc into 3 rpms
10009         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
10010         needed for literals of LEFT_OP and '+'
10011         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
10012         introduced RESULT_TYPE_NOPROM
10013         (geniCodeMultiply): fixed logic for decision if mul is optimized to
10014         left shift
10015         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
10016         limited promotion to int only for '*'
10017         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
10018
10019 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
10020
10021         * src/pic16/gen.c (genSkip),
10022         (genc16bit2lit), (gencjneshort): commented out
10023         (is_LitOp): new helper function, checks operand type
10024         (genCmpEq): rewritten
10025
10026 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
10027
10028         * support/regression/tests/bug-908454.c: added
10029
10030 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
10031
10032         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
10033         * src/SDCCicode.c (usualBinaryConversions): op needs int type
10034         (geniCodeCast): cosmetic, don't preserve bit storage class
10035         (geniCodeLeftShift): added promotion
10036         (geniCodeLogic): fixed regression
10037         * src/SDCCsymt.c (computeTypeOr): accept bits too
10038         (compareType): 2nd part of fix for bug #908454, needed for bitfields
10039
10040 2004-03-07  Borut Razem <borut.razem AT siol.net>
10041
10042         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
10043
10044 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
10045
10046         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
10047         version of pic16_genPackRegisters which does not check if ic is a
10048         CAST operator,
10049         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
10050         function cause string1.c regression test fails
10051
10052 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
10053
10054         * sim/ucsim/configure.in,
10055         * sim/ucsim/configure,
10056         * sim/ucsim/doc/Makefile.in: use docdir
10057         * src/SDCC.y: fixed sbit atrributes
10058         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
10059         * src/SDCCast.c (decorateType): |^& need special promotion handling
10060         * src/SDCCast.h,
10061         * src/SDCCsymt.h: moved definition of RESULT_TYPE
10062         * src/SDCCsymt.h (computeType),
10063         * src/SDCCicode.c: computeType() needs op
10064         * src/SDCCsymt.c (checkTypeSanity),
10065         * doc/sddman.lyx: "plain" bitfields are unsigned
10066         * src/SDCCsymt.c (computeTypeOr): added
10067         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
10068         |^& ops
10069         * src/SDCCval.c (val*): computeType() needs op
10070         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
10071         * support/regression/tests/onebyte.c: added tests for |^&
10072
10073 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
10074
10075         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
10076         for writing icode into asm output.
10077
10078 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
10079
10080         * src/pic16/device.c: added some debug lines enabled
10081         with macro DEBUG_CHECK,
10082         * src/pic16/genarith.c: more debug in genPlus,
10083         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
10084         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
10085         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
10086         * (aopForSym): onStack symbols are re-placed in data memspace,
10087         and onStack flag is cleared,
10088         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
10089         copy temporary pcodeop,
10090         * (genPcall): added warning for not updating PCLATU,
10091         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
10092         always true for pic16 port,
10093         * (genMultOneWord): NEW, supports integer multiplication,
10094         * (genMult): modified to call genMultOneWord,
10095         * (ifxForOp): added warning when return NULL,
10096         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
10097         flag is set before call to operandFromSymbol for implicit
10098         added structures,
10099         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
10100         options.intlong_rent are set by default,
10101         * (_hasNativeMulFor): modified to allow port generation of integer
10102         multiplication,
10103         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
10104         set regtype to REG_SFR for all registers, restricting seting the
10105         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
10106
10107 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10108
10109         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
10110         more than 500 times in the regression tests
10111
10112 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10113
10114         * support/Util/SDCCerr.h,
10115         * support/Util/SDCCerr.c,
10116         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10117         enumerator_list),
10118         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
10119         for symbol conflicts.
10120         * support/valdiags/tests/enum.c,
10121         * support/valdiags/tests/tentdecl.c,
10122         * support/valdiags/tests/struct.c: expect possible error messages
10123         referring to original symbol definitions.
10124         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
10125         * src/SDCCsymt.h,
10126         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
10127
10128 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
10129
10130         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
10131
10132 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
10133
10134         * src/pic16/ralloc.c (newReg): fixed bug #908929
10135
10136 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10137
10138         * src/ds390/gen.c: added missing #include "main.h"
10139
10140 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
10141
10142         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
10143         checking if symbol is already in set,
10144         * src/pic16/device.h: prototype for checkAddSym,
10145         * src/pic16/gen.c: (_G): added entry interruptvector,
10146         * (assignResultValue): removed some commented out lines,
10147         * (genFunction): check for ISR via sym->type, absolute section for
10148         interrupt code is created via a new pBlock, the goto instruction is
10149         placed now correctly at the interrupt vector position, changed all
10150         references from ivec to _G.interruptvector,
10151         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
10152         is the interrupt is a high priority one, same for return from ISR,
10153         * src/pic16/glue.c: changed all calls of addSetHead for publics and
10154         externs to calls of checkAddSym,
10155         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
10156         pic16_pcode_verbose flag is set,
10157         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
10158         * src/pic16/pcoderegs.c: message about how many registers are saved
10159         will only be emitted if pic16_pcode_verbose flag is set,
10160
10161 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10162
10163         * src/ds390/ralloc.h,
10164         * src/ds390/ralloc.c (ds390_regWithIdx),
10165         * src/ds390/gen.c (emitcode),
10166         * src/ds390/main.h,
10167         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
10168         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10169         ds390operandCompare, getRegsRead, getRegsWritten,
10170         initializeAsmLineNode): customized instruction size calculation for
10171         ds390, started basis for some register optimizations
10172         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
10173         corresponding assembly output
10174         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
10175         missing push/pop of r0/r1. Optimized push/pops
10176
10177 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10178
10179         * src/mcs51/main.c (instructionSize): fixed ACALL size
10180         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
10181
10182 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
10183
10184         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
10185         the sorting of rlist with NULL elements
10186         * (print_idataType, print_idata): NEW to create idata sections
10187         * src/pic16/device.h: idataSymSet new variable
10188         * src/pic16/gen.c (genFunction): fixed some bugs in string
10189         comparing, improved the absolute section creation for ISRs,
10190         added FSR0L/FSR0H in registers that are saved in an ISR,
10191         * (genInline): fixed the processing of inline snippets,
10192         now they undergo no process by the peephole optimizer
10193         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
10194         are placed in idataSymSet,
10195         * (pic16emitStaticSeg): extern symbols are added in externs,
10196         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
10197         switching when aboslute variables are placed in access bank memory
10198         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
10199         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
10200         commented out with #if,
10201         * (pic16_packRegisters): reintroduce the check for CAST because some
10202         symbols are not correctly handled,
10203         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
10204         pCodeInstruction instead of pCode,
10205         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
10206         pCodeAsmDir definition,
10207         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
10208         directive, then the argument directive is emitted without the leading
10209         tab, hack for inline labels which must be in the first column,
10210         * (compareLabel,pic16_findNextInstruction),
10211         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
10212         * (insertBankSwitch): modified for the new pCodeAsmDir,
10213
10214 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10215         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
10216
10217         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
10218         instance,
10219         * (pushSide): commented out with #if,
10220         * (assignResultValue): fixed some typos in saving
10221         registers,
10222         * (genPcall): FIXED and sync'ed with genCall,
10223         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
10224         * (genNearPointerGet): fixed to handle some more cases,
10225         implementation scheme via table reads,
10226         * (genConstPointerGet): modified to access code memory correct,
10227         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
10228         and improved to handle some cases
10229         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
10230         instead of "RETLW" for init data
10231         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
10232         not IN_DIRSPACE, work around to reduce bank switching when aboslute
10233         variables are placed in access bank memory (<0x80 and >=0xf80),
10234         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
10235         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
10236         TBLWT_POSTDEC,TBLWT_PREINC
10237         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
10238         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
10239         directives
10240         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
10241         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
10242         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
10243         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
10244
10245 2004-02-29  Borut Razem <borut.razem AT siol.net>
10246
10247         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
10248         support/Util/findme.h, support/Util/system.h: enhance binary relative
10249         search for lib and include by using findProgramPath()
10250
10251 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10252
10253         * src/SDCCpeeph.h,
10254         * src/SDCCpeeph.c (pcDistance),
10255         * src/port.h,
10256         * src/mcs51/ralloc.h,
10257         * src/mcs51/ralloc.c (mcs51_regWithIdx),
10258         * src/mcs51/main.h,
10259         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
10260         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10261         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
10262         size calculation port specific, started basis for some register
10263         optimizations
10264         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
10265         missing push/pop of r0/r1. Optimized push/pops
10266         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
10267         * device/lib/_modsint.c (_modsint),
10268         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
10269         and stack version so regression tests pass
10270
10271 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
10272
10273         * src/Makefile.in (dep): include SLIBOBJS in dependency check
10274         * src/SDCCast.c (decorateType): catch another small optimization
10275         with '?' operator
10276         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
10277         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
10278         modified to finally use computeType() all over SDCC,
10279         see Feature Request #877103
10280         * src/SDCCval.h: cosmetic
10281         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
10282         valCompare(); regression tested in muldiv.c
10283         * support/regression/tests/muldiv.c (testMod): mod sign follows
10284         dividend only
10285
10286 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
10287
10288         * src/SDCCast.c (decorateType): fixed bug #902362
10289         * doc/INSTALL.txt: fixed install instructions for win32
10290
10291 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
10292
10293         * device/include/Makefile.in (install): fixed by replacing spaces
10294         by tabs
10295         * doc/README.txt,
10296         * doc/INSTALL.txt: updated for release
10297         * doc/sdccman.lyx: added warning for --xstack being buggy
10298
10299 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
10300
10301         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
10302         to eliminate build warnings.
10303         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
10304
10305 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
10306            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10307
10308         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
10309         removed -penable-stack, added comment for stack pragma, added
10310         warning for not initializing the stack/frame registers, removed
10311         comment at interrupts section
10312
10313         Stack is made permanent, there is no ability to disable stack usage.
10314         * src/pic16/device.h,
10315         * src/pic16/device.c: removed all references to USE_STACK macro,
10316         * src/pic16/device.c (pic16_dump_section): when no elements in
10317         rlist, free rlist before return,
10318         * (pic16_dump_int_registers): NEW, internal registers are a new set
10319         of general purpose registers reused by each function,
10320         * (checkAddReg): returns 1 if registers is added to set,
10321         * (pic16_groupRegistersInSection): when a registers is of type
10322         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
10323         * src/pic16/device.h: memRange and Assigned Memory are deleted,
10324         SRCASECMP macro is moved here from device.c
10325         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
10326         PO_PCLATU, PO_PRODL, PO_PRODH,
10327         * (pic16_pCodeOpType, genMinus,
10328         changed compares to "a" register, with AOP_ACC,
10329         * (pic16_genPlus): fixed some bugs and indented properly,
10330         * (pic16_addSign): changed size to size+offset in the MOVWF
10331         instruction,
10332         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
10333         multiply 8-bit operand by literal, result is 8-bit,
10334         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
10335         multiply 2 8-bit operand, result is 8-bit,
10336         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
10337         genUMult8X*_16,
10338         * src/pic16/gen.c: changed accUse to contain WREG only,
10339         * (pic16_emitcomment): renamed to pic16_emitpcomment,
10340         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
10341         true, do not use immediate addressing any more unless sym is a
10342         pointer in codespace,
10343         * (aopForRemat): do not use immediate addressing when symbol not in
10344         codespace and when symbol's address is requested,
10345         * (aopOp): for-loop in if(sym->accUse) is modified for the new
10346         accUse size (= 1),
10347         * (aopGet): added case for AOP_ACC and don't return "accumulator
10348         bug" but WREG instead,
10349         * (popGetTempReg): pushes contents of temporary register in stack,
10350         * (popReleaseTempReg): pops contents of temporary register from
10351         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
10352         * (pic16_popGet): separated case AOP_ACC to return register WREG
10353         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
10354         or PO_IMMEDIATE and initializes their instance/offset appropriately,
10355         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
10356         the use of immediate pointers to certain cases only.
10357
10358         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
10359         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
10360         * (assignResultValue, genCall, genRet): modified to use the new
10361         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
10362         genPcall is still broken,
10363         * (genFunction): added code to create 'A' type pBlocks when
10364         interrupt functions are generated, code not extensively tested yet,
10365         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
10366         * (genEndFunction): modified so ISRs pop stored registers from stack,
10367         * (genMultOneByte): cleanup,
10368         * (AccRsh): added flag andmask, to and result with appropriate mask,
10369         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
10370         * (genDataPointerGet): fixed and reenabled its use,
10371         * (genNearDataPointerGet): bugs fixed,
10372         * (genDataPointerSet): bugs fixed,
10373         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
10374         pic16_DumpSymbol, pic16_DumpOp,
10375         * src/pic16/genutils.h: function prototypes for the above functions,
10376         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
10377         pointers,
10378         * (pic16emitRegularMap): many many many improvements, but needs a
10379         major cleanup,
10380         * src/pic16/main.c: enable_stack in pic16_options is removed,
10381         * (_pic16_parseOptions): removed command line options -penable-stack,
10382         * (_process_pragma): emit stack symbol only when stack pragma is
10383         processed,
10384         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
10385         redirected to FSR0L/FSR0H pair,
10386         * (pic16_get_op, pic16_get_op2): modifications and improvements,
10387         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10388         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
10389         for immediates,
10390         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
10391         * (dumpPicOptype): NEW,
10392         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
10393         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
10394         with movff instruction,
10395         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
10396         added pic16_int_regs, some packRegsFor* functions are commented out,
10397         because produce errors,
10398         * src/pic16/NOTES: minor modifications
10399
10400 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10401
10402         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
10403         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
10404         --pack-iram.
10405         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
10406         * as/mcs51/lkaomf51.c: fixed bug #895763
10407
10408 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
10409
10410         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
10411
10412 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10413
10414         * doc/sdccman.lyx: added details about the HC08 storage classes and
10415         interrupts, fixed the register usage info for z80 & gbz80
10416
10417 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
10418
10419         * doc/sdccman.lyx: added more pic16 port documentation
10420         * device/include/pic16/: added header pic18fregs.h
10421
10422 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
10423
10424         * doc/sdccman.lyx: added Vangelis' contribution
10425
10426 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10427
10428         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
10429         extend to the next CALL or PCALL, not just to the next CALL.
10430
10431 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
10432
10433         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
10434
10435 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10436
10437         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
10438         bug #895752 and a better fix for bug #716790
10439
10440 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10441
10442         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
10443
10444 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10445
10446         * doc/sdccman.lyx: minor changes, minor changed
10447
10448 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
10449
10450         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
10451         which can't handle SDCC_NEWONEBYTEOPS,
10452         (geniCodeMultiply): removed conversion from mult to shift for pic14
10453         and pic16
10454
10455 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10456
10457         * src/hc08/gen.h,
10458         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
10459         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
10460         thus fixing bug #895406
10461
10462 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
10463
10464         * device/lib/_modsint.c,
10465         * device/lib/_modslong.c: sign follows divisor only
10466         * src/hc08/gen.c (genMultOneByte): if result size is 1,
10467         signs or signedness can be ignored
10468         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
10469         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
10470         added optimization for IFX,
10471         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
10472         arguments;
10473         reenabled optimization for IFX, which was removed on 2004-01-11
10474         * src/SDCCast.h: added return type IFX
10475         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
10476         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
10477         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
10478         SDCC_OLDONEBYTEOPS selects the old behaviour
10479         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
10480         changed again and commented promotion rule
10481         * src/SDCCval.c (valDiv): promotion no longer necessary
10482         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
10483         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
10484         rewritten
10485         * support/regression/tests/onebyte.c: added
10486
10487 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
10488
10489         * gen.c (genInline): reverted to old code for assemnling inline
10490         code because of bug reported James Chadd
10491
10492 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
10493
10494         * ralloc.h: missing declarations from previous patch,
10495         seems that patch for ralloc.h was never applied, fixed
10496
10497 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10498            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10499
10500         * pcode.c,
10501         * pcode.h,
10502         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
10503         indirect addressing. Marked FSR0 as deprecated
10504         * gen.c (pointerCode): commented out, not needed now
10505         (pic16_popGet2p): new MOVFF helper function
10506         (genGenPointerGet),
10507         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
10508         (shiftRLong): removed duplicate debugging info
10509
10510 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10511
10512         * src/ds390/gen.c (genNearPointerGet),
10513         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
10514         optimization with bits, but not bitfields.
10515         * src/ds390/ralloc.c (packRegisters),
10516         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
10517
10518 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
10519
10520         * src/SDCCcse.c (algebraicOpts): copy operands before modification
10521
10522 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10523
10524         * src/SDCCsymt.h,
10525         * src/SDCCicode.c (operandFromSymbol),
10526         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
10527         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
10528         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
10529         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
10530         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
10531         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
10532         bug #892038
10533         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
10534         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
10535         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
10536         * src/SDCCsymt.c (newSymbol),
10537         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10538         enumerator_list),
10539         * src/SDCCval.h,
10540         * src/SDCCval.c (newiList): fixed bug #885705
10541
10542 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10543
10544         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
10545         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
10546
10547 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10548
10549         * device/include/c8051f120.h,
10550         * device/include/c8051f300.h,
10551         * device/include/c8051f310.h: added/updated header files for Silicon
10552         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10553         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
10554         in new section Submitting patches
10555
10556 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10557
10558         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
10559         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10560         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10561         genGenPointerSet),
10562         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
10563         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10564         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10565         genGenPointerSet),
10566         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
10567         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10568         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10569         genGenPointerSet),
10570         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
10571         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10572         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10573         genGenPointerSet): fixed bug #892400
10574         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
10575         to eliminate build warnings.
10576         * src/SDCCast.c (processParms),
10577         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
10578         fixed bug 751859
10579         * support/valdiag/valdiag.py: added GCC to the list of defines active
10580         when compiling with gcc
10581
10582 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10583
10584         * support/Util/SDCCerr.h,
10585         * support/Util/SDCCerr.c,
10586         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
10587         with an incomplete type (fixed bug #883734)
10588         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
10589
10590 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10591
10592         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
10593
10594 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10595
10596         * src/SDCCast.c (decorateType),
10597         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
10598         function pointer implementation
10599         * support/regression/tests/funptrs.c: added tests to verify both forms
10600         of function pointers work correctly. Added tests to verify parameters
10601         are passed in the correct order.
10602
10603 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
10604
10605         * device.c (regCompare): registers are sorted by ascending
10606         address and increasing size,
10607         * main.c (_pic16_finaliseOptions): removed the declaration
10608         of compiler macro MCU. Now a macro of the format pic18fxxxx
10609         will be defined from the command line
10610
10611 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10612             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10613
10614         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
10615         PCOP_RLCF was overwritten!
10616         * gen.c (genSkip): commented out calls to pic16_emitcode,
10617         * (genCmpEQ): fixed "long" compares, only high word did get compared,
10618         * (genlshTwo),
10619         * (genRRC): added debugging info,
10620         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
10621         overwritten while shifting,
10622         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
10623         overwritten while shifting,
10624         * (AccLsh),
10625         * (AccRsh),
10626         * (shiftLLeftOrResult),
10627         * (shiftRLeftOrResult),
10628         * (shiftRLong),
10629         * (shiftLLong): Implemented with pic16_emitpcode
10630         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
10631         * (genLeftShift): Fixed bug, operand for shift by variable always
10632         was "and"ed with 0x0f,
10633         * (genLeftShiftLiteral),
10634         * (genrshTwo),
10635         * (genRightShiftLiteral): added debugging info,
10636         * (genrshFour): added comment,
10637         * (genRightShift): determined signedness from operand "left"
10638         instead of "result"
10639
10640 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10641
10642         * src/SDCCicode.c (geniCodeParms),
10643         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
10644         function pointers, fixed function pointer bugs #861242 and #861896
10645
10646 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10647
10648         * device/include/c8051f000.h,
10649         * device/include/c8051f120.h,
10650         * device/include/c8051f300.h: added header files for Silicon
10651         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10652
10653 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
10654
10655         * src/SDCCast.c (processParams): added new type flow and restructured
10656         (gatherAutoInit): added new type flow
10657         (addCast): cosmetic changes
10658         (getLeftResultType): added new type flow for array indices, patch
10659         provided by Stas, see FR #877103
10660         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
10661         array index patch by Stas
10662         * src/SDCCast.h: added prototype getResultTypeFromType()
10663         * src/SDCCval.h,
10664         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
10665         * src/pic/glue.c (pic14emitStaticSeg),
10666         * src/pic16/glue.c (pic16emitStaticSeg),
10667         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
10668         for initialization of symbols
10669         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
10670         * support/Util/SDCCerr.h:
10671         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
10672         * .version: bumped version number to 2.3.8
10673         * device/include/Makefile.in (install),
10674         * doc/Makefile (install): changed to 'rm `find ...`' construct to
10675         avoid warnings
10676
10677 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
10678
10679         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10680         Slade Rich fixed an optimization bug
10681         * src/pic/pcodepeep.c,
10682         * src/pic/pcoderegs.c
10683         * doc/Makefile (install): added test for directory
10684
10685 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10686
10687         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10688         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10689         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10690         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10691         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10692         * as/mcs51/asexpr.c (term),
10693         * as/hc08/asexpr.c (term): fixed bug #887146
10694
10695 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10696
10697         * src/z80/gen.c (genMult): handle single byte result product
10698         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10699         DUMMY_READ_VOLATILE (fixed bug #886367)
10700
10701 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10702
10703         * support/regression/tests/libmullong.c: fixed logic, on little endian
10704         hosts we ended without a mullong_wrapper()
10705
10706 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10707
10708         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10709         virus/worm forged address usage.
10710
10711 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10712
10713         Fixed promotion, it should be done on AST level:
10714         * src/SDCCast.c (addCast): added promotion to int
10715         (decorateType): updated call to upCast()
10716         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10717         usualUnaryConversions()
10718
10719 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10720
10721         * support/regression/tests/literalop.c (mulWrapper): Added a
10722         wrapper to remove integer overflow warnings.
10723
10724         * support/regression/tests/float_trans.c: Made work on host.
10725
10726         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10727         location of sz80.
10728
10729         * support/regression/generate-cases.py (main): Changed from inline
10730         to a main method.
10731
10732         * doc/Makefile (install): Changed to depth first to get rid of
10733         missing directory install warning.
10734
10735         * as/Makefile (install-doc): Made work on Mac.
10736
10737 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10738
10739         * src/SDCCast.c: added an additional type flow in decorateType() of
10740         opposite direction, see feature request #860006; it's enabled at runtime
10741         by setting the environment variable SDCC_NEWTYPEFLOW
10742         * src/SDCCast.h: changed prototype of decorateType()
10743         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10744         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10745         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10746         see feature request #877103
10747         * src/SDCCval.c: updated call of decorateType()
10748         (valBitwise): fixed bug #882876
10749         (valMinus): added promotion
10750         (valLogicAndOr): result is unsigned
10751         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10752         * src/SDCCsymt.c (computeType),
10753         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10754         must not cause an unsigned operation
10755         * src/pic/glue (pic14emitRegularMap),
10756         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10757
10758 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10759
10760         * src/pic/pcode.c (PCodeID): commented out left over debug code
10761
10762 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10763
10764         * support/valdiag/tests/overflow.c: added shift tests
10765         * src/pic/device.c,
10766         * src/pic/gen.c,
10767         * src/pic/gen.h,
10768         * src/pic/glue.c,
10769         * src/pic/main.c,
10770         * src/pic/pcode.c,
10771         * src/pic/pcode.h,
10772         * src/pic/pcodepeep.c,
10773         * src/pic/pcoderegs.c,
10774         * src/pic/ralloc.c,
10775         * src/pic/ralloc.h: applied patch from Slade Rich;
10776         added support for multiple code pages and multiple RAM banks on the
10777         PIC 14 port. The ASM files now no longer simply assume all the
10778         code / RAM are in the same page / bank. This means the linker can
10779         safely allocate code/RAM of separate ASM files to different pages/banks.
10780         * doc/sdccman.lyx: added Slade's tips
10781         * src/mcs51/peeph.def: fixed bug #880768
10782
10783 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10784
10785         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10786         * src/SDCCast.c (decorateType): fixed bug #880197
10787
10788 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10789
10790         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10791         getopt.h.
10792
10793         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10794         strtof is not part of C89 and isn't included with Mac OS X.
10795
10796 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10797
10798         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10799         shiftL2Left2Result): fixed bug #879326
10800         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10801         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10802         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10803         address fetch for clr instruction
10804         * device/lib/hc08/_mulint.c: created optimized assembly version
10805         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10806
10807 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10808
10809         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10810         proposed in FR #877103
10811
10812 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10813
10814         * src/SDCCval.c (cheapestVal): added missing checks
10815         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10816         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10817
10818 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10819
10820         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10821         equal operands
10822
10823 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10824
10825         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10826         loaded with the linker search paths (-L arguments) and the libraries
10827         to be linked with the current source (-l arguments). Changes
10828         currently will affect only the pic16 port.
10829         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10830         include path the port specific paths and port specific libraries,
10831         * gplink command now contains the $3 argument,
10832         * src/pic16/device.h,
10833         * src/pic16/device.c,: structure PIC_device is made public and
10834         renamed to PIC16_device, the same for variable Pics which is renamed
10835         to Pics16. Updated all references to them.
10836         * src/pic16/glue.c (pic16glue): corrected bug with code
10837         initialization which bypassed the variable initializations block.
10838
10839         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10840         COMPILE_FLAGS and added the --nostdinc option
10841
10842 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10843
10844         * device/include/mc68hc908jb8.h: Register defs for another member
10845         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10846
10847 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10848
10849         Documenting changes from previous commits.
10850         * configure.in (version 1.56),
10851         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10852         when generating output files to configure the pic16 library,
10853         but now I've commented it out, since gputils aren't installed in the
10854         SF compile farm, so library won't compile
10855
10856         * device/lib/Makefile.in (version 1.56): initially I've added in
10857         target 'all' the prerequestive 'model-pic16' so it compiled the
10858         pic16 library, but now I've commented it out for the same reasons
10859         above,
10860         * added targets 'model-pic16' and 'objects-pic16' to compile the
10861         library
10862         * added target 'port-specific-objects-pic16' to handle the
10863         generated libraries and copy them into the build/ directory
10864         * added target 'clean-intermediate-pic16' to clean intermediate
10865         files into pic16 directory
10866         * in target 'installdirs' added line to create directory pic16 in
10867         the installation path
10868
10869         * device/include/Makefile.in (version 1.11): in target 'install'
10870         added lines to copy all header files to installation path,
10871         * in target 'installdirs' added line create directory for pic16
10872         headers in the installation path
10873
10874 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10875
10876         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10877          a function call
10878
10879 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10880
10881         * configure,
10882         * device/lib/configure.in,
10883         * device/lib/configure: fixed for autoconf 2.57
10884
10885 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10886
10887         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10888         option so that it actually works. Made it specific to the z80, since
10889         the gbz80 doesn't have these kinds of I/O ports.
10890
10891 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10892
10893         * device/include/z180.h,
10894         * device/lib/_memcpy.c,
10895         * device/lib/_memmove.c,
10896         * device/lib/_mulint.c,
10897         * device/lib/ser_ir.c,
10898         * device/lib/ser_ir_cts_rts.c,
10899         * device/lib/_strcmp.c,
10900         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10901         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10902         portmode; added deprecation warning for bank= and protmode= forms.
10903         Also, guard against buffer overflow.
10904         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10905
10906 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10907
10908         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10909         changed interrupt vector table generation to only emit declared vectors.
10910         * device/include/Makefile.in: added missing backslash
10911         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10912
10913 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10914
10915         Mainly changes to support compilation of the device libraries
10916         * src/pic16/device.c: stack is allocated via symbol and not
10917         via literal number. The symbol is placed in the corresponding
10918         position of the data ram
10919         * (pic16_dump_section): relocatable and absolute uninitialized
10920         data are now emitted in sorted order to reduce section naming,
10921         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10922         weren't marked as being in the access bank,
10923
10924 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10925
10926         Added portion of GNU PIC Library under the directory
10927         device/include/pic16 and device/lib/pic16. These files
10928         contain the declarations of SFRs for the PIC18Fxx2 devices.
10929         The directory is initialized via configure from toplevel.
10930
10931 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10932
10933         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10934         the spilllocations to be compared correctly
10935
10936 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10937
10938         * src/SDCCast.c (decorateType): fixed bug introduced today
10939
10940 2004-01-12  Borut Razem <borut.razem AT siol.net>
10941
10942         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10943         doc/sdccman.lyx: upper case pragmas are deprecated
10944
10945 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10946
10947         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10948         in simpler and even better code
10949
10950 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10951
10952         * src/SDCCicode.c (operandOperation): fixed bug #874819
10953         * src/SDCCast.c (decorateType): fixed
10954         char foo (unsigned long ul) { return ul > 0; }
10955
10956 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10957
10958         * doc/sdccman.lyx: Moved and added some sections, small changes
10959         all over. Telling LaTeX to be less strict with word spacing
10960         to better keep the right margin. Changed some notes about
10961         maintainance of the ports in section 3.2.1 - is it OK like this?
10962
10963 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10964
10965         SDCC source changes:
10966         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10967         convilong): modified to inform the pic16 port that builtin functions
10968         are external
10969
10970         PIC16 PORT specific changes:
10971         * src/pic16/device.c pic16_dump_equates() added,
10972         processor registers declared internally by the port are emitted in
10973         the translation as equates,
10974         * src/pic16/gen.c: inline code is passed unprocessed to the
10975         translation,
10976         * (pic16_popGetLit2): fnuction modified to take second operand as
10977         pCodeOp pointer and not as literal,
10978         * (popRegFromIdx): prefixed with pic16_,
10979         * (pic16_popCombine2): modified to receive already allocated pCode
10980         operands,
10981         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10982         * (genFunction): initializes local stack frame and pushes on stack
10983         all the registers used by this function,
10984         * (genEndFunction): restores all registers from stack and restores
10985         stack frame,
10986         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10987         improvements,
10988         * (pic16glue): changed the program startup sequence,
10989         * added new dbName code 'A' for functions placed in absolute section
10990         * src/pic16/main.c: added function attribute _naked,
10991         * added pragma 'code' to place a fnuction at an absolute address,
10992         * added command line arguments --debug-ralloc and --pcode-verbose,
10993         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10994         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10995         * (pic16_newpCodeOpLit2): modified to take the second operand as
10996         pCodeOp pointer,
10997         * (pic16_printpBlock): modified to emit each function in a separate
10998         section,
10999         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
11000         UPPER for immediate operands,
11001         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
11002         instruction,
11003         * src/pic16/peeph.def: all peepholes with movff are commented out,
11004         because there is a problem in the pcode peep optimizer,
11005         * src/pic16/ralloc.c: the register allocator can now reuse local
11006         function symbols for another function. This saves register usage.
11007         * src/pic16/ralloc.h: added flag isLocal in structure regs,
11008
11009         Added file src/pic16/NOTES with information about program writing on
11010         the current port version.
11011
11012 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11013
11014         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
11015         and peephole 252 (array access)
11016
11017 2004-01-09  Borut Razem <borut.razem AT siol.net>
11018
11019         * src/SDCCmain.c : fixed #872250: -l command line defined library
11020           files are scanned before standard library files
11021
11022 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11023
11024         * src/SDCCast.c (decorateType): fixed bug #874046
11025
11026 2004-01-09  Borut Razem <borut.razem AT siol.net>
11027
11028         * support/scripts/sdcc.nsi: remove previous installation
11029
11030 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11031
11032         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
11033         bytes for last interrupt vector (mcs51)
11034         * sdcc.spec: fixed typo
11035
11036 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11037
11038         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
11039         gen51Code): more efficient parameter receive for --model-large
11040         ("bug" #845294)
11041
11042 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11043
11044         * src/ds390/main.c,
11045         * src/z80/main.c: added missed needLinkerScript flags (more than
11046         one port structure defined in these file)
11047         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
11048         bug #795325
11049
11050 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
11051
11052         * src/SDCCmain.c: removed various references to DEFAULT_PORT
11053         * src/port.h: added flag needLinkerScript in port->linker
11054         structure to inform whether to create a .lnk file or not,
11055         * src/avr/main.c,
11056         * src/ds390/main.c,
11057         * src/hc08/main.c,
11058         * src/mcs51/main.c,
11059         * src/pic/main.c,
11060         * src/pic16/main.c,
11061         * src/xa51/main.c,
11062         * src/z80/main.c: changed appropriately to configure
11063         needLinkerScript flag
11064         * src/pic/gen.c,
11065         * src/pic16/gen.c (genAddrOf): fixed bug #863624
11066         * src/pic/glue.c: added variable udata_section_name to
11067         override default uninitialized data segment definition for
11068         devices only with SHAREBANK memory (reported from Erik Epetrich)
11069         * (pic14emitOverlay): modified to emit a commented overlay segment
11070         directive when no overlay data exist
11071         * (picglue): modified to emit uninitialized data segment
11072         according to udata_section_name
11073         * src/pic/main.c (_pic14_parseOptions): added command line
11074         options --udata-section-name=[name] to override default
11075         udata definition name
11076         * modified _linkCmd and _asmCmd to include compiler passed
11077         arguments via -W option
11078         * src/pic16/main.c: added $l in _asmCmd, changed extension for
11079         object file from '.rel' to '.o' in port->linker structure,
11080         changed size of fptr from 2 to 3 in port structure
11081
11082 2004-01-07  Borut Razem <borut.razem AT siol.net>
11083
11084         * support/scripts/sdcc.nsi: update PATH
11085         * support/scripts/sdcc.ico: craeted
11086
11087 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
11088
11089         * device/include/Makefile.in: fix install
11090         * doc/Makefile: fix install
11091
11092 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11093
11094         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
11095         in bug #860505
11096         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
11097         how the function variable allocation summary is displayed; also
11098         include information about variables allocated to the overlay
11099         segment
11100
11101 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11102
11103         * as/mcs51/lkmain.c: Help about -Y option
11104         * as/mcs51/lkarea.c: Fixed gcc warnings
11105
11106 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
11107
11108         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
11109         fixed warning
11110         * support/valdiag/tests/overflow.c: added
11111         * src/SDCCast.c (decorateType),
11112         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
11113         LEFT_OP (left shift)
11114
11115 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11116
11117         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
11118         (default behaviour).
11119
11120 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11121
11122         A python script to validate compiler diagnostic messages. It can be
11123         used to verify that sdcc complains about bad c source code and
11124         gives a good location of the error.
11125         * support/valdiag/Makefile,
11126         * support/valdiag/valdiag.py,
11127         * support/valdiag/tests/*
11128
11129 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11130
11131         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
11132         * src/SDCCsymt.c (newEnumType),
11133         * src/SDCCsymt.h
11134         * support/Util/SDCCerr.c,
11135         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
11136         enum related bugs.
11137         * support/regression/tests/enum.c: added test for enum values that
11138         require at least 2 bytes of storage.
11139
11140 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
11141
11142         * src/common.h: added ifndef/define/endif macros
11143         around the header file.
11144         Bug reported from Jesus Calvino-Fraga
11145
11146 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
11147
11148         * sdcc.spec: updated
11149         * device/include/Makefile.in: don't install CVS directories
11150         * device/lib/Makefile.in: added removal of CVS directories after install
11151         * doc/Makefile: fixed install, added local_icons
11152         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
11153         * src/mcs51/gen.c (genRightShift): fixed bug #870788
11154         * src/ds390/gen.c (genRightShift): fixed bug #870788
11155         * src/SDCCast.c (decorateType): fixed bug #870781
11156
11157 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
11158
11159         PIC16 port related changes:
11160         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
11161         added variable stackPos,
11162
11163         * gen.c: genCall, assignResultValue: added support for
11164         pushing/retrieving function parameters to/from stack,
11165         genFunction,genEndFunction: setup stack frame for the
11166         generated function,
11167         genAddrOf: will be changed according to bug 863624
11168
11169         * added files genutils.c and genutils.h which contain gen*
11170         debugged and optimised functions extracted from gen.c
11171
11172         * glue.c: added variable 'externs' which holds extern symbols,
11173         pic16emitRegularMap: is modified to properly handle relocatable
11174          symbols under the new scheme,
11175         pic16createInterruptVect: is modified
11176         pic16printPublics: is modified to emit 'global' assembler directives,
11177         added pic16_printExterns to print extern symbols,
11178         pic16glue: initializes stack/frame pointer in the beginning of
11179         the assembly output. Temporary hack, will be corrected later,
11180         because gplink yet does not support stack and SDCC does not
11181         yet support a type of crt0.o object to create the final binary.
11182
11183         * Removed many lines that contain 8051 legacy code.
11184         * The code is finally placed under a 'code' directive.
11185         * Added port specific options.
11186
11187         * _process_pragma: simplified since now we do not need *special*
11188         include file to define SFR registers. But a separate header
11189         will be needed. This will be developed later.
11190         * _pic16_parseOptions: added, parses port specific options:
11191         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
11192         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
11193         --preplace-udata-with=
11194
11195         * _pic16_setDefaultOptions: modified to initialize section names,
11196         but hack is temporarly out of order since it needs improvement.
11197         * _pic16_genAssemblerPreamble: configuration words are emitted by
11198         their address instead of their name. This part is incomplete and
11199         supports only the 18Fxx2 devices. Other devices will emit an error
11200         during assembly since they do not contain the same set of config
11201         registers
11202         * _pic16_genIVT: is modified,
11203
11204         * pcode.c: added definitions for some hardware registers that are needed
11205         for stack support
11206         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
11207         All PCI entries are updated. Now LFSR is supported.
11208         * Removed pic16_pciTRIS is mentioned by mdubuc in source
11209         * added pic16_newpCodeOpLit2 to support instructions with
11210         two literal arguments
11211         * pic16_pCode2str: corrected code that emits assembler instructions
11212         with two literal operands and those that have an access bit modifier
11213         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
11214         this fixes a bug which caused some labels to be lost, when an
11215         assembler directive was added, i.e. banksel,
11216         * pic16_FixRegisterBanking: improved logic that causes the insertion
11217         of bank switching,
11218         * InlineFunction: functions that are called once, are not any more
11219         inlined. This can be a port option in the future,
11220
11221         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
11222
11223         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
11224         hold the corresponding uninitialized symbols,
11225         * pic16_allocProcessorRegister: registers have explicit marked the
11226         accessBank field,
11227         * pic16_allocInternalRegister: registers are explicit marked as
11228         not used,
11229         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
11230         processing list, so bit registers were lost,
11231         *
11232
11233         * ralloc.h: added field 'accessBank' and original symbol operand
11234         in register definition,
11235         * removed the field isMapped from register definition,
11236
11237         ** Several functions have been removed from various sources:
11238         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
11239         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
11240         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
11241         pic16_assignRelocatableRegisters
11242
11243         ** others have been introduced:
11244         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
11245         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
11246
11247 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
11248
11249         * support/scripts/inc2h.pl: changed definition of BIT_AT
11250         to emit 'sbit at' instead of 'bit at'. This was a request.
11251
11252         PIC16 port related preliminary changes:
11253         * gen.c: prefixed function popRegFromString with
11254         pic16_ and all references to it corrected
11255         * pcode.c: all pic16_pc_* hardware registers prefixed
11256         with underscore (_),
11257         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
11258         * ralloc.c: newReg(): when register is REG_SFR then
11259         set address to rIdx,
11260         pic16_allocProcessorRegister(): marks register wasUsed=0
11261         pic16_writeUsedRegs(): added a call to assign processor
11262         registers via pic16_assignFixedRegisters
11263
11264 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11265
11266         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
11267         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
11268         variables in unused register banks.  Also the SSEG is placed
11269         wherever there is enough space for it, and IDATA can be anywhere
11270         in internal RAM.  For now compile using -Wl-Y[stack_size].
11271         The mem file is different for this option as well, since it
11272         makes no sense of talking about DSEG lenght.
11273
11274 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
11275
11276         * src/SDCClrange.c: fixed bug 869095 that caused segfault
11277         in certain cases, e.g. when ROM assignment, patch provided
11278         from Albert den Haan.
11279
11280 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
11281
11282         Many signedness and type propagation fixes:
11283         * src/SDCCicode.c: made geniCodeCast() static
11284         replaced SPEC_ by IS_ (cosmetic)
11285         (operandOperation): fixed div and mod operation
11286         (usualBinaryConversions): added support for promotion of char
11287         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
11288         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
11289         (geniCodeAdd): an array index will stay unsigned, even if promoted
11290         from char to int
11291         (geniCodeArray): ditto
11292         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
11293         * src/SDCCsymt.c (computeType): added more support for char;
11294         promotion of char is selectable by promoteCharToInt, fixed signedness
11295         for all cases
11296         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11297         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11298         * src/SDCCval (val*): replaced signedness calculation by
11299         computeType()
11300         rearranged if-branches (cosmetic)
11301         (valShift): added warning W_SHIFT_CHANGED
11302         (valCompare): fixed problem with different types
11303         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
11304         * support/regression/tests/literalop.c: added many cases
11305         * support/regression/tests/ast_constant_folding.c: changed finally to
11306         'unsigned int'
11307         * .version: new year, new version: 2.3.7
11308         * src/SDCCmain.c (main): applied patch #866468
11309         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
11310         provided by Scott Bronson
11311         * doc/sdccman.lyx: updated documentation for sdcdb
11312         updated and added chapter tips
11313
11314 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11315
11316         * src/SDCCsymt.h: missing from yesterday's commits
11317
11318 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11319
11320         * src/SDCC.y (struct_or_union_specifier),
11321         * support/Util/SDCCerr.c,
11322         * support/Util/SDCCerr.h: verify that struct & union tags are used
11323         as declared.
11324
11325 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11326
11327         * src/SDCCglobl.h: missing from yesterday's commits
11328
11329 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11330
11331         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
11332         sft_attributes, struct_declaration, parameter_declaration,
11333         type_name, start_block, declaration_list),
11334         * src/SDCC.lex (check_type): support redefinition of typedef names
11335
11336 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11337
11338         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
11339         aligned xdata arrays. Erik helped me with the if clause.
11340
11341 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11342
11343         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
11344         warning
11345
11346 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11347
11348         * src/SDCCast.h,
11349         * src/SDCCast.c (newAst_),
11350         * src/SDCCicode.h,
11351         * src/SDCCicode.c (ast2iCode, newiCode),
11352         * src/SDCCglobl.h,
11353         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
11354         expr, statement, expression_statement, selection_statement,
11355         iteration_statement, expr_opt, jump_statement): foundation for tracking
11356         sequence points
11357         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
11358         point code too)
11359
11360 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11361
11362         * support/Util/SDCCerr.c,
11363         * src/SDCCast.h,
11364         * src/SDCCast.c (createCase, createDefault, decorateType),
11365         * src/SDCClabel.c (labelUnreach),
11366         * src/SDCC.y (labeled_statement, jump_statement): More improvements
11367         to error messages.
11368         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
11369         (with thanks to Stas Sergeev)
11370         * device/include/time.h,
11371         * device/lib/time.c (CheckTime): suppress unreachable code warning
11372
11373 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11374
11375         * src/SDCCast.c (createIvalCharPtr),
11376         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
11377         bug #753752)
11378         * support/regression/tests/nullstring.c: tests for these two bugs
11379
11380 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11381
11382         * support/Util/SDCCerr.h,
11383         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
11384         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
11385         about storage class and 'at' used inside struct or union
11386         * src/SDCCBBlock.c (iCodeFromeBBlock),
11387         * src/SDCCcse.c (ifxOptimize),
11388         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
11389         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
11390         printIval, emitStaticSeg, emitOverlay),
11391         * src/SDCClabel.c (deleteIfx),
11392         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
11393         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
11394         gatherAutoInit, processParms),
11395         * support/Util/SDCCerr.h,
11396         * support/Util/SDCCerr.c (werrorfl): Support for better error location
11397         reporting for post-parse errors.
11398
11399 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11400
11401         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
11402         implicit casts via union; they don't work on big endian systems
11403         (possible fix for bug #861138)
11404
11405 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11406
11407         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
11408         * src/mcs51/main.c: fixed the fix for bug #737001
11409
11410 2003-12-15  Borut Razem <borut.razem AT siol.net>
11411
11412         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
11413
11414 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11415
11416         * support/makebin/makebin.c: put output in binary mode
11417
11418 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11419
11420         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
11421         xdata and data memory on startup. Set the environment variable
11422         SDCC_NOGENRAMCLEAR to disable this.
11423         * src/mcs51/peephole.def,
11424         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
11425         (allows non-interrupt and interrupt code to safely compete for a resource
11426         without the non-interrupt code having to disable interrupts)
11427
11428 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11429
11430         * src/SDCCicode.c (geniCodeAdd),
11431         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
11432         with valFromType if type might be a pointer and host is big endian).
11433         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
11434         types, not just integer types.
11435         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
11436         multiply defined with mismatching "at" address.
11437
11438 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11439
11440         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
11441         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
11442         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
11443         with embedded nulls (fixed bug #753752)
11444
11445 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11446
11447         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
11448         Apparently this did not see much testing (endless loop)
11449
11450 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11451
11452         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
11453
11454 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11455
11456         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
11457         gracefully handle NULL memmap pointers
11458
11459 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11460
11461         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
11462         instead of deleting the iCode when an operand is volatile
11463         * src/z80/gen.c (genDummyRead),
11464         * src/mcs51/gen.c (genDummyRead),
11465         * src/ds390/gen.c (genDummyRead),
11466         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
11467         not just IC_RIGHT
11468         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
11469         * src/SDCC.y: fixed bug #850420
11470
11471 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11472
11473         Applied z80 i/o port patch from Peter Townson and fixed some operators
11474         to better handle operands in A register.
11475         * device/include/z180.h
11476         * src/SDCC.y
11477         * src/SDCCglue.c
11478         * src/z80/gen.c
11479         * src/z80/gen.h
11480         * src/z80/main.c
11481         * src/z80/peeph-z80.def
11482         * src/z80/peeph.def
11483         * src/z80/z80.h
11484
11485 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11486
11487         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
11488
11489 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11490
11491         * device/lib/hc08/_mullong.c: Removed extra #endif
11492
11493 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11494
11495         * sim/ucsim/hc08.src/inst.cc,
11496         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
11497         carries from x to h
11498         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
11499         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
11500         * device/include/stdarg.h: fixed varargs for hc08
11501         * device/lib/Makefile.in,
11502         * device/lib/hc08/Makefile,
11503         * device/lib/hc08/_mulint.c,
11504         * device/lib/hc08/_mullong.c: fixed some endian problems
11505
11506 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11507
11508         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
11509         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
11510         * device/lib/_gptrget.c,
11511         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
11512
11513 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11514
11515         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
11516         * src/SDCCast.c (astErrors): fixed bug #846007
11517         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
11518
11519 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11520
11521         * src/SDCCast.c (decorateType): disabled a transformation I added in
11522         revision 1.188 (access to fields of a structure at an absolute address);
11523         it breaks with bitfields, extern declarations, and gcse analysis.
11524         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
11525         could be assigned through a pointer, so don't complain.
11526         * src/SDCCast.c (astErrors),
11527         * src/SDCCast.h,
11528         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
11529
11530 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
11531
11532         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
11533         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
11534         output of __config directives, since gpasm now supports them
11535         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
11536         pre-processor macro, i.e. -DMCU=p18f452
11537         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
11538         and modified to handle 'cast' icode similarly to '=' icode
11539         * src/pic16/device.h (typedef struct PIC_device): added field
11540         'extMIface' to indicate that chip has external memory interface
11541         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
11542         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
11543         18F8720
11544
11545 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11546
11547         * src/SDCC.y (pointer): fixed bug #846006
11548         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
11549         * src/SDCCast.c (decorateType): fixed bug #846009
11550         * src/ds390/peeph.def,
11551         * src/ds390/gen.c (genAnd, genOr),
11552         * src/mcs51/peeph.def,
11553         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
11554
11555 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11556
11557         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
11558         * src/SDCCdflow.c
11559         * src/SDCCcse.c
11560         * src/SDCCcse.h
11561         * src/SDCCBBlock.h
11562         * src/SDCCBBlock.c
11563
11564 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
11565
11566         fixed bug #845089
11567         * src/SDCCbitv.h,
11568         * src/SDCCbitv.c: added function to free a bitvector
11569         * src/SDCClrange.h,
11570         * src/SDCClrange.c: added function to recompute the liveranges
11571         * src/avr/ralloc.c,
11572         * src/ds390/ralloc.c,
11573         * src/hc08/ralloc.c,
11574         * src/mcs51/ralloc.c,
11575         * src/pic/ralloc.c,
11576         * src/pic16/ralloc.c,
11577         * src/xa51/ralloc.c,
11578         * src/z80/ralloc.c: recompute the liveranges after register packing
11579
11580 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
11581
11582         * src/SDCCloop.c (newInduction): fixed bug #845630
11583
11584 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11585
11586         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
11587         inadvertantly left behind from my 2003-11-12 change
11588
11589 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11590
11591         Updated headers I neglected to commit yesterday.
11592         * src/SDCClrange.h,
11593         * src/SDCCicode.h
11594
11595 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11596
11597         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
11598         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
11599         * src/SDCCopt.c (eBBlockFromiCode),
11600         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
11601         the creation of the key hash table from the sequencing so it can be used
11602         earlier (for some GCSE bug fixes still pending)
11603
11604 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11605
11606         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
11607         * support/regression/tests/addsub.c: testing genPlus shortcut
11608
11609 2003-11-15  Borut Razem <borut.razem AT siol.net>
11610
11611         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
11612
11613 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11614
11615         * src/SDCCcse.c (cseBBlock): fixed bug #527779
11616         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
11617         ordering is immaterial.
11618         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
11619
11620 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11621
11622         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
11623         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
11624         (SIGSEV) of bug #840381
11625         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
11626         unlink new file before rename if new and old filenames are the same)
11627
11628 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11629
11630         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
11631         uninitialized variables) for the mcs51. Set environment variable
11632         SDCC_GENRAMCLEAR to test.
11633         xdata initialization slightly shorter
11634
11635 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11636
11637         * src/SDCCsymt.h,
11638         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
11639         #838241 & 780691 (basicly the same bug)
11640         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
11641         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
11642
11643 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
11644
11645         * src/SDCCmain.c (linkEdit): "fix" #834252
11646
11647 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11648
11649         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
11650         * src/SDCCast.h,
11651         * src/SDCC.y: fixed bug #819403
11652
11653 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11654
11655         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
11656         the reentrant attribute.
11657         * src/hc08/gen.c (genPackBits): added missing stack readjustment
11658         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
11659         simulation
11660         * src/SDCCast.c (decorateType): fixed bug with storage class not being
11661         updated during pointer dereference; f.e. ~(((char *)1)*) was being
11662         erroneously reduced to a literal.
11663         * src/hc08/ralloc.c (packRegisters, rematStr),
11664         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
11665         some cases
11666
11667 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11668
11669         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
11670         * doc/sdccman.lyx: changed from 'article' to 'book'
11671         * doc/Makefile: readded test_suite_spec and cdbfileformat
11672
11673 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
11674
11675         * device/include/stdlib.h: include malloc.h to comply with ANSI
11676         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
11677
11678 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11679
11680         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11681         * doc/clean.mk: also remove *.out files
11682         * doc/sdccman.lyx: some additions, larger top/bottom margins
11683
11684 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11685
11686         * src/SDCC.y: fixed bug #837365
11687         * support/regression/tests/bitopcse.c
11688         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11689         a symbol (might be valop instead)
11690         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11691         * device/lib/clean.mk: added hc08 to the cleaning list
11692
11693 2003-11-04  Borut Razem <borut.razem AT siol.net>
11694
11695         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11696           made 2003-11-04
11697         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11698           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11699           malloc is declared in standard stdlib.h
11700
11701 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11702
11703         * device/lib/hc08/Makefile: need to clean .rel not .o files
11704         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11705
11706 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11707
11708         * src/port.h,
11709         * src/hc08/main.c,
11710         * src/mcs51/main.c,
11711         * src/ds390/main.c,
11712         * src/z80/main.c,
11713         * src/avr/main.c,
11714         * src/pic/main.c,
11715         * src/pic16/main.c,
11716         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11717         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11718         tests (which uses the port's oclsExpense function)
11719         * src/SDCC.y,
11720         * src/SDCCast.c,
11721         * src/SDCCicode.c,
11722         * src/hc08/gen.c,
11723         * src/ds390/gen.c,
11724         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11725
11726 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11727
11728         * src/SDCCcse.c (ifxOptimize),
11729         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11730         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11731         deleting the IFX iCode.
11732         * src/hc08/ralloc.c: reduced unneeded slocs
11733         * src/hc08/gen.c: fixed bug in asmopToBoolean
11734
11735 2003-11-04  Borut Razem <borut.razem AT siol.net>
11736
11737         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11738           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11739           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11740           transferred to configure
11741
11742 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11743
11744         Use headers defined in the C[++] standards:
11745         * sim/ucsim/gui.src/serio.src/fileio.cc
11746         * sim/ucsim/gui.src/serio.src/frontend.cc
11747         * sim/ucsim/gui.src/serio.src/main.cc
11748         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11749         * support/Util/NewAlloc.c
11750         * as/hc08/lklibr.c
11751         * as/mcs51/lklibr.c
11752         * as/z80/aslist.c
11753         * as/z80/assym.c
11754
11755 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11756
11757         * Added MSVC projects for hc08 assembler and linker:
11758         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11759         /as/hc08/link_hc08.dsp
11760
11761 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11762
11763         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11764
11765 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11766
11767         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11768
11769 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11770
11771         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11772
11773 2003-10-31  Borut Razem <borut.razem AT siol.net>
11774
11775         * support/cpp2/cpplib.h,
11776           support/cpp2/cpplib.c,
11777           support/cpp2/cpplex.c,
11778           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11779           to switch _asm block preprocessing on / off. Default is
11780           #pragma preproc_asm +
11781
11782 2003-10-31  Borut Razem <borut.razem AT siol.net>
11783
11784         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11785           when outputting comment blocks (when executed with -C option) and
11786           _asm (SDCPP specific) blocks
11787
11788 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11789
11790         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11791
11792 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11793
11794         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11795
11796 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11797
11798         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11799         * src/SDCCast.c (decorateType): fixed bug #832664
11800
11801 2003-10-31  Borut Razem <borut.razem AT siol.net>
11802
11803         * support/cpp2/cpplex.c: fixed for SDCPP:
11804           comments(when executed with -C option) and _asm blocks
11805           were included even if they where in skipped #if block.
11806           Applied solution from GCC cpp 3.3.2
11807
11808 2003-10-31  Borut Razem <borut.razem AT siol.net>
11809
11810         * src/SDCC.lex: sdcc now understands both formats:
11811           '# <line_number> <file_name>' and
11812           '#line <line_number> <file_name>'
11813         * support/cpp2/cppmain.c: sdcpp now generates the standard
11814           '# <line_number> <file_name>' instead of former
11815           '#line <line_number> <file_name>'
11816
11817 2003-10-30  Borut Razem <borut.razem AT siol.net>
11818
11819         * support/cpp2/cpphash.h,
11820         * support/cpp2/cpplib.h
11821         * support/cpp2/cpplex.c,
11822         * support/cpp2/cppmain.c,
11823         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11824
11825 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11826
11827         Fixed a number of problems revealed by bug #827883.
11828         * src/SDCCloop.c (loopInvariants): Spill location of the
11829         result operand should be recomputed if extracted from
11830         a loop. Also, don't extract assignments of an iTemp
11831         from a literal.
11832         * src/SDCCast.c (isConformingBody): loop reversal should
11833         not occur if the control variable is involved with a
11834         relational operator.
11835
11836 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11837
11838         * .version: bumped to 2.3.6 to reflect the big improvements
11839         made by Erik and Klaus. Thanks!
11840
11841 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11842
11843         Replaced the livrange code.
11844         * src/SDCClrange.c: added new LR code
11845         * src/SDCCloop.c,
11846         * src/SDCCBBlock.h: removed remainig parts from old LR code
11847         * src/ds390/ralloc.c,
11848         * src/ds390/gen.c: minor fixes to make it work with new code
11849
11850 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11851
11852         * as/hc08/asm.h,
11853         * as/hc08/lkrloc.c,
11854         * src/hc08/gen.c,
11855         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11856         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11857         (tweaked fix for bug #818696)
11858
11859 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11860
11861         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11862
11863 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11864
11865         * src/SDCCmain.c,
11866         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11867         * src/mcs51/gen.c (gencjneshort),
11868         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11869         more efficient (per Scott Bronson's suggestion)
11870
11871 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11872
11873         Extended the semantics of the critical keyword to include
11874         individual statements. See RFE #827755 and #799831
11875         * src/SDCC.y
11876         * src/SDCCicode.c
11877         * src/SDCCopt.c
11878         * src/SDCCast.c
11879         * support/Util/SDCCerr.c
11880         * support/Util/SDCCerr.h
11881         * src/mcs51/gen.c
11882         * src/ds390/gen.c
11883         * src/hc08/gen.c
11884
11885 2003-10-19  Borut Razem <borut.razem AT siol.net>
11886
11887         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11888
11889 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11890
11891         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11892         Fixed bug #818696
11893         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11894         and predecrement operand is displayed
11895
11896 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11897
11898         * src/SDCCval.c (valMinus): fixed bug #826041
11899
11900 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11901
11902         Some hc08 related updates that I missed earlier
11903         * sim/ucsim/stypes.h
11904         * support/regression/ports/hc08/spec.mk
11905
11906 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11907
11908         New target "hc08" for the Motorola 68hc08 family of micros
11909
11910         * configure
11911         * configure.in
11912         * Makefile
11913         * src/hc08/*
11914         * src/SDCCmain.c
11915         * src/port.h
11916         * sim/ucsim/hc08.src/*
11917         * sim/ucsim/configure.in
11918         * src/ucsim/configure
11919         * sim/ucsim/packages_in.mk
11920         * as/hc08/*
11921         * as/Makefile
11922         * device/include/mc68hc908qy.h
11923         * device/lib/hc08/*
11924         * device/lib/Makefile.in
11925         * support/regression/ports/hc08/*
11926         * support/regression/Makefile
11927
11928 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11929
11930         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11931         regression test
11932         * src/ds390/gen.c (genCast): fixed bug #821957
11933
11934 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11935
11936         * device/lib/logf.c: "fixed" overlay bug
11937         * support/regression/ports/host/spec.mk: added m library
11938         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11939         * support/regression/tests/float_trans: added (for Eric)
11940
11941 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11942
11943         * src/mcs51/gen.c (genCpl): fixed bug
11944         http://sf.net/mailarchive/message.php?msg_id=6263915
11945
11946 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11947
11948         * src/SDCCast.c (decorateType): added extended constant folding
11949         * src/SDCCsymt.c (computeType): cleanup
11950         * src/SDCCval.c (valShift): minor optimization
11951         * support/regression/tests/ast_constant_folding.c: added
11952
11953 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11954
11955         * src/SDCCmain.c: removed some unintended changes
11956
11957 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11958
11959         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11960         * src/z80/gen.c: fixed part of bug #817589
11961         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11962
11963 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11964
11965         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11966         * src/SDCCcflow.c
11967         * src/SDCCcse.c
11968         * src/SDCCdflow.c
11969         * src/SDCClabel.c
11970         * src/SDCClrange.c
11971         * src/SDCCmem.c
11972         * src/SDCCopt.c
11973         * src/SDCCpeeph.c
11974         * src/SDCCset.c
11975         * src/avr/ralloc.c
11976         * src/ds390/ralloc.c
11977         * src/izt/ralloc.c
11978         * src/mcs51/ralloc.c
11979         * src/pic/ralloc.c
11980         * src/pic16/ralloc.c
11981         * src/xa51/ralloc.c
11982         * src/z80/ralloc.c
11983         * src/z80/gen.c: removed unused label "release:"
11984
11985 2003-10-06  Borut Razem <borut.razem AT siol.net>
11986
11987         * src/SDCC.lex: removed definition of unused variables
11988           save_optimize and save_options
11989
11990 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11991
11992         * clean.mk: removed '=' in "-maxdepth=1"
11993         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11994         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11995
11996 2003-10-06  Borut Razem <borut.razem AT siol.net>
11997
11998         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11999           my_unput() replaced by unput()
12000
12001 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
12002
12003         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
12004         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
12005         type-punned pointer will break strict-aliasing rules"
12006         Old LR behaviour is again default; Klaus' LR can be choosen by
12007         defining the environment variable LRKLAUS
12008         * src/SDCCBBlock.h
12009         * src/SDCCloop.c
12010         * src/SDCClrange.c
12011         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
12012         * clean.mk: fixed removal of files in bin/CVS/
12013         * device/lib/clean.mk: fixed removal of directories small and large
12014         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
12015         * src/SDCCicode.c,
12016         * src/SDCCval.c: removed superflous test for pedantic
12017
12018 2003-10-05  Borut Razem <borut.razem AT siol.net>
12019
12020         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
12021           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
12022           message "unmatched #pragma SAVE and #pragma RESTORE"
12023
12024 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12025
12026         * doc/sdccman.lyx: various additions and updates (interrupts, inline
12027           assembly, critical functions, atomic, nojtbound)
12028
12029 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
12030
12031         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
12032         * src/SDCCBBlock.h
12033         * src/SDCCloop.c
12034         * src/SDCCloop.h
12035         * src/SDCClrange.c
12036
12037 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12038
12039         * src/z80/gen.h,
12040         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12041         * src/mcs51/gen.h
12042         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12043         * src/ds390/gen.h
12044         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12045         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
12046         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
12047
12048 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12049
12050         * src/z80/gen.c (genRet): fixed bug #524753
12051         * src/z80/gen.c (genCast): fixed internal error on cast from
12052         pointer to long
12053         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
12054         fix for bug #477835 to the z80
12055         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
12056         for tracking iCodes in the peephole optimizer for z80
12057
12058 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12059
12060         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
12061         the other part of bug #814548
12062         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
12063
12064 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
12065
12066         * src/SDCCcse.c: fixed part of bug #814548
12067
12068 2003-09-28  Borut Razem <borut.razem AT siol.net>
12069
12070         * src/asm.c: rewrite of printILine() to use temporary file instead
12071           a pipe
12072         * src/xa51/main.c: commented out declaration of int rewinds
12073
12074 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12075
12076         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
12077
12078 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12079
12080         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
12081         * src/asm.c (printILine): Fixed bug #811015
12082
12083 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12084
12085         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
12086         freeing.
12087
12088 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12089
12090         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
12091         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
12092         to correctly handle general case of AOP_PAIRPTR
12093         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
12094
12095 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12096
12097         * src/mcs51/ralloc.c (fillGaps),
12098         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
12099         register positioning bug)
12100
12101 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
12102
12103         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
12104
12105 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12106
12107         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
12108         genCodePointerGet, genGenPointerGet, genFarPointerSet,
12109         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
12110         (ralloc doesn't intentionally do this now, but perhaps later)
12111         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
12112         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
12113         register positioning bugs (Fixed bug #762602 and #795325)
12114         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
12115         (Fixed bug #808779)
12116         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
12117         lines that --i-code-in-asm generates
12118
12119 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12120
12121         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
12122         trying to fclose a FILE* that was already closed.
12123
12124 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12125
12126         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
12127         of const struct should be treated as if const themselves)
12128
12129 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
12130
12131         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
12132
12133 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12134
12135         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
12136         Unix (/n) and DOS (/r/n) line terminations.
12137
12138 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12139
12140         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
12141         bug #613775
12142
12143 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12144
12145         * src/mcs51/gen.c (genFunction, genEndFunction),
12146         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
12147         and restore of EA so that stack offsets to parameters are
12148         correct when using both critical and reentrant/stack-auto.
12149         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
12150         size (can be triggered in error if sloc is shared between
12151         different sized objects)
12152         * device/include/float.h: fixed macros to explicitly use
12153         unsigned long where needed
12154
12155 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
12156
12157         Feature req. 799831: added code to allow nesting of critical functions
12158         * src/mcs51/gen.c (genFunction, genEndFunction)
12159         * src/ds390/gen.c (genFunction, genEndFunction)
12160
12161 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12162
12163         * src/SDCCsymt.c (sclsFromPtr),
12164         * src/SDCCsymt.h,
12165         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
12166         support for standard C idiom of memory mapped variables; for
12167         example, *((xdata int*)0x1234) = 1 is now internally equivalent
12168         to xdata int at 0x1234 tempvar = 1.
12169         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
12170         provided by Akiya ISHIDA
12171
12172 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
12173
12174         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
12175         * src/SDCCval.c (constVal): added reduction from int to char
12176         * src/SDCCval.c (valMult, valDiv): fixed sign handling
12177         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
12178         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
12179         to ignore the sign
12180         * support/regression/tests/shifts.c: fixed
12181
12182 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12183
12184         * src/z80/gen.c (genXor): Fixed bug #805445
12185
12186 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12187
12188         Fixed bug #621531 (const & volatile confusion in the type chain).
12189         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
12190         refer to the const or volatile state of the pointer itself.
12191
12192         * src/SDCCast.c
12193         * src/SDCCglue.c
12194         * src/SDCCicode.c
12195         * src/SDCCsymt.c
12196         * src/SDCCval.c
12197         * src/SDCC.y
12198         * src/SDCCsymt.h
12199         * src/pic/gen.c
12200         * src/pic/ralloc.c
12201         * src/pic16/gen.c
12202         * src/pic16/ralloc.c
12203         * support/regression/tests/const.c
12204
12205 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12206
12207         When checking for duplicated modules, use absolute paths
12208         instead of relative paths.  Files changed:
12209
12210         * as/mcs51/lklib.c
12211         * link/z80/lklib.c
12212
12213 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12214
12215         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
12216
12217 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12218
12219         * device/include/string.h: added size_t typedef, changed
12220         prototypes to use size_t, eliminated separate reentrant and
12221         non-reentrant declarations, added _memmove declaration
12222         * device/lib/_memcpy.c: changed to use size_t instead of int,
12223         changed /4 to >>2 to avoid division library call
12224         * device/lib/_memcmp.c,
12225         * device/lib/_memset.c,
12226         * device/lib/_strncat.c,
12227         * device/lib/_strncpy.c,
12228         * device/lib/_strncmp.c: changed to use size_t instead of int
12229         * device/lib/_memmove.c: new file (fixed bug #772294)
12230         * device/lib/Makefile.in: added _memmove.c
12231         * device/lib/z80/asm_strings.s: fixed bug #772290
12232         * support/regression/tests/bitfields.c: attempt to fix host assertion
12233         failure on amd64-unknown-linux2.2
12234
12235 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12236
12237         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
12238         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
12239         * as/z80/asmain.c (main): fixed bug #801766
12240
12241 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
12242
12243         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
12244         compilers
12245
12246 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12247
12248         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
12249         reported in bug #800609
12250
12251 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
12252
12253         * Top header beautifications in src/pic16 directory:
12254           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
12255           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
12256           pcoderegs.h, ralloc.c, ralloc.h
12257         * main.c: added top header and GPL license notice
12258         * pcode.c: fixed the if-conditional warning
12259
12260 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
12261
12262         * device/lib/_mullong.c: replaced int by short for gcc
12263
12264 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12265
12266         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
12267         and JUMPTABLE iCodes properly now (worked by accident before)
12268         * src/mcs51/gen.c (leftRightUseAcc),
12269         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
12270         iCode properly now. Use getSize instead of nRegs since a & b
12271         aren't part of the nRegs tally.
12272
12273 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
12274
12275         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
12276         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
12277           before instructions that use the _STATUS register
12278
12279 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
12280
12281         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
12282         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
12283         fetching of the pointer
12284         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
12285         copied from genNearPointerSet()
12286         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
12287         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
12288         If they pop r0/r1 they must be called in the opposite order than aopOp().
12289         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
12290         (resp. --stack-auto), prepared for --xstack
12291
12292 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12293
12294         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
12295
12296 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12297
12298         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
12299         these ports have their own __sdcc_external_start()
12300
12301 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
12302
12303         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12304         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
12305         type for bits was changed. It resulted in bit variables becoming
12306         global, which is not permitted in PIC 14 assembly output.
12307
12308 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12309
12310         * doc/sdccman.lyx: various additions and updates. Rearranged sections
12311
12312 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12313
12314         Z80 and MCS51 linkers complaint if a public symbol is defined
12315         in more than one library module:
12316
12317         * as/mcs51/lklib.c
12318         * link/z80/lklib.c
12319         * as/mcs51/Makefile.in
12320
12321 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12322
12323         A few small changes that speed up the peephole optimizer.
12324
12325         * src/SDCCpeeph.c
12326
12327 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12328
12329         Try to make the peephole optimizer smarter by maintaining
12330         an association between the assembly source code and the
12331         iCodes that originated them. Put this information to use
12332         with a new peephole rule condition "notVolatile" so that
12333         the rules can be aggressive yet still safe.
12334
12335         * src/SDCCpeeph.c
12336         * src/SDCCpeeph.h
12337         * src/mcs51/gen.c
12338         * src/mcs51/peeph.def
12339
12340 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12341
12342         Fixed bug #741761
12343
12344         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
12345         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
12346         if the left or right operand symbols have the accuse flag set.
12347
12348 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12349
12350         Changed the type of the result of the ! (NOT) operator to char;
12351         previously it returned the same type as the source. This allows
12352         us to eliminate all the genFloatNot functions (all of its target
12353         implementations were very buggy) since !float can use the same
12354         code as !long now.
12355
12356         * src/SDCCicode.c (ast2iCode): ! returns char
12357         * src/mcs51/gen.c (genNot, genNotFloat),
12358         * src/ds390/gen.c (genNot, genNotFloat),
12359         * src/z80/gen.c (genNot, genNotFloat),
12360         * src/pic/gen.c (genNot, genNotFloat),
12361         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
12362
12363 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
12364
12365         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12366         1. Interrupt would not compile properly. Ensure PCLATH register is saved
12367            during interrupts. Ensure WSAVE is located at a shared bank address.
12368         2. Fixed page selection in some places
12369         3. Fixed BTFSS/C to where necessary use registers directly and not simply
12370            the registers name strings.
12371         4. Fixed "signed / unsigned compare" compiler warnings.
12372         5. The PIC port manages its own allocation of the general purpose
12373            registers, but makes no attempt to reuse them. As a result when
12374            compiling it soon runs out of general purpose registers. Some
12375            additional code was added to the files pcode.c and device.c to walk
12376            through the function call tree and rename the registers so that they
12377            get reused.
12378
12379         * src/pic/device.c
12380         * src/pic/gen.c
12381         * src/pic/glue.c
12382         * src/pic/pcode.c
12383         * src/pic/pcode.h
12384         * src/pic/ralloc.c
12385         * src/pic/ralloc.h
12386         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
12387         genPlus() & genMinus() when the result is the same as left or right
12388
12389 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12390
12391         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
12392
12393 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12394
12395         Made bitfield a distinct type from bit so that bitfields
12396         convert as per ANSI C and bits retain their traditional
12397         boolean style behaviour. Implemented bitfield support in
12398         the z80 port.
12399
12400         * src/SDCCsymt.h,
12401         * src/SDCCsymt.c,
12402         * src/SDCCast.c,
12403         * src/cdbFile.c,
12404         * src/mcs51/gen.c,
12405         * src/ds390/gen.c: bit v bitfield split
12406         * src/z80/gen.c: New support for bitfields
12407         * support/regression/tests/bitfields.c: reenabled z80,
12408         added more tests
12409
12410 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12411
12412         Rules 246.x, 247.x relate to bitfields, the others speed up
12413         access to xdata mapped I/O devices.
12414
12415         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
12416
12417 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12418
12419         Cleaned up genPackBits and genUnpackBits and added two helper
12420         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
12421         for literal assignments in genPackBits (thanks to Frieder for
12422         reminding me).
12423
12424         * src/mcs51/gen.c
12425         * src/ds390/gen.c
12426
12427 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12428
12429         Fixed bug #748310 (pointer to function type mishandled when the
12430         function name is omitted). Also fixed a SIGSEGV when a function
12431         attribute (reentrant, etc) is used on a non-function or on a
12432         function but misplaced before the parameter list.
12433
12434         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
12435         bug #748310
12436         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
12437         * support/Util/SDCCerr.h,
12438         * support/Util/SDCCerr.c: Added func attr misuse error msg
12439
12440 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12441
12442         Fixed bug #787649 by anonymous
12443         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
12444         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
12445
12446 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12447
12448         Fixed numerous bitfield problems.
12449
12450         * src/SDCC.y: More bitfield related error checking
12451         * src/SDCCsymt.h,
12452         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
12453         * support/Util/SDCCerr.h,
12454         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
12455         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12456         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12457         * support/regression/tests/bitfields.c: tests added
12458
12459 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12460
12461         Made the constant following the "interrupt" keyword optional. If
12462         omitted, the function will not automatically be given an entry
12463         in the interrupt vector table (similar to #pragma NOIV, but
12464         less syntacticly kludgy). The interrupt number is also now
12465         range checked. Also fixed a bug in the high order bit example
12466         in the manual.
12467
12468         * src/SDCC.y
12469         * src/SDCCmem.c
12470         * src/SDCCglue.c
12471         * src/SDCCsymt.h
12472         * support/Util/SDCCerr.c
12473         * support/Util/SDCCerr.h
12474         * doc/sdccman.lyx
12475
12476 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12477
12478         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
12479         * src/SDCCicode.c (operandOperation): rewritten some ops
12480         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
12481         * src/SDCCsymt.c (computeType): literals are handled the same way as any
12482         other type
12483         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
12484         be re-activated by defining REDUCE_LITERALS)
12485         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
12486         unsigned, but are signed by default
12487         * src/SDCCval.c (constVal): rearranged
12488         * src/SDCCval.c (valMod): preliminary fix
12489         * src/SDCCval.c (valCastLiteral): use TYPE_* types
12490         * support/regression/literalop.c: added, work in progress
12491
12492 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12493
12494         Generate warnings for useless declarations like "char data;"
12495         that don't do what new users expect.
12496
12497         * src/SDCC.y
12498         * support/Util/SDCCerr.h
12499         * support/Util/SDCCerr.c
12500
12501 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
12502
12503         * src/SDCCval.c (valMult): fix overflow detection of negative int
12504
12505 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12506
12507         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
12508
12509         Changes to support big endian targets:
12510
12511         * src/ports.h
12512         * src/SDCCglue.c
12513         * src/avr/main.c
12514         * src/ds390/main.c
12515         * src/izt/i186.c
12516         * src/mcs51/main.c
12517         * src/pic/main.c
12518         * src/pic16/main.c
12519         * src/xa51/main.c
12520         * src/z80/main.c
12521
12522 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
12523
12524         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
12525         * device/lib/time.c: fixed warning "integer overflow in expression"
12526
12527 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
12528
12529         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
12530         * src/SDCCval.c (constVal): changed default to signed; hex and octal
12531         constants are unsigned; added recognition of "u" flag for unsigned
12532         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
12533         * src/SDCCval.c (valDiv, valMod): fixed signdness
12534         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
12535         signedness of modulo, left and right shift
12536         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
12537         * support/Util/SDCCerr.h: added warning W_INT_OVL
12538         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
12539         * src/SDCCast.c (ast_print): improved output of constants
12540
12541 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12542
12543         Fixed some warnings when building with MSVC:
12544
12545         * as/mcs51/asdata.c
12546         * as/z80/asdata.c
12547         * as/mcs51/asm.h
12548         * as/z80/asm.h
12549         * link/z80/aslink.h
12550         * link/z80/lkdata.c
12551         * link/z80/lkeval.c
12552         * link/z80/lkgb.c
12553         * link/z80/lkihx.c
12554         * link/z80/lks19.c
12555         * link/z80/lksym.c
12556         * support/cpp2/cpplib.c
12557         * src/ds390/gen.c
12558         * src/mcs51/gen.c
12559
12560 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
12561
12562         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
12563
12564 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12565
12566         * support/librarian/clean.mk: Do not remove Makefile.
12567         * support/librarian/Makefile: added.
12568
12569 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12570
12571         Added librarian to MSVC build:
12572         * all.dsp
12573         * sdcc.dsw
12574         * support/librarian/librarian.dsp
12575
12576         'configure' not needed for librarian, removed:
12577         * support/librarian/configure
12578         * support/librarian/configure.in
12579         * support/librarian/config_in.h
12580         * support/librarian/Makefile.in
12581
12582         Hopefully these ones built the librarian and the rest of sdcc properly:
12583         * Makefile
12584         * Makefile.common.in
12585
12586         Messed up 'configure', so revert to previous version:
12587         * configure
12588         * configure.in
12589
12590 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
12591
12592         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
12593         there, while the mantissa of a double is "only" 53 bits wide.
12594
12595 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12596
12597         Adding sdcclib to the build.  MSVC project coming soon.
12598         Files added/changed:
12599
12600         * support/librarian/clean.mk
12601         * support/librarian/configure
12602         * support/librarian/configure.in
12603         * support/librarian/config_in.h
12604         * support/librarian/Makefile.bcc
12605         * support/librarian/Makefile.in
12606         * support/librarian/sdcclib.c
12607         * Makefile.bcc
12608         * Makefile
12609         * Makefile.common.in
12610         * configure
12611         * configure.in
12612
12613 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12614
12615         Linker now complaints if linked modules have conflicting options, for
12616         example, one compiled using --model-large and another one compiled with
12617         --model-small.  The following files were modified:
12618
12619         * as/mcs51/asdata.c
12620         * as/mcs51/aslink.h
12621         * as/mcs51/asm.h
12622         * as/mcs51/asmain.c
12623         * as/mcs51/asout.c
12624         * as/mcs51/i51pst.c
12625         * as/mcs51/lkdata.c
12626         * as/mcs51/lklibr.c
12627         * as/mcs51/lkmain.c
12628         * as/z80/asdata.c
12629         * as/z80/asm.h
12630         * as/z80/asmain.c
12631         * as/z80/asout.c
12632         * as/z80/z80pst.c
12633         * link/z80/aslink.h
12634         * link/z80/lkdata.c
12635         * link/z80/lklibr.c
12636         * link/z80/lkmain.c
12637         * src/SDCCglue.c
12638
12639 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12640
12641         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
12642         as/mcs51/lklibr.c: Generate a warning when a library is not found.
12643
12644 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
12645
12646         * src/z80/mappings.i: fix _mul[us][int,long] entries
12647
12648 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12649
12650         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
12651
12652 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12653
12654         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
12655         * support/regression/tests/bitopcse.c: added
12656         fixed warning:
12657         * src/avr/gen.c:
12658         * src/pic/gen.c:
12659         * src/pic16/gen.c:
12660         * src/z80/gen.c:
12661         * src/xa51/gen.c:
12662
12663 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12664
12665         added support for new library format to z80, gbz80 linkers:
12666         *link/z80/aslink.h
12667         *link/z80/lklex.c
12668         *link/z80/lklib.c
12669         *link/z80/lklist.c
12670
12671 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12672
12673         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
12674         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
12675
12676 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
12677
12678         added DUMMY_READ_VOLATILE:
12679         * src/SDCC.y:
12680         * src/avr/gen.c:
12681         * src/xa51/gen.c:
12682         * src/z80/gen.c:
12683         * src/pic/gen.c:
12684         * src/pic16/gen.c:
12685         * src/mcs51/gen.c:
12686         * src/ds390/gen.c:
12687         * src/SDCCcse.c (algebraicOpts): many improvements
12688         * src/SDCCcse.h: removed algebraicOpts()
12689         * src/SDCCicode.c (picDummyRead): added
12690
12691 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12692
12693         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12694         "Insufficient space in data memory".
12695
12696 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12697
12698         * src/mcs51/gen.c: fixed bug #771358
12699         * src/z80/gen.c: fixed bug #759087
12700
12701 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12702
12703         * src/pic16/glue.c: minor cleanup by Vangelis
12704
12705 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12706
12707         * device/include/regc515c.h: fixed #758477
12708         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12709         * device/lib/_gptrput.c: saved a few bytes
12710         * my tab spacing is 8, yours too?)
12711         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12712         * device/lib/serial.c: process RX bytes earlier than TX bytes
12713         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12714
12715 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12716
12717         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12718
12719 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12720
12721     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12722
12723 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12724
12725         * device/lib/Makefile.in: bad fix, reverted to 1.43
12726
12727 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12728
12729         * device/lib/Makefile.in: added missing z80 object files
12730
12731 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12732
12733         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12734         pic16 progress by Vangelis:
12735         * src/SDCCglobl.h:
12736         * src/SDCCmain.c:
12737         * src/pic/Makefile:
12738         * src/pic:
12739         * pic/Makefile:
12740         * pic16/device.c:
12741         * pic16/device.h:
12742         * pic16/gen.c:
12743         * pic16/gen.h:
12744         * pic16/genarith.c:
12745         * pic16/glue.c:
12746         * pic16/main.c:
12747         * pic16/pcode.c:
12748         * pic16/pcode.h:
12749         * pic16/pcodepeep.c:
12750         * pic16/peeph.def:
12751
12752 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12753
12754     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12755
12756 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12757
12758     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12759     added gbz80 build to MSVC project.
12760     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12761     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12762     from 8051 stuff and setup so it links using a .lnk file.
12763
12764 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12765
12766     * support/librarian/sdcclib.c: sdcc librarian.
12767     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12768     with sdcclib.
12769
12770 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12771
12772     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12773
12774 2003-07-02  Borut Razem <borut.razem AT siol.net>
12775
12776         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12777         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12778         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12779         src/xa51/main.c, src/z80/main.c:
12780         virtualization of glue() function: each port has it's own glue function,
12781         which is accessed by do_glue function pointer in PORT.general structure
12782
12783 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12784
12785         * DS800C400 fun, improved ROM interface and tinibios.
12786
12787 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12788
12789         * More support for DS80C400. Now includes beginning of interface to ROM.
12790
12791 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12792
12793         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12794
12795 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12796
12797         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12798
12799 2003-06-19  Borut Razem <borut.razem AT siol.net>
12800
12801         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12802
12803 2003-06-19  Borut Razem <borut.razem AT siol.net>
12804
12805         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12806         fixed Z80 port - crt0.o: cannot open.
12807
12808 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12809
12810         * support/Util/MySystem.c (merge_command): revert bad fix
12811
12812 2003-06-18  Borut Razem <borut.razem AT siol.net>
12813
12814         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12815
12816 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12817
12818         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12819         option --use-stdout sends errors to stdout instead of stderr.
12820
12821 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12822
12823         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12824
12825 2003-06-15  Borut Razem <borut.razem AT siol.net>
12826
12827         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12828         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12829         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12830         fixed width array of pointers replaced with sets;
12831         multiple include and lib paths ared transferred to preprocessor and linker
12832         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12833         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12834         fixed width array of pointers
12835         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12836         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12837         fixupPath(), getPathDifference()
12838         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12839         fixed width array of pointers
12840
12841 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12842
12843         * src/pic16/ralloc.c: fix warnings
12844         * src/pic16/pcode.c: fix warning
12845
12846 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12847
12848          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12849         know all the details, but essentially this set of changes enable
12850         the pic16 port to generate movff instructions and generate assembler
12851         directives,
12852         * src/SDCCmain.c:
12853         * src/pic16/gen.c:
12854         * src/pic16/glue.c:
12855         * src/pic16/pcode.c:
12856         * src/pic16/device.c:
12857         * src/pic16/main.c:
12858         * src/pic16/pcode.h:
12859         * src/pic16/pcoderegs.c:
12860         * src/pic16/ralloc.c:
12861         * src/pic16/ralloc.h:
12862
12863 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12864
12865         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12866         added option --vc, so sdcc errors and warnings are compatible with
12867         Microsoft Visual Studio.
12868
12869 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12870
12871         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12872           device/lib/libfloat.lib: added atof function.
12873
12874 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12875
12876         * doc/sdccman.lyx: updated to Lyx 1.3
12877         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12878         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12879         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12880
12881 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12882
12883         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12884
12885 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12886
12887         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12888           additions to the "related tools/documentation" section
12889
12890 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12891
12892         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12893
12894 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12895
12896         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12897         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12898
12899 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12900
12901         * doc/sdccman.lyx: fix double dash and other minor things
12902         * doc/Makefile: fix double dash
12903
12904 2003-05-28  Karl Bongers(patches from Martin Helmling)
12905         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12906           condition and ignore commands.
12907
12908 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12909
12910         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12911           is in parts still quite out of date, I did changes as far as I felt makes sense
12912           for a non-native english speaker.
12913           Please feel free to add to the manual or to correct my changes.
12914         * doc/Makefile: undid touching the date of intermediate tex files.
12915
12916 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12917
12918         * doc/sdccman.lyx: Manual has an index now
12919
12920 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12921
12922         Finalize muluint/mulsint and mululong/mulslong merging:
12923         * device/lib/_mulint.c
12924         * device/lib/_mullong.c
12925         * device/lib/gbz80/mul.s
12926         * device/lib/gbz80/stubs.s
12927         * device/lib/z80/mul.s
12928         * device/lib/z80/stubs.s
12929         * src/SDCCsymt.c (initCSupport)
12930
12931 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12932
12933         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12934         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12935           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12936           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12937           instead of /Zm500.
12938
12939 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12940
12941         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12942           the regression tests I'm not brave enough to enable 245.b, 245.c
12943         * doc/sdccman.lyx: added latex preamble for hyperref package.
12944           Using pdflatex this will give you a hyperlinked pdf file with
12945           bookmarks. (prepend '%' before /usepackage if this breaks something)
12946
12947 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12948
12949          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12950
12951 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12952
12953         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12954
12955 2003-05-21    <johan AT balder>
12956
12957         * src/SDCCglue.c (printIval): fixed bug #739934
12958
12959 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12960
12961         Applied patch from bug 737905 (renamed yylineo to mylineno):
12962         * src/altlex.c
12963         * src/SDCCast.c
12964         * src/SDCglobl.h
12965         * src/SDCC.lex
12966         * src/SDCCsymt.c
12967         * src/SDCCval.c
12968         * src/pic16/pcode.c: Cleaned warnings
12969         * src/pic16/pcodeflow.c: Cleaned warnings
12970         * src/pic16/pcoderegs.c: Cleaned warnings
12971
12972 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12973
12974         * src/pic16/pcode.c: Cleaned warnings
12975         * src/pic16/pcodepeep.c: Cleaned warnings
12976         * src/pic16/ralloc.c: Cleaned warnings
12977
12978 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12979
12980         * doc/sdccman.lyx: fixed bug 739745
12981         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12982
12983 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12984
12985         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12986         it can be defined with CFLAGS when running configure
12987         * src/SDCCmain.c: fixed compiling + linking with object files
12988
12989 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12990
12991         * configure.in: configure for pic16 port,
12992             added --disable-pic16-port
12993         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12994         * src/SDCCmain.c: linkOptions is changed to set *,
12995             added if/endif conditional macros to remove options help
12996             messages from optionsTable when a port is not configured, added
12997             support for the PIc16 port in the ports table, when executing
12998             the compiler with no port specified on command line, a default
12999             port is selected with the new macro DEFAULT_PORT which is
13000             defined in port.h, in setDefaultOptions() linkOptions is removed
13001             from initialization assignment, since now it is a set,
13002             parseCmdLine uses setParseWithComma for linkOptions, in
13003             linkEdit() linkOptions are accessed with new function indexSet()
13004             which returns the i'th item of a set variable. See SDCCset.c, in
13005             linkEdit() when calling buildCmdLine(), added linkOptions as
13006             last argument. Now users can pass arguments to gplink via the
13007             -Wl option, main() uses pic16glue() to glue up pic16 programs
13008         * src/SDCCpeeph.c: various changes to support pic16
13009         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
13010             return the i'th item of the set
13011         * src/SDCCset.h: added function prototype for indexSet()
13012         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
13013         * src/clean.mk: added pic16 in CLEANALLPORTS variable
13014         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
13015             added macro DEFAULT_PORT
13016         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
13017         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
13018             generated
13019         * src/pic16/glue.c: commented out some error producing lines
13020         * src/pic16/main.c: __config directives are commented out to stop
13021             gpasm complaining and test the linkage with gplink, _linkCmd and
13022             _asmCmd changed to be more gplink and gpasm friendly
13023         * src/pic16/peeph.def: peep rule 3 is commented out, since it
13024             produced an error when parsed, peep rule 12 is added to utilize
13025             movff, but it is commented out since the pCode does not support
13026             yet a command with 2 address arguments
13027
13028 2003-05-18    <johan AT balder>
13029
13030         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
13031         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
13032 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
13033
13034         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
13035   Added feature to script commands from file.
13036
13037 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
13038
13039         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
13040         * src/SDCCutil.c: include ctype.h for win32
13041
13042 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
13043
13044         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
13045
13046 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
13047
13048         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
13049   Fixed so you can set breakpoints prior to run, run does not stop
13050   on entry now.  Add tbreak.  Other enhancements and fixes for use
13051   with ddd.
13052
13053 2003-05-12  Borut Razem <borut.razem AT siol.net>
13054
13055         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
13056
13057 2003-05-11  Borut Razem <borut.razem AT siol.net>
13058
13059         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
13060         the path of bin directory, so that PATH is the only env. variable, which has to be set
13061         in case of standard installation.
13062         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
13063         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
13064         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
13065
13066 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
13067
13068         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
13069         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
13070         temp files are in the port dir; clean the gen/test directory when
13071         generating new test.c
13072         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
13073         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
13074         * support/regression/tests/zeropad.c: added
13075
13076 2003-05-09    <johan AT balder>
13077
13078         * src/SDCCglue.c: fixed bug #597940
13079
13080 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
13081
13082         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
13083   cache sfr, optimize next,step, fix off by one sourceline,
13084   support ddd list function.
13085         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
13086
13087 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
13088
13089         * support/regression/HTMLgen.py: added compare_s2f()
13090         * support/regression/Makefile: redo 1.27
13091         * support/regression/generate-cases.py: redo 1.5
13092
13093 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
13094
13095         * support/regression/tests/float.c: workaround 33 bit hex constant
13096         * support/regression/tests/simplefloat.c: fix division for host
13097
13098 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
13099
13100         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
13101         that tame's the PIC's over-aggressive optimizer.
13102
13103 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13104
13105          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
13106          support for MSVC.
13107
13108 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
13109
13110         Initial support for DS80C400. "Hello world" runs on TINIm400
13111         (with polled I/O).
13112
13113 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
13114
13115          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
13116          * Some notes on ddd usage added in debugger/README
13117          Martin Helmling adding more features and fixes for ddd GUI debugger.
13118          Code added for nexti, stepi, up, down, and other adjustments.
13119
13120 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
13121
13122         * src/pic/pCodepeep.c non-wildcard asmops are now handled
13123         * src/pic/peeph.def Added two rules to optimize carry manipulation
13124         * src/pic/* removed debug printfs
13125
13126 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
13127
13128         * debugger/mcs51/cmd.c: added header newalloc.h
13129
13130 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
13131
13132         * as/Makefile: new EXEEXT
13133         * as/z80/Makefile: remove trailing slash of BUILDIR
13134         * as/z80/clean.mk: new EXEEXT
13135         * Makefile.common.in: add to CFLAGS (and others), don't replace it
13136         * support/cpp2/Makefile.in: new EXEEXT
13137         * src/pic/glue.c (pic14emitRegularMap): fixed warning
13138
13139 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
13140
13141         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
13142         EXEEXT was introduced to fix all related problems with targets
13143         "clean", "install" and "uninstall"; a couple of further flaws
13144         especially with "clean" have been fixed too
13145         * as/mcs51/Makefile.in
13146         * as/mcs51/clean.mk
13147         * as/z80/Makefile
13148         * Makefile
13149         * clean.mk
13150         * debugger/mcs51/Makefile.in
13151         * debugger/mcs51/clean.mk
13152         * link/z80/Makefile
13153         * link/z80/Makefile.in
13154         * link/z80/clean.mk
13155         * link/Makefile
13156         * packihx/Makefile.in
13157         * packihx/clean.mk
13158         * sim/ucsim/Makefile
13159         * sim/ucsim/clean.mk
13160         * sim/ucsim/avr.src/Makefile.in
13161         * sim/ucsim/avr.src/clean.mk
13162         * sim/ucsim/s51.src/Makefile.in
13163         * sim/ucsim/s51.src/clean.mk
13164         * sim/ucsim/xa.src/Makefile.in
13165         * sim/ucsim/xa.src/clean.mk
13166         * sim/ucsim/z80.src/Makefile.in
13167         * sim/ucsim/z80.src/clean.mk
13168         * sim/ucsim/main_in.mk
13169         * sim/ucsim/packages_in.mk
13170         * sim/ucsim/gui.src/Makefile.in
13171         * sim/ucsim/gui.src/serio.src/Makefile.in
13172         * sim/ucsim/gui.src/serio.src/clean.mk
13173         * src/Makefile.in
13174         * src/clean.mk
13175         * support/cpp2/Makefile.in
13176         * support/cpp2/clean.mk
13177         * support/makebin/Makefile
13178         * support/makebin/clean.mk
13179         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
13180         * doc/sdccman.lyx: --program-suffix no longer needed
13181
13182 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
13183
13184          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
13185          Martin Helmling added support for ddd GUI debugger.
13186          Code added to display assembly, set variables, and other commands
13187          to interface to ddd.
13188
13189 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
13190
13191         * as/Makefile: fix target clean
13192         * as/clean.mk: fix target clean
13193         * as/z80/clean.mk: fix target clean
13194
13195 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
13196
13197         * Makefile.common.in: added  AT EXEEXT AT
13198         * configure.in: removed all mingw32 stuff
13199         * configure: rebuilt from configure.in
13200         * doc/sdccman.lyx: updated section "installation"
13201         * support/scripts/sdcc_mingw32: adapted to configure
13202         * support/scripts/sdcc_cygwin_mingw32: added
13203
13204 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
13205
13206         * src/pic Added object file support for the PIC port
13207         * src/pic Applied patch from Craig Franklin (this started the object file support)
13208         * src/regression Updated the PIC regression tests for object files
13209
13210 2003-04-20  Borut Razem <borut.razem AT siol.net>
13211
13212         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
13213           lklex.c: In function `getfid':
13214           lklex.c:203: warning: array subscript has type `char'
13215         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
13216           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
13217         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
13218           stack handling macros
13219
13220 2003-04-19  Borut Razem <borut.razem AT siol.net>
13221
13222         * "handling space characters in file path" task:
13223         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
13224         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
13225         * support/Util/MySystem.h: make it self-sufficient
13226         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
13227           src/z80/main.c, sdcc/as/mcs51/lklex.c:
13228           handling space characters in file path
13229         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
13230           (it will be used by assemblers, which have their own includes, e.g. gpasm)
13231         * support/Util/MySystem.c: handling space characters in executable's path
13232
13233 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
13234
13235         * as/z80/Makefile: fix permanent rebuild of z80
13236         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
13237         * support/regression/tests/bitfields.c: added Johan's bitfields.c
13238
13239 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
13240
13241         * src/SDCCopt.c: add special case optimization to replace modulo by
13242           a power of two with a bitwise AND.
13243
13244 2003-04-18    <johan AT balder>
13245
13246         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
13247
13248 2003-04-17    <johan AT balder>
13249
13250         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
13251         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
13252
13253 2003-04-13  Borut Razem <borut.razem AT siol.net>
13254
13255         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
13256         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
13257           fixed mingw problem in adl_NORMALIZE_PATH
13258
13259 2003-04-12  Borut Razem <borut.razem AT siol.net>
13260
13261         * fixed "#pragma SAVE/RESTORE can not be nested":
13262         * src/SDCC.lex: reworked pragma handling functions
13263         * sdcc/src/SDCCglobl.h: reworked stack handling macros
13264         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
13265
13266 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13267
13268         * src/SDCCutil.c (pathEquivalent): defined but not used
13269         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
13270         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
13271         * configure: rebuilt from configure.in
13272         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13273         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13274         * device/include/Makefile.in: replace sdcc_datadir
13275         * device/lib/Makefile.in: replace sdcc_datadir
13276         * Makefile.common.in: add LDFLAGS from configure
13277         * packihx/Makefile.in: use LDFLAGS
13278         * src/Makefile.in: use LDFLAGS
13279         * support/cpp2/Makefile.in: add LDFLAGS from configure
13280         * support/makebin/Makefile: use LDFLAGS
13281         * .version: bumped version number to 2.3.5
13282
13283 2003-04-12  Borut Razem <borut.razem AT siol.net>
13284
13285         * completed "different paths" task:
13286         * src/SDCCmacro.c: fixed bug in handling quotes
13287         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
13288         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
13289
13290 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13291
13292         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
13293
13294 2003-04-11 kevin Vigor <kevin AT vigor.nu>
13295
13296         * ds390/gen.c ds390/peeph.def: fix bug 706781
13297
13298 2003-04-11  Borut Razem <borut.razem AT siol.net>
13299
13300         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
13301
13302 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
13303
13304         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
13305         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
13306          set - this bit used to not be set...).
13307         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
13308           bad code in PIC Port
13309         * src/regression/and2.c added to test bug 609268
13310         * src/regression/Makefile added and2.c to regression test
13311
13312
13313 2003-04-08    <johan AT CP255758-A>
13314
13315         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
13316         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
13317         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
13318
13319 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
13320
13321         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
13322         fix bug #487815
13323         * support/cpp2/Makefile.in: fix bug #487815
13324         * configure: rebuilt from configure.in
13325         * Makefile.common.in: docdir changed, new path suffixes
13326         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13327         * sdcc_vc_in.h: reflect changes from sdccconf.h
13328         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
13329         * src/SDCCutil.h: remove BINDIR hack
13330         * doc/sdccman.lyx: update new path hierarchy
13331
13332 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13333
13334         * src/SDCCpeeph.c: added okToRemoveSLOC test
13335
13336 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13337
13338         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
13339
13340 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13341
13342         * src/SDCCpeeph.c: added labelIsReturnOnly test
13343         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
13344
13345 2003-04-05    <johan AT balder>
13346
13347         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
13348         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
13349         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
13350         * src/SDCCast.c: fixed a warning
13351         * src/SDCCast.h: fixed a warning
13352         * src/SDCCicode.c (operandFromAst): fixed a warning
13353
13354 2003-04-04    <johan AT balder>
13355
13356         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
13357         * src/SDCCast.c (decorateType): fixed bug #715076
13358         * src/SDCC.y: fixed bug #702907
13359
13360 2003-04-03    <johan AT balder>
13361
13362         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
13363         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
13364         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
13365         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
13366         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
13367
13368 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
13369
13370         * _decdptr.c: fix return values
13371         * _gptrget.c: fix return values
13372         * _gptrgetc.c: fix return values
13373         * _gptrput.c: fix return values
13374         * _mulint.c: fix return values
13375         * as/z80/Makefile: fix 'make -j' problem
13376
13377 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
13378
13379         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
13380         * configure.in: big cleanup, updated to autoconf 2.5x
13381         * configure: rebuilt from configure.in
13382         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13383         * sdcc_vc_in.h: reflect changes from sdccconf.h
13384         * doc/Makefile: fixed a flaw in "make install"
13385
13386 2003-04-02    <johan AT balder>
13387
13388         * src/ds390/gen.c (genCmp): no comments
13389         * src/mcs51/gen.c (genCmp): no comments
13390         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
13391         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
13392
13393 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
13394
13395         * support/regression/generate-cases.py: place generated file in given sub directory
13396         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
13397         * support/regression/Makefile: improvements for 'make -j';
13398         side effect: it's simpler and faster now
13399
13400 2003-03-31  Borut Razem <borut.razem AT siol.net>
13401
13402         * src/z80/main.c: link-{port} and as-{port} defined without path
13403         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
13404
13405 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
13406
13407         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
13408
13409 2003-03-30  Borut Razem <borut.razem AT siol.net>
13410
13411         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
13412           changed type of list parameter to set
13413         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
13414         * src/port.h: changed type of do_assemble() parameter to set
13415         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
13416           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
13417           definition of "cppoutfilename" macro with NULL value in preProcess()
13418         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
13419         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
13420         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
13421           replaced with set *binPathSet
13422         * shash_add() deallocates the item, if allready exsists, before adding the new one
13423         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
13424
13425 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
13426
13427         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
13428           a nested for loop bug in the PIC port
13429         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
13430           for loops
13431
13432 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
13433
13434         * support/Util/dbuf.h: remove C++ stuff to make it portable
13435
13436 2003-03-28  Borut Razem <borut.razem AT siol.net>
13437
13438         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
13439           literal strings in stringLiteral()
13440         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
13441         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
13442           to the project
13443
13444 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
13445
13446         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
13447
13448 2003-03-26    <johan AT balder>
13449
13450         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
13451         * src/ds390/gen.c (saveRegisters): catched symbol abuse
13452         * src/SDCCast.c (decorateType): fixed " -v < 3"
13453
13454 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
13455
13456         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
13457         Added Lenny Story's debug infrastructure changes:
13458         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
13459         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
13460         * src/cdbFile.c: added
13461         * src/SDCCdebug.c: added
13462         * src/SDCCdebug.h: added
13463         * src/SDCCast.c (createFunction)
13464         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
13465         * src/SDCCmain.c (parseCmdLine, main)
13466         * src/SDCCmem.c (redoStackOffsets)
13467         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
13468         * src/SDCCsymt.h
13469         * src/common.h
13470         * src/avr/gen.c (genAVRCode)
13471         * src/ds390/gen.c (gen390Code)
13472         * src/mcs51/gen.c (gen51Code)
13473         * src/pic/gen.c (genpic14Code)
13474         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
13475         * src/xa51/gen.c (genXA51Code)
13476         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
13477
13478 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13479
13480         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
13481         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
13482
13483 2003-03-22    <johan AT balder>
13484
13485         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
13486
13487 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
13488
13489         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
13490         * doc/cdbfileformat.lyx: added, written by Lenny Story
13491         * doc/Makefile: added cdbfileformat.lyx
13492         * doc/clean.mk: added cdbfileformat.lyx
13493
13494 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
13495
13496         * src/mcs51/peeph.def: fix bug #705773
13497
13498 2003-03-20    <johan AT balder>
13499
13500         An sfr/sbit can have an "at #" AND an initializer
13501         * src/SDCCsymt.c (checkSClass):
13502         * src/SDCCmem.c (allocGlobal):
13503         * src/SDCCmem.c (allocLocal):
13504         * src/SDCCast.c (createBlock):
13505
13506 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
13507
13508         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
13509
13510 2003-03-16    <johan AT balder>
13511
13512         Undid the hackup of const and volatile, the problem is much bigger
13513         * src/SDCC.y:1.65
13514         * src/SDCCast.c:1.171
13515         * src/SDCCglue.c:1.138
13516         * src/SDCCicode.c:1.146
13517         * src/SDCCsymt.c:1.150
13518         * src/SDCCval.c:1.65
13519
13520 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
13521
13522         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
13523         * src/ds390/gen.c (genAddrOf): fixed bug #704087
13524
13525 2003-03-13    <johan AT balder>
13526
13527         Hackup const and volatile modifiers in type chains a bit:
13528         * src/SDCC.y:1.63
13529         * src/SDCCast.c:1.169
13530         * src/SDCCglue.c:1.136
13531         * src/SDCCicode.c:1.143
13532         * src/SDCCsymt.c1.146
13533         * src/SDCCsymt.h1.59
13534         * src/SDCCval.c:1.63
13535
13536 2003-03-12    <johan AT balder>
13537
13538         * src/SDCCBBlock.h: more LRH debugging junk
13539         * src/SDCCcflow.h: more LRH debugging junk
13540         * src/SDCCloop.c: more LRH debugging junk
13541         * src/SDCC.y (struct_declaration): fixed bug #697590
13542         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
13543         * src/ds390/gen.c (aopForRemat): fixed bug #700031
13544         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
13545
13546 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13547         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
13548         test function names must now match exactly).
13549         * src/SDCCcse.c: added special case in findCheaperOp to allow
13550         extending a short integer. Makes less awful code for bug 700121 test case.
13551
13552 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13553
13554         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
13555         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
13556
13557 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13558
13559         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
13560         actually called (operandsNotEqual() was called for all
13561         operandsNotEqualX tests).
13562
13563 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13564
13565         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
13566         with shorter literals. Fixes bug 700121.
13567
13568 2003-03-11    <johan AT balder>
13569
13570         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
13571
13572 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
13573
13574         * src/SDCCloop.c (mergeRegions): an evil beast is dead
13575         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
13576
13577 2003-03-10  Borut Razem <borut.razem AT siol.net>
13578
13579         * src/SDCCmain.c: pipe preprocessor's output
13580         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13581         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13582         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13583         which closes all pipes in pipeSet set
13584         * src/SDCCset.c: free deleted item in function deleteSetItem()
13585         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13586         moved from z80 to src subproject
13587         * .version: increased version number to 2.3.4
13588
13589 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
13590
13591         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
13592         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
13593         * support/regression/ports/xa51/spec.mk: fix typo
13594
13595 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
13596
13597         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
13598
13599 2003-03-09  Borut Razem <borut.razem AT siol.net>
13600
13601         * src/SDCCmain.c: pipe preprocessor's output
13602         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13603         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13604         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13605         which closes all pipes in pipeSet set
13606         * src/SDCCset.c: free deleted item in function deleteSetItem()
13607         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13608         moved from z80 to src subproject
13609
13610 2003-03-09  Borut Razem <borut.razem AT siol.net>
13611
13612         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
13613         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
13614         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
13615         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
13616         * src/SDCCglobl.h: unification of WIN32 native definitions
13617
13618 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13619
13620         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
13621
13622 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13623
13624         * src/configure.in:   check for endianess (even while cross-compiling)
13625         * src/configure:      check for endianess (even while cross-compiling)
13626         * src/configure_in.h: check for endianess (even while cross-compiling)
13627         * src/avr/gen.c:        remove old endianess stuff
13628         * src/mcs51/gen.c:      remove old endianess stuff
13629         * src/ds390/gen.c:      remove old endianess stuff
13630         * src/pic/gen.c:        remove old endianess stuff
13631         * src/pic/genarith.c:   remove old endianess stuff
13632         * src/pic/glue.c:       fix endianess check
13633         * src/pic16/gen.c:      remove old endianess stuff
13634         * src/pic16/genarith.c: remove old endianess stuff
13635         * src/pic16/glue.c:     fix endianess check
13636         * src/xa51/gen.c:       remove old endianess stuff
13637         * src/z80/gen.c:        fix endianess check
13638         * src/SDCCglue.c:       fix endianess check
13639         * src/ds390/peeph.def: fix bug 700036
13640
13641 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13642
13643         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
13644         * src/configure: find appropriate data-types on host for SDCC's int and long
13645         * src/configure.in: find appropriate data-types on host for SDCC's int and long
13646         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
13647         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
13648
13649 2003-03-07    <johan AT balder>
13650
13651         Just a big NOOP:
13652                 some minor cleanups before the big shot
13653                 OP_DEFS and OP_USES now use Kevin's protection
13654                 new option --nolabelopt
13655
13656         * src/SDCCBBlock.c:
13657         * src/SDCCast.c,:
13658         * src/SDCCcflow.c:
13659         * src/SDCCcse.c:
13660         * src/SDCCicode.c:
13661         * src/SDCCicode.h:
13662         * src/SDCClabel.c:
13663         * src/SDCCloop.c:
13664         * src/SDCCmain.c:
13665         * src/ds390/ralloc.c:
13666         * src/mcs51/ralloc.c:
13667         * src/pic/ralloc.c:
13668         * src/xa51/ralloc.c:
13669         * src/z80/ralloc.c:
13670
13671 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
13672
13673         * src/pic/pcode.c (get_op): fix 64 bit warnings
13674         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
13675         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
13676         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
13677         * support/regression/tests/malloc.c: fix 64 bit warnings
13678
13679 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
13680
13681         * src/mcs51/gen.c (genMinus): fixed bug 696436
13682
13683 2003-03-02  Borut Razem <borut.razem AT siol.net>
13684
13685         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13686
13687 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13688
13689         * configure.in: test for mkstemp
13690         * sdccconf_in.h: add HAVE_MKSTEMP
13691
13692 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13693
13694         * device/include/ctype.h: removed warning while using --stack-auto
13695         * device/include/malloc.h: removed warning while using --stack-auto
13696         * device/include/string.h: removed warning while using --stack-auto
13697
13698 2003-02-23  Borut Razem <borut.razem AT siol.net>
13699
13700         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13701         because NDEBUG is defined (see man assert)
13702         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13703
13704 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13705
13706         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13707         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13708
13709 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13710
13711         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13712         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13713
13714 2003-02-18    <johan AT balder>
13715
13716         * as/mcs51/asmain.c (asmbl): module can start with a digit
13717         * as/z80/asmain.c (asmbl): module can start with a digit
13718
13719 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13720
13721         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13722         * src/asm.c: fix pipe() for Mingw32
13723
13724 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13725
13726         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13727         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13728         make -V work again; --c1mode reads now from stdin
13729         * doc/sdccman.lyx: added --c1mode
13730         * support/Util/SDCCerr.c: new messages for c1 mode
13731         * support/Util/SDCCerr.h: new messages for c1 mode
13732         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13733
13734 2003-02-15    <johan AT balder>
13735
13736         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13737
13738 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13739
13740         * doc/sdccman.lyx: Environment variables, -o and other minor things
13741
13742 2003-02-14    <johan AT balder>
13743
13744         * src/xa51/main.c: before anyone really tries to use it :)
13745
13746         * Install doc's in share/sdcc/doc
13747         * removed some obsolete files
13748         * Do a proper make distclean and uninstall
13749         M Makefile.common.in
13750         R sdccbuild.sh
13751         M as/Makefile
13752         M device/include/Makefile.in
13753         M device/lib/Makefile.in
13754         M doc/sdccman.lyx
13755         M link/Makefile
13756         M sim/ucsim/doc/Makefile.in
13757         M src/clean.mk
13758         R src/avr/peeph.rul
13759         R src/xa51/peeph.rul
13760         M support/cpp2/Makefile.in
13761         M support/makebin/Makefile
13762
13763
13764 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13765
13766         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13767
13768 2003-02-10  Borut Razem <borut.razem AT siol.net>
13769
13770         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13771         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13772         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13773         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13774         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13775         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13776         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13777         src/z80/Makefile.bcc: Borland Makefile cleanup
13778         * as/z80/Makefile.bcc: Added Borland Makefile
13779         * support/cpp2/borland.h: Removed
13780
13781 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13782
13783         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13784         * src/SDCC.lex: new pragma NOIV
13785         * src/SDCCglobl.h: new pragma NOIV
13786         * src/SDCCmem.c: new pragma NOIV
13787
13788 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13789
13790         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13791
13792 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13793
13794         * src/SDCCmain.c: signal handling is switched off by --debug
13795         * doc/Makefile: small fix for install; use clean.mk again
13796         * doc/clean.mk: clean *.pdf and *.html too
13797
13798 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13799
13800         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13801         * device/lib/printfl.c: fix a ds390 bug by making it portable
13802         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13803         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13804         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13805         * debugger/mcs51/cmd.c: converted multi-line string literals
13806         * sim/ucsim/globals.cc: converted multi-line string literals
13807         * src/SDCCmain.c: introduced signal handler to remove temp files
13808         * doc/Makefile: small tweaks, implement clean
13809         * doc: removed generated files
13810
13811 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13812
13813         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13814         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13815         Address Record is not correctly generated for DS390."
13816
13817 2003-02-02  Borut Razem <borut.razem AT siol.net>
13818
13819         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13820         * as/mcs51/asm.h: fixed compilation with Borland C
13821         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13822         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13823         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13824         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13825         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13826         src/z80/Makefile.bcc: delete $(LIB) only if exist
13827         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13828
13829 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13830
13831         * device/include/malloc.h: introduced NULL
13832         * device/include/string.h: introduced NULL
13833         * device/include/stdlib.h: introduced NULL
13834         * device/lib/_memcpy.c: removed NULL
13835         * device/lib/_strcat.c: removed NULL
13836         * device/lib/_strchr.c: removed NULL
13837         * device/lib/_strcmp.c: removed NULL
13838         * device/lib/_strcpy.c: removed NULL
13839         * device/lib/_strcspn.c: removed NULL
13840         * device/lib/_strlen.c: removed NULL
13841         * device/lib/_strncat.c: removed NULL
13842         * device/lib/_strncmp.c: removed NULL
13843         * device/lib/_strncpy.c: removed NULL
13844         * device/lib/_strpbrk.c: removed NULL
13845         * device/lib/_strrchr.c: removed NULL
13846         * device/lib/_strspn.c: removed NULL
13847         * device/lib/_strstr.c: removed NULL
13848         * device/lib/_strtok.c: removed NULL
13849         * device/lib/malloc.c: removed NULL, include own header
13850
13851 2003-02-02    <johan AT balder>
13852
13853         * 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
13854         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13855         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13856         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13857         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13858         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13859
13860 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13861
13862         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13863         area 'DATA'"
13864
13865 2003-02-01    <johan AT balder>
13866
13867         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13868
13869 2003-01-31    <johan AT CP255758-A>
13870
13871         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13872
13873 2003-01-30    <johan AT balder>
13874
13875         * src/SDCCBBlock.c: automatic bug detection
13876         * src/SDCCicode.c: automatic bug detection
13877
13878 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13879
13880         * src/SDCCglobl.h:   now --xram-size 0 works
13881         * src/SDCCmain.c:    now --xram-size 0 works
13882
13883 2003-01-29    <johan AT balder>
13884
13885         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13886
13887 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13888
13889         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13890         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13891         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13892         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13893         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13894         * src/SDCCmain.c:    Added options --xram-size and --code-size
13895
13896 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13897
13898         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13899         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13900
13901 2003-01-27    <johan AT balder>
13902
13903         * src/SDCC.y: fixed bug #613764
13904
13905 2003-01-26    <johan AT balder>
13906
13907         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13908         * src/SDCCsymt.h: fixed bug #673374
13909         * src/SDCCglue.c: fixed bug #661910
13910         * src/SDCCast.c: fixed bug #458099 and 673374
13911
13912 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13913
13914         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13915         * as/mcs51/strcmpi.h: added
13916         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13917         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13918         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13919         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13920         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13921         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13922         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13923         * as/mcs51/Makefile.aslink: new module strcmpi
13924         * as/mcs51/Makefile.asx8051: new module strcmpi
13925         * as/mcs51/Makefil.bcc: new module strcmpi
13926         * as/mcs51/Makefile.in: new module strcmpi
13927         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13928
13929 2003-01-26    <johan AT balder>
13930
13931         * src/SDCCglue.c: reverted back to 1.124
13932         * src/SDCCast.c: reverted back to 1.156
13933         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13934
13935 2003-01-25    <johan AT balder>
13936
13937         * src/SDCCglue.c: A better fix for bug #661910
13938         * src/SDCCast.c: A better fix for bug #661910
13939         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13940
13941 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13942
13943         * src/Makefile.in: remove spawn.o
13944         * src/SDCCmain.c: remove spawn.h
13945         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13946         * src/spawn.c: removed
13947         * src/spawn.h: removed
13948         * support/regression/ports/ds390/spec.mk: link with -r
13949
13950 2003-01-24    <johan AT CP255758-A>
13951
13952         * src/ds390/gen.c (aopOp): fixed bug #667458
13953         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13954         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13955         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13956
13957 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13958
13959         * src/mcs51/peeph.def: better assembler identation by Frieder
13960         * src/mcs51/gen.c: better assembler identation by Frieder
13961
13962 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13963
13964         * as/z80/string.h: removed for gcc 3.2
13965         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13966         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13967
13968 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13969
13970         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13971         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13972         * support/regression/Makefile: separate temp files for ports
13973         * support/regression/generate-cases.py: separate temp files for ports
13974         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13975         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13976
13977 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13978
13979         * moved tinitalk to device/examples/ds390
13980
13981 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13982
13983         * as/mcs51/lkmem.c: rflag is for DS390
13984         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13985         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13986                          (linkEdit): move mem- and map-files the same way as ihx-files
13987         * src/z80/main.c (_setDefaultOptions): removed --generic
13988         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13989         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13990         * src/pic/glue.c (picglue): --c1mode works again
13991         * src/pic16/glue.c (pic16glue): --c1mode works again
13992         * src/asm.c (printCLine): fix #660034
13993
13994 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13995
13996         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13997         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13998         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13999         * as/mcs51/lkmem (summary): better fix for sp problem
14000         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
14001         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
14002         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
14003                                               remove --stack-after-data
14004
14005 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
14006
14007         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
14008         * src/SDCCutil.c (join): ugly bug: missing '\0'
14009         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
14010
14011 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
14012
14013         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
14014         * src/port.h: typo
14015         * src/pic/main.c (_asmCmd): gpasm supports -o
14016         * src/z80/main.c: more general macros
14017         * device/lib/Makefile.in: remove intermediate files
14018
14019 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
14020
14021         * .version: Bumped version number to 2.3.3
14022         * src/SDCCBBlock.c: new option -o
14023         * src/SDCCglobl.h: new option -o
14024         * src/SDCCglue.c: new option -o
14025         * src/SDCCmain.c: new option -o
14026         * src/asm.c: new option -o
14027         * src/ds390/main.c: new option -o
14028         * src/pic/glue.c: new option -o
14029         * src/pic/pcode.c: new option -o
14030         * src/pic/ralloc.c: new option -o
14031         * src/pic16/glue.c: new option -o
14032         * src/pic16/pcode.c: new option -o
14033         * src/pic16/ralloc.c: new option -o
14034         * src/z80/main.c: new option -o
14035         * device/lib/Makefile.in: use -o
14036         * support/regression/ports/ds390/spec.mk: use -o
14037         * support/regression/ports/gbz80/spec.mk: use -o
14038         * support/regression/ports/mcs51/spec.mk: use -o
14039         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
14040         * support/regression/ports/z80/spec.mk: use -o
14041         * support/regression/ports/ucz80/spec.mk: use -o
14042         * support/regression/ports/xa51/spec.mk: use -o
14043         * support/regression/fwk/lib/timeout.c: fix usage string
14044
14045 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
14046         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
14047
14048 2003-01-07    <johan AT balder>
14049
14050         * src/SDCCast.c (decorateType): fixed bug #600035
14051
14052 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
14053         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
14054         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
14055         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
14056         * src/pic/pcode.c: outcommented unused variable to remove warnings
14057         * src/pic/ralloc.c: outcommented unused variable to remove warnings
14058
14059 2003-01-06    <karl AT turbobit.com>
14060         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
14061    regression tests.
14062
14063 2003-01-06    <johan AT balder>
14064
14065         * src/SDCCicode.c: fixed array add
14066
14067 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
14068         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
14069         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
14070
14071 2003-01-04    <johan AT balder>
14072
14073         * src/SDCCval.c (getNelements): fixed the initialized array of structures
14074
14075 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14076         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
14077
14078 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
14079         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
14080         * support/regression/tests/bug-524697.c: fit mem usage into 8032
14081
14082 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
14083         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
14084
14085 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
14086         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
14087
14088 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
14089         * src/mcs51/main.c: removed {bindir}{sep} from aslink
14090
14091 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14092
14093     * in /sdcc/as/mcs51/ changed these files in order to create an
14094     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
14095     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
14096     following files to include the previous two files: aslink.dsp,
14097     Makefile.aslink, Makefile.bcc, and Makefile.in.
14098
14099     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
14100     .adb instead of .cdb
14101
14102 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14103
14104         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
14105         value from option --iram-size.
14106
14107 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14108
14109         * /sdcc/as/mcs51/lklist.c: added boundary check before using
14110         dram[] array.
14111
14112 2002-09-18    <wiml AT hhhh.org>
14113
14114         * SDCClrange.h: exposed setFromRange() and setToRange()
14115         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
14116           packRegsForAccUse() (bug 542397)
14117         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
14118           multiple times and emitting the fetch operations more than once
14119           added aopGetUsesAcc() function to allow binary operators to
14120           fetch their operands in the correct order; made genMinus() emit
14121           compact code for X = LITERAL - Y
14122
14123 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14124         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
14125         sprintf() in line 1267.
14126
14127 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14128         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
14129         like ports.
14130
14131 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14132         Changes to aslink (All the changes are marked with 'JCF'):
14133
14134         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
14135         summary().
14136
14137         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
14138         area BSEG.  Also moves, if possible, the DATA area down into the internal
14139         ram so more space is available.
14140
14141         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
14142         sflag.
14143
14144         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
14145         not bytes.  Function summary() which creates a memory usage summary
14146         file with extension .mem.  Reports of overlaping stack and small stack
14147         size.  If the space for the stack is less than 16 bytes aslink trows a
14148         warning.
14149
14150         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
14151         the 8051.  Option 'y' for memory summary output file.
14152
14153         Changes to sdcc (All the changes are marked with 'JCF'):
14154
14155         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
14156
14157         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
14158         overlaying area for it (uses RegBankUsed[4]).
14159
14160         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
14161         bank zero as used by default.  By default aslink locates the stack
14162         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
14163         the creation of the .mem file.  Delegates the allocation of data area
14164         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
14165         the begining of the stack area to aslink.
14166
14167         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
14168         glue() in SDCCglue.c creates an area for it.
14169
14170 2002-09-03  Borut Razem <borut.razem AT siol.net>
14171         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
14172         sdcc/src/pic/glue.c:
14173         introduced atexit() handler for teporay files removal in case of
14174         errors, assertions, ...
14175
14176 2002-08-29  Borut Razem <borut.razem AT siol.net>
14177         * sdcc/support/cpp2/auto-host_vc_in.h:
14178         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
14179         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
14180         Maybe there is a similar problem with BORLANDC? It should be checked!
14181
14182         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
14183         corrected improper use of assert: the assignment to clr variable was done inside the assert.
14184         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
14185         was not executed, and the compiler (cl) launched a warning:
14186         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
14187
14188 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
14189         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
14190
14191 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
14192         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
14193
14194         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
14195           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
14196           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
14197           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
14198           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
14199           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
14200           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
14201         - added Release configuration in VS projects
14202         - review of compiler an linker options
14203         - VC .exe files are generated in bin_vc directory, not to interfere
14204           with binaries generated from other projects (cygwin, mingw, bcc ...)
14205
14206         * sdcc/src/yacc.dsp: added
14207
14208         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
14209         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
14210         and insert the version number definitions from .version
14211
14212         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
14213
14214         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
14215         added - genarate auto-host.h using auto-host_vc_in.h as template
14216
14217         * sdcc/sdcc_vc.h,
14218         removed from CVS, generated automatically
14219
14220 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
14221         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
14222
14223 2002-08-11  Borut Razem <borut.razem AT siol.net>
14224         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
14225
14226 2002-08-10  Borut Razem <borut.razem AT siol.net>
14227         * src/SDCCmain.c (main):
14228         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
14229         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
14230         The consequence was that some temporary files were not removed.
14231
14232         * src/SDCCglue.c:
14233         unification of code in functions tempfilename() and tempfile():
14234         function tempnam() is defined in Visual Studio 6.0 and .NET
14235
14236         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
14237
14238         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
14239           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
14240         - removed compiler command line option /WX: Treats all warnings as errors
14241         - update a list of source files, included into the project
14242
14243         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
14244           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
14245         changed project type to Generic Project so that can be correcly converted to VS.NET project
14246
14247         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
14248
14249         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
14250
14251         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
14252
14253         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
14254         added return 0 statements after assert() to make compiler happy
14255
14256         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
14257         added newline in the def file to keep MSC compiler satisfied
14258
14259         * sdcc/src/z80/gen.c:
14260         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
14261           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
14262         - solved MSC error in function aopDump()
14263
14264         * sdcc_vc.h: define PREFIX as "\\sdcc"
14265
14266 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
14267         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
14268
14269 2002-06-22  Scott Dattalo <scott AT dattalo.com>
14270         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
14271         - Rewrote the register banking algorithm.
14272         - Added pCode live-range analysis to registers (for now, only non-used and
14273         singly-used registers optimized away)
14274
14275         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
14276
14277         * 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.
14278
14279 2002-05-10  Scott Dattalo <scott AT dattalo.com>
14280         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
14281
14282 2002-04-22  Michael Hope  <michaelh AT vroom>
14283
14284         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
14285
14286         * configure.in (DD_COPT): Added include support required for gbdk.
14287
14288         * .version: Bumped version number just to increase it.
14289
14290         * src/SDCCmain.c: Added -nostdinc to the default options.
14291
14292 2002-04-15  Michael Hope  <michaelh AT vroom>
14293
14294         * device/lib/z80/printf.c (sprintf): Added.
14295
14296         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
14297
14298         * src/z80/peeph.def: Added transpose redundent load rule.
14299
14300         * src/z80/main.c: Added force callee saves for jaune.
14301
14302         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
14303
14304         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
14305
14306 2002-03-28  Johan Knol  <johan AT balder>
14307
14308         * src/SDCCval.c: fixed bug #532436
14309
14310 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14311         * /src/port.h:
14312         Added "char *Processor" field to the port structure.
14313
14314         * /src/SDCCmain.c:
14315         Added -p option. Allows port dependent processor to be specified.
14316
14317         * all ports:
14318         Initialized the new field char *Processor field to NULL in all ports
14319
14320         * /src/pic/*:
14321         Compiler generated registers for interrupt context saving
14322         were not getting allocated.
14323
14324 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
14325
14326         * /src/SDCCast.c:
14327         Fixed left shift. Will promote the left side of a left shift
14328         if a) left shifting more than size of operand or b) when assigned
14329         to something size > size of left side
14330
14331 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14332         * src/pic/*
14333         tons of changes. Register allocation has been
14334         rewritten. Added customization for the various PICs. Flow
14335         analysis is restructured. ...
14336
14337         * src/pic/device.h:
14338         Added
14339
14340         * src/pic/device.c:
14341         Added. device.c is a PIC port hack to accomodate variations
14342         in PIC devices.
14343
14344 2002-03-13  Michael Hope  <michaelh AT vroom>
14345
14346         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
14347
14348 2002-03-04  johanknol  <johanknol AT manik>
14349
14350         * /src/SDCCval.c: fixed
14351
14352         const unsigned char arr[][2] = { { 0, 1 } };
14353         t18.c:1: error: Initializer element is not constant
14354
14355 2002-03-04  bela  <bela AT manik>
14356
14357         * /device/include/mcs51reg.h:
14358         ds89c420 register definition update
14359
14360 2002-03-03    <johan AT FRIJA>
14361
14362         * support/Util/SDCCerr.c: did something, but don't no why anymore
14363
14364         * support/regression/tests/bug-524691.c: made it a little less shy
14365
14366         * src/SDCCast.c (decorateType): fixed bug #524697
14367
14368         * src/SDCCast.c: made some lineno improvements
14369
14370         * src/SDCCval.c (getNelements): changed warning to error
14371
14372         * src/SDCCglue.c (printIvalArray): changed warning to error
14373
14374         * src/SDCCicode.c: fixed a warning for mingw
14375
14376         * src/SDCCast.c (decorateType): fixed the << promotion for ops
14377
14378         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
14379
14380 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
14381
14382         * src/ds390/peeph.def:
14383         Added some more peephole rules
14384
14385         * src/ds390/gen.c: Various fixes & enhancements
14386
14387         * src/SDCClrange.c, src/SDCClrange.h:
14388         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
14389
14390         * src/ds390/ralloc.c:
14391         various fixes & enhancements (ds390) specific
14392
14393         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
14394         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
14395         from rallocs.
14396
14397         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
14398
14399 2002-03-02    <johan AT FRIJA>
14400
14401         * src/SDCCast.c (decorateType): fixed bug #524708
14402
14403         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
14404
14405         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
14406
14407 2002-03-01  Michael Hope  <michaelh AT vroom>
14408
14409         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
14410
14411         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
14412
14413 2002-03-01    <johan AT FRIJA>
14414
14415         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
14416
14417         * src/SDCCast.c (decorateType): fixed bug #524209
14418
14419         * src/SDCCval.c (valNot): fixed bug #524195
14420
14421 2002-02-26    <johan AT balder>
14422
14423         * src/xa51/gen.c: fixed a warning
14424
14425         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
14426
14427         * src/SDCCast.c (decorateType): fixed bug #522534
14428
14429 2002-02-23    <johan AT balder>
14430
14431         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
14432
14433 2002-02-22    <johan AT balder>
14434
14435         * src/SDCCast.c: fixed bug #514865
14436
14437         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
14438
14439 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
14440
14441         * sdcc/src/SDCCloop.c:
14442         Previous fix was not good. basic blocks that have "break" or "return" are
14443         not really partof a loop , but live ranges used in these blocks should
14444         be live thru the entire loop, so set partOfLoop but don't add them to
14445         loop region
14446
14447 2002-02-21    <johan AT FRIJA>
14448
14449         * src/SDCCcse.c: fixed bug #514308
14450
14451 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
14452
14453         * src/SDCCloop.c:
14454         Fixed BUG #519583. If a conditional block ended in a return/break
14455         statement inside a loop, it was not being considered part of the loop.
14456
14457         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
14458
14459 2002-02-10  Karl Bongers <karl AT turbobit.com>
14460
14461         * debugger/*:
14462         Fixed up SDCDB debugger somewhat.  Updated debugger/README
14463         with lots of comments and notes.
14464
14465         * device/examples/test2.c:
14466         Fix bug, "red" variable not being initialized(compiler complained).
14467
14468         * device/examples/Makefile, examples/test3.c:
14469         Add Makefile in device/examples folder, compiles test3.c
14470         for use as a multiple module SDCDB test case.
14471
14472         * sim/ucsim/cmd.src/cmdset.cc:
14473         Took out debug printfs in ucsim "next" command.
14474
14475         * sim/ucsim/xa.src:
14476         Karl and Johan start ucsim XA support.  Most dissassembly working,
14477         about 75% emulation done(plenty of work remaining).
14478
14479         * sim/ucsim/z80.src:
14480         Add Z80 support to ucsim, add test-ucz80 regression test,
14481         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
14482         Notice z80 compiler fails on examples/test3.c/crc code.
14483
14484 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
14485
14486         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
14487         Added support for --parms-in-bank1
14488
14489         * src/ds390/peeph.def:
14490         added a few more peephole optimzations
14491
14492         * src/ds390/main.c:
14493         1) added __builtin_inp & __builtin_outp used to read in data of given length
14494            from a memory mapped port
14495         2) added __builtin_memcmp
14496         3) added __builtin_swapw swap bytes of a short
14497
14498         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
14499         1) handle multiple send & receives from register bank1
14500         2) ralloc can now allocate DPTR1 to some liveRanges
14501
14502         * src/SDCCsymt.c, src/SDCCsymt.h:
14503         changes to handle multiple sends & receives
14504
14505         * src/SDCCptropt.h:
14506         added some pointer arithmetic optimization
14507
14508         * src/SDCCptropt.c:
14509         added some pointer arithmetic optimizations but not stable yet so not
14510         called from anywhere (will get this working shortly)
14511
14512         * src/SDCCopt.c: fixed for multiple sends & receives
14513
14514         * src/SDCCmain.c:
14515         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
14516         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
14517            set preprocessor defines (depending on options)
14518
14519         * src/SDCCicode.c, src/SDCCicode.h:
14520         changes made to handle multiple sends & receives
14521
14522         * src/SDCCglobl.h:
14523         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
14524
14525         * src/SDCCcse.c, src/SDCCcse.h:
14526         added function findbackward def (to be used in upcoming optimization)
14527
14528         * src/SDCCcflow.c, src/SDCCcflow.h:
14529         added function returnAtEnd - to determine if a basic block terminates with
14530         a RETURN iCode
14531
14532         * src/SDCCast.c, src/SDCCast.h:
14533         added option parms-in-bank1
14534
14535         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
14536         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
14537         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
14538         adjusted for --parms-in-bank1 option
14539
14540         * device/include/string.h:
14541         donot redefine "reentrant" keyword
14542
14543         * device/include/ds80c390.h: Added some more SFRs
14544
14545 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
14546
14547         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
14548
14549 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
14550
14551         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
14552
14553 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
14554
14555         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
14556
14557 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
14558
14559         * Added --xram-movc option
14560
14561 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
14562
14563         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
14564
14565 2002-01-11  Johan Knol
14566
14567         * Added math lib of Jesus Calvino-Fraga
14568
14569 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
14570
14571         * src/SDCCmain.c (processFile): fix processing of ../../src.c
14572         * support/regression/Makefile: new target test-mcs51-stack-auto
14573         * support/regression/ports/mcs51-stack-auto/spec.mk: added
14574
14575 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14576
14577         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
14578
14579 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14580
14581         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
14582
14583 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
14584
14585         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
14586
14587         * src/SDCCglue.h: add definition for printIvalChar()
14588
14589 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14590
14591         * src/SDCCast.c: fix #498138 by Johan
14592
14593         * src/SDCCglue.c: fix #498138 by Johan
14594
14595 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14596
14597         * support/regression/Makefile: fix clean
14598
14599         * support/regression/ports/ds390/support.c: fix transmission of last character
14600
14601 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
14602
14603         * /sdcc/src/ds390/gen.c:
14604         a) improved computing address of stack variable
14605         b) took out some #if 0 code
14606         c) improved parmBytes adjustment
14607         d) improved genPlusIncr & genMinusIncr
14608         e) genCmp could generate bad code (when left assigned to DPTR)
14609         f) Fixed bug in hasInc
14610
14611         * /sdcc/src/ds390/ralloc.c:
14612         a) packRegsForSupport could mess up live information (Fixed)
14613         b) packRegsDPTRuse could be incorrect for left & right shift
14614
14615         * /sdcc/src/mcs51/ralloc.c:
14616         packRegsForSupport could mess up the live information (Fixed)
14617
14618         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
14619
14620         * /sdcc/src/SDCCast.c:
14621         can reverse a loop even if function call is present as long
14622         as the loop control variable is local & is not passed as parameter
14623
14624 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14625
14626         * /sdcc/ChangeLog: *** empty log message ***
14627
14628         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
14629         More builtin function additions for TININative
14630
14631         * /sdcc/src/ds390/ralloc.c:
14632         Had broken the regression testsuite
14633
14634         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
14635
14636         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
14637         Added funcattr hasStackParms will be set for reentrant functions when there
14638         are paramteres on the stack, this helps in minimizing frame pointer generation
14639         typeFromStr can handle function pointers now
14640
14641         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
14642         *** empty log message ***
14643
14644 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14645
14646         * /src/ds390/gen.c, /src/ds390/main.c:
14647         More builtin function additions for TININative
14648
14649         * /src/ds390/ralloc.c:
14650         Had broken the regression testsuite
14651
14652         * /src/SDCCast.c: Fixed a bug in dumptree
14653
14654         * /src/SDCCsymt.c, /src/SDCCsymt.h:
14655         Added funcattr hasStackParms will be set for reentrant functions when there
14656         are paramteres on the stack, this helps in minimizing frame pointer generation
14657         typeFromStr can handle function pointers now
14658
14659         * /doc/builtins.txt, /doc/TININative.txt:
14660         *** empty log message ***
14661
14662
14663 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14664
14665         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
14666         ALPHA version for -mTININative
14667
14668         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
14669         updated to reflect changes in the port structure
14670
14671         * /src/port.h:
14672         added function do_assemble (similar to do_link) if non-null this function
14673         will be called to do assembly (-mTININative) requires a multi command
14674         assembly
14675         added function genAssemblerEnd will be called to generate assembler Epilogue
14676
14677         * /src/SDCCsymt.c:
14678         added _JavaNative to debug info printing
14679
14680         * /src/SDCCmain.c: added option --tini-libid
14681         added port->do_assemble function (-mTININative) has a multi command assemble
14682
14683         * /src/SDCCglue.c: Disabled "constExpr" check
14684         added port->genAssemblerEnd function
14685
14686         * /src/SDCCglobl.h: Added option --tini-libid value
14687
14688         * /src/SDCCast.h:
14689         tookout optimizeCompare from the header (has no external references)
14690
14691         * /src/SDCCast.c: made one more function "static"
14692
14693 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14694
14695         * src/z80/mappings.i: Added z80asm support.
14696
14697         * src/z80/main.c: Added z80asm support on --asm=z80asm
14698
14699         * src/z80/gen.c: Fixed asm portability issues.
14700
14701         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14702
14703         * src/SDCCglue.c (printExterns): Added global/extern split.
14704
14705 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14706
14707         * support/regression/Makefile: added test for mcs51 model large
14708
14709         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14710
14711         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14712
14713 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14714
14715         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14716
14717 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14718
14719         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14720
14721         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14722
14723 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14724
14725         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14726
14727         * support/regression/tests/simplefloat.c: Port to mcs51.
14728
14729 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14730         * support/regression/tests/bug-485362.c: Added.
14731
14732         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14733
14734         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14735
14736         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14737
14738         * src/z80/gen.c (aopDump): Added a dump function.
14739
14740 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14741         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14742
14743         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14744
14745         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14746
14747         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14748
14749         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14750
14751         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14752
14753         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14754
14755         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14756
14757         * support/regression/ports/ds390/support.c: Use tinibios.
14758
14759         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14760
14761 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14762
14763         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14764         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14765
14766         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14767
14768         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14769
14770 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14771
14772         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14773
14774         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14775         (packRegsForIYUse): Created and optimised.
14776
14777 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14778
14779         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14780 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14781
14782         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14783
14784         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14785
14786         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14787
14788 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14789
14790         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14791
14792         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14793
14794 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14795
14796         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14797
14798         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14799
14800         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14801
14802 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14803
14804         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14805         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14806         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14807
14808         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14809
14810         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14811         (genNotFloat): Added.
14812         (genUminusFloat): Added.
14813
14814         * device/lib/z80/Makefile: Added floating pt stubs.
14815
14816         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14817
14818         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14819
14820         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14821
14822 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14823
14824         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14825
14826         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14827
14828         * sdcc/support/regression/Makefile: Add port ds390.
14829
14830         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14831
14832         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14833
14834         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14835
14836         * sdcc/support/regression/ports/ds390/support.c: Added.
14837
14838         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14839
14840         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14841
14842         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14843
14844 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14845
14846         * device/include/malloc.h: Added z80 and gbz80 support.
14847
14848         * device/lib/gbz80/heap.s: Added.
14849
14850         * device/lib/z80/heap.s: Added.
14851
14852         * device/lib/malloc.c: Added z80 and gbz80 support.
14853
14854         * support/regression/tests/malloc.c (testMalloc): Added.
14855
14856         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14857
14858         * support/regression/tests/bug-478094.c: Added.
14859
14860         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14861
14862 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14863
14864         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14865
14866         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14867
14868         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14869
14870         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14871
14872         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14873
14874 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14875
14876         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14877
14878 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14879
14880         * support/regression/tests/bug-477927.c: Added.
14881
14882         * src/z80/peeph.def: Added minor rules.
14883
14884         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14885
14886         * src/z80/peeph.def: Added jump optimisation modification.
14887
14888 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14889
14890         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14891
14892 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14893
14894         * support/regression/tests/funptrs.c: Added.
14895
14896 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14897
14898         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14899
14900 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14901
14902         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14903
14904         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14905
14906         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14907         (movLeft2ResultLong): Created.
14908
14909         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14910         (joinPushes): Added.  Joins two char pushes into a word push.
14911
14912 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14913
14914         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14915
14916         * support/makebin/Makefile (install): Added creation of dest dir.
14917
14918 2001-10-24 Karl Bongers <karl AT turbobit.com>
14919
14920         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14921
14922 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14923
14924         * src/z80/ralloc.c: Turned off faulty pack for one use.
14925
14926         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14927
14928         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14929
14930 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14931
14932         * support/regression/Makefile: Improved clean
14933
14934         * support/regression/ports/gbz80/spec.mk: Added clean
14935
14936         * support/regression/ports/host/spec.mk: Added clean
14937
14938         * support/regression/ports/z80/spec.mk: Added clean
14939
14940         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14941
14942         * support/regression/ports/mcs51/timeout.c: little improvements
14943
14944 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14945
14946         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14947
14948         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14949
14950         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14951
14952 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14953
14954         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14955
14956         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14957
14958 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14959         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14960
14961         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14962
14963         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14964
14965         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14966
14967         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14968
14969         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14970
14971         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14972
14973         * support/regression/tests/longor.c: Added.
14974
14975 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14976
14977         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14978
14979         * as/mcs51/aslink.h: define PATH_MAX
14980
14981         * as/mcs51/asm.h: define PATH_MAX
14982
14983         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14984
14985         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14986
14987         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14988
14989         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14990
14991         * src/SDCCglobl.h: define PATH_MAX
14992
14993         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14994
14995         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14996
14997 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14998
14999         * src/z80/gen.c (gencjneshort): Fixed
15000
15001         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
15002
15003 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
15004
15005         * support/regression/tests/bug-469671.c: Added.
15006
15007         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
15008
15009 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
15010
15011         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
15012
15013         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
15014
15015 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
15016
15017         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
15018
15019         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
15020
15021         * src/device/lib/_mullong.c : removed hint: nooverlay bug
15022
15023         * src/device/lib/_divuint.c : removed hint: nooverlay bug
15024
15025         * src/device/lib/_divulong.c: removed hint: nooverlay bug
15026
15027         * src/device/lib/_moduint.c : removed hint: nooverlay bug
15028
15029         * src/device/lib/_modulong.c: removed hint: nooverlay bug
15030
15031 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
15032
15033         * 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.
15034
15035         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
15036
15037         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
15038
15039 2001-10-07    <johan AT FRIJA>
15040
15041         * device/lib/gets.c (gets): fixed the return value.
15042
15043 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
15044         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
15045
15046         * 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.
15047
15048         * 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.
15049
15050         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
15051
15052         * src/pic/gen.c: Removed Safe_strdup.
15053
15054         * configure.in: Added option to enable libgc support.
15055
15056         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
15057         (bitVectUnion): Optimised.
15058         (bitVectIntersect): Optimised.
15059         (bitVectBitsInCommon): Optimised.
15060         (bitVectCplAnd): Optimised.
15061
15062         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
15063
15064 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15065
15066         * src/SDCCmain.c: distinguish between assembler debug and plain options
15067
15068         * src/avr/main.c:   remove standard assembler options
15069
15070         * src/ds390/main.c: remove standard assembler options
15071
15072         * src/mcs51/main.c: remove standard assembler options
15073
15074         * src/port.h: removed "PENDING" comment
15075
15076 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15077
15078         * src/device/lib/_mulint.c  : new, with assember functions
15079
15080         * src/device/lib/_mullong.c : new, with assember functions
15081
15082         * src/device/lib/_divuint.c : with assember functions
15083
15084         * src/device/lib/_divsint.c : with assember functions
15085
15086         * src/device/lib/_divulong.c: with assember functions
15087
15088         * src/device/lib/_divslong.c: with assember functions
15089
15090         * src/device/lib/_moduint.c : with assember functions
15091
15092         * src/device/lib/_modsint.c : with assember functions
15093
15094         * src/device/lib/_modulong.c: with assember functions
15095
15096         * src/device/lib/_modslong.c: with assember functions
15097
15098         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
15099
15100         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
15101
15102         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
15103                                       replaced _mululong.c and _mulslong.c by _mullong.c
15104
15105 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15106
15107         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
15108
15109 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
15110
15111         * src/SDCCglue.c: test, if win32api is available for MINGW
15112
15113 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
15114
15115         * src/SDCCsymt.c: no more _modifier in printTypeChain()
15116         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
15117         * support/regression/ports/gbz80/spec.mk: removed GENERIC
15118         * support/regression/ports/host/spec.mk: removed GENERIC
15119         * support/regression/ports/mcs51/spec.mk: removed GENERIC
15120         * support/regression/ports/z80/spec.mk: removed GENERIC
15121
15122 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
15123
15124         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
15125
15126         * support/regression/tests/bug-467035.c: Created.
15127
15128 2001-10-01    <johan AT FRIJA>
15129
15130         * src/SDCC.y: fixed bug #466586 part 1
15131
15132 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
15133
15134         * SDCCicode.c: z80 has no generic pointers
15135         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
15136
15137 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
15138
15139         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
15140
15141 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
15142
15143         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
15144
15145         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
15146
15147 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
15148
15149         * configure.in: Fixed up so that ucsim is only configured once.
15150
15151         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
15152
15153         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
15154         (getPathDifference): As above.
15155
15156         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
15157
15158         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
15159
15160 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
15161         * .version: Updated to 2.3.1
15162
15163         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
15164         Added copyright header.
15165
15166         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
15167         (assemble): Added support for macro based assembler commands.
15168         (linkEdit): Added support for macro based linker commands.
15169         (preProcess): Changed the pre-processor to use macros.
15170         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
15171         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
15172
15173         * device/lib/z80/crt0.s: Added module name for debugging.
15174
15175 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
15176
15177         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
15178
15179         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
15180
15181         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
15182
15183         * src/Makefile.in: Added SDCCmacro and SDCCutil
15184
15185 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
15186
15187         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
15188
15189 2001-09-16    <johan AT FRIJA>
15190
15191         * 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.
15192
15193 2001-09-15    <johan AT FRIJA>
15194
15195         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
15196         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
15197
15198 2001-09-11    <johan AT FRIJA>
15199
15200         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
15201
15202 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
15203
15204         * support/regression/tests/bug-460444.c: Added test case.
15205
15206         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
15207         (genCast): Added justification for all of the asserts.
15208
15209 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
15210
15211         * support/regression/support.c: _xdata replaced by xdata
15212
15213         * support/regression/spec.mk: removed _generic
15214
15215 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
15216
15217         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
15218
15219         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
15220         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
15221
15222         * src/z80/peeph.def: Added a rule to optimise shift then compare.
15223
15224         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
15225
15226         * support/regression/tests/bug-460010.c: Added test case.
15227
15228         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
15229
15230 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
15231
15232         * support/regression/Makefile: inter-port-clean adjusted for mcs51
15233
15234         * support/regression/testfwk.c: removed workaround for bug #436344
15235
15236         * support/regression/tests/bp.c: use less memory with mcs51
15237
15238         * support/regression/tests/bug-441448.c: use less memory
15239
15240         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
15241
15242         * support/regression/collate-results.py: typo
15243
15244 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
15245
15246         * support/regression/tests/fetchoverlap.c: Added new test case.
15247
15248         * support/regression/tests/bp.c: Added new test case.
15249
15250         * support/regression/tests/bug-448984.c: Added new test case.
15251
15252         * support/regression/tests/pow2shifts.c: Added new test case.
15253
15254         * src/z80/gen.c: Turned off the noise it normally generates for the release.
15255         (genlshTwo): Fixed right shift for count > 8.
15256
15257         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
15258
15259 2001-09-08    <johan AT FRIJA>
15260
15261         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
15262
15263 2001-09-07    <johan AT FRIJA>
15264
15265         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
15266
15267         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
15268
15269 2001-09-06    <johan AT FRIJA>
15270
15271         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
15272         * bernhard noted me at this: "() equals to (void)" (1.38)
15273
15274 2001-09-05    <johan AT FRIJA>
15275
15276         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
15277
15278 2001-09-04    <johan AT FRIJA>
15279
15280         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
15281
15282
15283 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
15284
15285         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
15286
15287 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
15288
15289         * link/z80/aslink.h: Fixed path for PATH_MAX
15290
15291 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
15292
15293         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
15294
15295         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
15296
15297         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
15298
15299         * 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.
15300
15301 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
15302
15303         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
15304         (genCmp): Fixed up genCmp for the GB with longs.
15305
15306         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
15307
15308         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
15309
15310         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
15311
15312         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
15313
15314 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
15315
15316         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
15317
15318 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
15319
15320         * 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.
15321
15322         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
15323
15324 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
15325
15326         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
15327
15328         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
15329
15330 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
15331
15332   * sim/ucsim/configure:    little improvement of Cygwin-detection
15333   * sim/ucsim/configure.in: little improvement of Cygwin-detection
15334   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
15335   * support/regression/tests/bug-221100.c: small changes for mcs51
15336   * support/regression/tests/bug-221168.c: small changes for mcs51
15337   * support/regression/tests/bug-227710.c: small changes for mcs51
15338   * support/regression/tests/staticinit.c: small changes for mcs51
15339   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
15340   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15341   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15342
15343 $Revision$