* src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b
[fw/sdcc] / ChangeLog
1 2007-10-26 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b
4         * support/regression/tests/bug1721024.c:new, added
5
6 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
7
8         * support/regression/tests/bug1816470.c: new, added
9
10 2007-10-21 Maarten Brock <sourceforge.brock AT dse.nl>
11
12         * src/SDCCast.c (resultTypePropagate): do propagate for LEFT_OP, do not
13           propagate for *,+,- with float, fixed bug 1816470
14           (decorateType): cast to resultTypeProp instead of resultType
15
16 2007-10-19 Borut Razem <borut.razem AT siol.net>
17
18         * src/pic16/glue.c: fixed bug #983491 - "Merge duplicate strings
19           function is ineffective" for pic16 tareget
20         * support/scripts/listerr.c: corrected include path
21         * device/lib/_itoa.c: fixed bug #1806402 - _itoa and _uitoa leak to
22           adjacent memory
23
24 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
25
26         * support/regression/tests/using.c: new, added
27         * support/regression/tests/vaargs.c: fixed and enabled test
28
29 2007-10-18 Borut Razem <borut.razem AT siol.net>
30
31         * src/SDCCglue.c: fixed bug #983491 - Merge duplicate strings function
32           is ineffective
33         * support/regression/tests/bug-983491.c: added regtest for bug #983491
34
35 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
36
37         * doc/sdccman.lyx: documented option --Werror
38         * src/SDCCsymt.c (checkFunction): fixed bug 1815418 by setting
39           RegBankUsed[] earlier
40
41 2007-10-14 Maarten Brock <sourceforge.brock AT dse.nl>
42
43         * device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
44         * src/pic/glue.c,
45         * src/SDCCval.c,
46         * src/SDCCast.c,
47         * src/SDCCast.h: replaced AST_LIT_VALUE with AST_FLOAT_VALUE and
48           AST_ULONG_VALUE
49         * src/SDCCast.c (decorateType): improved optimization of tri-op
50         * src/SDCCerr.c (vwerror, setWError),
51         * src/SDCCerr.h,
52         * src/SDCCmain.c (parseCmdLine): added option --Werror to treat all
53           warnings as errors, thanks Stas Sergeev for PATCH 1813211
54
55 2007-10-13 Maarten Brock <sourceforge.brock AT dse.nl>
56
57         * src/mcs51/gen.c (leftRightUseAcc): use macro IS_OP_ACCUSE
58         * src/SDCCast.c (decorateType): optimize bit=cond?1:0, RFE 1738430
59         * support/regression/tests/bug-223113.c,
60         * support/regression/tests/bug-426632.c,
61         * support/regression/tests/bug-468811.c,
62         * support/regression/tests/bug-477835.c,
63         * support/regression/tests/bug-478094.c,
64         * support/regression/tests/bug-499644.c,
65         * support/regression/tests/bug-524209.c,
66         * support/regression/tests/bug-524211.c,
67         * support/regression/tests/packcast.c,
68         * support/regression/tests/structidx.c: added empty tests
69         * support/regression/tests/bug-607243.c: enabled test
70
71 2007-10-06 Borut Razem <borut.razem AT siol.net>
72
73         * .version, doc/sdccman.lyx: bumped version to 2.7.4 to indicate the full
74            support of universal binaries on Mac OS X
75
76 2007-10-02 Borut Razem <borut.razem AT siol.net>
77
78         * src/SDCCval.h: unified double2ul macro for all platforms
79         * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
80         * support/regression/tests/bitwise.c: added regtest for bug #1777758
81
82 2007-09-30 Borut Razem <borut.razem AT siol.net>
83
84         * src/SDCCval.h: fixed bug #1739860 - sdcc does not work correctly on some
85           platforms
86         * sdcc_vc_in.h: enabled warnings
87         * src/hc08/gen.c: fixed MSVC warning C4146: unary minus operator applied to
88           unsigned type, result still unsigned
89         * src/mcs51/peep.c: fixed gcc warning: suggest parentheses around && within ||
90
91 2007-09-28 Raphael Neider <rneider AT web.de>
92
93         * src/pic/device.c (find_device): prevent buffer underflow error
94         * src/pic/pcoderegs.c (OptimizeRegUsage): avoid dereferencing
95           the just destroyed list entry
96
97 2007-09-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
98
99         * doc/sdccman.lyx: there's a dedicated wiki page for cmake and sdcc, thanks
100           Alexander Neundorf
101
102 2007-09-18 Borut Razem <borut.razem AT siol.net>
103
104         * src/SDCCval.c: fixed MSVC warning C4146: unary minus operator
105          applied to unsigned type, result still unsigned
106
107 2007-09-17 Borut Razem <borut.razem AT siol.net>
108
109         * src/SDCC.y, src/SDCCast.c, src/SDCCcse.c, src/SDCCglue.c,
110           src/SDCCicode.c, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCval.c,
111           src/SDCCval.h, src/hc08/gen.c, src/avr/gen.c, src/ds390/gen.c,
112           src/mcs51/gen.c, src/pic/gen.c, src/pic/genarith.c, src/pic/glue.c,
113           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/genarith.c,
114           src/pic16/genutils.c, src/pic16/glue.c, src/pic16/main.c,
115           src/z80/gen.c, src/z80/ralloc.c:
116           fixed bug #1739860 - sdcc does not work correctly on some platforms
117           (not finished)
118           introduced and used ulFromVal(), double2ul(), used strtod() instead sscanf()
119
120 2007-09-17 Raphael Neider <rneider AT web.de>
121
122         * src/pic16/device.c: reverted to previous version
123         * device/lib/pic16/Makefile.common.in: quieten gpasm via -Wa,-q
124
125 2007-09-16 Raphael Neider <rneider AT web.de>
126
127         * src/pic16/device.c (pic16_dump_usection): do not reserve 0 bytes,
128           as this raises a ton of gpasm warnings, just emit a second label
129         * src/pic16/devices.inc,
130         * device/lib/pic16/pics.all,
131         * device/lib/pic16/libdev/pic18f2585.c,
132         * device/lib/pic16/libdev/pic18f2680.c,
133         * device/lib/pic16/libdev/pic18f2682.c,
134         * device/lib/pic16/libdev/pic18f2685.c,
135         * device/lib/pic16/libdev/pic18f4585.c,
136         * device/lib/pic16/libdev/pic18f4680.c,
137         * device/lib/pic16/libdev/pic18f4682.c,
138         * device/lib/pic16/libdev/pic18f4685.c,
139         * device/include/pic16/pic18f2585.h,
140         * device/include/pic16/pic18f2680.h,
141         * device/include/pic16/pic18f2682.h,
142         * device/include/pic16/pic18f2685.h,
143         * device/include/pic16/pic18f4585.h,
144         * device/include/pic16/pic18f4680.h,
145         * device/include/pic16/pic18f4682.h,
146         * device/include/pic16/pic18f4685.h,
147         * device/include/pic16/pic18fregs.h: added 18f2585, 18f2680,
148           18f2682, 18f2685, 18f4585, 18f4680, 18f4682, 18f4685,
149           patch contributed by Anton Strobl, applied with changes
150
151 2007-09-16 Raphael Neider <rneider AT web.de>
152
153         * device/include/pic16/pic18f2431.h,
154         * device/include/pic16/pic18f25j10.h,
155         * device/include/pic16/pic18f4431.h,
156         * device/include/pic16/pic18f45j10.h: adopted common include style
157         * device/include/pic16/pic18f1320.h,
158         * device/include/pic16/pic18f2320.h,
159         * device/include/pic16/pic18f2525.h,
160         * device/include/pic16/pic18f4320.h,
161         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
162         * device/include/pic16/pic18fregs.h: prepared for automatic include
163           file selection by having DEVICE.h for every DEVICE
164         * device/lib/pic16/libdev/pic18f2320.c,
165         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
166
167         * device/lib/pic16/configure.in,
168         * device/lib/pic16/configure: use rm -rf instead of rmdir
169         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
170         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
171
172 2007-09-09 Borut Razem <borut.razem AT siol.net>
173
174         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
175           distingush between i386 and ppc Mac OS X versions
176
177 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
178
179         * src/mcs51/gen.c (genReceive): fixed bug 1788177
180         * support/regression/tests/bug1788177.c: new, added
181
182 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
183
184         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
185         * device/include/mcs51/lint.h added keyword __naked
186
187 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
188
189         * src/pic16/glue.c,
190         * src/pic/glue.c,
191         * src/SDCCmem.h: removed maxRegBank
192         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
193           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
194         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
195         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
196           name and behaviour to handle banked functions
197           (scan4op): and use it to fix bug 1786213
198
199 2007-09-03 Raphael Neider <rneider AT web.de>
200
201         * device/include/pic16/pic18f248.h,
202         * device/include/pic16/pic18f258.h,
203         * device/include/pic16/pic18f448.h,
204         * device/lib/pic16/libdev/pic18f248.c,
205         * device/lib/pic16/libdev/pic18f258.c,
206         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
207           added T0CONbits, fixes #1786891
208
209 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
210
211         * src/ds390/gen.c (genFarPointerSet),
212         * src/hc08/ralloc.c (packRegisters),
213         * src/mcs51/ralloc.c (packRegisters),
214         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
215           bug 1750318
216         * src/SDCCicode.h: POINTER_SET can be true for literals too
217         * support/regression/tests/bug1750318.c: new, added
218
219 2007-08-23 Borut Razem <borut.razem AT siol.net>
220
221         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
222           library versions without the completition functionality
223
224 2007-08-22 Raphael Neider <rneider AT web.de>
225
226         * device/include/pic16/pic18f1220.h,
227         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
228
229 2007-08-12 Borut Razem <borut.razem AT siol.net>
230
231         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
232
233 2007-08-11 Borut Razem <borut.razem AT siol.net>
234
235         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
236           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
237           support/Util/SDCCerr.[ch] moved to src
238         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
239           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
240           device/examples/ds390/tinitalk/tinitalk.dsp,
241           device/examples/serialcomm/windows/serialcomm.dsp,
242           support/librarian/librarian.dsp:
243           removed linking of unused odbc32.lib and odbccp32.lib
244         * support/scripts/winres.h:
245           added for compilation with Visual C++ 2005 Express Edition
246
247 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
248
249         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
250           and CKCON1.
251
252 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
253
254         * sdccconf_in.h: update the endian test so that SPARC Solaris
255           does not throw syntax errors
256
257 2007-08-06 Borut Razem <borut.razem AT siol.net>
258
259         * doc/sdccman.lyx: removed two index entries which prevented the
260           generation of sdcc doc archive
261
262 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
263
264         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
265           instead of lyx 1.5.0.
266
267 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
268
269         * device/include/hc08/mc68hc908apxx.h: new header contributed by
270           Lucas Loizaga, with minor modifications. Thanks!
271
272 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
273
274         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
275           in sdcclib.
276
277 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
278
279         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
280           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
281           with acall/ajmp.
282
283 2007-07-22 Borut Razem <borut.razem AT siol.net>
284
285         * configure.in, configure: re-introduced .version
286         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
287           the version reverted to 2.7.0
288
289 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
290
291         * configure.in,
292         * doc/sdccman.lyx: bumped version to 2.7.3
293         * device/include/mcs51/compiler.h: fixed elif->else
294         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
295         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
296           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
297            enable accuse for bit operands
298         * src/SDCCmain.c (printVersionInfo),
299         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
300           environment descriptor
301         * src/SDCCutil.h: added getBuildEnvironment
302         * src/SDCCglue.c (initialComments): use getBuildEnvironment
303         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
304         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
305         * support/regression/tests/bug1348008.c,
306         * support/regression/tests/bug1496419.c,
307         * support/regression/tests/bug1503067.c,
308         * support/regression/tests/preproc.c: added empty tests
309
310 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
311
312         * support/regression/tests/bug1678803.c: new, added
313
314 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
315
316         * as/link/aslink.h,
317         * as/link/hc08/lkihx.c,
318         * as/link/hc08/lkrloc.c,
319         * as/link/mcs51/lkihx.c,
320         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
321           ihxExtendedLinearAddress
322         * as/link/mcs51/lkrloc.c (relr),
323         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
324           acall/ajmp, see bug 830513
325
326 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
327
328         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
329           (cseBBlock): remember aggr2ptr has been used
330         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
331           (geniCodeAssign): fixed bug 868103
332         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
333           added operandSize prototype
334         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
335           (genDataPointerSet): use max of size of right and result,
336           (gencjne): added parameter useCarry for optimization,
337           (genCmpEq): use carry if appropriate,
338           (genXor): check if operand already in carry
339         * support/regression/tests/bug-868103.c: enabled test
340
341 2007-07-12 Raphael Neider <rneider AT web.de>
342
343         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
344
345 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
346
347         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
348           from Robert Larice, thanks
349         * support/regression/tests/bitopcse.c,
350         * support/regression/tests/bitvars.c,
351         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
352         * support/regression/tests/bug-927659.c: enabled test for z80
353         * support/regression/tests/bug1738367.c: added extra tests by Frieder
354         * support/regression/tests/bug1745717.c: new, added
355         * support/regression/tests/literalop.c,
356         * support/regression/tests/nullstring.c: removed storage definitions that
357           are now in testfwk.h
358
359 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
360
361         * device/include/stdbool.h: do not define __bool_true_false_are_defined
362           and bool for targets that do not fully support it.
363         * support/regression/tests/bug1546986.c,
364         * support/regression/tests/bug1723128.c,
365         * support/regression/tests/bug1734654.c,
366         * support/regression/tests/bug1738367.c,
367         * support/regression/tests/constantRange.c: only use bool if allowed
368
369 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
370
371         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
372           Larice, also handle function pointers
373         * support/regression/tests/bug1749275.c: new, added
374
375 2007-07-03 Borut Razem <borut.razem AT siol.net>
376
377         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
378           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
379           #1746528: SDCC should ignore ':' in inline assembler comments
380         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
381
382 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
383
384         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
385         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
386
387 2007-06-29 Borut Razem <borut.razem AT siol.net>
388
389         * src/SDCCmain.c: fixed bug
390           #1744746: SDCC #4867: broken option --xram-size
391
392 2007-06-28 Borut Razem <borut.razem AT siol.net>
393
394         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
395           find out the endianess of host machine for ucsim
396
397 2007-06-27 Borut Razem <borut.razem AT siol.net>
398
399         * support/regression/generate-cases.py: corrected the file name
400           in warning
401         * configure.in, configure, sdccconf_in.h: find out the endianess of
402           host machine
403         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
404           negative size
405
406 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
407
408         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
409
410 2007-06-26 Borut Razem <borut.razem AT siol.net>
411
412         * support/regression/generate-cases.py: display warning if function
413           list is empty; implemented more flexible rule for detection of
414           testing functions, allowing return type 'void' in the same line as
415           the function name in the function definition
416         * support/regression/tests/bug-1654060.c: corrected test
417         * support/librarian/sdcclib.c: fixed warning:
418           format '%s' expects type 'char *', but argument 2 has type 'int'
419
420 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
421
422         * support/librarian/sdcclib.c: Added feature Requests [1510635]
423           Multiple infiles for sdcclib.
424
425 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
426
427         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
428           bug 1731741
429
430 2007-06-18 Borut Razem <borut.razem AT siol.net>
431
432         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
433           how to handle comments, so they have to be removed by the
434           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
435         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
436           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
437           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
438           table driven option hadling
439
440 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
441
442         * src/SDCCast.c (decorateType),
443         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
444           iCode to ast level to fix bug 1738367
445         * support/regression/tests/bug1738367.c: new, added
446
447 2007-06-15 Raphael Neider <rneider AT web.de>
448
449         * src/pic16/devices.inc,
450         * device/lib/pic16/pics.all,
451         * device/include/pic16/pic18fregs.h,
452         * device/include/pic16/pic18f[24][45]20.h,
453         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
454           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
455         * device/lib/pic16/Makefile.in: faster cleanup
456
457 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
458
459         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
460
461 2007-06-13 Raphael Neider <rneider AT web.de>
462
463         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
464
465 2007-06-12 Raphael Neider <rneider AT web.de>
466
467         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
468           suppress bit defines if NO_BIT_DEFINES is #define'd
469         * device/include/pic/pic*.h: recreated all headers to include
470           conditional bit defines
471         * device/include/pic/pic16f886.h,
472         * device/include/pic/pic16f887.h: fixed based on newer .inc file
473         * device/include/pic/recreate.sh: script to recreate the complete
474           device library files based on the currently supported devices
475
476 2007-06-12 Borut Razem <borut.razem AT siol.net>
477
478         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
479           support/regression/Makefile.in, support/scripts/build.mak,
480           support/scripts/Makefile.snapshot:
481           use new svn URL scheme
482         * doc/sdccman.lyx: SDCC Wiki moved to
483           http://sdcc.wiki.sourceforge.net/
484
485 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
486
487         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
488         * support/regression/tests/bug1734654.c: added
489
490 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
491
492         * src/SDCCast.c (decorateType): optimized '?' for equal operands
493         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
494           with literal operands
495
496 2007-06-10 Borut Razem <borut.razem AT siol.net>
497
498         * as/link/z80/lklibr.c: fixed mingw build warning
499           lklibr.c:575: warning: implicit declaration of function 'tolower'
500         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
501           src/z80/main.c: move target specific options from src/SDCCmain.c
502           to src/<target>/main.c
503
504 2007-06-09 Borut Razem <borut.razem AT siol.net>
505
506         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
507           removed unused swap_sense; removed outBitCLong, replaced with outBitC
508         * support/regression/tests/bug-1294691.c: added
509
510 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
511
512         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
513           can also be static, fixes bug 1733438
514         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
515           have absolute address too
516           (computeType): added optimization for 'cond ? true : false'
517         * support/regression/tests/absolute.c: added test for static absolute var
518
519 2007-06-08 Raphael Neider <rneider AT web.de>
520
521         * src/regression/Makefile: suppress parallel builds, allow easy
522           switching between pic14/pic16 ports
523         * src/regression/picregs.h: added pic14/16 header file switch
524         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
525           inline.c,nestfor.c,string1.c}: include "picregs.h"
526
527 2007-06-07 Borut Razem <borut.razem AT siol.net>
528
529         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
530           permanent solution to suppress GCC 4.2.0 c++ warning:
531           deprecated conversion from string constant to `char *'
532           use 'const char *' where ever required
533         * support/regression/generate-cases.py: implemented more flexible rule
534           for detection of testing functions, allowing white-spaces surrounding
535           the function name and the 'void' parameter.
536         * support/regression/tests/constantRange.c,
537           support/regression/tests/scott-compare3.c: fixed failing regression
538           tests, uncovered by implementation of more flexible rule for detection
539           of testing functions
540
541 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
542
543         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
544
545 2007-06-04 Borut Razem <borut.razem AT siol.net>
546
547         * configure.in, configure, config_vc.awk: sdcc version number is now
548           stored in configure.in; removed .version
549         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
550           doc/INSTALL.txt: version bumped to 2.7.2
551         * sim/ucsim/configure.in, sim/ucsim/configure:
552           use "read" to read from .version
553
554 2007-06-03 Borut Razem <borut.razem AT siol.net>
555
556         * */Makefile.in: removed annoying warning:
557           Makefile:xx: Makefile.dep: No such file or directory
558
559 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
560
561         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
562           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
563         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
564         * src/SDCCast.c (resultTypePropagate): propagate for '!',
565           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
566           bugfix: only use newBoolLink for bit result type
567         * src/SDCCicode.c (geniCodeLogic): added param tree,
568           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
569           (geniCodeLogicAndOr): use IS_BIT,
570           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
571           (ast2iCode): added tree param to geniCodeLogic for comparisons
572         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
573         * support/regression/tests/bug1723128.c: added test NotZero
574
575 2007-06-01 Borut Razem <borut.razem AT siol.net>
576
577         * SDCPP synchronized with GCC CPP release version 4.2.0,
578           currently the latest release:
579         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
580           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
581           support/cpp2/cppdefault.h, support/cpp2/except.h,
582           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
583           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
584           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
585           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
586           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
587           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
588           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
589           support/cpp2/opts.h, support/cpp2/output.h,
590           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
591           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
592           support/cpp2/system.h, support/cpp2/version.c,
593           support/cpp2/Makefile.in: modified
594         * support/cpp2/opts-common.c: added
595         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
596         * device/lib/pic16/libdev/pic18f[24]5j10.c:
597           search for included source file in local directory
598         * sim/ucsim/configure, sim/ucsim/configure.in:
599           temporary solution to suppress GCC 4.2.0 c++ warning:
600           deprecated conversion from string constant to `char *'
601
602 2007-06-01 Raphael Neider <rneider AT web.de>
603
604         * device/lib/pic/libdev/pic12f683.c,
605         * device/include/pic/pic12f683.h: added GPIO bits
606
607 2007-06-01 Raphael Neider <rneider AT web.de>
608
609         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
610           quotation marks, clarified role of PIC14 vs. PIC16 ports
611         * src/pic16/devices.inc,
612         * device/include/pic16/pic18fregs.h,
613         * device/include/pic16/pic18f[24][45]j10.h,
614         * device/lib/pic16/pics.all,
615         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
616           18f24j10, 18f25j10, 18f44j10, and 18f45j10
617         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
618           for new devices as they are not yet supported by gputils
619
620 2007-05-31 Borut Razem <borut.razem AT siol.net>
621
622         * Small Device C Compiler 2.7.0 released
623         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
624           changed sdcc version to 2.7.1
625         * support/scripts/sdcc.nsi: added How to create WIN32 release
626           setup.exe package
627
628 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
629
630         * doc/sdccman.lyx: documented initialization and allocation of absolute
631           variables, bit parameter passing, the need for function pointers to be
632           reentrant and alpha quality support of inline and retrict
633
634 2007-05-26 Borut Razem <borut.razem AT siol.net>
635
636         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
637           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
638         * docs/knownbugs.html: updated
639
640 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
641
642         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
643           thanks Jan Waclawek
644         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
645           AOP_CRY and ruonly
646           (gencjneshort): optimized when left is AOP_DIR
647         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
648           initializing unions in a struct/array
649         * support/regression/fwk/include/testfwk.h: added defines for data, near
650           and far for host and z80
651         * support/regression/tests/bug1723128.c: new, added
652
653 2007-05-22 Borut Razem <borut.razem AT siol.net>
654
655         * doc/knownbugs.html: updated
656
657 2007-05-21 Raphael Neider <rneider AT web.de>
658
659         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
660           error message instead
661         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
662
663 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
664
665         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
666
667 2007-05-21 Raphael Neider <rneider AT web.de>
668
669         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
670           closes #1722392
671         * src/regression/gpsim_assert.h,
672         * src/regression/Makefile,
673         * src/regression/pcodeopt.c: regression test for the above fix
674
675 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
676
677         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
678           jumps to self, fixed bug 1717281
679
680 2007-05-10 Borut Razem <borut.razem AT siol.net>
681
682         * support/scripts/gen_known_bugs.pl: cosmetic fix
683         * doc/knownbugs.html: generated by gen_known_bugs.pl
684
685 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
686
687         * src/SDCCast.c (createFunction): also generate non-inlined version of
688           function for functions declared as "static inline"
689         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
690           function can be inlined after non-inlined version generated.
691
692 2007-05-10 Borut Razem <borut.razem AT siol.net>
693
694         * support/scripts/gen_known_bugs.pl: added script
695           which generates knownbugs.html
696
697 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
698
699         * doc/knownbugs.html: updated for release 2.7.0
700
701 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
702
703         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
704
705 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
706
707         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
708           (throughout): updated generating comments
709         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
710           (throughout): updated generating comments
711         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
712           rule instead of at the second, or it might skip lines when removing the
713           complete match
714         * support/regression/tests/bug1714204.c: changed test to foo
715
716 2007-05-08 Borut Razem <borut.razem AT siol.net>
717
718         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
719           thanks to SDCC Distributed Compile Farm members,
720           added Z80 and GBZ80 command line options
721         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
722
723 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
724
725         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
726         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
727         * support/regression/tests/longlit.c: modified to be tested at all and
728           to pass the actual test
729
730 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
731
732         * device/include/mcs51/uPSD33xx.h: Added.
733
734 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
735
736         * device/lib/_gptrput.c,
737         * device/lib/_gptrget.c: removed old code,
738          (_gptrgetWord),
739         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
740         * support/regression/tests/bug1714204.c: new, added
741
742 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
743
744         * support/regression/tests/regtrack.c: test was never executed
745           because of the regression test being picky about white spaces.
746         * device/lib/mcs51/crtclear.asm: added comment
747
748 2007-05-06 Raphael Neider <rneider AT web.de>
749
750         * device/lib/pic/Makefile.rules,
751         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
752           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
753
754 2007-05-06 Raphael Neider <rneider AT web.de>
755
756         * src/pic16/device.h,
757         * src/pic16/main.h,
758         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
759           _pic16_setDefaultOptions): removed/reordered command-line args
760         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
761           devices, regrouped command line args, environment variables),
762           clarified sone points, added sections on how to add devices to the
763           PIC14/PIC16 ports
764
765 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
766
767         * src/z80/peeph.def: fixed bug in rule 2
768
769 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
770
771         * src/port.h: added TARGET_MCS51_LIKE
772         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
773           take advantage of it too
774         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
775           (shiftR2Left2Result): Optimized: don't check shifting by 0
776         * src/z80/peeph-z80.def,
777         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
778           modifications, see patch 1700823
779         * src/mcs51/peep.c (): fixed bug 1712928
780         * support/regression/tests/bug1712928.c: new, added
781
782 2007-05-05 Borut Razem <borut.razem AT siol.net>
783
784         * device/lib/pic16/Makefile.common.in,
785           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
786           removed bash dependencies
787
788 2007-05-01 Borut Razem <borut.razem AT siol.net>
789
790         * src/SDCCicode.c:
791           fixed bug #1710507: --i-code-in-asm makes compile fail
792           all iCode comments are now one liners
793         * src/mcs51/gen.c: fixed memory leak
794
795 2007-05-01 Raphael Neider <rneider AT web.de>
796
797         * device/lib/pic/libdev/*.c
798         * device/include/pic/*.h: regenerated all device libs from updated
799           .inc files
800         * support/scripts/inc2h.pl: documented usage, now uses strict to
801           catch more bugs
802
803 2007-04-30 Borut Razem <borut.razem AT siol.net>
804
805         * doc/sdccman.lyx:
806           fixed bug #1669175: Problem with space in output paths
807           documented how to use paths with spaces for Windows users
808
809 2007-04-29 Borut Razem <borut.razem AT siol.net>
810
811         * Fixed svn:eol-style and svn:keywords properties
812         * src/SDCCval.c: fixed bug
813           #1592871: Segfault with "large" const arrays of characters
814           replaced recursion with iteration
815         * Removed svn:executable property from non-executable files
816
817 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
818
819         * src/mcs51/gen.c (genRet): fixed bug 1707003
820
821 2007-04-27 Raphael Neider <rneider AT web.de>
822
823         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
824           createReachingDefinitions,assignValnums,pic16_destructDF,
825           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
826           prevent NULL pointer dereferences
827         * device/lib/pic/libdev/pic16f886.c,
828         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
829           prevent building them, gputils do not really support them yet
830
831 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
832
833         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
834           helps printf_small. 32 bytes more __idata mem.
835
836 2007-04-27 Raphael Neider <rneider AT web.de>
837
838         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
839           return early when pb or pb->pcHead is NULL (patch #1708427)
840         * src/regression/empty.c,
841         * src/regression/Makefile: added test with empty functions
842         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
843
844 2007-04-27 Borut Razem <borut.razem AT siol.net>
845
846         * src/SDCCast.c: fixed feature request
847           #1547512: Redundant strings linked when using sizeof("abc")
848
849 2007-04-23 Borut Razem <borut.razem AT siol.net>
850
851         * doc/sdccman.lyx, src/SDCCmain.c:
852           peep-hole comments are generated only if --fverbose-asm option is
853           specified and --no-peep-comments is not, as proposed by Frieder.
854         * support/regression/Makefile.in: compile regression tests with
855           --fverbose-asm option so one can "grep" whether a new (or an old)
856           peephole is (still) applied; requested by Frieder.
857
858 2007-04-23 Kevin Buettner <kevin AT buettner.to>
859
860         * device/include/pic/pic16f886.h,
861         * device/include/pic/pic16f887.h,
862         * device/lib/pic/libdev/pic16f886.c,
863         * device/lib/pic/libdev/pic16f887.c,
864         * device/include/pic/pic14devices.txt,
865         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
866
867 2007-04-23 Kevin Buettner <kevin AT buettner.to>
868
869         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
870           fixes #1704666
871
872 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
873
874         * device/lib/_memset.c: assembler version for mcs51
875
876 2007-04-22 Borut Razem <borut.razem AT siol.net>
877
878         * support/scripts/listerr.c: program to create the list of errors and
879           warnings list from - added
880         * doc/sdccman.lyx: removed the note
881           "For list of warnings and corresponding codes, see err_warn.txt"
882         * src/SDCCsymt.c: fixed bug #1699804:
883           Bug with some uses of sizeof(static local array) (MCS51)
884         * support/regression/tests/bug-1699804.c: added
885
886 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
887
888         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
889           (main): added option -i,
890           (asmbl, case S_INCL): use search_path_fopen,
891           mostly from patch 1579668 by Peter Miller, thanks
892         * src/z80/main.c: fixed typo --callee-saves-bc
893         * device/include/mcs51/compiler.h: added sfrword for Tasking
894
895 2007-04-20 Borut Razem <borut.razem AT siol.net>
896
897         * src/z80/main.c: replaced reserved keyword asm with asmblr
898
899 2007-04-19 Borut Razem <borut.razem AT siol.net>
900
901         * src/port.h: use const pointers to strings
902         * src/SDCCargs.h: declared getStringArg() and getIntArg()
903         * src/pic16/main.c: include SDCCargs.h
904         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
905           const char, since the strings are dynamically allocated
906         * src/SDCCmain.c: options.code_seg and options.const_seg are
907           dynamically allocated; check port specific command line options
908           before the general ones
909         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
910
911 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
912
913         * device/include/ds400rom.h,
914         * device/lib/ds390/lcd390.c,
915         * device/lib/ds390/memcpyx.c,
916         * device/lib/ds390/rtc390.c,
917         * device/lib/ds400/ds400rom.c,
918         * device/lib/ds400/memcpyx.c,
919         * device/lib/hc08/_ret.c: more replacements of keywords with their
920           double underscore equivalents
921         * device/lib/ds390/Makefile.in,
922         * device/lib/ds400/Makefile.in,
923         * device/lib/gbz80/Makefile.in,
924         * device/lib/hc08/Makefile.in,
925         * device/lib/mcs51/Makefile.in,
926         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
927
928 2007-04-17 Borut Razem <borut.razem AT siol.net>
929
930         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
931           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
932           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
933           to --fverbose-asm, to be gcc'ish
934
935 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
936
937         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
938
939 2007-04-17 Borut Razem <borut.razem AT siol.net>
940
941         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
942         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
943           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
944           with their double underscore equivalent
945
946 2007-04-14 Borut Razem <borut.razem AT siol.net>
947
948         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
949           source"
950
951 2007-04-13 Borut Razem <borut.razem AT siol.net>
952
953         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
954           C99 standard
955         * device/examples/serialcomm/windows/serial.[ch],
956           device/examples/serialcomm/windows/test_serialcomm.cpp:
957           updated by Bela Torok
958         * device/examples/serialcomm/windows/serialcomm.dsw,
959           device/examples/serialcomm/windows/serialcomm.dsp: added
960
961 2007-04-13 Jan Waclawek <wek AT efton.sk>
962
963         * doc/sdccman.lyx: additions and changes at various places
964           (submitted as #1697136).
965           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
966
967 2007-04-10 Borut Razem <borut.razem AT siol.net>
968
969         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
970           LyX file format changed to 245
971         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
972           "FreeWare" replaced with "free open source"
973
974 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
975
976         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
977
978 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
979
980         * device/include/pic16/pic18fregs.h,
981         * device/lib/_bp.c,
982         * device/lib/_decdptr.c,
983         * device/lib/_divsint.c,
984         * device/lib/_divslong.c,
985         * device/lib/_divuint.c,
986         * device/lib/_divulong.c,
987         * device/lib/_fs2schar.c,
988         * device/lib/_fs2sint.c,
989         * device/lib/_fs2slong.c,
990         * device/lib/_fs2uchar.c,
991         * device/lib/_fs2uint.c,
992         * device/lib/_fs2ulong.c,
993         * device/lib/_fsadd.c,
994         * device/lib/_fscmp.c,
995         * device/lib/_fsdiv.c,
996         * device/lib/_fseq.c,
997         * device/lib/_fsget1arg.c,
998         * device/lib/_fsget2args.c,
999         * device/lib/_fsgt.c,
1000         * device/lib/_fslt.c,
1001         * device/lib/_fsmul.c,
1002         * device/lib/_fsneq.c,
1003         * device/lib/_fsnormalize.c,
1004         * device/lib/_fsreturnval.c,
1005         * device/lib/_fsrshift.c,
1006         * device/lib/_fssub.c,
1007         * device/lib/_fsswapargs.c,
1008         * device/lib/_gptrget.c,
1009         * device/lib/_gptrgetc.c,
1010         * device/lib/_gptrput.c,
1011         * device/lib/_logexpf.c,
1012         * device/lib/_modsint.c,
1013         * device/lib/_modslong.c,
1014         * device/lib/_moduint.c,
1015         * device/lib/_modulong.c,
1016         * device/lib/_mulint.c,
1017         * device/lib/_mullong.c,
1018         * device/lib/_schar2fs.c,
1019         * device/lib/_ser.c,
1020         * device/lib/_setjmp.c,
1021         * device/lib/_sint2fs.c,
1022         * device/lib/_slong2fs.c,
1023         * device/lib/_spx.c,
1024         * device/lib/_uchar2fs.c,
1025         * device/lib/_uint2fs.c,
1026         * device/lib/_ulong2fs.c,
1027         * device/lib/asincosf.c,
1028         * device/lib/atanf.c,
1029         * device/lib/calloc.c,
1030         * device/lib/ds390/tinibios.c,
1031         * device/lib/ds400/tinibios.c,
1032         * device/lib/expf.c,
1033         * device/lib/free.c,
1034         * device/lib/hc08/_mulint.c,
1035         * device/lib/logf.c,
1036         * device/lib/malloc.c,
1037         * device/lib/printf_fast.c,
1038         * device/lib/printf_tiny.c,
1039         * device/lib/printfl.c,
1040         * device/lib/realloc.c,
1041         * device/lib/ser_ir.c,
1042         * device/lib/serial.c,
1043         * support/regression/tests/libmullong.c: replaced all special keywords
1044           with their double underscore equivalent
1045         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1046         * device/lib/Makefile.in: compile libs with --std-c99 instead of
1047           --std-sdcc99
1048         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
1049           (genRet): if the bit-symbol is ruonly it already is in the carry
1050         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
1051         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
1052         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
1053           type UCHAR if dest is not bit
1054
1055 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
1056
1057         * device/include/math.h,
1058         * device/lib/cotf.c,
1059         * device/lib/expf.c,
1060         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
1061
1062 2007-04-01 Borut Razem <borut.razem AT siol.net>
1063
1064         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
1065           fixed bug #1692042: input buffer overflow...scanner uses REJECT
1066         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
1067           gcc_unreachable() called internal_error()...
1068
1069 2007-03-30 Raphael Neider <rneider AT web.de>
1070
1071         * src/pic/ralloc.c (isData): suppress garbage debug output
1072
1073 2007-03-28 Borut Razem <borut.razem AT siol.net>
1074
1075         * doc/sdccman.lyx:
1076           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
1077           is developed, built and used worldwide, and the word "night" doesn't
1078           make any sense.
1079
1080 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
1081
1082         * device/include/mcs51/C8051F360.h: new, added
1083         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
1084
1085 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1086
1087         * src/SDCC.y (declaration_specifiers, function_specifier),
1088         * support/Util/SDCCerr.c,
1089         * support/Util/SDCCerr.h,
1090         * src/SDCCsymt.h,
1091         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
1092           inline keyword
1093         * src/SDCCmem.c (deallocParms),
1094         * src/SDCCast.c: support for function inlining, not quite complete
1095         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
1096           'restrict' qualifier
1097
1098 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1099
1100         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
1101           (saveRBank, unsaveRBank): don't save bits,
1102           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
1103         * support/regression/tests/bug1535242.c: new, added
1104         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
1105           thanks Alexey Shamrin <shamrin AT gmail.com>,
1106           made assert.h header ANSI compliant (added a check for NDEBUG macro,
1107           removed header guard)
1108         * .version,
1109         * sdcc.spec: bumped version to 2.6.5
1110         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
1111
1112 2007-03-22 Borut Razem <borut.razem AT siol.net>
1113
1114         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
1115           fixed bug #1653671: sdcdb integration into ddd is broken
1116
1117 2007-03-22 Raphael Neider <rneider AT web.de>
1118
1119         * src/pic/gen.c (popGetExternal): augmented to also create references
1120           to external variables (not only labels),
1121           (genCall): comment on plan to reduce PAGESEL overhead,
1122           (genFunction, genEndFunction): also save/restore FSR around interrupt
1123           handling code, removed lots of unused code
1124           (genDivOneByte): release acquired temp register
1125         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
1126           of popGetExternal
1127         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
1128           for registers that need to be saved during interrupts (FSR, STATUS,
1129           PCLATH; W needs special handling), currently only FSR is used
1130
1131 2007-03-22 Raphael Neider <rneider AT web.de>
1132
1133         * device/include/pic/pic14devices.txt: 16f688 has only one config word
1134
1135 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1136
1137         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
1138
1139 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
1140
1141         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
1142
1143 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
1144
1145         * as/link/aslink.h: added LKOBJEXT
1146         * as/link/hc08/link_hc08.dsp,
1147         * as/link/hc08/Makefile.bcc,
1148         * as/link/hc08/Makefile.in,
1149         * as/link/mcs51/aslink.dsp,
1150         * as/link/mcs51/Makefile.bcc,
1151         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
1152         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
1153         * as/link/lkaomf51.c: merged and moved
1154         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
1155         * as/link/z80/lkdata.c,
1156         * as/link/lkdata.c: merged and moved
1157         * as/link/hc08/lkmain.c,
1158         * as/link/mcs51/lkmain.c: cosmetic changes
1159         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
1160         * as/link/lklex.c: use LKOBJEXT
1161         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
1162           ANSI-fied functions, removed bubble-sorts
1163         * as/link/z80/lksym.c           as/link/lksym.c: merged,
1164           ANSI-fied functions
1165         * as/link/z80/linkgbz80.dsp,
1166         * as/link/z80/linkz80.dsp,
1167         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
1168           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
1169         * as/link/z80/lkhead.c,
1170         * as/link/z80/lklex.c: deleted
1171         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
1172         * as/link/z80/lkmain.c: added copyfile()
1173
1174 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1175
1176         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
1177
1178 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1179
1180         * device/lib/_strlen.c: assembler version for mcs51
1181
1182 2007-03-13 Raphael Neider <rneider AT web.de>
1183
1184         * device/include/pic16/pic18f2221.h,
1185         * device/include/pic16/pic18f2321.h,
1186         * device/include/pic16/pic18f2331.h,
1187         * device/include/pic16/pic18f4221.h,
1188         * device/include/pic16/pic18f4321.h,
1189         * device/include/pic16/pic18f4331.h: fixed config byte location names
1190         * support/scripts/inc2h-pic16.pl: removed debug output, emit
1191           consistently named config byte locations
1192
1193 2007-03-13 Borut Razem <borut.razem AT siol.net>
1194
1195         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1196           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
1197           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
1198           as/link/z80/Makefile.in, as/z80/Makefile.in:
1199           introduced LDFLAGS
1200
1201 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1202
1203         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
1204         * device/lib/printf_large.c: pointer was converted to generic
1205         pointer for mcs51 models other than model-small (Maarten noticed)
1206
1207 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1208
1209         * device/include/mcs51/ADuC84x.h: Added.
1210
1211 2007-03-10 Borut Razem <borut.razem AT siol.net>
1212
1213         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
1214           fixed RFE #1624219: double backslashes in filenames;
1215           functions hexEscape(), octalEscape() and copyStr() moved from
1216           SDCCval.c to SDCCutil.c and made them glovbally available
1217
1218 2007-03-09 Borut Razem <borut.razem AT siol.net>
1219
1220         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
1221           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
1222           1673361: Missaligned comments in output files
1223
1224 2007-03-09 Raphael Neider <rneider AT web.de>
1225
1226         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
1227
1228 2007-03-09 Raphael Neider <rneider AT web.de>
1229
1230         * src/pic/gen.c,
1231         * src/pic/glue.c,
1232         * src/pic/ralloc.c: suppress undesired debug output
1233         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
1234
1235 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1236
1237         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
1238
1239 2007-03-07 Borut Razem <borut.razem AT siol.net>
1240
1241         * device/lib/pic16/libdev/pic18f[24][34]31.c:
1242           search include files in the current directory
1243
1244 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
1245
1246         * src/SDCCglue.c (emitMaps, glue),
1247         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
1248           absolute xdata
1249         * support/regression/tests/absolute.c: added xdata test
1250
1251 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
1252
1253         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
1254           added condition to macro, fixes bug 1666080
1255
1256 2007-03-02 Raphael Neider <rneider AT web.de>
1257
1258         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
1259
1260 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1261
1262         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
1263         be cleared. Unconditionally set __XPAGE
1264         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
1265
1266 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1267
1268         * src/SDCCglobl.h,
1269         * src/SDCCmain.c,
1270         * src/mcs51/gen.c,
1271         * src/mcs51/rtrack.c,
1272         * src/ds390/gen.c,
1273         * doc/sdccman.lyx: added --no-gen-comments
1274         * src/mcs51/peeph.def: added 192.b, disabled 185
1275
1276 2007-02-25 Raphael Neider <rneider AT web.de>
1277
1278         * src/pic16/gen.c (genCast): fixed typo
1279         * device/lib/pic16/Makefile.subdir: only install existing files
1280         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
1281
1282 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1283
1284         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
1285         * device/lib/mcs51/crtclear.asm,
1286         * device/lib/mcs51/crtxclear.asm: renumbered labels
1287         * device/lib/mcs51/Makefile.in: added crtcall.asm
1288         * doc/sdccman.lyx: documented mcs51 crt* library startup code
1289         * src/mcs51/gen.c (movc): removed,
1290           (aopGet, genPlusBits): clear a after loading the carry (possibly from
1291             acc.x or psw.x),
1292           (toCarry, genSend, genRet): added function toCarry,
1293           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
1294           (assignBit, genAssign, genCast): added function assignBit
1295         * src/mcs51/Makefile.bcc: added rtrack.c
1296         * src/mcs51/ralloc.h: made valueKnown a bitfield
1297         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
1298           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
1299           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
1300         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
1301         * src/z80/gen.c: added AOP_IS_PAIRPTR,
1302           (_pop): only pop valid pairs, see gencjneshort,
1303           (gencjneshort): return pair that still needs to be popped, restructured,
1304           (gencjne, genCmpEq): call _pop
1305
1306 2007-02-23 Raphael Neider <rneider AT web.de>
1307
1308         * device/include/pic/pic14devices.txt: 16f684 has only one config word
1309
1310 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1311
1312         * device/include/mcs51/P89LPC925.h: Added.
1313
1314 2007-02-18 Raphael Neider <rneider AT web.de>
1315
1316         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
1317
1318 2007-02-17 Borut Razem <borut.razem AT siol.net>
1319
1320         * support/cpp2/directives.c, support/cpp2/version.c:
1321           synchronized with GCC CPP 4.1.2
1322
1323 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1324
1325         * src/mcs51/rtrack.h,
1326         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
1327           by checking the strings passed by emitcode() to the assembler.
1328           Feel free to change. This in part addresses RFE #482179.
1329           Set environment variable SDCC_RTRACK to enable.
1330         * src/mcs51/gen.c: inserted hooks
1331         * src/mcs51/ralloc.h: added two members to struct regs
1332         * support/regression/tests/regtrack.c: added
1333
1334 2007-02-14 Borut Razem <borut.razem AT siol.net>
1335
1336         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
1337         * Makefile.in: applied patch from Makefile related part of
1338           #1469393: Compiler does not initialize static data
1339
1340 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1341
1342         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
1343           for better fix of bug 1273984, compiles pic16 rand.c
1344
1345 2007-02-12 Borut Razem <borut.razem AT siol.net>
1346
1347         * src/pic16/main.c: fixed pic16 standard library directory bug
1348
1349 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1350
1351         * src/hc08/gen.c (genSwap): fix swap regression test
1352
1353 2007-02-10 Borut Razem <borut.razem AT siol.net>
1354
1355         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
1356           with same scope
1357         * support/regression/tests/bug-1654060.c: added regression test for
1358           #1654060
1359
1360 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
1361
1362         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
1363         bit moves in return statement
1364
1365 2007-02-09 Borut Razem <borut.razem AT siol.net>
1366
1367         * src/SDCC.y: fixed bug #1654060 typedef within function causes
1368           syntax error
1369
1370 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1371
1372         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
1373         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
1374
1375 2007-02-07 Raphael Neider <rneider AT web.de>
1376
1377         * src/pic16/devices.inc,
1378         * device/include/pic16/pic18fregs.h,
1379         * device/include/pic16/pic18f[24][34]31.h,
1380         * device/lib/pic16/libdev/pic18f[24][34]31.c,
1381         * device/lib/pic16/pics.all: added 18f[24][34]31 family
1382         * device/lib/pic16/libio/i2c.ignore: do not build i2c
1383
1384 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1385
1386         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
1387           can this have lived here for so many years?
1388         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
1389           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
1390         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
1391
1392 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
1393
1394         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
1395         appended by loop induction must be at the very end of the eBBlock
1396
1397 2007-02-05 Kevin Vigor
1398
1399         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
1400
1401 2007-02-05 Borut Razem <borut.razem AT siol.net>
1402
1403         * support/regression/fwk/lib/timeout.c: native WIN32 port,
1404           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
1405
1406 2007-02-03 Borut Razem <borut.razem AT siol.net>
1407
1408         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
1409           applied patch #1646602 option to set default signedness of char to
1410           unsigned, added -funsigned-char command line option,
1411           thanks to Gunther Jehle
1412         * device/lib/Makefile.in: added the -f option to rm so it doesn't
1413           prompt for file deletion a few hundred times (especially the
1414           subversion files, which have ro permissions so it asks for
1415           confirmation), thanks to Simon McAuliffe;
1416           added {} + option to find in order to remove multiple files from a
1417           single rm commad
1418
1419 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1420
1421         * device/include/mcs51/SST89x5xRDx.h: Added.
1422
1423 2007-02-02 Raphael Neider <rneider AT web.de>
1424
1425         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
1426         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
1427
1428 2007-02-01 Raphael Neider <rneider AT web.de>
1429
1430         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
1431           config words again
1432
1433 2007-01-31 Borut Razem <borut.razem AT siol.net>
1434
1435         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
1436           if compiled with GCC. Thanks to Raphael Neider
1437
1438 2007-01-31 Raphael Neider <rneider AT web.de>
1439
1440         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
1441             operand names, handles name and (name + n) for all n,
1442           (sameBank): restructured, also check bank allocation policy,
1443         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
1444           (pic14_operandsAllocatedInSameBank): check whether to operands
1445             will be allocated into the same bank (i.e., section) to reduce
1446             BANKSEL overhead, queried from pcode.c:sameBank,
1447           (pic14printLocals): reintroduced clustering registers into a single
1448             section: all compiler generated symbols will now reside in one
1449             bank (per file), reducing BANKSEL overhead and code size,
1450           (showAllMemmaps): use local dbuf where possible
1451
1452 2007-01-29 Raphael Neider <rneider AT web.de>
1453
1454         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
1455           (call_libraryfunc): retrieve/create symbol and mark as used,
1456           (genFunction): mark defined functions as non-extern and add again
1457            to code memmap for later output
1458         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
1459           (pic14printLocals): reworked for new symbol emission,
1460           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
1461           showAllMemmaps): reworked symbol output using dbufs, added handling
1462             of string literals (still incomplete),
1463           (picglue): removed symbol emission, moved into showAllMemmaps,
1464           (emitSymbolSet): new workhorse for symbol output,
1465           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
1466
1467 2007-01-29 Borut Razem <borut.razem AT siol.net>
1468
1469         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
1470           component contains the extension separator.
1471
1472 2007-01-28 Borut Razem <borut.razem AT siol.net>
1473
1474         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
1475           on WIN32
1476         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
1477           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
1478           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
1479           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
1480           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
1481           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
1482           src/z80/gen.c, support/Util/MySystem.c:
1483           accept slash and backslash as directory separator on WIN32 and
1484           Cygwin ports
1485
1486 2007-01-28 Raphael Neider <rneider AT web.de>
1487
1488         * src/pic16/devices.inc,
1489         * device/include/pic16/pic18f[24][23]21.h,
1490         * device/include/pic16/pic18fregs.h,
1491         * device/lib/pic16/libdev/pic18f[24][23]21.c,
1492         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
1493         * device/lib/pic16/libio/adc.ignore,
1494         * device/lib/pic16/libio/i2c.ignore,
1495         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
1496           family, as gputils do not yet support the devices
1497         * device/lib/pic16/Makefile.subdir: ignore errors on install
1498         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
1499           headers and libraries from gputils .inc files
1500
1501 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1502
1503         * doc/sdccman.lyx: add printf_fast_f precision limitation note
1504
1505 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1506
1507         * doc/sdccman.lyx: add printf benchmarks
1508
1509 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1510
1511         * device/lib/printf_fast.c: fix %c, char promoted to int
1512         * device/lib/printf_tiny.c: fix %c, char promoted to int
1513
1514 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1515
1516         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
1517
1518 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1519
1520         * support/regression/tests/swap.c: 64 bit hosts failed
1521         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
1522
1523 2007-01-25 Raphael Neider <rneider AT web.de>
1524
1525         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
1526           based on absolute register address, patch by Alex Blond
1527
1528 2007-01-22 Raphael Neider <rneider AT web.de>
1529
1530         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
1531           emitted, do not emit them again...
1532
1533 2007-01-22 Raphael Neider <rneider AT web.de>
1534
1535         * src/regression/bank1.c, src/regression/compare6.c,
1536           src/regression/add.c: cosmetic changes
1537         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
1538         * src/pic/gen.c: fixed global zero and one,
1539           (aopForSym): removed unued code,
1540           (aopGet): assert aop is defined, check and use `index' of
1541             pCodeImmd operands (fixes #1630908),
1542         * src/pic/pcode.c (get_op): added output of generic pointer tag,
1543           (register_reassign): prevent accidental register unification,
1544           (ReuseReg): cosmetic changes (also above)
1545         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
1546           pic14emitStaticSeg): do not emit initialized data,
1547           (printIval*): replaced with working versions,
1548           (pic14createInterruptVect,picglue): use idata for initialized data,
1549             now init data should work in all modules (not only main()),
1550         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
1551
1552 2007-01-21 Borut Razem <borut.razem AT siol.net>
1553
1554         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
1555           use -fPIC or -fpic if they are supported and not ignored
1556         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
1557         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
1558
1559 2007-01-20 Borut Razem <borut.razem AT siol.net>
1560
1561         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
1562           implemented RFE #1470316: allow "$" in variable names
1563
1564 2007-01-20 Raphael Neider <rneider AT web.de>
1565
1566         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
1567
1568 2007-01-20 Raphael Neider <rneider AT web.de>
1569
1570         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
1571         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
1572         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
1573         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
1574           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
1575         * device/lib/pic/libdev/pic*.c,
1576         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
1577         * device/lib/pic/libdev/Makefile.in: show progress
1578
1579 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1580
1581         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
1582         * support/scripts/sdcc_cygwin_mingw32,
1583         * support/scripts/sdcc_mingw32,
1584         * support/scripts/build.mak: replaced --datadir by --datarootdir for
1585         conformance with autoconf 2.6
1586
1587 2007-01-19 Raphael Neider <rneider AT web.de>
1588
1589         * src/pic/device.c (register_map): fixed list construction
1590         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
1591           (genMod): removed case for genModbits,
1592           (genModbits): removed as now unused/unimplemented
1593         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
1594
1595 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1596
1597         * support/regression/tests/swap.c: added in response to #1638622
1598         * doc/sdccman.lyx: synced version, minor changes
1599
1600 2007-01-18 Borut Razem <borut.razem AT siol.net>
1601
1602         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
1603           thanks to Gunther Jehle
1604         * src/asm.c: don't die if the file drfined in #line couldn't be opened
1605         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
1606           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
1607           use filename in lineno instead.
1608         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
1609           print the file name in ast_print()
1610
1611 2007-01-18 Borut Razem <borut.razem AT siol.net>
1612
1613         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
1614           defined in MSVC
1615         * src/SDCC.lex: stringLiteral() returns const char pointer,
1616           EOF detection in stringLiteral(), fixed asmbuf memory leak,
1617           fixed column counting
1618         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
1619           accept const char pointer as parameter
1620         * src/SDCCdwarf2.c: corrected buffer size
1621
1622 2007-01-17 Borut Razem <borut.razem AT siol.net>
1623
1624         * support/Util/dbuf_string.c: fixed for amd64
1625
1626 2007-01-15 Borut Razem <borut.razem AT siol.net>
1627
1628         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
1629           removed terminal symbol ELIPSIS, since it was never generated by the
1630           lexer and it was wrongly used in parameter_identifier_list rule
1631
1632 2007-01-15 Raphael Neider <rneider AT web.de>
1633
1634         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
1635             code page and data banking description
1636         * src/pic/genarith.c,
1637         * src/pic/gen.h: removed bit arithmetic functions,
1638             updated exit(1) to exit(EXIT_FAILURE)
1639         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
1640         * device/include/pic16/pic18f2455.h,
1641         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
1642             TRISD and TRISE, fixed/added some bit names
1643         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
1644         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
1645             updated pic18f2455.{c,h} instead of duplicating them
1646
1647 2007-01-14 Borut Razem <borut.razem AT siol.net>
1648
1649         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
1650           Cannot debug files that contain spaces in the path name
1651           by converting spaces in asm file name to underscores
1652
1653 2007-01-13 Borut Razem <borut.razem AT siol.net>
1654
1655         * doc/sdccman.lyx: fixed format errors
1656
1657 2007-01-10 Borut Razem <borut.razem AT siol.net>
1658
1659         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
1660           codeseg/constseg #pragma fail
1661         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
1662         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
1663           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
1664           suppoprt/cpp2/sdcpp.[ch]: house cleaning
1665
1666 2007-01-09 Borut Razem <borut.razem AT siol.net>
1667
1668         * get rid of diagnistic.[ch], pretty-print.[ch],
1669           c-pretty-print.[ch], ... used just for error, warning, ...
1670           message formatting
1671         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
1672           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
1673           suppoprt/cpp2/pretty-print.[ch]:
1674           removed
1675         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
1676           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
1677           suppoprt/cpp2/sdcpp.dsp:
1678           changed
1679
1680 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
1681
1682         * device/lib/printf_large.c (output_float): removed recursion,
1683           use smaller buffer on stack for mcs51,
1684           fixed bug printing 1.96
1685         * support/regression/tests/snprintf.c: added test
1686
1687 2007-01-07 Borut Razem <borut.razem AT siol.net>
1688
1689         * use dynamic memory buffers instead temporary files
1690         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1691           added
1692         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1693           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1694           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1695           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1696           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1697           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1698           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1699           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1700           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1701           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1702           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1703           support/Util/dbuf.c, support/Util/dbuf.h:
1704           modified
1705         * .version, sdcc.spec: bumped version to 2.6.4
1706
1707 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1708
1709         * src/port.h: added TARGET_Z80_LIKE macro
1710         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1711           output PSEG location if --xram-loc or --xstack-loc was used
1712         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1713
1714 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1715
1716         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1717         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1718         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1719         * sdcc.dsw: moved project files into subdir
1720         * as/hc08/as_hc08.dsp,
1721         * as/hc08/Makefile.bcc,
1722         * as/hc08/Makefile.in,
1723         * as/mcs51/Makefile.bcc,
1724         * as/mcs51/Makefile.in,
1725         * as/z80/Makefile.bcc,
1726         * as/z80/Makefile.in,
1727         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1728         * as/hc08/asm.h,
1729         * as/mcs51/asm.h,
1730         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1731         * as/hc08/asmain.c,
1732         * as/hc08/assym.c,
1733         * as/mcs51/asmain.c,
1734         * as/mcs51/assym.c,
1735         * as/z80/assym.c: removed include "strcmpi.h"
1736         * as/hc08/strcmpi.c,
1737         * as/hc08/strcmpi.h,
1738         * as/mcs51/strcmpi.c,
1739         * as/mcs51/strcmpi.h,
1740         * support/Util/strcmpi.c,
1741         * support/Util/strcmpi.h: removed files
1742         * as/strcmpi.c: added as_strncmpi()
1743
1744 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1745
1746         * sdcc.dsw: Added some dependencies on project config.dsp
1747
1748 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1749
1750         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1751           with [di]ram_start to fix a regresion
1752
1753 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1754
1755         * configure.in: added missing mcs51 in status output
1756         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1757         directory
1758         * debugger/mcs51/clean.mk (distclean): remove config.h
1759         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1760         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1761         options.h, s-options-h and options.c
1762         * support/cpp2/clean.mk: unused, removed
1763         * Makefile.common.in,
1764         * main_in.mk,
1765         * as/Makefile.in,
1766         * as/hc08/Makefile.in,
1767         * as/hc08/clean.mk,
1768         * as/mcs51/Makefile.in,
1769         * as/mcs51/clean.mk,
1770         * as/z80/clean.mk,
1771         * as/z80/conf.mk,
1772         * as/z80/Makefile.in,
1773         * as/z80/clean.mk,
1774         * as/link/Makefile.in,
1775         * as/link/hc08/Makefile.in,
1776         * as/link/hc08/clean.mk,
1777         * as/link/mcs51/Makefile.in,
1778         * as/link/mcs51/clean.mk,
1779         * as/link/z80/Makefile.in,
1780         * as/link/z80/clean.mk,
1781         * as/link/z80/conf.mk,
1782         * debugger/mcs51/Makefile.in,
1783         * debugger/mcs51/clean.mk,
1784         * device/include/Makefile.in,
1785         * device/lib/Makefile.in,
1786         * device/lib/mcs51/Makefile.in,
1787         * device/lib/pic/Makefile.in,
1788         * device/lib/pic/Makefile.common.in,
1789         * device/lib/pic/Makefile.subdir,
1790         * device/lib/pic/Makefile.rules,
1791         * device/lib/pic16/libio/Makefile.in,
1792         * device/lib/pic16/Makefile.subdir,
1793         * device/lib/pic16/libdev/Makefile.in,
1794         * device/lib/pic16/Makefile.rules,
1795         * device/lib/pic16/Makefile.common.in,
1796         * sim/ucsim/avr.src/Makefile.in,
1797         * sim/ucsim/main_in.mk,
1798         * sim/ucsim/cmd.src/Makefile.in,
1799         * sim/ucsim/doc/Makefile.in,
1800         * sim/ucsim/gui.src/Makefile.in,
1801         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1802         * sim/ucsim/gui.src/serio.src/Makefile.in,
1803         * sim/ucsim/hc08.src/Makefile.in,
1804         * sim/ucsim/libltdl/Makefile.in,
1805         * sim/ucsim/s51.src/Makefile.in,
1806         * sim/ucsim/sim.src/Makefile.in,
1807         * sim/ucsim/sim.src/conf.mk,
1808         * sim/ucsim/xa.src/Makefile.in,
1809         * sim/ucsim/z80.src/Makefile.in,
1810         * src/Makefile.in,
1811         * src/clean.mk,
1812         * src/port.mk,
1813         * support/cpp2/Makefile.in,
1814         * support/librarian/Makefile.in,
1815         * support/librarian/clean.mk,
1816         * support/makebin/Makefile.in,
1817         * support/makebin/clean.mk,
1818         * support/packihx/Makefile.in,
1819         * support/regression/Makefile.in,
1820         * support/regression/ports/ds390/spec.mk,
1821         * support/regression/ports/gbz80/spec.mk,
1822         * support/regression/ports/hc08/spec.mk,
1823         * support/regression/ports/mcs51/spec.mk,
1824         * support/regression/ports/mcs51-large/spec.mk,
1825         * support/regression/ports/mcs51-medium/spec.mk,
1826         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1827         * support/regression/ports/pic14/spec.mk,
1828         * support/regression/ports/pic16/spec.mk,
1829         * support/regression/ports/mcs51-stack-auto/spec.mk,
1830         * support/regression/ports/ucz80/spec.mk,
1831         * support/regression/ports/xa51/spec.mk,
1832         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1833         adding a slash after $(top_builddir) and/or adding @datarootdir@
1834         * configure.in,
1835         * debugger/mcs51/configure.in,
1836         * device/lib/pic/configure.in,
1837         * device/lib/pic16/configure.in,
1838         * sim/ucsim/configure.in,
1839         * support/cpp2/configure.in,
1840         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1841         * configure,
1842         * debugger/mcs51/configure,
1843         * device/lib/pic/configure,
1844         * device/lib/pic16/configure,
1845         * sim/ucsim/configure,
1846         * support/cpp2/configure,
1847         * support/packihx/configure: generated with autoconf 2.60
1848
1849 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1850
1851         * as/link/hc08/lkihx.c (newArea),
1852         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1853
1854 2007-01-02 Borut Razem <borut.razem AT siol.net>
1855
1856         * doc/sdccman.lyx: documented #pragma sdcc_hash
1857         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1858           initialized to 0
1859         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1860
1861 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1862
1863         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1864         empty 'while'-loop to work correctly, see regression test 'while.c'
1865         * support/regression/tests/while.c: added
1866
1867 2007-01-01 Borut Razem <borut.razem AT siol.net>
1868
1869         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1870           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1871           support/cpp2/libcpp/sdcpp.c:
1872           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1873         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1874         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1875
1876 2006-12-31 Borut Razem <borut.razem AT siol.net>
1877
1878         * SDCPP synchronized with GCC CPP release version 4.1.1,
1879           currently the latest release:
1880         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1881           support/cpp2/libcpp/include/cpp-id-data.h
1882           support/cpp2/libiberty/fopen_unlocked.c
1883           support/cpp2/libiberty/md5.c
1884           support/cpp2/md5.h
1885           support/cpp2/opt-functions.awk
1886           support/cpp2/opt-gather.awk
1887           support/cpp2/optc-gen.awk
1888           support/cpp2/opth-gen.awk:
1889           added
1890         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1891           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1892           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1893           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1894           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1895           support/cpp2/diagnostic.h, support/cpp2/except.h,
1896           support/cpp2/hwint.h, support/cpp2/input.h,
1897           support/cpp2/intl.h, support/cpp2/move-if-change,
1898           support/cpp2/opts.c, support/cpp2/opts.h,
1899           support/cpp2/output.h, support/cpp2/prefix.c,
1900           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1901           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1902           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1903           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1904           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1905           support/cpp2/version.c:
1906           modified
1907         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1908           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1909           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1910           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1911           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1912           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1913           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1914           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1915           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1916           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1917           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1918           moved
1919         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1920           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1921           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1922           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1923           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1924           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1925           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1926           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1927           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1928           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1929           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1930           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1931           support/cpp2/system.h:
1932           deleted / moved
1933
1934 2006-12-31 Borut Razem <borut.razem AT siol.net>
1935
1936         * configure.in, configure: fixed bug #1538756: configure dies if bison
1937           and flex are not installed, 2nd try
1938
1939 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1940
1941         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1942         400.x for better code in RFE 899102
1943
1944 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1945
1946         * src/SDCCpeeph.c (deadMove),
1947         * src/port.h,
1948         * src/mcs51/peep.h: renamed 'op' by 'reg'
1949         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1950         (scan4op): small change for removeDeadMove(), added support for
1951         'callee saves' and/or PACLL function calls,
1952         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1953         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1954         left in new dispatcher mcs51DeadMove()
1955         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1956         removeDeadMove()
1957         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1958
1959 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1960
1961         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1962           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1963
1964 2006-12-30 Borut Razem <borut.razem AT siol.net>
1965
1966         * support/cpp2/spacs.h: deleted from svn
1967         * configure.in, configure: fixed bug #1538756: configure dies if bison
1968           and flex are not installed
1969
1970 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1971
1972         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1973           with this z80 passes printf float test when enabled
1974         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1975
1976 2006-12-28 Borut Razem <borut.razem AT siol.net>
1977
1978         * support/cpp2/config.in, support/cpp2/configure.in,
1979           support/cpp2/configure, support/cpp2/Makefile.in:
1980           fix for the solaris build
1981
1982 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1983
1984         * src/SDCC.y (type_specifier2, pointer),
1985         * src/SDCCsymt.h,
1986         * src/SDCCsymt.c (mergeSpec, checkSClass),
1987         * support/Util/SDCCerr.c,
1988         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1989         * support/valdiag/valdiag.py: Allow test cases to specify
1990           required language standard
1991         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1992         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1993
1994 2006-12-27 Borut Razem <borut.razem AT siol.net>
1995
1996         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1997         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1998           mbchar removed
1999         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
2000           fixed for borland C
2001         * support/cpp2/libiberty/Makefile.bcc: updated
2002         * src/pic16/main.c: fixed #pragma udata handling
2003         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
2004
2005 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
2006
2007         * src/SDCCpeeph.c: made labelHashEntry global,
2008         made pcDistance, FBYNAME static,
2009         (pcDistance): made static, use isComment and isLabel,
2010         (deadMove): added,
2011         (getLabelRef): added, extracted from labelRefCount(),
2012         (labelRefCount): use new getLabelRef(),
2013         (callFuncByName): made static, added deadMove,
2014         use isComment and isLabel,
2015         (newPeepRule): made static, set isLabel,
2016         (isLabelDefinition): added parameter isPeepRule to allow '%' in
2017         labels from peephole rules,
2018         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
2019         when isComment or isLabel is set
2020         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
2021         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
2022         to make them global
2023         * src/mcs51/peep.h: added
2024         * src/mcs51/peep.c: added, implements mcs51DeadMove()
2025         * src/port.h: added peep->deadMove to port structure
2026         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
2027         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
2028         deadMove, finally removed no. 1 and 2
2029         * src/mcs51/gen.c,
2030         * src/pic/gen.c,
2031         * src/z80/gen.c,
2032         * src/z80/ralloc.c,
2033         * src/pic16/gen.c,
2034         * src/ds390/gen.c,
2035         * src/hc08/gen.c: mark lines with isComment or isLabel
2036         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
2037         * .version,
2038         * sdcc.spec: bumped version to 2.6.3
2039
2040 2006-12-26 Borut Razem <borut.razem AT siol.net>
2041
2042         * support/cpp2/Makefile.in: added dependency on options.h
2043         * configure: regenerated
2044         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
2045         * support/cpp2/Makefile.in: added vasprintf.c
2046
2047 2006-12-25 Borut Razem <borut.razem AT siol.net>
2048
2049         * SDCPP synchronized with GCC CPP release version 3.4.6,
2050           the latest release before 4.x:
2051         * support/cpp2/Makefile.in, support/cpp2/config.h,
2052           support/cpp2/configure, support/cpp2/configure.in,
2053           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
2054           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
2055           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
2056           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
2057           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
2058           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
2059           support/cpp2/cpptrad.c, support/cpp2/except.h,
2060           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
2061           support/cpp2/hwint.h, support/cpp2/intl.h,
2062           support/cpp2/line-map.c, support/cpp2/line-map.h,
2063           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
2064           support/cpp2/output.h, support/cpp2/prefix.c,
2065           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
2066           support/cpp2/system.h, support/cpp2/version.c:
2067           modified
2068         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
2069           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
2070           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
2071           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
2072           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
2073           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
2074           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
2075           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
2076           support/cpp2/move-if-change, support/cpp2/opts.c,
2077           support/cpp2/opts.h, support/cpp2/opts.sh,
2078           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
2079           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
2080           support/cpp2/win32, support/cpp2/win32/dirent.c,
2081           support/cpp2/win32/dirent.h:
2082           added
2083         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
2084         * support/cpp2/sdcpp.h: renamed from sdcc.h
2085         * sdcppinit.c: deleted
2086
2087 2006-12-23 Borut Razem <borut.razem AT siol.net>
2088
2089         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2090           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
2091           preproc.c: an other try to fix bug #982435: introduced
2092           -pedantic-parse-number command line option and pedantic_parse_number
2093           pragma
2094
2095 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
2096
2097         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
2098            BSEG handling,
2099           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
2100            corrected overlayed areax addresses, warn about memory overlaps
2101         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
2102         * src/avr/main.c,
2103         * src/ds390/main.c,
2104         * src/hc08/main.c,
2105         * src/mcs51/main.c,
2106         * src/pic16/main.c,
2107         * src/pic/main.c,
2108         * src/xa51/main.c,
2109         * src/z80/main.c,
2110         * src/port.h: added xabs_name and iabs_name
2111         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
2112           (glue, emitMaps): create and emit maps d_abs and i_abs
2113         * src/SDCCglue.h: cosmetic changes
2114         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
2115         * src/SDCCmem.h,
2116         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
2117           (allocDefault): put absolute, initialized globals in them
2118         * support/regression/tests/absolute.c: added absolute bdata test
2119         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
2120
2121 2006-12-20 Borut Razem <borut.razem AT siol.net>
2122
2123         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
2124         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
2125           added regression test for bug #982435
2126
2127 2006-12-18 Borut Razem <borut.razem AT siol.net>
2128
2129         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
2130         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
2131           small cosmetic changes
2132         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
2133         * support/regression/tests/bug-1351710.c: added regression test
2134
2135 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2136
2137         * doc/sdccman.lyx: added the long missed iCode table
2138           "<where is figure II?>", added links to wiki
2139
2140 2006-12-17 Borut Razem <borut.razem AT siol.net>
2141
2142         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
2143           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
2144           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
2145           unified table driven pragma handling, pragma argument type checking
2146         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
2147           current one - version 1.1.3
2148         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
2149
2150 2006-12-13 Raphael Neider <rneider AT web.de>
2151
2152         * src/pic/device.h: removed AssignedMemory structure and macros
2153         * src/pic/device.c: removed global finalMapping (linker assigns
2154             memory locations),
2155           (register_map): add SFRs to remembered memRanges
2156           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
2157           assignFixedRegisters,assignRelocatableRegisters): removed,
2158           (setMaxRAM,validAddress): adapted accordingly,
2159           (pic14_hasSharebank,pic14_getSharedStack): only report and use
2160             reasonably sized sharebanks,
2161         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
2162           (allDefsOutOfRange): removed unused code,
2163         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
2164             handling
2165         * src/pic/pcode.c (register_reassign): removed recursion warning,
2166             fired far too often,
2167         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
2168             to use existing pic14_stringInSet() to avoid duplicate symbols,
2169             tidied up the code a bit,
2170           (pic14printLocals): added in symmetry to printExterns, replaces
2171             writeUsedRegs more or less,
2172           (picglue): call new pic14_printLocals(),
2173         * device/include/pic/pic*.h: removed #pragma memmap directives,
2174             information gathered from include/pic/pic14devices.txt
2175         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
2176
2177 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
2178
2179         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
2180
2181 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2182
2183         * device/include/mcs51/cc2430.h: fixed missing ';'
2184
2185 2006-12-10 Raphael Neider <rneider AT web.de>
2186
2187         * device/lib/pic16/libc/stdio/vfprintf.c,
2188         * device/lib/pic16/libc/stdio/printf_small.c,
2189         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
2190           char arguments, as char varargs are cast to int by the caller,
2191           hopefully fixes #1604915 (other device libraries are still affected)
2192
2193 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2194
2195         * src/mcs51/ralloc.c (packRegsForAssign),
2196         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
2197
2198 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
2199
2200         * device/include/malloc.h: removed init_dynamic_memory
2201         * device/lib/malloc.c: made init_dynamic_memory static and automatically
2202           call it once from malloc. Also use _sdcc_heap[] from _heap.c
2203         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
2204         * device/lib/libsdcc.lib,
2205         * device/lib/Makefile.in,
2206         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
2207         * doc/sdccman.lyx: documented use of new _heap.c
2208         * support/regression/tests/malloc.c: removed init_dynamic_memory
2209         * src/cdbFile.c(spacesToUnderscores): new function,
2210           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
2211           1068030
2212         * device/include/tinibios.h: removed defines for putchar and getchar
2213         * device/lib/ds390/Makefile.in: added putchar.c
2214         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
2215
2216 2006-12-09 Borut Razem <borut.razem AT siol.net>
2217
2218         * support/cpp2/sdcc.h: prevent multiple inclusion
2219         * support/cpp2/options.h: deleted
2220
2221 2006-12-08 Borut Razem <borut.razem AT siol.net>
2222
2223         * support/cpp2/sdcc.h: removed x*alloc() macros
2224         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
2225         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
2226           support/cpp2/sdcpp.sdc: x*alloc files added to the project
2227         * support/cpp2/system.h: moved #include "sdcc.h"
2228         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
2229           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
2230           added
2231         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
2232           -funsigned-char options
2233         * support/cpp2/sdcppmain.c: fixed bug 1611411
2234
2235 2006-12-07 Borut Razem <borut.razem AT siol.net>
2236
2237         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
2238           directive
2239
2240 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2241
2242         * src/SDCCsymt.c (addDecl): fixed bug 1609244
2243         * src/SDCCmain.c (linkEdit): fixed bug 1609279
2244         * doc/sdccman.lyx,
2245         * .version: bumped to 2.6.2 because a) it's been a while
2246           b) the linker sources have moved c) the preprocessor is upgraded
2247
2248 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2249
2250         * support/regression/tests/snprintf.c: some checks
2251         * lib/src/printf_large.c: %bc: read char instead of int from stack
2252
2253 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
2254
2255         * device/include/mcs51/cc2430.h: inserted _XPAGE
2256
2257 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2258
2259         * device/include/mcs51/cc2430.h: added
2260
2261 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
2262
2263         * device/include/asm/default/features.h,
2264         * device/include/asm/ds390/features.h,
2265         * device/include/mcs51/at89s53.h,
2266         * device/include/ser.h,
2267         * device/include/ser_ir.h,
2268         * device/include/serial.h: changed keywords to double underscore variants,
2269           fixes bug 1590261 some more, thanks Steven Borley
2270
2271 2006-12-01 Raphael Neider <rneider AT web.de>
2272
2273         * src/pic/pcode.c (register_reassign): do not crash on recursive code
2274           but emit warning (recursion is not supported for pic14)
2275
2276 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2277
2278         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
2279         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
2280
2281 2006-11-30 Raphael Neider <rneider AT web.de>
2282
2283         * src/pic/device.c (dump_sfr): always emit symbols
2284         * src/pic/glue.c (pic14printPublics): fixed typo
2285
2286 2006-11-30 Raphael Neider <rneider AT web.de>
2287
2288         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
2289           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
2290           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
2291            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
2292            a sharebank, use a non-shared bank for the stack if none available
2293         * src/pic/device.h (struct memRange): added linked list next field,
2294           added prototypes for above functions
2295         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
2296           (typeRegWithIdx): accept fixed and unfixed stack registers
2297         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
2298           the stack, handle shared and banked stack (except for WSAVE),
2299           (insertBankSel): removed useless optimization (will never fire),
2300           (FixRegisterBanking): added optimization for devices with only one
2301           possibly aliased bank of memory, like 16f84
2302         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
2303           devices have no SHAREBANK in the linker script
2304         * device/include/pic/pic14devices.txt: documented memmap
2305         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
2306
2307 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2308
2309         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
2310           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
2311           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
2312           genhc08Code): switched most of the D (debug) macros to DD (detailed
2313           debug) macros to better control clutter in the generated .asm file.
2314         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
2315           genRightShift): fixed bug with non-constant bit shift stored to
2316           a volatile result (SF Open Discussion forum thread #1616749).
2317           Single byte case is not yet optimized.
2318
2319 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
2320
2321         * device/include/asm/mcs51/features.h,
2322         * device/include/malloc.h,
2323         * device/include/stdio.h: changed keywords to double underscore variants,
2324           fixes bug 1590261
2325
2326 2006-11-27 Borut Razem <borut.razem AT siol.net>
2327
2328         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2329           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
2330           support/cpp2/output.h, support/cpp2/cppinit.c,
2331           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2332           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2333           support/cpp2/cppdefault.c, support/cpp2/system.h,
2334           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2335           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
2336           support/cpp2/prefix.c, support/cpp2/except.h,
2337           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
2338           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
2339           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2340           support/cpp2/version.c, support/cpp2/cppmain.c,
2341           support/cpp2/version.h, support/cpp2/hashtable.c,
2342           support/cpp2/cpperror.c:
2343           synchronized with GCC CPP release version 3.3.6,
2344           the latest where cppmain.c still exists.
2345         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
2346           support/cpp2/sdcppinit.c: added
2347
2348 2006-11-27 Borut Razem <borut.razem AT siol.net>
2349
2350         * support/cpp2/cpplex.c:
2351           fixed _asm ... _endasm handling bug, introduce with GCC CPP
2352           synchronization
2353         * support/cpp2/cpplib.c: removed definitions of unused variables
2354
2355 2006-11-26 Borut Razem <borut.razem AT siol.net>
2356
2357         * support/cpp2/libiberty.h: commented out x*alloc() declarations
2358           since they are redefined by macros in support/cpp2/sdcc.h
2359         * support/cpp2/sdcc.h: x*alloc macro redefinition
2360
2361 2006-11-25 Borut Razem <borut.razem AT siol.net>
2362
2363         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2364           support/cpp2/configure, support/cpp2/Makefile.in,
2365           support/cpp2/cppfiles.c, support/cpp2/output.h,
2366           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
2367           support/cpp2/config.h, support/cpp2/cpplib.h,
2368           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2369           support/cpp2/cppdefault.c, support/cpp2/config.in,
2370           support/cpp2/system.h, support/cpp2/cpplex.c,
2371           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
2372           support/cpp2/cppdefault.h, support/cpp2/prefix.c
2373           support/cpp2/hwint.h, support/cpp2/mbchar.h,
2374           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
2375           support/cpp2/configure.in, support/cpp2/intl.h,
2376           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
2377           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2378           support/cpp2/version.c, support/cpp2/cppmain.c,
2379           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
2380           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
2381           support/cpp2/cpperror.c,
2382           support/cpp2/libiberty/safe-ctype.c,
2383           support/cpp2/libiberty/safe-ctype.h,
2384           support/cpp2/libiberty/splay-tree.c,
2385           support/cpp2/libiberty/obstack.c,
2386           support/cpp2/libiberty/lbasename.c,
2387           support/cpp2/libiberty/splay-tree.h,
2388           support/cpp2/libiberty/obstack.h:
2389           synchronized with GCC CPP release version 3.2.3,
2390           the latest before integration of cpp into gcc
2391         * support/cpp2/except.h, support/cpp2/line-map.c,
2392           support/cpp2/line-map.h,
2393           support/cpp2/libiberty/hex.c,
2394           support/cpp2/libiberty/concat.c,
2395           support/cpp2/libiberty/filenames.h: added
2396         * support/cpp2/intl.c: deleted
2397
2398 2006-11-24 Borut Razem <borut.razem AT siol.net>
2399
2400         * src/SDCC.y: enabled compilation of empty source file
2401         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
2402           "ISO C forbids an empty source file"
2403         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
2404           if all the code is ifdefed out.
2405
2406 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2407
2408         * src/hc08/gen.c (genPcall): fix for bug #1601032
2409
2410 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2411
2412         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
2413         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
2414         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
2415         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
2416         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
2417         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
2418         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
2419         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
2420         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
2421         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
2422         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
2423         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
2424         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
2425         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
2426         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
2427           Renamed to all upper case as per the standard set by SiLabs
2428
2429 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2430
2431         * device/include/mcs51/C8051F520.h: new, added
2432         * device/include/mcs51/compiler.h: added link about predefined macros
2433
2434 2006-11-23 Raphael Neider <rneider AT web.de>
2435
2436         * src/regression/Makefile: add -L path to fresh library
2437         * src/regression/simulate: emphasize FAILED output
2438         * src/regression/create_stc: output _failures from gpsim
2439         * src/regression/compare4.c,
2440         * src/regression/rotate6.c: fixed char literals,
2441           all compile, all run =8-D
2442
2443         * src/pic/pcode.h: added isPCASMDIR macro
2444         * src/pic/gen.c (genAnd): fixed bit offset
2445         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
2446           packBits): unified register numbering schemes,
2447           (newReg): do not insert stack registers into hash table,
2448           (initStack): unpinned pseudo stack, simplified,
2449           (typeRegWithIdx): fixed retrieval of stack registers,
2450         * src/pic/pcode.c (addpCodeComment,sameBank): added,
2451           (pCodeReplace): removed invalid assertion,
2452           (insertPCodeInstruction): fixed newly added labels,
2453           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
2454           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
2455           DumpFlow): removed unsed (broken?) code,
2456           (insertBankSel): prevent STATUS from being BANKSELed,
2457           (FixRegisterBanking): rewritten from scratch, implemented generic
2458             optimizations (suppress BANKSELs to same register and to registers
2459             present in all banks),
2460           (AnalyzeBanking): update flow after BANKSELection
2461
2462         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
2463             sharebank, let linker place it, mark STKxx symbols as emitted
2464
2465 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2466
2467         * src/regression/arrays.c,
2468         * src/regression/bank1.c,
2469         * src/regression/bool2.c,
2470         * src/regression/compare7.c,
2471         * src/regression/compare8.c,
2472         * src/regression/compare9.c,
2473         * src/regression/compare10.c,
2474         * src/regression/configword.c,
2475         * src/regression/for.c,
2476         * src/regression/mult1.c,
2477         * src/regression/pointer1.c,
2478         * src/regression/rotate6.c,
2479         * src/regression/string1.c,
2480         * src/regression/struct1.c,
2481         * src/regression/Makefile: make PIC14 regression tests run again
2482           (3 fail, 6 won't compile)
2483
2484 2006-11-21 Raphael Neider <rneider AT web.de>
2485
2486         * device/include/pic16/pic18f4550.h,
2487         * device/include/pic16/pic18f4455.h,
2488         * device/lib/pic16/libdev/pic18f4550.c,
2489         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
2490         * configure.in: removed superfluous closing bracket
2491
2492 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2493
2494         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
2495           always positive.
2496
2497 2006-11-21 Raphael Neider <rneider AT web.de>
2498
2499         * src/pic/device.{c,h}: added pic14_getPIC()
2500         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
2501           (genAnd): added PIC code for one case, fixes #1597044
2502         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
2503           SFRs that are present in all banks (e.g., STATUS)
2504
2505 2006-11-20 Raphael Neider <rneider AT web.de>
2506
2507         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
2508           INCFSZ/INCFSZW and declared them as changing Z bit,
2509           (insertPCodeInstruction): correctly invert the above instructions,
2510           fixes #1599333,
2511           (DoBankSelect): don't panic on po_immediates
2512
2513 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2514
2515         * as/link/aslink.h,
2516         * as/link/mcs51/lkihx.c (newArea),
2517         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
2518         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
2519
2520 2006-11-11 Raphael Neider <rneider AT web.de>
2521
2522         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
2523           bitfield symbols, fixes #1579535 (once more...).
2524
2525 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2526
2527         * support/regression/generate-cases.py,
2528         * support/regression/fwk/include/testfwk.h,
2529         * support/regression/fwk/lib/testfwk.c: used code pointers,
2530           (about 50kByte less code generated for mcs51)
2531
2532 2006-11-06 Borut Razem <borut.razem AT siol.net>
2533
2534         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2535           debugger/mcs51/configure: fixed failed check because the function
2536           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
2537           who submitted the patch for gpsim.
2538         * debugger/mcs51/configure.in: removed the result message
2539         * debugger/mcs51/Makefile.in: fixed the config.status warning
2540           "... seems to ignore the --datarootdir setting"
2541
2542 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
2543
2544         * device/include/mcs51/c8051f020.h,
2545         * device/include/mcs51/c8051f040.h,
2546         * device/include/mcs51/c8051f060.h,
2547         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
2548         * src/z80/gen.c (gencjneshort),
2549         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
2550
2551 2006-10-31 Borut Razem <borut.razem AT siol.net>
2552
2553         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2554           debugger/mcs51/configure: get readline version
2555
2556 2006-10-30 Borut Razem <borut.razem AT siol.net>
2557
2558         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
2559         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2560           debugger/mcs51/configure: locate readline even when cross compiling
2561         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
2562
2563 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2564
2565         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
2566           serial port.
2567
2568 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2569
2570         * device/include/malloc.h,
2571         * device/lib/calloc.c,
2572         * device/lib/free.c,
2573         * device/lib/malloc.c,
2574         * device/lib/realloc.c: moved definition of struct into sources
2575         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
2576
2577 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2578
2579         * as/asx8051.dsp: corrected output directories
2580         * as/link/hc08: new directory for hc08 linker
2581         * as/hc08/aslink.h,             as/link/aslink.h,
2582         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
2583         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
2584         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
2585         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
2586         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
2587         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
2588         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
2589         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
2590         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
2591         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
2592         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
2593         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
2594         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
2595         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
2596         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
2597         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
2598         * as/link/hc08/conf.mk,
2599         * configure,
2600         * configure.in,
2601         * Makefile.in,
2602         * sdcc.dsw: moved hc08 linker to as/link/hc08
2603         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
2604         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
2605         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
2606         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
2607         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
2608         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
2609         * as/link/mcs51/aslink.dsp,
2610         * as/link/mcs51/Makefile.in: factored out the common files
2611         * as/hc08/lkstore.c: deleted, use the one already in as/link/
2612         * as/clean.mk: extra cleaning common files
2613         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
2614         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
2615         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
2616
2617 2006-10-29 Raphael Neider <rneider AT web.de>
2618
2619         * src/pic/ralloc.c (newReg): create aliases for registers with
2620           multiple names to fix #1579535 and #1584001,
2621           (regWithIdx,dirregWithName): resolve aliases on lookup
2622         * src/pic/pcode.c (DoBankSelect): die with error message on failing
2623           bankselect
2624         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
2625           to prevent build errors on small devices
2626
2627 2006-10-28 Raphael Neider <rneider AT web.de>
2628
2629         * src/pic/gen.c (genFunction,genCall): drop "same code page"
2630           assumption within interrupt handlers, fixes #1584940
2631         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
2632           "emitted" to avoid emitting them again in udata
2633
2634 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2635
2636         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2637         Removed.
2638
2639 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2640
2641         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2642         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
2643         on/off CR to CRLF conversion.
2644
2645 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2646
2647         * doc/sdccman.lyx: updated IRQ section
2648
2649 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2650
2651         * device/lib/serial_io.c: removed
2652         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
2653         replacements for serial_io.c
2654
2655 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
2656
2657         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
2658
2659 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2660
2661         * device/lib/serial_io.c: Default putchar() and getchar() for
2662           mcs51 uses serial port.
2663
2664 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
2665
2666         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
2667
2668 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2669
2670         * support/regression/ports/mcs51/support.c: smaller
2671         _sdcc_external_startup()
2672         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
2673
2674 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2675
2676         * device/lib/gbz80/crt0.s,
2677         * device/lib/gbz80/crt0_rle.s,
2678         * device/lib/gbz80/div.s,
2679         * device/lib/gbz80/fstubs.s,
2680         * device/lib/gbz80/heap.s,
2681         * device/lib/gbz80/mul.s,
2682         * device/lib/gbz80/putchar.s,
2683         * device/lib/gbz80/stubs.s,
2684         * device/lib/z80/crt0.s,
2685         * device/lib/z80/crt0_rle.s,
2686         * device/lib/z80/div.s,
2687         * device/lib/z80/fstubs.s,
2688         * device/lib/z80/heap.s,
2689         * device/lib/z80/mul.s,
2690         * device/lib/z80/putchar.s,
2691         * device/lib/z80/stubs.s: reverted, I was mistaken
2692
2693 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2694
2695         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2696         * support/regression/ports/mcs51/support.c: removed race
2697         condition on TI in _putchar allowing to use serial port mode 0
2698
2699 2006-10-20 Borut Razem <borut.razem AT siol.net>
2700
2701         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2702
2703 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2704
2705         * device/lib/gbz80/crt0.s,
2706         * device/lib/gbz80/crt0_rle.s,
2707         * device/lib/gbz80/div.s,
2708         * device/lib/gbz80/fstubs.s,
2709         * device/lib/gbz80/heap.s,
2710         * device/lib/gbz80/mul.s,
2711         * device/lib/gbz80/putchar.s,
2712         * device/lib/gbz80/stubs.s,
2713         * device/lib/z80/crt0.s,
2714         * device/lib/z80/crt0_rle.s,
2715         * device/lib/z80/div.s,
2716         * device/lib/z80/fstubs.s,
2717         * device/lib/z80/heap.s,
2718         * device/lib/z80/mul.s,
2719         * device/lib/z80/putchar.s,
2720         * device/lib/z80/stubs.s: removed all leading underscores from area names
2721
2722 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2723
2724         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2725           regression tests are not waiting in the simulator for simulated
2726           transmission of debug output
2727
2728 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2729
2730         * device/lib/printf_large.c: slightly smaller
2731         * doc/sdccman.lyx: do not use spaces within html links
2732
2733 2006-10-16 Borut Razem <borut.razem AT siol.net>
2734
2735         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2736           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2737           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2738           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2739           debugger/mcs51/configure:
2740           [ 1185668 ] add gnu readline support to sdcdb - enabled
2741
2742 2006-10-16 Raphael Neider <rneider AT web.de>
2743
2744         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2745           fixes #1577882, removes close to all banking optimizations
2746
2747 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2748
2749         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2750           variables in code memory
2751         * support/regression/tests/absolute.c: added test for this
2752
2753 2006-10-15 Raphael Neider <rneider AT web.de>
2754
2755         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2756           devices,
2757           (BankSelect): emit BANKSEL before touching linker-placed regs,
2758           fixes #1570934
2759
2760 2006-10-10 Raphael Neider <rneider AT web.de>
2761
2762         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2763         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2764         * src/pic/main.c (_pic14_parseOptions),
2765         * src/pic/main.h: mostly reverted to previous state, now use results
2766             from SDCCmain.c's argument parsing
2767
2768 2006-10-10 Borut Razem <borut.razem AT siol.net>
2769
2770         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2771           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2772           [ 1185668 ] add gnu readline support to sdcdb -
2773           prepared for READLINE, not enabled yet,
2774           thanks to <tal.bav AT gmail.com>
2775
2776 2006-10-10 Raphael Neider <rneider AT web.de>
2777
2778         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2779         * src/pic16/devices.inc,
2780         * device/include/pic16 (pic18f[24]620.h),
2781         * device/include/pic18fregs.h,
2782         * device/lib/pic16/pics.all,
2783         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2784             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2785             Gary Plumbridge and Anton Strobl
2786
2787 2006-10-10 Raphael Neider <rneider AT web.de>
2788
2789         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2790           --stack-siz=NUM options to configure the argument passing stack
2791         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2792         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2793           (pic14_getSharebankSize): obey --stack-siz=NUM,
2794           (pic14_getSharebankAddress): obey --stack-loc=NUM
2795
2796 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2797
2798         * doc/sdccman.lyx: added to the manual
2799         * doc/figures/ddd_example.png: added (neither pdflatex nor
2800         most browsers seem to like the .eps file)
2801
2802 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2803
2804         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2805         to /tmp and /var/tmp acc. LSB
2806         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2807         RESULT_TYPE_IFX
2808         * support/regression/tests/onebyte.c: added test
2809
2810 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2811
2812         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2813
2814 2006-10-05 Borut Razem <borut.razem AT siol.net>
2815
2816         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2817           thanks to dfulab:
2818           - sdcc.dsw: changed property eol-style to CRLF
2819           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2820
2821 2006-10-04 Raphael Neider <rneider AT web.de>
2822
2823         * device/include/pic/{pic16f84.h,pic16f84a.h},
2824         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2825           from patch #1522504, thanks to Robas Teodor
2826
2827 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2828
2829         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2830           fixes bug 1566015
2831
2832 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2833
2834         * src/pic16/glue.c (pic16emitMaps),
2835         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2836         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2837         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2838         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2839           Philipp Krause
2840         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2841         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2842
2843 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2844
2845         * support/librarian/sdcclib.c: Added option -l.
2846         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2847           usage totals.
2848         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2849           using Windows command prompt.
2850
2851 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2852
2853         * device/lib/libsdcc.lib: added module rand
2854         * src/ds390/ralloc.c (rematStr),
2855         * src/hc08/ralloc.c (rematStr),
2856         * src/mcs51/ralloc.c (rematStr),
2857         * src/z80/ralloc.c (rematStr): made output more consistent
2858         * src/mcs51/gen.c: cosmetic changes
2859
2860 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2861
2862         * src/port.h: added mem.cabs_name to PORT
2863         * src/ds390/main.c,
2864         * src/hc08/main.c,
2865         * src/mcs51/main.c,
2866         * src/pic16/main.c,
2867         * src/pic/main.c,
2868         * src/xa51/main.c,
2869         * src/z80/main.c: added cabs_name initializers
2870         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2871           constants
2872           (emitMaps): emit absolutes in code memory into cabs_name
2873         * src/SDCCmem.c,
2874         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2875         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2876         * support/regression/fwk/include/testfwk.h: added define for at
2877         * support/regression/tests/absolute.c: added, new
2878
2879 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2880
2881         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2882           optimizations, see also patch 887161 by Stas Sergeev
2883         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2884           to be necessary anymore,
2885           (102, 103, 104, 127): renamed all occurances of bp to _bp
2886
2887 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2888
2889         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2890           thanks Weston T. Schmidt for patch 1555221
2891         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2892         * src/SDCCicode.c(geniCodeMultiply): small optimization
2893
2894 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2895
2896         * device/include/stdlib.h: added rand prototypes
2897         * device/lib/rand.c: new, added
2898         * device/lib/Makefile.in: added rand.c
2899         * src/z80/peeph.def,
2900         * src/z80/peeph-gbz80.def,
2901         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2902
2903 2006-09-20 Raphael Neider <rneider AT web.de>
2904
2905         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2906
2907 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2908
2909         * as/link/aslink.h: cosmetic changes
2910         * as/link/mcs51/Makefile.in,
2911         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2912
2913 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2914
2915         * as/link/aslink.h,
2916         * as/link/mcs51/aslink.h,
2917         * as/link/z80/aslink.h: merged and moved to as/link/
2918         * as/link/lkstore.c,
2919         * as/link/mcs51/lkstore.c: moved to as/link/
2920         * as/link/clean.mk: remove *.o
2921         * as/link/mcs51/alloc.h: deleted
2922         * as/link/mcs51/lkarea.c: added lnksect prototype
2923         * as/link/mcs51/lkdata.c,
2924         * as/link/mcs51/lklex.c,
2925         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2926         * as/link/mcs51/lkmem.c,
2927         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2928         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2929         * as/link/mcs51/aslink.dsp,
2930         * as/link/mcs51/Makefile.aslink,
2931         * as/link/mcs51/Makefile.bcc,
2932         * as/link/mcs51/Makefile.in: updated for moved files
2933         * as/link/z80/lkarea.c,
2934         * as/link/z80/lkhead.c,
2935         * as/link/z80/lklex.c,
2936         * as/link/z80/lklibr.c,
2937         * as/link/z80/lklist.c,
2938         * as/link/z80/lkmain.c,
2939         * as/link/z80/lkrloc.c,
2940         * as/link/z80/lksym.c: synced with mcs51
2941         * as/link/z80/lkdata.c,
2942         * as/link/z80/lkeval.c,
2943         * as/link/z80/lkihx.c,
2944         * as/link/z80/lks19.c: cosmetic changes
2945         * as/link/z80/Makefile.in,
2946         * as/link/z80/linkgbz80.dsp,
2947         * as/link/z80/linkz80.dsp: updated for moved files
2948
2949 2006-09-16 Borut Razem <borut.razem AT siol.net>
2950
2951         * debugger/mcs51/sdcdb.c: partially fixed
2952           [ 1203664 ] sdcdb fails to open files w. two "." periods
2953         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2954           debugger/mcs51/symtab.h: fixed indenting
2955         * configure.in, configure: up to date with latest Maarten's changes
2956
2957 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2958
2959         as/link/mcs51
2960         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2961         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2962         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2963         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2964         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2965         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2966         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2967         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2968         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2969         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2970         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2971         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2972         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2973         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2974         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2975         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2976         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2977         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2978         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2979         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2980         as/link/mcs51/alloc.h,
2981         as/link/mcs51/clean.mk,
2982         as/link/mcs51/conf.mk,
2983         as/link/mcs51/Makefile.bcc,
2984         as/link/mcs51/Makefile.in,
2985         as/link/mcs51/readme.390,
2986         as/link/mcs51/strcmpi.c,
2987         as/link/mcs51/strcmpi.h,
2988         as/mcs51/clean.mk,
2989         as/mcs51/Makefile.bcc,
2990         as/mcs51/Makefile.in,
2991         configure,
2992         Makefile.in,
2993         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2994
2995 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2996
2997         * as/link,
2998         * as/link/Makefile.in,
2999         * as/link/z80/linkgbz80.dsp,
3000         * as/link/z80/linkz80.dsp,
3001         * configure,
3002         * link,
3003         * link/clean.mk,
3004         * link/Makefile.in,
3005         * link/README,
3006         * link/z80,
3007         * link/z80/aslink.h,
3008         * link/z80/clean.mk,
3009         * link/z80/conf.mk,
3010         * link/z80/linkgbz80.dsp,
3011         * link/z80/linkz80.dsp,
3012         * link/z80/lkarea.c,
3013         * link/z80/lkdata.c,
3014         * link/z80/lkeval.c,
3015         * link/z80/lkgb.c,
3016         * link/z80/lkgg.c,
3017         * link/z80/lkhead.c,
3018         * link/z80/lkihx.c,
3019         * link/z80/lklex.c,
3020         * link/z80/lklibr.c,
3021         * link/z80/lklist.c,
3022         * link/z80/lkmain.c,
3023         * link/z80/lkrloc.c,
3024         * link/z80/lks19.c,
3025         * link/z80/lksym.c,
3026         * link/z80/Makefile.in,
3027         * Makefile.in,
3028         * sdcc.dsw: moved link/ to as/link/
3029
3030 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
3031
3032         * as/mcs51/i51mch.c (machine): fixed warning
3033
3034 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
3035
3036         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
3037
3038 2006-09-09 Borut Razem <borut.razem AT siol.net>
3039
3040         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
3041           sdcdb WIN32 native port
3042         * src/clean.mk: fixed
3043
3044 2006-09-08 Borut Razem <borut.razem AT siol.net>
3045
3046         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
3047
3048 2006-09-08 Raphael Neider <rneider AT web.de>
3049
3050         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
3051         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
3052             to gplink to disable processor mismatch warning and to allow
3053             the use of devices with only aliased (shared) memory banks,
3054           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
3055
3056 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3057
3058         * doc/sdccman.lyx: Some re-formating plus example on using
3059           #pragma preproc_asm +/-
3060
3061 2006-09-07 Borut Razem <borut.razem AT siol.net>
3062
3063         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
3064           section
3065
3066 2006-09-06 Borut Razem <borut.razem AT siol.net>
3067
3068         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
3069           line at sdcc.nsi:153
3070         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
3071
3072 2006-09-05 Borut Razem <borut.razem AT siol.net>
3073
3074         * configure.in, configure: support for winsock2
3075         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
3076           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
3077           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
3078           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
3079           debugger/mcs51/symtab.h: sdcdb WIN32 native port
3080
3081 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
3082
3083         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
3084           and OP_DEFS
3085         * support/regression/tests/bug1551947.c: new, added
3086         * src/SDCCsymt.h: strings are char* not byte*
3087
3088 2006-09-05 Raphael Neider <rneider AT web.de>
3089
3090         * device/lib/pic16/libdev/pic18f4550.c,
3091           device/include/pic16/pic18f4550.h: added PORTD/TRISD
3092             declarations/definitions from patch #1520949
3093
3094 2006-09-05 Raphael Neider <rneider AT web.de>
3095
3096         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
3097           byte-aligned bitfields, fixes #1539278
3098
3099 2006-09-05 Raphael Neider <rneider AT web.de>
3100
3101         * src/pic/gen.c (genReceive): skip unreferenced arguments,
3102           fixes #1544120
3103
3104 2006-09-04 Borut Razem <borut.razem AT siol.net>
3105
3106         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
3107         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
3108           -mno-cygwin is a part of the compiler name
3109         * support/scripts/sdcc_mingw32: don't disable ucsim
3110
3111 2006-09-03 Borut Razem <borut.razem AT siol.net>
3112
3113         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
3114         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
3115
3116 2006-09-03 Raphael Neider <rneider AT web.de>
3117
3118         * src/pic/ralloc.c,
3119         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
3120           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
3121           fixes #1550049
3122
3123 2006-09-01 Borut Razem <borut.razem AT siol.net>
3124
3125         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
3126           to make ppc-osx happy
3127
3128 2006-08-31 Borut Razem <borut.razem AT siol.net>
3129
3130         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
3131         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
3132         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
3133         * support/regression/ports/ds390/spec.mk,
3134           support/regression/ports/mcs51/spec.mk,
3135           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
3136           To run regression tests in mingw environment:
3137           make DEV_NULL=NUL CC=gcc
3138
3139 2006-08-30 Borut Razem <borut.razem AT siol.net>
3140
3141         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
3142           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
3143           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
3144           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
3145           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
3146           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
3147           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
3148           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
3149           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
3150           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
3151           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
3152           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
3153           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
3154           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
3155           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
3156           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
3157           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
3158           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
3159           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
3160           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
3161           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
3162           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
3163           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
3164           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
3165           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
3166           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
3167           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
3168           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
3169           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
3170           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
3171           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
3172           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
3173           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
3174           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
3175           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
3176           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
3177           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3178           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
3179           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
3180           ucsim WIN32 native port
3181
3182 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3183
3184         * doc/sdccman.lyx: added note on dynamic memory heap initialization
3185
3186 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3187
3188         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
3189         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
3190
3191 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
3192
3193         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
3194         * support/regression/tests/bug1546986.c: new, added
3195         * as/mcs51/.cvsignore,
3196         * debugger/mcs51/.cvsignore,
3197         * src/.cvsignore: deleted
3198
3199 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3200
3201         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
3202           definitions)
3203
3204 2006-08-20 Borut Razem <borut.razem AT siol.net>
3205
3206         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
3207           removed cl_listen_console::match(), cl_console::match(),
3208           restructured cl_commander::proc_input()
3209
3210 2006-08-16 Borut Razem <borut.razem AT siol.net>
3211
3212         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
3213           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
3214           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
3215
3216 2006-08-14 Borut Razem <borut.razem AT siol.net>
3217
3218         * support/regression/Makefile.in,
3219           support/regression/ports/pic14/gpsim.cmd,
3220           support/regression/ports/pic14/spec.mk,
3221           support/regression/ports/pic14/support.c:
3222           added pic14 regression test
3223
3224 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
3225
3226         * as/doc/asxhtm.html: documented changed ABS behaviour
3227         * as/doc/README: fixed some typos
3228
3229 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
3230
3231         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
3232           not defined on host
3233
3234 2006-08-12 Borut Razem <borut.razem AT siol.net>
3235
3236         * support/regression/fwk/include/testfwk.h,
3237           support/regression/fwk/lib/testfwk.c,
3238           support/regression/generate-cases.py,
3239           support/regression/Makefile.in:
3240           regression test framework does not depend on function pointers and
3241           variable arguments
3242
3243 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
3244
3245         * device/include/stddef.h: c temporary hack to fix bug 1518273
3246
3247 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3248
3249         * device/include/mcs51/cc2510fx.h: added
3250         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
3251           to projects.
3252
3253 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
3254
3255         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
3256         * as/z80/Makefile.in: added strcmpi.c
3257         * as/z80/z80adr.c: added upper case registers and lower case conditionals
3258         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
3259
3260 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
3261
3262         * device/lib/gbz80/asm_strings.s,
3263         * device/lib/gbz80/crt0_rle.s,
3264         * device/lib/gbz80/div.s,
3265         * device/lib/gbz80/mul.s,
3266         * device/lib/gbz80/shift.s,
3267         * device/lib/z80/asm_strings.s,
3268         * device/lib/z80/crt0_rle.s,
3269         * device/lib/z80/div.s,
3270         * device/lib/z80/mul.s,
3271         * device/lib/z80/shift.s: changed to all lower case menmonics except the
3272           flags which are all upper case
3273
3274 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3275
3276         * as/z80/asm.h: made CASE_SENSITIVE 1
3277         * link/z80/aslink.h: made CASE_SENSITIVE 1
3278         * src/z80/gen.c (throughout): made all conditionals upper case
3279         * support/regression/tests/bug1503067.c: new
3280
3281 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3282
3283         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
3284           (shiftIntoPair): added case 2 for PAIR_IY,
3285           (setupToPreserveCarry): replaced parameters with iCode and check if
3286            PAIR_DE is in use to fix bug 1399290,
3287           (genPlus, genMinus): updated call to setupToPreserveCarry
3288         * support/regression/tests/bug1399290.c: new
3289
3290 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
3291
3292         * device/lib/Makefile.in (Z80SOURCES): enabled float support
3293         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
3294         * src/ds390/gen.c (shiftRLong),
3295         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
3296         * src/mcs51/gen.c (sameReg): changed to sameByte,
3297           (xch_a_aopGet): new,
3298           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
3299            shiftRLong): fixed bug 1533966
3300         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
3301           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
3302         * support/regression/Makefile.in: disabled z80, enabled ucz80
3303         * support/regression/tests/float_trans.c: enabled test for z80 and host
3304         * support/regression/tests/shifts2.c: new, for testing bug 1533966
3305
3306 2006-08-01 Borut Razem <borut.razem AT siol.net>
3307
3308         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
3309           comparison is always false due to limited range of data type
3310           on PPC64 machine (openpower-linux1) where "char = unsigned char"
3311
3312 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
3313
3314         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
3315         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
3316         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
3317         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
3318
3319 2006-07-31 Borut Razem <borut.razem AT siol.net>
3320
3321         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
3322           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
3323           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
3324           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
3325           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
3326           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
3327           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
3328           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
3329           enable ucsim mingw compilation. Serial port is disabled,
3330           since it uses termios.h API, which is not available on native
3331           WIN32
3332
3333 2006-07-31 Borut Razem <borut.razem AT siol.net>
3334
3335         * Small Device C Compiler 2.6.0 released
3336         * support/scripts/sdcc.nsi: added FULL_DOC option
3337         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
3338
3339 2006-07-28 Borut Razem <borut.razem AT siol.net>
3340
3341         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
3342         * doc/INSTALL.txt: updated
3343
3344 2006-07-27 Borut Razem <borut.razem AT siol.net>
3345
3346         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
3347           device/lib/pic/libdev/Makefile.in: fixed bug
3348           [ 1438354 ] pic libsdcc: distclean doesn't work
3349         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
3350           device/lib/pic16/libio/Makefile.in: fixed bug
3351           [ 1438344 ] pic16 lib: clean doesn't work properly
3352         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
3353
3354 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
3355
3356         * device/lib/pic/libsdcc/fsdiv.c,
3357         * device/lib/pic/libsdcc/fsmul.c,
3358         * device/lib/pic16/libsdcc/float/fsdiv.c,
3359         * device/lib/pic16/libsdcc/float/fsmul.c,
3360         * device/lib/_fsdiv.c,
3361         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
3362         * support/regression/tests/bug1520966.c: added
3363         * doc/knownbugs.html: removed [ 1520966 ] from the list
3364
3365 2006-07-25 Borut Razem <borut.razem AT siol.net>
3366
3367         * configure.in, configure, sdccconf_in.h: fixed bug
3368           [ 1519095 ] regression test onebyte.c fails on ppc64 host
3369         * doc/knownbugs.html: removed [ 1519095 ] from the list
3370
3371 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
3372
3373         * doc/knownbugs.html: added, contains list of known bugs at release
3374         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
3375
3376 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3377
3378         * device/include/mcs51/compiler.h: added SFRX for xdata based special
3379           function registers and corrected defaults with additional warning
3380         * device/lib/malloc.c: cosmetic changes
3381         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
3382         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
3383           (fillGaps): and used it
3384
3385 2006-07-20 Raphael Neider <rneider AT web.de>
3386
3387         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
3388           output unless SDCCPICDEBUG is set
3389         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
3390           output if SILENT is set
3391
3392 2006-07-11 Borut Razem <borut.razem AT siol.net>
3393
3394         * doc/README.txt: updated
3395
3396 2006-07-10 Borut Razem <borut.razem AT siol.net>
3397
3398         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
3399           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
3400           in WIN32 installation
3401         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
3402           release candidate 1
3403
3404 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
3405
3406         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
3407         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
3408
3409 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
3410
3411         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
3412
3413 2006-07-06 Borut Razem <borut.razem AT siol.net>
3414
3415         * support/regression/tests/bitfields.c:
3416           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
3417         * support/regression/tests/constantRange.c:
3418           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
3419
3420 2006-07-04 Borut Razem <borut.razem AT siol.net>
3421
3422         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
3423           src/port.mk,
3424           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3425           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3426           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3427           reverted changes from 2006-07-03
3428         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
3429         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
3430           added CPPFLAGS, used by the host port
3431
3432 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
3433
3434         * support/regression/valdiag/tests/switch.c,
3435         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
3436         * support/regression/tests/libmullong.c: fixed for host
3437         * support/regression/ports/host/spec.mk: disable all warnings for host,
3438         SDCC runs with --less-pedantic too
3439
3440 2006-07-03 Borut Razem <borut.razem AT siol.net>
3441
3442         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
3443           defined CPPFLAGS
3444         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
3445         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3446           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3447           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3448           include ../port.mk
3449         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
3450           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3451           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
3452           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
3453
3454 2006-07-02 Raphael Neider <rneider AT web.de>
3455
3456         * src/pic16/devices.inc,
3457         * device/include/pic16/pic18fregs.h,
3458         * device/include/pic16/pic18f4550.h,
3459         * device/lib/pic16/pics.all,
3460         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
3461
3462 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
3463
3464         * as/hc08/lkaomf51.c (OutputName),
3465         * as/mcs51/lkaomf51.c (OutputName),
3466         * as/z80/asmain.c (asmbl),
3467         * src/ds390/main.c (asmLineNodeFromLineNode),
3468         * src/hc08/ralloc.c (hc08_assignRegisters),
3469         * src/mcs51/main.c (asmLineNodeFromLineNode),
3470         * src/xa51/ralloc.c (checkRegMask),
3471         * src/xa51/gen.c (emitcode),
3472         * src/z80/gen.c (_emit2),
3473         * src/SDCCast.c (searchLitOp),
3474         * src/SDCCglobl.h,
3475         * support/packihx/packihx.c,
3476         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
3477         * src/ds390/gen.c (aopPutUsesAcc),
3478         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
3479         * support/regression/tests/libmullong.c (mullong_wrapper),
3480         * src/SDCCsymt.c (powof2),
3481         * src/SDCCast.c,
3482         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
3483         * src/SDCCsymt.h: added TYPE_TARGET_*
3484         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
3485         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
3486         SDCCast because 1) header problems 2) this is the right place
3487         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
3488         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
3489         prototype
3490
3491 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
3492
3493         * src/SDCCicode.h: removed buggy semicolon in unused macro
3494         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
3495         search for previous definiton of auto symbols too,
3496         (findPrevUse): fixed logic of emitWarnings
3497
3498 2006-06-26 Raphael Neider <rneider AT web.de>
3499
3500         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
3501           PCLATH and PCLATU on interrupts, potentially fixes #1505141
3502
3503 2006-06-25 Raphael Neider <rneider AT web.de>
3504
3505         * device/lib/pic/libm: NEW, added math library functions
3506         * device/lib/pic/libsdcc: NEW; added float support functions
3507         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
3508         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
3509           NEW, added math related headers
3510         * device/include/asm/pic/features.h: NEW
3511         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
3512           (popGet): allow larger offsets for AOP_PCODE,
3513           (genDataPointerSet): handle literals explicitly, more debug output,
3514           (genAssign): fixed for float using aopLiteral ;-)
3515         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
3516           GOTO initialisation routine
3517         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
3518           flag on registers, fixes #1469043 (local variables do not work)
3519         * src/pic/main.c (_pic14_do_link),
3520         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
3521           available
3522
3523 2006-06-25 Borut Razem <borut.razem AT siol.net>
3524
3525         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
3526           characters printed (not including the trailing '\0' used to end
3527           output to strings). Problem detected in regression test bug-927659.c.
3528           NOTE: printf() family functions should return int instead
3529           unsigned int!
3530         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
3531           specifier are printed as themselves
3532         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
3533           support flags, width and precision specifiers
3534
3535 2006-06-24 Borut Razem <borut.razem AT siol.net>
3536
3537         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
3538           to the list of sdcc tagrets not supporting bit type
3539         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
3540           testfor pic16 due to bug:
3541           [ 1511794 ] pic16: regression test bug-895992.c fails
3542
3543 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
3544
3545         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
3546         * src/SDCCglue.c (initPointer), fixed bug 1496419
3547         * support/regression/tests/bug1496419.c: new, added
3548
3549 2006-06-22 Borut Razem <borut.razem AT siol.net>
3550
3551         * support/regression/ports/pic16/support.c: use gpsim usart module from
3552           libgpsim_modules library
3553
3554 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3555
3556         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
3557         IP0H to IPH0.
3558
3559 2006-06-19 Raphael Neider <rneider AT web.de>
3560
3561         * src/pic/glue.h,src/pic16/glue.h: added prototypes
3562         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
3563           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
3564           (pic14printExterns,pic14printPublics,pic16printPublics,
3565           pic16_printExterns): use new functions to emit symbols
3566           (picglue,pic16glue): emit publics before emitting externs
3567         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
3568           locally defined functions to avoid bug #1443651
3569         * support/regression/tests/bug-716242.c: removed pic16 workaround
3570         * support/regression/ports/pic16/spec.mk: ignore errors during build
3571
3572 2006-06-19 Raphael Neider <rneider AT web.de>
3573
3574         * src/pic/glue.h: added pic14aopLiteral prototype
3575         * src/pic/glue.c (pic14aopLiteral): return unsigned int
3576         * src/pic/gen.c: removed stdint.h dependency
3577           (aopGet): use Safe_strdup()
3578           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
3579           (genDataPointerSet): use pic14aopLiteral()
3580         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
3581           for pic16; thanks to Bernhard and Maarten
3582
3583 2006-06-18 Borut Razem <borut.razem AT siol.net>
3584
3585         * support/regression/tests/structflexarray.c: flexible array members
3586           not supported by gcc < 3
3587         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
3588           GUI tool by default
3589         * src/pic/gen.c: don't include [p]strdin.h on solaris
3590         * support/Util/pstdint.h: addad svn attributes
3591         * support/regression/tests/constantRange.c,
3592           support/regression/tests/rotate.c: include inttypes.h instead
3593           stdint.h on solaris, addad svn attributes
3594
3595 2006-06-18 Raphael Neider <rneider AT web.de>
3596
3597         * src/SDCCsymt.c (initCSupport): change return type of divschar to
3598           int for PIC16
3599         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
3600           (pic16_genMinusBits): simplified sign-extension
3601           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
3602             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
3603             adjusted to correctly handle mixed-signed operands, disabled
3604             now unused multiplciation routines
3605         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
3606           (assignResultValue): added argument denoting the size of the result
3607             as returned by the function (fixes upcasts in assigning from
3608             function calls: char foo(); int i = foo();)
3609           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
3610             function result to assignResultValue
3611           (genMult): disabled inlined multiplication code
3612           (genDiv): augmented to also handle the modulus operator, fixed to
3613             handle mixed-signed operands correctly
3614           (genMod): simply call genDiv, disabled unused code
3615           (genAssign): fixed missing (sign-)extension on result
3616         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
3617             valid char operands, allow signed operands for native code, added
3618             division and modulo operator handling
3619         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
3620
3621         As a consequence, onebyte.c (if split into two files) and muldiv.c
3622         pass regression tests.
3623
3624 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3625
3626         * doc/Makefile.in: two runs of makeindex seem needed to get
3627         correct page references in the index of sdccman.pdf
3628         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
3629
3630 2006-06-17 Borut Razem <borut.razem AT siol.net>
3631
3632         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
3633
3634 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3635
3636         * doc/sdccman.lyx: updated, added (porting source code, debugging),
3637         mentioned ec2drv and paulmon
3638
3639 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
3640
3641         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
3642           consecutive abs areas
3643           (find_empty_space, allocate_space): added map to handle codemap or
3644            xdatamap,
3645           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
3646            absolute idata and xdata
3647         * as/mcs51/lkmem.c (summary2): updated legend
3648
3649 2006-06-16 Raphael Neider <rneider AT web.de>
3650
3651         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
3652
3653 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
3654
3655         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
3656           1208515
3657         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
3658
3659 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
3660
3661         * src/port.h (struct PORT): added field gp_tags, to hold the tag
3662         value of generic pointers,
3663         * src/avr/main.c,
3664           src/ds390/main.c,
3665           src/hc08/main.c,
3666           src/izt/i186.c,
3667           src/izt/tlcs900h.c,
3668           src/mcs51/main.c,
3669           src/pic/main.c,
3670           src/pic16/main.c,
3671           src/xa51/main.c,
3672           src/z80/main.c: PORT structure, added elements for gp_tags field,
3673         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
3674         fields in the PORT structure of each port,
3675         * src/SDCCast.c (decorateType): allow processing of generic pointers
3676         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
3677         S_FIXED symbols
3678
3679 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
3680
3681         * link/z80/lkgb.c,
3682         * link/z80/lkgg.c,
3683         * src/pic16/gen.c,
3684         * src/pic16/main.c,
3685         * src/pic16/pcode.c,
3686         * src/pic/main.c,
3687         * src/pic/pcoderegs.c,
3688         * src/SDCCicode.c,
3689         * src/SDCCmain.c,
3690         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3691           bug 1504689 on minGW
3692
3693 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3694
3695         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3696
3697 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3698
3699         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3700
3701 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3702
3703         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3704           for optimization
3705
3706 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3707
3708         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3709         to a char variable. Fixed bug #1504211
3710         * device/include/pic16/adc.h,
3711         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3712         and fixed bug #1364390
3713
3714 2006-06-10 Borut Razem <borut.razem AT siol.net>
3715
3716         * CVSROOT: removed the CVS left-over
3717
3718 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3719
3720         * as/hc08/asmain.c (asexit),
3721         * as/hc08/lkmain.c (lkexit),
3722         * as/mcs51/asmain.c (asexit),
3723         * as/mcs51/lkmain.c (lkexit),
3724         * src/SDCCglue.c (DEFSETFUNC),
3725         * src/SDCCmain.c (linkEdit, assemble),
3726         * support/librarian/sdcclib.c (AddRel),
3727           replaced unlink() by standard C remove()
3728         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3729         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3730           gatherImplicitVariables): new, added to fix bug 608752,
3731           (createFunction): added gatherImplicitVariables()
3732         * src/SDCCast.h: added createRMW prototype
3733         * src/SDCCsymt.h (struct symbol): added infertype
3734         * support/regression/tests/bug608752.c: new, added
3735
3736 2006-06-10 Raphael Neider <rneider AT web.de>
3737
3738         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3739           multibyte dummy reads (fixes #1503234)
3740
3741 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3742
3743         * device/include/mcs51/compiler.h: new, added header file to enable
3744           creating common sfr definition header files for different compilers
3745
3746 2006-06-05 Raphael Neider <rneider AT web.de>
3747
3748         * src/pic16/{pcode.h,genarith.c}:
3749           introduced pCodeOp combining any two pCodeOps (previously only
3750           two register operands could be combined), removed pcop2 from
3751           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3752         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3753         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3754           rewritten to use new PO_TWO_OPS
3755         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3756         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3757           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3758           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3759           (pic16_get_op): embraced return arg to allow #define return(x),
3760             added new case for combined opcodes
3761           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3762           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3763            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3764
3765 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3766
3767         * src/SDCCval.c (checkConstantRange): added
3768         * src/SDCCval.h: added checkConstantRange
3769         * support/Util/SDCCerr.c,
3770         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3771         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3772         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3773         * src/SDCCast.c (decorateType): added checkConstantRange,
3774         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3775         can be emitted with the correct always true/false warning,
3776         added optimization for double '!';
3777         result of decorateType() must be assigned back to the tree, because
3778         decorateType() can change the tree
3779         * src/SDCCicode.c (geniCodeLogic),
3780         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3781         (checkConstantRange): removed, it was only a fragment which never
3782         emitted a warning
3783         * src/SDCCsymt.c (computeType): fixed promotion for
3784         "-1 < (unsigned bit) b"
3785         * src/pic/ralloc.c (packRegsForAssign),
3786         * src/pic16/ralloc.c (packRegsForAssign),
3787         * src/hc08/ralloc.c (packRegsForAssign),
3788         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3789         from mcs51
3790         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3791         * support/regression/tests/constantRange.c: added
3792         * support/valdiag/tests/constantRange.c: added
3793         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3794
3795 2006-06-02 Borut Razem <borut.razem AT siol.net>
3796
3797         * support/regression/ports/pic16/support.c: increase stack size
3798           to 255 bytes
3799         * support/regression/Makefile.in: sort tests by name so that the
3800           resutlts can be compared on different machines / platforms
3801
3802 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3803
3804         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3805         * src/ds390/gen.c (emitLabel): new, added,
3806           (genDjnz): fixed stack overflow bug,
3807           (throughout): cosmetic changes to sync with mcs51/gen.c,
3808           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3809         * src/mcs51/gen.c (genEndFunction): small optimization,
3810           (throughout): cosmetic changes to sync with ds390/gen.c
3811
3812 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3813
3814         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3815           (_print_format): fixed printing pointers
3816         * src/mcs51/gen.c (emitLabel, movb): new, added,
3817           (genAssign): small optimization,
3818           (genDjnz): fixed stack overflow bug,
3819           (throughout): replaced sprintf with SNPRINTF,
3820           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3821           replaced emitcode("mov", "b,...") with MOVB(...),
3822           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3823           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3824         * src/mcs51/peeph.def: added rules 140 and 264
3825         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3826           so they may get optimized into registers
3827
3828 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3829
3830         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3831           immediately when encountered,
3832           (printUsage): always use stderr even on windows
3833
3834 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3835
3836         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3837         (processParms): fixed bug #1247551
3838         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3839         parseCmdLine, main): print '--version' to stdout,
3840         print 'help' to stdout if --help is given,
3841         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3842         arguments are given; fixed --help
3843
3844 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3845
3846         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3847         * support/regression/tests/bug-1493710.c: added
3848
3849 2006-05-27 Borut Razem <borut.razem AT siol.net>
3850
3851         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3852           static instead auto
3853         * support/regression/ports/pic16/support.c: increase stack size
3854           from default 64 bytes to 128 bytes
3855         * support/regression/tests/staticinit.c,
3856           support/regression/tests/float.c: regression tests fully enabled
3857           for pic16 port by putting the initialized data arrays into the code
3858           section
3859         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3860           This was changed by mistake in the previous version.
3861
3862 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3863
3864         * src/pic16/gen.c (genFunction, genEndFunction): some
3865         beautifications, fixed bug with falsely restoring FSR2 in large
3866         stack model, thanks to Beau E. Cox for reporting the bug
3867
3868 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3869
3870         * debugger/mcs51/break.c,
3871         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3872           use %p to print pointers, made address variables unsigned
3873         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3874         * debugger/mcs51/symtab.c (parseSymbol): must return something
3875         * src/mcs51/gen.c (aopForSym): small optimization,
3876            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3877           (freeAsmop): added missing break,
3878           (aopPut): removed parameter bvolatile, determine it inside the function,
3879           (saveRegisters, unsaveRegisters): small optimization,
3880           (genIpush): removed pointless check,
3881           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3882           replaced sprintf with SNPRINTF,
3883           replaced strcpy with strncpyz,
3884           updated aopPut calls,
3885           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3886         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3887
3888 2006-05-24 Borut Razem <borut.razem AT siol.net>
3889
3890         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3891           modification of test for the pic16 port, put the array to the code
3892           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3893
3894 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3895
3896         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3897         * support/Util/pstdint.h: added
3898
3899 2006-05-22 Borut Razem <borut.razem AT siol.net>
3900
3901         * src/regression/Makefile: removed bool2.c test, added -q linker option
3902         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3903           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3904           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3905           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3906           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3907           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3908           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3909           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3910           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3911
3912 2006-05-22 Raphael Neider <rneider AT web.de>
3913
3914         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3915           bug #1492360 (problematic due to generic pointers, see code)
3916
3917 2006-05-22 Borut Razem <borut.razem AT siol.net>
3918
3919         * support/regression/ports/pic16/specs.mk: removed stack size linker
3920           directive
3921         * support/regression/tests/array.c,
3922           support/regression/tests/bitopcse.c,
3923           support/regression/tests/bug-908454.c,
3924           support/regression/tests/malloc.c: modified for pic16 regression test
3925         * support/regression/tests/bitfields.c:
3926           pic16 - excluded bitfileds of size > 8
3927         * support/regression/tests/bp.c: pic16 - reduced data size
3928         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3929         * support/regression/tests/bug-460010.c:
3930           pic16 - used the absolute address the fits in memory
3931         * support/regression/tests/bug-716242.c:
3932           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3933         * support/regression/tests/float.c:
3934           pic16 - excluded - data size too big
3935         * support/regression/tests/onebyte.c:
3936           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3937         * support/regression/tests/shifts.c:
3938           pic16 - function names probably have to differ in first X characters
3939           (gpasm limitation?)
3940         * support/regression/tests/staticinit.c:
3941           pic16 - excluded some tests due error: no target memory available for
3942           section ".idata"
3943
3944 2006-05-22 Borut Razem <borut.razem AT siol.net>
3945
3946         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3947           second try. Thanks Stas Sergeev once more.
3948
3949 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3950
3951         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3952           (genLeftShift, genRightShift): fixed bug 1491627
3953         * src/hc08/peeph.def (rules 7, 8.x): added
3954         * support/regression/tests/shifts.c (ShiftLeftByParam,
3955           ShiftRightByParam, testShiftByParam): added to test variable shifting
3956
3957 2006-05-20 Raphael Neider <rneider AT web.de>
3958
3959         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3960         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3961           (allocReg): add only new registers to dynAllocRegs,
3962           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3963             #1489055, #1445850, and probably #1483693
3964
3965 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3966
3967         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3968         bug in for-loop that didn't emit the last of CONFIG and ID registers
3969
3970 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3971
3972         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3973           with offset
3974         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3975           1489016, 1434401 and 1490124
3976         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3977           1489016, 1434401 and 1490124
3978
3979 2006-05-17 Borut Razem <borut.razem AT siol.net>
3980
3981         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3982           thanks Stas Sergeev
3983
3984 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3985
3986         * device/include/mcs51/P89c51RD2.h,
3987         * device/include/mcs51/P89LPC901.h,
3988         * device/include/mcs51/P89LPC922.h,
3989         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3990
3991 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3992
3993         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3994         to fix missing stack pragma in compiled binary object file,
3995
3996 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3997
3998         * support/packihx/configure.in,
3999         * support/packihx/configure: removed warning, autoconf >= 2.5x can
4000         determine sizeof basic types even while cross compiling
4001
4002 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
4003
4004         * src/avr/gen.c (aopop),
4005         * src/ds390/gen.c (aopOp),
4006         * src/hc08/gen.c (aopOp),
4007         * src/mcs51/gen.c (aopop),
4008         * src/pic16/gen.c (pic16_aopOp),
4009         * src/pic/gen.c (aopOp),
4010         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
4011         if size of operand is smaller than spill location
4012
4013 2006-05-12 Borut Razem <borut.razem AT siol.net>
4014
4015         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
4016           have to have CR/LF line endings even if they are checked out on *nix
4017           or on WIN32 in cygwin binmode
4018
4019 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
4020
4021         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
4022         * device/include/ds80c390.h: added sfr16 definitions
4023         * src/ds390/gen.c,
4024         * src/ds390/gen.h,
4025         * src/ds390/main.c,
4026         * src/ds390/ralloc.c,
4027         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
4028           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
4029           bit returning functions
4030         * support/regression/tests/sfr16.c: enabled test on ds390
4031
4032 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4033
4034         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
4035         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
4036
4037 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
4038
4039         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
4040         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
4041           (cl_address_space constructor): removed expensive initialization,
4042           (cl_address_space::get_cell): extended for late initialization,
4043           (cl_address_space::*): use late initialization,
4044           (cl_address_decoder::activate): removed expensive initialization,
4045           This reduced regression test running time by 25%
4046
4047 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
4048
4049         * packihx/,
4050         * configure.in,
4051         * configure,
4052         * sdcc.dsw,
4053         * Makefile.bcc,
4054         * Makefile.in,
4055         * support/packihx/Makefile.in,
4056         * support/packihx/clean.mk,
4057         * support/packihx/Makefile.bcc,
4058         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
4059
4060 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4061
4062         * src/SDCCval.c (valNot): fix for regression test failure
4063           of not.c on big endian hosts
4064
4065 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
4066
4067         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
4068
4069 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4070
4071         * device/lib/mcs51/Makefile.in: changed string comparison operator
4072           to = for POSIX compliance; == is bash extension
4073
4074 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
4075
4076         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
4077           kosmonaut_pirx
4078
4079 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
4080
4081         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
4082         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
4083         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
4084         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
4085         bug report #1478657,
4086
4087 2006-05-05 Borut Razem <borut.razem AT siol.net>
4088
4089         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
4090           making the html
4091
4092 2006-05-02 Borut Razem <borut.razem AT siol.net>
4093
4094         * doc/Makefile.in: removed *.ind dependency since there is no rule to
4095           create *.ind, which made make to fail if invoked with -j 2
4096
4097 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
4098
4099         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
4100           Hubert Sack for patch 1479782
4101
4102 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
4103
4104         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
4105
4106 2006-05-01 Raphael Neider <rneider AT web.de>
4107
4108         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
4109           (create_pic): store only prefix-free device name,
4110           (init_pic): check for device names with "16" prefix,
4111           (list_valid_pics),
4112         * src/pic/device.h (struct PIC_device),
4113         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
4114             stored device name,
4115         * device/include/pic/pic12f{635,675,629,683}.h,
4116         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
4117         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
4118         * device/include/pic/pic16f505.h,
4119         * device/lib/pic/libdev/pic16f505.c: removed
4120         * device/include/pic/pic14devices.txt: added support for pic12f
4121             devices, removed unsupported non 16-bit devices
4122             [above changes provided by patch from Zik Saleeba]
4123         * src/pic/*, src/pic16/*, device/include/pic16/*,
4124           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
4125
4126 2006-05-01 Borut Razem <borut.razem AT siol.net>
4127
4128         * configure.in, configure, doc/Makefile.in:
4129           sync with nightly build makefile - latex, dvipdf and dvips
4130           not needed any more
4131
4132 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
4133
4134         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
4135         in the library source
4136
4137 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
4138
4139         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
4140
4141 2006-04-28 Raphael Neider <rneider AT web.de>
4142
4143         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
4144         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
4145           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
4146         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
4147
4148 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
4149
4150         * device/lib/pic/libdev/Makefile.in,
4151         * device/lib/hc08/Makefile.in,
4152         * device/lib/gbz80/Makefile.in,
4153         * device/lib/z80/Makefile.in,
4154         * device/lib/ds390/Makefile.in,
4155         * device/lib/ds400/Makefile.in: added srcdir to include search path,
4156         thanks to Borut for the bug report
4157         * configure.in,
4158         * configure: always create doc/Makefile independent from --enable-doc
4159         * Makefile.in: always install from directory doc independent from
4160         --enable-doc
4161         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
4162         removed
4163         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
4164         * doc/Makefile.in: install *.txt if present
4165         * device/include/Makefile.in (install): added installation of pic/*.inc
4166         and pic/*.txt files again, they were erroneously removed
4167
4168 2006-04-28 Raphael Neider <rneider AT web.de>
4169
4170         * src/pic/{gen.c,main.h,pcode.c},
4171         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
4172             concerning signedness with casts
4173
4174 2006-04-28 Raphael Neider <rneider AT web.de>
4175
4176         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
4177             definition of an interrupt handler,
4178         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
4179             interrupt handler stuff from picglue() to separate routine,
4180           (picglue): enabled definition of intr handlers in files w/o main()
4181
4182 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4183
4184         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
4185           compilation with MSVC 2005 Express Edition (VC8)
4186
4187 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
4188
4189         * device/lib/Makefile: fixed build of gbz80 lib
4190
4191 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4192
4193         * support/regression/tests/bug-460010.c,
4194         * support/regression/tests/bug-524691.c,
4195         * support/regression/tests/bug-716242.c: removed conditional defines
4196           that are already in testfwk.h
4197
4198 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4199
4200         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
4201           (AccAXRsh1): added, shift right by 1,
4202           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
4203            AccAXLrl1
4204         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
4205
4206 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
4207
4208         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
4209         remove cast to same type
4210         * src/SDCCast.c (decorateType): fix for RFE 1475742,
4211         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
4212         * as/z80/Makefile,
4213         * link/z80/Makefile: removed, they have moved to
4214         Makefile.in files
4215         * configure,
4216         * configure.in: replaced duplicate message about ucsim by missing sdcpp
4217         * install-sh: fix bug #1204398 by setting umask 0022
4218         * device/lib/Makefile: separate build of z80 and gbz80 lib
4219
4220 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
4221
4222         Enabled VPATH feature: changed nearly all Makefiles (149 files).
4223         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
4224
4225         One basic decision: e.g. src/clean.mk includes further files. In order
4226         to make this work there are two solutions:
4227         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
4228           run configure on them. This way they can use
4229           'include $(srcdir)/port-clean.mk'
4230         - always include clean.mk by the Makefile at the same level. To avoid
4231           that `make clean` tries to include and build Makefile.dep the
4232           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
4233           implemented, because now even `make uninstall` doesn't create
4234           Makefile.in. clean.mk could be eliminated by pasting it in
4235           Makefile.in.
4236
4237         * debugger/mcs51/Makefile.in: build own objects from library sources
4238         (SLIB, SDCC) in current directory
4239
4240         * configure, configure.in: renamed --disable-device-lib-build in
4241         --disable-device-lib; added --enable-doc, the required tools are
4242         searched by configure; added result message; the toolchain for the
4243         belonging ports are now only built, if the port is enabled.
4244
4245         * support/regression/*: all output is written in directory gen, because
4246         the fwk and ports directories don't livet in the build tree using vpath
4247
4248         * doc/sdccman.lyx: renamed --disable-device-lib-build to
4249         --disable-device-lib, added --enable-doc, added section VPATH
4250
4251         * sim/ucsim/configure.in,
4252         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
4253         z80 are enabled by default
4254
4255 2006-04-24 Raphael Neider <rneider AT web.de>
4256
4257         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
4258             to config word, "pic14_"-prefixed some extern functions
4259           (pic14_emitConfigWord): emit __config directive(s) if assignment to
4260             config word has been found
4261         * src/pic/device.h: added prototypes
4262         * src/pic/pcode.c: added "pic14_"-prefix where needed
4263         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
4264             fixup
4265         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
4266             words,
4267           (pic14emitRegularMap): ignore config words,
4268           (pic14createInterruptVect): moved generating __config directives away
4269           (picglue): have __config directives emitted
4270
4271 2006-04-24 Borut Razem <borut.razem AT siol.net>
4272
4273         * doc/Makefile: sync with nightly build makefile
4274
4275 2006-04-24 Raphael Neider <rneider AT web.de>
4276
4277         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
4278             registers that have not been assigned proper liveranges,
4279             fixes #1469504 and #1474602,
4280           (pCodeRegOptimizeRegUsage): fixed typo in comment
4281
4282 2006-04-24 Borut Razem <borut.razem AT siol.net>
4283
4284         * device/examples/main8051.c: deleted - it was removed from CVS
4285           24.mar.2000 and after that modified 18.feb.2001, so it reappered
4286           after the transition to Subversion
4287         * src/SDCCalloc.h: deleted - it was removed  from CVS
4288           3.feb.2001 and after that modified 18.feb.2001, so it reappered
4289           after the transition to Subversion
4290         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
4291           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
4292           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
4293           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
4294
4295 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
4296
4297         * as/asx8051.dsp: added mcs51/strcmpi.h
4298         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
4299         * as/hc08/aslink.h: updated lnksect prototype
4300         * as/hc08/asm.h,
4301         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
4302         * as/hc08/asmain.c,
4303         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
4304           (newdot): handle A_ABS
4305         * as/hc08/asout.c,
4306         * as/mcs51/asout.c (outarea): output address
4307         * as/hc08/lkaomf51.c,
4308         * as/mcs51/lkaomf51.c: disabled unused array UsageType
4309         * as/hc08/m08pst.c,
4310         * as/mcs51/i51pst.c,
4311         * as/z80/z80pst.c: "ABS" is not A_OVR
4312         * as/hc08/lkarea.c (newarea): read a_addr,
4313           (lnkarea): added codemap array, sort absolute areas to the front,
4314            combine all GSINITx/GSFINAL,
4315           (find_empty_space, allocate_space): new functions,
4316           (lnksect): return next address, handle absolute sections
4317         * as/mcs51/lkarea.c (newarea): read a_addr,
4318           lnksect2 prototype changed,
4319           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
4320           (find_empty_space, allocate_space): new, factored out of lnksect2,
4321           (lnksect2): return next address, handle absolute sections
4322         * as/hc08/lkhead.c,
4323         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
4324         * as/hc08/lklibr.c (addfile, fndsym),
4325         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
4326           index out of range and detect both '\' and '/'
4327         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
4328         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
4329           regression tests (ds390 cannot return bool yet)
4330         * doc/sdccman.lyx: changed version number, document changed --no-peep,
4331           document critical interrupts on z80, document changed SDCC define
4332         * src/asm.c (_asxxxx_mapping): fixed .org directive,
4333           (_a390_mapping): added .org directive
4334         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
4335           (genMultOneByte): fixed warnings
4336         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
4337           ones
4338         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
4339         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
4340           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
4341         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
4342         * src/pic16/main.c: removed newReg prototype
4343         * src/pic16/pcode.c,
4344         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
4345           warnings
4346         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
4347           ones
4348         * src/pic16/ralloc.c
4349         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
4350           to fix warnings
4351         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
4352           from short to PIC_OPTYPE
4353         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
4354         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
4355           optype from short to PIC_OPTYPE
4356         * src/port.h: made int_size unsigned to fix warnings
4357         * src/SDCC.y: fixed warning on MSVC
4358         * src/SDCCicode.c (getArraySizePtr): return unsigned int
4359         * src/SDCCopt.c (convertToFcall): fixed warnings
4360         * src/SDCCsymt.h: removed double prototype for genSymName
4361         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
4362           offset int to fix warnings
4363
4364 2006-04-22 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-21 Borut Razem <borut.razem AT siol.net>
4370
4371         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4372           references to CVS replaced with Subversion
4373
4374 2006-04-19 Borut Razem <borut.razem AT siol.net>
4375
4376         * src/version.awk: adapted for svn
4377         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
4378           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
4379           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
4380           /binutils-avr/etc/*.vi, *.jin: removed all properties
4381           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
4382
4383 2006-04-19 Borut Razem <borut.razem AT siol.net>
4384
4385         * CVS to Subversion migration completed
4386
4387 2006-04-18 Borut Razem <borut.razem AT siol.net>
4388
4389         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
4390           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
4391
4392 2006-04-17 Borut Razem <borut.razem AT siol.net>
4393
4394         * device/include/Makefile.in: added pic/*.inc to the installation
4395
4396 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
4397
4398         * support/regression/collate-results.py: fixed output in case of
4399         a valdiag error
4400         * support/regression/generate-cases.py: fixed splitting of pathnames
4401         with dots
4402         * as/hc08/lklibr.c (addfile),
4403         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
4404
4405 2006-04-11 Raphael Neider <rneider AT web.de>
4406
4407         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
4408         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
4409         * src/pic16/pcode.c (assignValnums): fixed #1460578
4410
4411 2006-04-11 Raphael Neider <rneider AT web.de>
4412
4413         * device/lib/pic/libdev/*.c,
4414         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
4415           fixes #1468739, enables compilation in --std-c99 mode
4416         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
4417
4418 2006-04-11 Raphael Neider <rneider AT web.de>
4419
4420         * src/pic/device.c (find_device): removed debug output
4421           (list_valid_pics): enabled verbose listing of supported devices
4422         * device/include/stdbool.h: define bool as char for pic14/16 as well
4423
4424 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4425
4426         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
4427
4428 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4429
4430         * .version: bumped version to 2.5.6
4431         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
4432
4433 2006-04-06 Raphael Neider <rneider AT web.de>
4434
4435         * .version: bumped version to 2.5.6 (pic14 ABI changed)
4436         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
4437         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
4438           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
4439             pic14_constructAbsMap
4440           (pic14printPublics): declare absolute global symbols as global
4441           (pic14createInterruptVect),
4442         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
4443           (newReg): assume new registers unused, use correct name in
4444             hashtable (reg->name instead of name), more debugLog output
4445         * src/pic/device.h (PIC_device): added fields for verbose output
4446         * src/pic/device.c: moved device definition to pic14devices.txt,
4447             added routines for runtime parsing of pic14devices.txt,
4448             added support for second config word
4449         * src/pic/main.c (_process_pragma): removed #pragma maxram,
4450           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
4451           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
4452           (_pic14_parseOptions): moved pCodeInitRegisters here
4453           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
4454         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
4455           (pCodeInitRegisters): rewrapped comments, perpared new approach to
4456             handling the pseudo stack
4457         * device/lib/Makefile.in: ignore failures in objects-pic16,
4458         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
4459         * device/lib/pic/NEWS: document new dependency on picXXX.lib
4460         * device/lib/pic/Makefile.subdir,
4461         * device/lib/pic16/Makefile.subdir: improved clean rules
4462         * device/lib/pic/libdev/: NEW, pic14 device libraries
4463         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
4464         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
4465         * device/include/Makefile.in: create subdir and install pic14 headers
4466         * device/include/pic/p16f_common.inc: removed unused declarations
4467         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
4468             PICs from inc2h.pl v1.6,
4469             replaced BIT_AT macros with struct declarations
4470         * device/include/pic/pic14devices.txt: definition of supported devices,
4471             all above improvements contributed by Zik Saleeba, thanks
4472         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
4473         * support/scripts/sdcc.nsi: also install pic14 device libraries and
4474             headers
4475
4476 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4477
4478         * device/include/mcs51/c8051f410.h: added interrupt numbers,
4479         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
4480           thanks to Charles Olds
4481
4482 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4483
4484         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
4485
4486 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4487
4488         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
4489         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
4490         * support/regression/bug1464657.c: added, new test
4491
4492 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4493
4494         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
4495           version number
4496
4497 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4498
4499         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
4500           --no-peep and --peep-file <file> are used don't use default rules but
4501           do use the <file>
4502
4503 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4504
4505         * src/mcs51/gen.c (genCall): fixed bug 1457608
4506
4507 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4508
4509         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
4510         changes seem to cause (trigger?) problems with the build system.
4511
4512 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
4513
4514         * src/SDCCpeeph.c (operandsLiteral): new, added,
4515           (callFuncByName): inserted operandsLiteral
4516         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
4517
4518 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4519
4520         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
4521         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
4522
4523 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4524
4525         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
4526           implemented patch 1120823 Thanks to Willy De la Court (normal
4527           interrupts need an interrupt number now if they are made critical),
4528           and enabled nesting of critical functions though not for gbz80
4529           (genCritical, genEndCritical): added functions
4530           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
4531         * src/z80/mappings.i: added "ei" to all mappings
4532
4533 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4534
4535         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
4536         submitted by the Debian SDCC maintainer Aurelien Jarno:
4537         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
4538         archive with gcc 4.1 on mips and wrote the patch"
4539
4540 2006-03-16 Raphael Neider <rneider AT web.de>
4541
4542         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
4543           the left operand is shorter than the result (c* = lit-c* + int),
4544           fixes bug #1450796
4545         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
4546           OP_SYMBOL
4547
4548 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4549
4550         * src/.version: increased version number to 2.5.5
4551         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
4552         linking is done manually in pic16 port's _linkEdit,
4553         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
4554         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
4555         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
4556         allocate asmop as AOP_ACC,
4557         (aopForRemat): added parameter 'bool result' in function declaration,
4558         (pic16_aopGet): return AOP_ACC when accessing WREG,
4559         (pic16_popGetTempReg): minor modification,
4560         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
4561         'pic16_allocWithIdx',
4562         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
4563         calling function in absolute addresses,
4564         (genAssign): take into account AOP_ACC asmop,
4565         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
4566         * src/pic16/pcoderegs.c: some debug functions and lines added,
4567         * src/pic16/ralloc.c (decodeRegType): added but commented out,
4568         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
4569         register too,
4570         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
4571         call to allocReg, not by manually allocating a new one,
4572         (pic16_assignRegisters): now before going through the register
4573         allocating functions mark all registers as free. This eliminates some
4574         side effects resulting from peephole parser done earlier in the backbone
4575
4576 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
4577
4578         * src/SDCCicode.c (geniCodeLogic),
4579         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
4580
4581 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
4582
4583         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
4584           (genSend): bugfix, do not allocate and free twice,
4585           (shiftRLong): handle partially overlapping aops
4586         * support/regression/tests/bitopcse.c: fixed warning redefined idata
4587
4588 2006-03-08 Borut Razem <borut.razem AT siol.net>
4589
4590         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
4591           for pic16
4592
4593 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
4594
4595         * support/regression/tests/bug1409955.c: new, added
4596         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
4597         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
4598           (aopForSym, aopOp): increment asmop.allocated if reused,
4599           (freeAsmop): decrement asmop.allocated and check for zero instead of
4600           using asmop.freed,
4601           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
4602           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
4603            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
4604            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
4605            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
4606            genSignedRightShift, genRightShift, genDataPointerGet,
4607            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
4608            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
4609             in reverse order from allocation,
4610           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
4611             added swappedLR to keep track
4612         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
4613           pdata & code for GCC, z80, gbz80 & hc08
4614         * support/regression/tests/zeropad.c: moved defines to testfwk.h
4615
4616 2006-03-08 Raphael Neider <rneider AT web.de>
4617
4618         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
4619
4620 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
4621
4622         * device/include/mcs51/c8051f410.h: new SiLabs mcu
4623         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
4624         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
4625
4626 2006-03-06 Borut Razem <borut.razem AT siol.net>
4627
4628         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
4629           made the linker quiet
4630
4631 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4632
4633         * src/pic16/gen.c (genPcall): fixed bug #1443644
4634         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
4635         which dumps before the function entry point a data byte which represents
4636         the number of the local variables used by the specified function, added
4637         'xinst' for initial support for Extended Instruction Support,
4638         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
4639         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
4640         port->fun_prefix anymore (may change later),
4641         (genFunction, genEndFunction): do not store/restore local registers for
4642         _main (this should take care the --main-return command line option in
4643         the future),
4644         (genOr): removed some legacy pic-port instructions,
4645         * src/pic16/genarith.c (genAddLit): re-enabled old code because
4646         performing operations with SFR's causes data to be written more than
4647         once to each SFR. Perhaps SFRs should be handled in special cases...
4648         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
4649         pcode.h
4650         * src/pic16/main.c (_process_pragma): stack bound checking did not take
4651         into account for stack starting position,
4652         (struct OPTIONS pic16_optionsTable): added command line argument
4653         --extended or -y for Extended Instruction Support,
4654         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
4655         (deassignLRs): *** perhaps the most important change, old 'for' code
4656         (commented out for reference), didn't account for some registers which
4657         were left marked 'not free' after a pointer operation. The change
4658         reduces register usage a lot in some cases
4659
4660 2006-03-04 Borut Razem <borut.razem AT siol.net>
4661
4662         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
4663           _clean
4664         * support/regression/tests/bug-524697.c: decreased array size for
4665           mcs51 to fit into the internal RAM
4666         * support/regression/Makefile.in: a little bit more verbose
4667
4668 2006-03-03 Borut Razem <borut.razem AT siol.net>
4669
4670         * support/regression/fwk/lib/testfwk.c,
4671           support/regression/fwk/include/testfwk.h: introduced function
4672           _prints(), nonrecursive _printn(), call _initEmu() from main()
4673         * support/regression/ports/gbz80/support.asm,
4674           support/regression/ports/ucz80/support.asm,
4675           support/regression/ports/z80/support.asm,
4676           support/regression/ports/ds390/support.c,
4677           support/regression/ports/hc08/support.c,
4678           support/regression/ports/host/support.c,
4679           support/regression/ports/mcs51/support.c,
4680           support/regression/ports/xa51/support.c: added empty _initEmu()
4681           function
4682         * support/regression/ports/pic16/gpsim.cmd,
4683           support/regression/ports/pic16/spec.mk,
4684           support/regression/ports/pic16/support.c,
4685           support/regression/Makefile.in: added pic16 regression test
4686
4687 2006-03-01 Raphael Neider <rneider AT web.de>
4688
4689         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4690           genConstPointerGet): use safe way of generating MOVFF to cover
4691             literals as well as registers, fixes bug #1440527
4692         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4693             dereference
4694           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4695             more correctly, fixes bug #1232186
4696           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4697         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4698             gplink guess the correct processor in more cases, applied patch
4699             from Till Riedel attached to and fixing bug #1436552
4700
4701 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4702
4703         * support/regression/tests/array.c: added, contains check for #1434401
4704         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4705
4706 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4707
4708         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4709         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4710         * device/include/mcs51/c8051f326.h,
4711         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4712         * device/include/mcs51/c8051f000.h,
4713         * device/include/mcs51/c8051f018.h,
4714         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4715           PCON_IDLE,PCON_STOP and added sfr16 definitions
4716
4717 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4718
4719         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4720           genGetWord): fixed bug 1409955
4721
4722 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4723
4724         * device/include/hc08/mc68hc908gp32.h,
4725         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4726
4727 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4728
4729         * src/SDCCast.c (constExprValue): return NULL if not a value
4730         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4731         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4732         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4733
4734 2006-02-13 Borut Razem <borut.razem AT siol.net>
4735
4736         * src/regression/ptrarg.c: added, fails due to bug #1430967
4737         * src/regression/Makefile: ptrarg.c added, ...
4738
4739 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4740
4741         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4742         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4743
4744 2006-02-11 Borut Razem <borut.razem AT siol.net>
4745
4746         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4747           print "Processor: xxx" message to stdout only if --verbose
4748
4749 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4750
4751         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4752         * support/regression/tests/bug1426356.c: added
4753         * support/regression/tests/bitfields.c: removed 2 tests
4754
4755 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4756
4757         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4758         * device/include/mcs51/c8051f330.h,
4759         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4760           PCON_IDLE,PCON_STOP and added sfr16 definitions
4761         * device/lib/_divsint.c,
4762         * device/lib/_divuint.c,
4763         * device/lib/_divulong.c,
4764         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4765           register bank bug for small stackauto
4766
4767 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4768
4769         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4770
4771 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4772
4773         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4774         * all.dsp: corrected several bin paths
4775         * device/include/mcs51/c8051f120.h,
4776         * device/include/mcs51/c8051f300.h,
4777         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4778           to PCON_IDLE,PCON_STOP
4779         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4780         * device/lib/printf_large.c (output_float): fixed bug 1388703
4781         * support/regression/tests/bug1057979.c: added test for bug 1388703
4782
4783 2006-02-08 Raphael Neider <rneider AT web.de>
4784
4785         * src/pic/pcode.c (pciTRIS): fixed typo,
4786           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4787           (LinkFlow): fixed handling of flows that end in a call,
4788           (ReuseReg): perform safety check earlier
4789         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4790             to work with flows at the beginning of a pBlock,
4791             fixes #1426557 (Symbol not previously defined),
4792           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4793             usage information
4794           (RemoveUnusedRegisters): update register usage info
4795         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4796             created, reuse existing ones instead
4797         * src/pic/gen.c (genPcall): fixed #1424719
4798
4799 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4800
4801         * link/z80/lkmain.c,
4802         * link/z80/lklex.c,
4803         * link/z80/lkdata.c,
4804         * link/z80/aslink.h: fixed build on current cygwin:
4805         replaced getline() by lk_getline()
4806
4807 2006-02-01 Borut Razem <borut.razem AT siol.net>
4808
4809         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4810           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4811           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4812           src/regression/bool1.c, src/regression/bool2.c,
4813           src/regression/bool3.c, src/regression/call1.c,
4814           src/regression/compare.c, src/regression/compare10.c,
4815           src/regression/compare2.c, src/regression/compare3.c,
4816           src/regression/compare4.c, src/regression/compare5.c,
4817           src/regression/compare6.c, src/regression/compare7.c,
4818           src/regression/compare8.c, src/regression/compare9.c,
4819           src/regression/configword.c, src/regression/for.c,
4820           src/regression/inline.c, src/regression/mult1.c,
4821           src/regression/nestfor.c, src/regression/or1.c,
4822           src/regression/pointer1.c, src/regression/ptrfunc.c,
4823           src/regression/rotate1.c, src/regression/rotate2.c,
4824           src/regression/rotate3.c, src/regression/rotate4.c,
4825           src/regression/rotate5.c, src/regression/rotate6.c,
4826           src/regression/rotate7.c, src/regression/string1.c,
4827           src/regression/struct1.c, src/regression/sub.c,
4828           src/regression/sub2.c, src/regression/switch1.c,
4829           src/regression/while.c, src/regression/xor.c,
4830           src/regression/create_stc, src/regression/simulate,
4831           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4832           regression tests
4833         * src/regression/gpsim_assert.h: added
4834
4835 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4836
4837         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4838         ((void (code *) (void)) 0) ();
4839         * as/hc08/aslex.c,
4840         * as/hc08/aslink.h,
4841         * as/hc08/asm.h,
4842         * as/hc08/asmain.c,
4843         * as/hc08/lkdata.c,
4844         * as/hc08/lklex.c,
4845         * as/hc08/lkmain.c,
4846         * as/mcs51/aslex.c,
4847         * as/mcs51/aslink.h,
4848         * as/mcs51/asm.h,
4849         * as/mcs51/asmain.c,
4850         * as/mcs51/lkdata.c,
4851         * as/mcs51/lklex.c,
4852         * as/mcs51/lkmain.c,
4853         * as/z80/aslex.c,
4854         * as/z80/asm.h,
4855         * as/z80/asmain.c: fixed build on current cygwin:
4856         replaced getline() by as_getline()
4857
4858 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4859
4860         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4861         declarator in the symbol chain
4862         * src/SDCCsymt.h,
4863         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4864         parameter list for function pointers
4865         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4866         * support/regression/tests/bug-716242.c: added
4867
4868 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4869
4870         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4871         offset if possible
4872         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4873
4874 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4875
4876         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4877         inifinitely recurseable, added static
4878         * support/regression/tests/bug-1408066.c: added
4879
4880 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4881
4882         * src/SDCCicode.h,
4883         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4884         renamed, added possibility to create "postLoopLbl"-labels
4885         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4886         newiTempLoopHeaderLabel
4887         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4888         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4889         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4890         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4891         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4892         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4893         (basicInduction): fixed bug #136564, made static,
4894         (loopInduction): changed parameter of basicInduction, made static,
4895         (addPostLoopBlock): added
4896         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4897         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4898         findLoopEndSeq
4899         * support/regression/tests/bug-136564.c: added
4900         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4901         --std-sdcc99 to LIBSDCCFLAGS
4902
4903 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4904
4905         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4906         while loop
4907         * support/regression/tests/bug-1406131.c: added
4908
4909 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4910
4911         * src/SDCCast.c (decorateType): fix promotion of unary minus
4912         * src/SDCCsymt.c (computeType): beautified
4913         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4914         (valUnaryPM, valComplement): fix sign and promotion,
4915         (valNot): ANSI: result type is int (SDCC: unsigned char)
4916         * support/regression/tests/uminus.c: speedup by removing superflous
4917         test case 'int'
4918         * support/regression/tests/onebyte.c: added promotion and signedness
4919         tests for unary minus
4920         * support/regressions/tests/bug-477927.c: disable warning about
4921         uninitialized variables
4922         * support/regression/tests/not.c: added
4923
4924 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4925
4926         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4927         * src/mcs51/gen.c (gen51Code): show final register usage after
4928         fillGaps in asm with --i-code-in-asm
4929         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4930         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4931         incUsed, rliveClear, adjustIChain): made static,
4932         (setFromRange): excluded because it's unused,
4933         (findPrevUseSym, markWholeLoop): added,
4934         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4935         through all branches of predecessors enables sdcc to emit the warning
4936         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4937         (rlivePoint): made static, added parameter emitWarnings which is only
4938         true during the first run out of two,
4939         (findRecursiveSucc, findRecursivePred): removed,
4940         (computeLiveRanges): made static, added parameter emitWarnings,
4941         (dumpIcRlive): added for debugging only
4942         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4943         removed prototype of setFromRange()
4944         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4945         in call of computeLiveRanges()
4946         * support/regression/tests/bug-895992.c: added
4947         * support/regression/tests/bug-971834.c: added
4948         * support/valdiag/tests/bug-895992.c: added
4949         * support/valdiag/tests/bug-971834.c: added
4950
4951 2005-12-18 Raphael Neider <rneider AT web.de>
4952
4953         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4954           (genUnpackBits): improved code for direct operands,
4955           (genPackBits): improved code for literal assignment to bitfields
4956             and for direct destination operands (no FSR indirection),
4957             prevented redundant AND, fixes #1362800,
4958           (AccLsh): added parameter to disable masking of the result
4959         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4960           skip instructions with side-effects (like incfsz),
4961           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4962         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4963         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4964           fixes #1375263
4965
4966 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4967
4968         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4969         volatile variables as spill location
4970
4971 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4972
4973         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4974         replacing literals
4975         * support/regression/tests/bug-1376320.c: added
4976
4977 2005-12-08 Raphael Neider <rneider AT web.de>
4978
4979         * src/pic/device.c: renamed is_shared to pic14_is_shared
4980         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4981         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4982           (is_valid_identifier): added for above workaround
4983
4984 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4985
4986         * device/lib/Makefile.in: fixed to enable port-specific-objects
4987         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4988           char, thanks Hubert Sack
4989         * doc/sdccman.lyx: documented --xstack-loc,
4990           elaborated a bit more on interrupts and pitfalls,
4991           removed "setjmp/longjmp unsupported",
4992           documented some unsupported C99 features
4993         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4994         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4995           if, thanks Hubert Sack
4996         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4997         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4998           make make_library
4999         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
5000           regression tests can report resource usage (rfe 700441)
5001         * support/regression/collate-results.py: report resource usage
5002         * support/regression/ports/ds390/spec.mk,
5003         * support/regression/ports/hc08/spec.mk,
5004         * support/regression/ports/mcs51/spec.mk,
5005         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
5006         * support/regression/ports/ds390/uCsim.cmd,
5007         * support/regression/ports/hc08/uCsim.cmd,
5008         * support/regression/ports/mcs51/uCsim.cmd,
5009         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
5010         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
5011           library, use the default one
5012         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
5013           building the library
5014
5015 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
5016
5017         * config.dsp: added dependency on .version and configure_vc.awk
5018         * device/include/setjmp.h: updated for --stack-auto and --xstack
5019         * device/include/mcs51/at89c51snd1c.h: corrected line endings
5020         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
5021         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
5022         * device/lib/libsdcc.lib: added _setjmp
5023         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
5024           (decorateType): fixed bug 1372851,
5025           (optimizeGetHbit): fixed warning
5026         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
5027           array initialisation
5028         * support/regression/tests/bug1057979.c: added test for bug 1358192
5029         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
5030
5031 2005-12-03 Borut Razem <borut.razem AT siol.net>
5032
5033         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
5034           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
5035
5036 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
5037
5038         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
5039         createIval): implement symbol independant "flexible array member",
5040         (createIvalCharPtr): implemented flexible array initialisation with a
5041         string
5042         * src/SDCCsymt.c (copyStruct): removed,
5043         (getSize): fixed misleading comment,
5044         (getAllocSize): removed, the additional allocation size is now in
5045         sym->flexArrayLength,
5046         (checkStructFlexArray): new, syntax checks for flexible array members,
5047         (compStructSize): added syntax checks for "flexible array members"
5048         (copyStruct): removed,
5049         (copyLinkChain): removed inefficient fix for bug 770487
5050         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
5051         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
5052         symbol->flexArrayLength
5053         * src/SDCCerr.c,
5054         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
5055         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
5056         * support/regression/tests/structflexarray.c: added
5057         * support/valdiag/tests/structflexiblearray.c: added
5058
5059 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
5060
5061         * src/SDCCast.c (decorateType): fixed bug 1368489
5062         * support/Util/SDCCerr.c,
5063         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
5064
5065 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5066
5067         * device/include/mcs51/at89c51snd1c.h: added file submitted by
5068           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
5069
5070 2005-11-27 Borut Razem <borut.razem AT siol.net>
5071
5072         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
5073           support/cpp2/mkdeps.h: added command line option
5074           -obj-ext=<extension> to SDCPP to define object file externion, used
5075           for generation of make dependencies (-M)
5076         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
5077
5078 2005-11-26 Borut Razem <borut.razem AT siol.net>
5079
5080         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
5081           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
5082           added pic and pic16 libraries
5083
5084 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5085
5086         * device/include/float.h: Corrected typo in prototype of __fsgt
5087
5088 2005-11-25 Borut Razem <borut.razem AT siol.net>
5089
5090         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
5091           added creation of model-mcs51-stack-auto libraries
5092
5093 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
5094
5095         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
5096         and fields-list too
5097         * src/SDCCast.c (createIvalArray): removed obsolete comment
5098
5099 2005-11-24 Borut Razem <borut.razem AT siol.net>
5100
5101         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
5102           added missing device/lib/mcs51/crt*.asm sources
5103
5104 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
5105
5106         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
5107
5108 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
5109
5110         * device/lib/_fs2schar.c,
5111         * device/lib/_fs2sint.c,
5112         * device/lib/_fs2slong.c: optimized inline asm
5113
5114 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5115
5116         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
5117           Better handling of floats between -1.0 and 0.0.
5118
5119 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5120
5121         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
5122           (the missing "if"s prohibited removal of redundant labels)
5123
5124 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5125
5126         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
5127           Properly convert floats between -1.0 and 0.0 to long, int, and char
5128           types (max integer value of negative floats tends to zero).
5129         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
5130           Removed changes made so to work properly with floats between
5131           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
5132           and _fs2char.c
5133
5134 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
5135
5136         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
5137         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
5138         (genCast) cosmetic change
5139         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
5140         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
5141         from mcs51
5142         * support/regression/tests/bitfields (testSignedBitfields): added
5143
5144 2005-11-18 Borut Razem <borut.razem AT siol.net>
5145
5146         * sdcc/device/lib/Makefile.in: remove all unnecessary files
5147         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
5148           introduced SILENT option to make building of pic16 libraries less
5149
5150 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5151
5152         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
5153           Now they work properly with floats between -1.0 and 0.0
5154         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
5155
5156 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5157
5158         * src/SDCCicode.c (printOperand): added missing else
5159
5160 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
5161
5162         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
5163         reformatted for better readability
5164         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
5165         signed bitfields
5166
5167 2005-11-17 Borut Razem <borut.razem AT siol.net>
5168
5169         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
5170           introduced SILENT option to make building of pic16 libraries less
5171           verbose - used for nightly snapshot build
5172         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
5173           available on Win32 platforms.
5174         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
5175           medium, large, pic and pic16
5176
5177 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5178
5179         * device/lib/printf_large.c: Temporary patch for bug 1358192:
5180           printf("%f"...) sets fraction to zero.
5181
5182 2005-11-16 Raphael Neider <rneider AT web.de>
5183
5184         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
5185           fixes #1357221
5186         * src/pic/gen.c (genIfx): implemented for CARRY bit
5187         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
5188           to generic pointers, fixes #1357332,
5189           (pic16_movLit2f): NEW,
5190           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
5191
5192 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5193
5194         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
5195
5196 2005-11-11 Raphael Neider <rneider AT web.de>
5197
5198         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
5199         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
5200           compute pointer's type from operand,
5201           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
5202           improved single bit reads, fixes bug #1353379
5203
5204 2005-11-09 Borut Razem <borut.razem AT siol.net>
5205
5206         * support/scripts/sdcc.nsi: added lib/pic to the package
5207
5208 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
5209
5210         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
5211
5212 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5213
5214         * support/regression/tests/bug1348008.c: added
5215         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
5216         * support/regression/tests/bug1337835.c: updated comment
5217
5218 2005-11-06 Borut Razem <borut.razem AT siol.net>
5219
5220         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
5221           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
5222           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5223           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
5224           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
5225           dynamic construction of cl_error_class and derivates - 2.nd try
5226
5227 2005-11-05 Borut Razem <borut.razem AT siol.net>
5228
5229         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
5230           bug, which caused Bus Errors on sparc solaris
5231
5232 2005-11-04 Borut Razem <borut.razem AT siol.net>
5233
5234         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
5235           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
5236           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5237           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
5238           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
5239           and derivates to resolve the initialization problem on OSX
5240
5241 2005-11-02 Borut Razem <borut.razem AT siol.net>
5242
5243         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
5244           corrected typo - #include <winsock2.h>
5245
5246 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
5247
5248         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
5249           (_asxxxx_mapping): added org directive for future enhancements
5250
5251 2005-11-01 Borut Razem <borut.razem AT siol.net>
5252
5253         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
5254           enabled sockets on WIN32
5255         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
5256
5257 2005-10-31 Borut Razem <borut.razem AT siol.net>
5258
5259         * support/regression/generate-cases.py: escape backslashes in {testcase}:
5260           WIN32 backslash path delimiters should be escaped when used in C strings
5261         * support/regression/tests/bitfields.c: exclude failing assertions for
5262           __CYGWIN32__ and __MINGW32__ hosts
5263
5264 2005-10-30 Borut Razem <borut.razem AT siol.net>
5265
5266         * src/SDCCutil.c: corrected double comparison typo
5267
5268 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
5269
5270         * device/lib/medium/Makefile: added for new memory model medium
5271         * device/include/asm/mcs51/features.h: updated for medium/pdata
5272         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
5273           added Multiply & Accumulate sbit's and MAC0_PAGE define
5274         * device/include/mcs51/c8051f300.h: added sfr16 definitions
5275         * device/include/mcs51/c8051f310.h: added sfr16 definitions
5276         * device/lib/_mullong.c: update for medium model
5277         * device/lib/incl.mk: added medium model
5278         * doc/sdccman.lyx: documented medium model
5279         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
5280         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
5281         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
5282         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
5283           (allocParms): set SCLS and OCLS to pdata for medium model
5284         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
5285           for pdata,
5286           (powof2): return <0 if not power of 2
5287         * src/avr/gen.c (genBitWise): use updated powof2
5288         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
5289           (shiftR2Left2Result): small optimization in setup, save acc when storing,
5290           (shiftLLeftOrResult): use B if necessary
5291         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
5292         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
5293         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
5294         * support/regression/Makefile.in: added test-mcs51-medium
5295         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
5296
5297 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
5298
5299         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
5300         specifier unsigned
5301         * device/lib/time.c (mktime): fixed bug 1334315
5302
5303 2005-10-28 Raphael Neider <rneider AT web.de>
5304
5305         * device/include/pic/p16f_common.inc: added common declarations
5306         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
5307
5308 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5309
5310         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
5311           (aopPutUsesAcc): added to predict accumulator use,
5312           (assignResultValue): save acc if necessary,
5313           (genMinusDec): store result if indirectly addressed,
5314           (genDivOneByte):  save acc if necessary,
5315           (movLeft2Result): bugfix if left already in acc,
5316           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
5317             attention to accumulator use (esp. pdata),
5318           (genReceive): receive pdata correctly
5319         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
5320         * src/SDCCicode.h: added isOperandInPagedSpace prototype
5321
5322 2005-10-27 Raphael Neider <rneider AT web.de>
5323
5324         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
5325
5326 2005-10-27 Raphael Neider <rneider AT web.de>
5327
5328         * .version: changed version to 2.5.4
5329         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
5330         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
5331           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
5332             arithmetics support routines
5333         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
5334         * device/lib/Makefile.in: also create installdir for pic
5335
5336         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
5337           pic14 port as well
5338         * src/pic/device.c (dump_sfr): rewritten to delegate register
5339           placement to the linker (use `extern sym' rather than sym EQU addr),
5340           (validAddress): fixed to check last specified address
5341         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
5342           (popGetLit): truncate literal value to 8 bit,
5343           (popGet): moved assert to more appropriate place
5344           (popGetExternal): create pCode operand from and mark the according
5345             symbol as being `extern'
5346           (popGetAddr): added sanity check on immediate's offset, provide
5347             GPOINTER tag on demand
5348           (aopPut): fixed for immediates,
5349           (mov2w_op): move operand's address or contents to WREG (depending on
5350             operand type), safer variant of mov2w,
5351           (movwf,call_libraryfunc): NEW, handy abbreviations,
5352           (get_argument_pcop,get_return_val_pcop,pass_argument,
5353           get_returnvalue): interface for accessing function parameters and
5354             return values,
5355           (assignResultValuei,genRet): use new parameter/return value interface
5356           (pic14_getDataSize): back to old version handling generic pointers,
5357           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
5358             provided implementation and/or fixed old one,
5359           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
5360             calls, removed legacy 8051 reference code
5361           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
5362           (loadSignToC): NEW, move the operands sign bit to CARRY,
5363           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
5364             genRightShiftSigned, accepts negative shift counts,
5365           (setup_fsr): load FSR and adjust IRP (indirect memory access),
5366           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
5367             generic pointers, __data pointers and __code pointers,
5368           (genUnpackBits,genPackBits): rewritten to work with generic pointers
5369             and signed bitfields, limit bitfields to 8 bit,
5370           (genDataPointerGet): fixed number of bytes read,
5371           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
5372           (genPointerGet,genPointerSet): fixed handling of __code pointers,
5373             pointers to constant data are no longer assumed to point to __code
5374             space, removed invalid pointer types,
5375           (bitpatternFromVal): retrieve the PICs representation of an integer
5376             or float literal,
5377           (genDataPointerSet): fixed assigning to po_immediate operands,
5378           (genGenPointerSet): implemented as library call,
5379           (genIfx): fixed incorrect condition,
5380           (genAddrOf): limit generic pointers' addresses to 2 bytes,
5381             provide GPOINTER tag according to destination's storage class,
5382           (genCast): added code to handle casting to generic pointers, added
5383             sign-/zero extension of the result
5384           (aop_isLitLike,op_isLitLike): fixed handling of immediates
5385         * src/pic/gen.h: added macros to access IRP bit in STATUS register
5386         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
5387           extend the result
5388         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
5389           address/register resides in the shared banks
5390           (emitSymbolToFile): improved to handle global and `pinned' symbols,
5391             put all variables into separate sections (have the linker arrange
5392             them)
5393           (picglue): put init code and interrupt handlers in separate sections
5394         * src/pic/main.c: added port specific options table, modified to PORT
5395           structure to make GPOINTERs 3 byte, added pic14_options
5396           (_pic14_do_link): private linking routine (update paths to libraries,
5397             add libsdcc.lib by default)
5398         * src/pic/main.h: declare pic14_options
5399         * src/pic/pcode.c: fixed instructions i/o relations,
5400           (RegCond): reverted to correct version,
5401           (newpCodeOpLit): truncate literals to 8 bit,
5402           (genericPrint): added debug output,
5403           (getRegFromInstruction): fixed for various operand types, simplified
5404           (BuildFlow): fixed broken handling of isntructions with labels
5405           (LinkFlow): start at last instruction in flow (skip trailing comments),
5406             pass the flow on to the next instruction after CALL
5407           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
5408           (insertPCodeInstruction): fixed inserting after a skip instruction,
5409           (DoBankSelect): fixed for labeled instructions
5410           (OptimizepBlock): honor --nopeep switch
5411           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
5412         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
5413         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
5414           (pCodeOptime2pCodes): allow disabling this optimization via
5415             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
5416             but is still buggy), started implementation of a dataflow based
5417             pCode optimization (CSE + dead code elimination)
5418           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
5419         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
5420           names are independant of the stack location and therefore portable across
5421           devices
5422
5423 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5424
5425         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
5426           (selectSpil): fixed bug 1337835 by not spilling bit variables
5427         * support/regression/tests/bug1337835.c: added test for this bug
5428         * src/mcs51/peeph.def: restart after rule 3.c,
5429           addded rules 263.x to optimize loading constants
5430
5431 2005-10-26 Raphael Neider <rneider AT web.de>
5432
5433         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
5434         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
5435           (genAssign): emit warning when casting literals to generic pointer
5436             type, also applies when taking the address of a fixed variable,
5437           (genCast): improved casting to generic pointers
5438         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
5439           extern variables, added verbose error message
5440         * device/include/pic16/{string.h,errno.h}: added #pragma library c
5441
5442 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
5443
5444         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
5445         carry must be complemented too
5446         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
5447         could be emitted by genMinus
5448         * src/SDCCval.c (constVal): fixed bug 1305065
5449
5450 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
5451
5452         * src/SDCCast.c (addCast): added promotion for bit variables
5453         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
5454         promotion casts + optimisation
5455         (optimizeGetWord): fix warning 'i' might be used uninitialized
5456         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
5457         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
5458
5459 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
5460
5461         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
5462         all chars are promoted to int; promotion should be handled in SDCCast.c
5463
5464 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5465
5466         * device/lib/_strcmp.c: Fixed bug 1326457
5467
5468 2005-10-11 Raphael Neider <rneider AT web.de>
5469
5470         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
5471         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
5472
5473 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5474
5475         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
5476         * support/regression/tests/sfr16.c: added test for the sfr32 bug
5477
5478 2005-10-04 Raphael Neider <rneider AT web.de>
5479
5480         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
5481           device/lib/pic16/pics.all: added pic18f1320
5482         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
5483
5484 2005-09-30 Raphael Neider <rneider AT web.de>
5485
5486         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
5487         * src/pic16/devices.inc: NEW, provides device descriptions
5488         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
5489
5490 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
5491
5492         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
5493           GETHBIT
5494
5495 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
5496
5497         * doc/sdccman.lyx: updated Highest Order Bit documentation,
5498           documented Any Order Bit, Higher Order Byte and Higher Order Word
5499         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
5500         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
5501           (optimizeGetAbit): new, to get any bit, not only the high bit,
5502           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
5503           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
5504           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
5505           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
5506             RIGHT_OP: also try GETBYTE, GETWORD optimization,
5507             GETABIT, GETBYTE, GETWORD: decorate them,
5508           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
5509           (ast_print): added GETABIT, GETBYTE, GETWORD
5510         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
5511         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
5512           (geniCodeBinary): new generic binary icode,
5513           (ast2iCode): added GETABIT, GETBYTE, GETWORD
5514         * src/port.h: updated comment for PORT.hasExtBitOp
5515         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
5516           (genGetByte): new, to get a single byte,
5517           (genGetWord): new, to get a word from a long,
5518           (gen51Code): added GETABIT, GETBYTE, GETWORD
5519         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
5520
5521 2005-09-23 Raphael Neider <rneider AT web.de>
5522
5523         * configure.in, configure: have device/lib/pic configured
5524         * device/lib/Makefile.in: added model-pic14
5525         * device/lib/clean.mk: added pic/ to clean rule
5526         * device/lib/pic: added rudimentary pic14 library providing support
5527           functions for multiplication/division/generic pointer access
5528         * src/SDCCopt.c (convilong): mark support functions as extern
5529           for pic14 port as well
5530         * src/pic/gen.c (genMult): added assertions,
5531           (genpic14Code): emit warning on unhandled iCodes
5532         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
5533         * src/pic/pcode.c (pCodeOpCopy),
5534         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
5535           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
5536           SFR_REGISTER}), made safe for future extensions
5537         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
5538           instructions even if preceeded by SKIP instructions (also remove
5539           them); removed unused code
5540         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
5541           prevents leaving parts of the structure uninitialized after copying
5542
5543 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
5544
5545         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
5546           ago by me
5547         * support/regression/tests/addsub.c: added test for the bug
5548
5549 2005-09-21 Raphael Neider <rneider AT web.de>
5550
5551         * device/include/pic16/pic18f1220.h,
5552           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
5553         * device/lib/pic16/Makefile.rules: added missing opening paren
5554         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
5555           are provided in genutils.c,
5556           (genUminusFloat,genUminus,genCmpEq): added asserts on different
5557           operand/result sizes,
5558           (genCmp): assert on NULL pointers first, then check deref'ed values
5559         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
5560           result size
5561
5562 2005-09-18 Raphael Neider <rneider AT web.de>
5563
5564         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
5565           as these are now unused,
5566           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
5567         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
5568           local, avoids uninitialized pointer dereference on r->name
5569         * src/pic16/ralloc.c (newReg): fixed indentation
5570
5571 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
5572
5573         * src/SDCCval.c (constVal): fixed bug 730366
5574         * support/Util/SDCCerr.c,
5575         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
5576
5577 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5578
5579         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
5580
5581 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
5582
5583         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
5584
5585 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5586
5587         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
5588           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5589         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
5590           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5591         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
5592         * packihx/packihx.c (hexDigit): made c unsigned char
5593         * as/mcs51/lklibr.c (fndsym),
5594         * link/z80/lkgb.c (gb),
5595         * link/z80/lklibr.c (fndsym),
5596         * link/z80/lkrloc.c (relr),
5597         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
5598         * src/SDCC.lex (checkCurrFile, process_pragma),
5599         * src/SDCCglue.c (spacesToUnderscores),
5600         * src/SDCCmain.c (setParseWithComma, processFile),
5601         * src/asm.c (tvsprintf, printCLine),
5602         * src/avr/gen.c (emitcode, aopPut),
5603         * src/ds390/gen.c (emitcode),
5604         * src/hc08/gen.c (emitcode, emitinline),
5605         * src/mcs51/gen.c (emitcode, genInline),
5606         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5607           tokenizeLineNode),
5608         * src/pic/ralloc.c (debugLog),
5609         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5610           tokenizeLineNode),
5611         * src/pic16/ralloc.c (debugLog),
5612         * src/z80/main.c (_process_pragma):
5613            made all ctype.h function calls safe
5614         * src/SDCCopt.c: include math.h for fabs
5615         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
5616           and used them throughout the code to make ctype.h function calls safe
5617         * src/ds390/main.c (asmLineNodeFromLineNode),
5618         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
5619         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
5620            unsigned char*
5621         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
5622           (newpCodeAsmDir): made ctype.h function calls safe
5623         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
5624           pic16_emitcode):  made lbp unsigned char*
5625         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
5626           (pic16_newpCodeAsmDir): made ctype.h function calls safe
5627         * src/xa51/gen.c (emitcode),
5628         * src/z80/gen.c (_emit2): made lbp unsigned char*
5629         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
5630            char*
5631
5632 2005-09-05 Raphael Neider <rneider AT web.de>
5633
5634         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
5635           access bank splitpoint
5636
5637 2005-09-05 Raphael Neider <rneider AT web.de>
5638
5639         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
5640
5641 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
5642
5643         * .version: changed to version 2.5.3
5644         * doc/sdccman.lyx: changed version to 2.5.3,
5645           documented --codeseg and --constseg and pragma codeseg and constseg,
5646           documented bit parameters (reentrant) and bit returning
5647         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
5648            currFunc->recvSize, but is this ok for all ports?
5649           (ast2iCode): result of ~ on unsigned char must be cast to int for
5650            bool to work
5651         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
5652           function pointers in bit space
5653         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
5654           (processFuncArgs): call port.reg_parm() with reentrancy info
5655         * src/port.h,
5656         * src/avr/main.c,
5657         * src/ds390/main.c,
5658         * src/hc08/main.c,
5659         * src/pic/main.c,
5660         * src/pic16/main.c,
5661         * src/xa51/main.c,
5662         * src/z80/main.c: port.reg_parm prototype extended with
5663           "bool reentrant" parameter
5664         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
5665           options.stackAuto for allocating bit register parameters
5666         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
5667           (genSend): set BitBankUsed if it is,
5668           (selectRegBank): factored out of genCall for use in genPcall,
5669           (genCall): removed redundant dtype assignmen, use selectRegBank,
5670           (genPcall): handle returning in Carry properly, save in F0 if needed,
5671           (genReceive): handle bit register parameters
5672         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
5673           (mcs51_assignRegisters): enable bit registers for all reentrant
5674            functions and don't set BitBankUsed unconditionally
5675         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
5676         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
5677         * support/regression/tests/funptrs.c: added tests for BOOL and for return
5678
5679 2005-08-27 Borut Razem <borut.razem AT siol.net>
5680
5681         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
5682         ppc-osx (Darwin) does not support -u option. It seems that it is
5683         supported only on Linux - GNU cp
5684
5685 2005-08-25 Borut Razem <borut.razem AT siol.net>
5686
5687         * sim/ucsim/gui.src/serio.src/Makefile.in,
5688           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5689           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5690           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5691           install and strip, since the strip at /usr/ccs/bin should be used
5692           on solaris
5693
5694 2005-08-24 Borut Razem <borut.razem AT siol.net>
5695
5696         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5697
5698 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5699
5700         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5701         ffffffffu
5702
5703 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5704
5705         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5706         * as/mcs51/lkmain.c (link_main): fixed warning
5707         * device/include/stdbool.h: ds390 has no advanced bit support yet
5708         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5709         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5710         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5711           and updated their macros
5712         * src/SDCCval.c (constVal): updated comment for renamed b_long
5713
5714 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5715
5716         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5717         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5718           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5719           (oprio): set priority for '['
5720         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5721            and adb_24_bit
5722         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5723         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5724         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5725         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5726           added overlayable BIT_BANK area
5727         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5728           (summary2): explain 'T' in legenda
5729         * as/mcs51/lkrloc.c: replaced old K&R style,
5730           (relr): added R_BIT processing,
5731           (errmsg): added "Bit-addressable relocation error",
5732           (adb_bit): added for converting from byte- to bit-addressable space,
5733           (adb_24_bit): added for converting from byte- to bit-addressable space
5734         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5735            used in reentrant functions now even as return value
5736         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5737         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5738           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5739         * src/SDCCglobl.h: added indicator BitBankUsed
5740         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5741            the bit registers b0-b7
5742         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5743           (geniCodeCast): fixed bug 1263853,
5744           (geniCodeLogicAndOr): put result in bool or char,
5745           (geniCodeReceive): added parameter func for accessing the return type,
5746           (geniCodeFunctionBody): pass func to geniCodeReceive
5747         * src/SDCCmain.c: added indicator BitBankUsed
5748         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5749         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5750           (checkSClass): don't put automatic bool/bit on stack,
5751           (checkFunction): removed check on function cannot return bit
5752         * src/SDCCsymt.h: added newBoolLink prototype
5753         * src/mcs51/gen.c (rb1regs): added bit registers,
5754           (movc): created for assigning to carry,
5755           (pushReg, popReg): created for pushing registers,
5756           (sameRegs): check both AOP_REG and AOP_CRY types,
5757           (aopOp): handle bit registers,
5758           (aopPut): optimization no self-assign,
5759           (saveRegisters): push reg->base (bits) only once for bit registers,
5760            and use pushReg,
5761           (unsaveRegisters): pop reg->base only once and use popReg,
5762           (assignResultValue): added parameter func and return in carry for bits,
5763           (genIpush): optimization no reload in A if not changed,
5764           (genSend): bit parameters in reentrant functions are passed in bit
5765            registers by first assigning to bits in B, then save registers and
5766            copy B to bits,
5767           (genCall): handle returning in Carry properly, save it in F0 if needed,
5768           (genPcall): updated assignResultValue call, this is not safe yet for bit
5769            returning function !!!
5770           (genFunction): don't generate equ's for bit registers and use pushReg,
5771           (genEndFunction): take care of bit returning functions and use popReg,
5772           (genRet): return bit in Carry,
5773           (genIfx): optimize bit registers and other directly addressable bits,
5774           (genReceive): updated assignResultValue call
5775         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5776           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5777            registers when using stack-auto
5778         * src/mcs51/ralloc.c (_G): added allBitregs,
5779           (regs8051): added the bit registers,
5780           (createStackSpil): use macro IS_BIT,
5781           (getRegBit): added to allocate a bit register, else spill,
5782           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5783           (updateRegUsage): factored out to ease stepping while debugging,
5784           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5785            also allocate bit registers,
5786           (fillGaps): handle bit registers,
5787           (findAllBitregs): added to create bit vector with all bit registers,
5788           (mcs51_allBitregs): returns this bit vector,
5789           (mcs51_assignRegisters): when using stack-auto use bit registers for
5790            passing parameters and creating local variables
5791         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5792
5793 2005-08-22 Borut Razem <borut.razem AT siol.net>
5794
5795         * device/lib/Makefile.in: replaced find option -or with -o
5796           to make it run on solaris
5797
5798 2005-08-22 Raphael Neider <rneider AT web.de>
5799
5800         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5801           fixes #1265442 (crash on Solaris)
5802
5803 2005-08-20 Borut Razem <borut.razem AT siol.net>
5804
5805         * configure, configure.in: added tests for libsocket and libnsl libraries,
5806           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5807           from support/regression/Makefile.in
5808         * support/regression/Makefile.in: added
5809         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5810         * sim/ucsim/libtool: regenerated on sparc-solaris
5811         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5812           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5813           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5814           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5815           sparc-solaris, which doesn't use GNU ld linker
5816         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5817         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5818
5819 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5820
5821         * src/mcs51/peeph.def: updated comments
5822
5823 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5824
5825         * device/lib/_gptrget.c,
5826         * device/lib/_gptrput.c: slightly shorter
5827         * doc/sdccman.lyx: incremented version
5828         * src/mcs51/peeph.def: moved peephole comments to the line of first
5829           change to better keep line correlation, reanimated 186.e
5830         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5831
5832 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5833
5834         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5835           David Saxton with quotes around file name.
5836
5837 2005-08-15 Borut Razem <borut.razem AT siol.net>
5838
5839         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5840           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5841           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5842           make tests run on x86_64 platform
5843
5844 2005-08-13 Raphael Neider <rneider AT web.de>
5845
5846         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5847           as it might be executed DURING a build (parallel make is wonderful)
5848
5849 2005-08-13 Raphael Neider <rneider AT web.de>
5850
5851         * device/lib/Makefile.in (port-specific-objects-pic16):
5852           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5853         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5854           dependency
5855         * device/lib/pic16/Makefile.rules: build subdirs before creating
5856           the library, removed builddir rule, create $(builddir) early in
5857           recurse rule, use empty recurse rule for leaf directories
5858         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5859           mkdir errors (race condition), removed duplicate suffix "hex"
5860           from clean rules
5861         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5862         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5863           prevents mkdir -p from aborting on Alpha
5864
5865 2005-08-12 Raphael Neider <rneider AT web.de>
5866
5867         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5868           db-statements in order to allow for arrays of pointers in code
5869           sections to be placed without interspersed 0-padding, fixes
5870           bug #1256215
5871         * (emitStatistics): fixed division by zero for pic18f1220
5872         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5873           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5874         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5875         * (pic16_pCodeConstString): keep track of already emitted string
5876           literals to prevent "duplicate definitions of symbol _str_NR"
5877         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5878           debug message
5879         * device/lib/Makefile.in: ignore failing PIC16 library builds
5880         * device/lib/pic16/Makefile: do not build if gputils are missing
5881         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5882
5883 2005-08-10 Raphael Neider <rneider AT web.de>
5884
5885         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5886           my last commit)
5887
5888 2005-08-10 Raphael Neider <rneider AT web.de>
5889
5890         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5891           Rokas' patch to add the new fixed point type "__fixed16x16"
5892         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5893           functions for __fixed16x16 arithmetics
5894         * device/lib/pic16: reimplemented the build system to support
5895           a separate build directory, better handling of libio (create
5896           the library in a separate subdir for each architecture) and
5897           easier configuration (centralized in Makefile.common)
5898
5899 2005-08-07 Raphael Neider <rneider AT web.de>
5900
5901         * src/pic16/gen.c (genrshTwo): fixed sign extension
5902         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5903         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5904           added T0CONbits
5905         * device/include/pic16/pic18f4220.h: NEW, header for
5906           pic18f4220 and pic18f4320
5907         * device/include/pic16/pic18fregs.h: added new devices,
5908           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5909         * device/include/pic16/signal.h: resolved name clashes
5910           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5911           to also allow testing for interrupt enable bits, added
5912           comments on how to use the macros
5913         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5914         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5915           register definitions for the devices
5916         * device/lib/pic16/pics.all: added new devices
5917         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5918           allocated memory
5919         * device/lib/pic16/libc/stdlib/memfree: do not count
5920           the block header as free memory
5921         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5922           simplified and added missing end-of-blocklist-marker
5923           (reported by Peter Onion, fixes #1252814)
5924         * (_mergeHeapBlock): fixed loop condition
5925         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5926           len==0, restructured code
5927         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5928           up a bit, reduced bitfield accesses, prevent endless loops
5929           in case of heap corruption
5930         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5931           "unreferenced arguments/must return a value" warnings
5932         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5933           replaced BAUDREG with SPBRG
5934         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5935           device/lib/pic16/debug/gstack/gstack.c: replaced
5936           _naked, _asm, _endasm with __naked, __asm, __endasm
5937
5938 2005-08-05 Raphael Neider <rneider AT web.de>
5939
5940         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5941           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5942
5943 2005-08-05 Borut Razem <borut.razem AT siol.net>
5944
5945         * device/lib/Makefile.in: added missing ';'
5946         * configure: removed ^M characters
5947
5948 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5949
5950         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5951           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5952           License
5953
5954 2005-08-04 Borut Razem <borut.razem AT siol.net>
5955
5956         * configure.in: pic16 libraries build 2nd try - enable running
5957           configure in device/lib/pic16
5958         * configure: regenerated from configure.in
5959         * device/lib/Makefile.in: create $(PORT)/bin directory
5960
5961 2005-08-03 Raphael Neider <rneider AT web.de>
5962
5963         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5964           to get/set values via pointers
5965         * (genUnpackBits,genPackBits): changed detection of
5966           ptr->bitfield vs. sym.bitfield, fixed access via generic
5967           pointers, removed dead (wrong) code for multibyte bitfields
5968         * (genNearPointerGet, genGenPointerGet): removed useless code,
5969           fixed bitfield detection, fixes #1250594
5970         * (genNearPointerSet): removed useless code
5971         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5972           and introduced macro pic16_emitpcode that conditionally emits
5973           the origin of the following pCode (useful for debugging SDCC)
5974         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5975         * (createDefmap): fixed handling of LFSR for --optimize-df
5976
5977 2005-08-02 Borut Razem <borut.razem AT siol.net>
5978
5979         * device/lib/Makefile.in: pic16 libraries build enabled since
5980           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5981
5982 2005-08-02 Raphael Neider <rneider AT web.de>
5983
5984         * src/pic16/gen.c (genPackBits): removed deprecated warning
5985         * (genGenPointerSet): fixed bitfield detection
5986
5987 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5988
5989         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5990
5991 2005-07-31 Raphael Neider <rneider AT web.de>
5992
5993         * device/lib/pic16/libdev/pic18f458.c,
5994           device/include/pic16/pic18f458.h: added missing T0CONbits
5995
5996 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5997
5998         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5999
6000 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
6001
6002         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
6003
6004 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6005
6006         * device/include/mcs51/at89c51ed2.h: added.
6007
6008 2005-07-23 Raphael Neider <rneider AT web.de>
6009
6010         * src/pic/gen.h: added emitpcode macro for debugging
6011         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
6012           and replace by macro adding debug information on demand
6013         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
6014         * (gencjne): tried to fix; replaced with correct (slower) code
6015         * (gen{Unp,P}ackBits): fixed single bit access
6016         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
6017         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
6018           previous instruction
6019         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
6020           register has to be handled with care (forbidding movement
6021           of assignments/uses, removing assignments completely, ...)
6022         * (pCodeOptime2pCodes): make use of regIsSpecial
6023         * added lots of debugging output (commented out)
6024         * src/pic/rallloc.c (deassignLRs): prevent operand registers
6025           from being reused as result UNLESS it is known to work
6026
6027 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
6028
6029         * support/Util/dbuf.h: include <stddef.h> for size_t
6030         * .version: changed to version 2.5.2
6031
6032 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6033
6034         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
6035
6036 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6037
6038         * src/hc08/gen.c (genMinus): fixed bug #1241835,
6039           (genModOneByte): removed needless psha/pula
6040
6041 2005-07-22 Raphael Neider <rneider AT web.de>
6042
6043         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
6044           have PIC14 handled like PIC16, fixes broken pic14 linker calls
6045         * src/pic/gen.c (resolveIfx): do not "invent" labels
6046         * (genSkipc): changed to positive logic
6047         * (genSkipCond): removed as no longer needed
6048         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
6049           backport from PIC16
6050         * (genLeftShift): check operands are in different registers
6051         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
6052           INCF does not update CARRY...
6053         * src/pic/main.c: fixed _linkCmd
6054         * src/pic/pcode.c (unlinkpCode): added inactive code
6055         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
6056           alive (do not assign result and operand overlapping registers)
6057
6058 2005-07-22 Raphael Neider <rneider AT web.de>
6059
6060         * src/pic/device.c (dump_sfr): replaced register declaration with
6061           call to emitSymbolToFile() to avoid duplicate symbols
6062         * (assignRelocatableRegisters): do not declare external symbols
6063         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
6064           right (take size of type, not etype)
6065         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
6066         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
6067         * (packRegsForAccUse): disabled assignment of WREG as
6068           the result reg to prevent occurence of just fixed #1235003,
6069           fixes #1242954
6070         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
6071           symbols (avoids duplicate symbols in .asm file)
6072         * (pic14emitRegularMap): use emitSymbolToFile()
6073         * src/pic/gen.c (aopOp): fixed spillLocation handling
6074         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
6075         * (genDataPointerSet): removed unneccessary variables/output
6076
6077 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
6078
6079         * as/mcs51/lkarea.c: enlarged codemap for banked memory
6080         * device/lib/mcs51/crtbank.asm: added # to 0x0F
6081
6082 2005-07-21 Raphael Neider <rneider AT web.de>
6083
6084         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
6085           architecture cannot handle them efficiently, fixes bug #1235003
6086         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
6087           check for empty sets before using them (fixes bug #1232190)
6088
6089 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
6090
6091         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
6092           (lnksect2): generate warnings for memory overlap
6093         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
6094           constseg to set the name of these segments so you can instruct the linker
6095           to place them in banks
6096         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
6097         * src/SDCCglobl.h: added MODEL_HUGE to enum,
6098           added code_seg and const_seg to options
6099         * src/SDCCglue.c (emitMaps): use options.const_seg,
6100           (createInterruptVect): put interrupt vectors in segment HOME,
6101           (glue): put HOME before static segment and put the main glue in HOME,
6102           (glue): use options.code_seg
6103         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
6104         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
6105           these segments so you can instruct the linker to place them in banks
6106           (linkEdit): use code_loc for HOME segment which should be the first
6107           segment in code memory now
6108         * src/SDCCmem.c: fixed more stuff like bug 1238386
6109         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
6110           (changePointer): don't change function pointers to code pointers for
6111           banked functions,
6112           (compareType): added exceptional check for banked function pointers
6113         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
6114         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
6115           after static in code memory
6116         * src/mcs51/gen.c: added aopLiteralLong prototype,
6117           (aopForSym): use getSize for functions,
6118           (genCall): generate banked calls over one trampoline __sdcc_banked_call
6119           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
6120           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
6121           the segment,
6122           (genPcall): use call for literal function pointers and generate banked
6123           calls over the one trampoline so there's only one place for the user to
6124           modify according to his/hers hardware,
6125           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
6126           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
6127         * src/mcs51/main.c: added keyword banked,
6128           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
6129         * support/Util/SDCCerr.c,
6130         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
6131           needed for passing the bank and address to the trampoline
6132         * device/lib/mcs51/crtbank.asm: added for bankswitching
6133         * device/lib/mcs51/Makefile: added crtbank
6134
6135 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6136
6137         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
6138           for fields at offset 0 of a struct or union as reported
6139           on 2005-07-07 in the developer mailing list.
6140
6141 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
6142
6143         * src/SDCCmem.c: fixed bug 1238386
6144
6145 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6146
6147         * src/mcs51/peeph.def: added labelrefcounting for peepholes
6148           (patch #1144962), added peephole 300, enabled 259.x
6149         * doc/sdccman.lyx: removed screenshot and provided link instead
6150
6151 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6152
6153         * doc/sdccman.lyx: added section about debugging with ddd
6154         * doc/figures/ddd_example.eps: screenshot of debugging session
6155
6156 2005-07-04 Raphael Neider <rneider AT web.de>
6157
6158         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
6159           like CODE pointers, fixes #1115683
6160         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
6161           call, fixes bugs #1232211, #1228110,
6162           fixed wrong casts to pCodeFlow from pCodeInstructions
6163
6164 2005-07-04 Raphael Neider <rneider AT web.de>
6165
6166         * src/pic/gen.c (popGet): changed assert to allow for
6167           bit operands
6168         * (popGetAddr): changed signature to provide
6169           an additional index, patched all call sites
6170         * (genCmpEq): handle literal-like operands correctly
6171         * (genAddrOf): added sanity checks on __code/__data pointers
6172         * (genAssign): added handling of symbols from __code section
6173         * (gencjne): do not generate code for comparisons whose result
6174           is neither stored nor used, fixes bug #1171114
6175         * (AccLsh, AccRsh): operate on operand instead of WREG
6176         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
6177           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
6178           by known count
6179         * rewrote complete shift-by-literal logic, commented unused
6180           functions out
6181         * (genConstPointerGet): get multiple bytes (if result size > 1),
6182           fixed handling of non-immediate addresses
6183         * (genPointerGet): handle CODE pointers like CONST pointers
6184         * (genpic14Code): insert C-SRC lines as Cource-pCodes
6185         * ({aop,op}_isLitLike): NEW, single place to decide whether an
6186           operand is to be treated as a literal or not
6187         * (mov2w,genPcall,genCmpEq),
6188           src/pic/genarith.c: use aop_isLitLike() to decide between
6189           literal/register contents
6190         * (addSign): added missing offset
6191         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
6192           only emit comment in debug-mode,
6193           use {aop,op}_isLitLike throughout the file
6194         * src/pic/glue.c: fix initializers for pointers (work in progress)
6195         * src/pic/pcode.c (get_op): honor index on _const symbols
6196         * ({reset,dump}pCodeStatistics): NEW, estimate code size
6197         * (dumppBlock): added pCode size estimation
6198         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
6199           check for IS_SYMOP before OP_SYMBOL'ing
6200         * fixed indentation, compacted switch-statements
6201         * (allocReg): find free register and allocate it instead of
6202           allocating new registers all the time
6203         * (deassignLRs): prevent POINTER_GET's from being assigned the same
6204           registers as its operands (necessary only for multibyte GETs)
6205
6206 2005-07-01 Raphael Neider <rneider AT web.de>
6207
6208         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
6209           debugging .asm-output macros FENTRY + FEXIT
6210         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
6211           way... I wonder...
6212         * (emitpComment): NEW, printf to pCode
6213         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
6214           offset handling
6215         * (popGetAddr): NEW, variant of popGet to access an immediates
6216           high(er) bytes instead of the n'th byte of memory they reference,
6217           replaced popGet with popGetAddr where neccessary
6218         * (genDataPointerGet): reactivated and fixed implementation
6219         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
6220           accesses
6221         * (genDataPointerSet): fixed multibyte assignments
6222         * (genpic14Code): fixed --i-code-in-asm handling
6223         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
6224         * (genPlus): fixed index-out-of-bounds error
6225         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
6226         * src/pic/ralloc.c: added debugging output macro FENTRY2
6227         * (spillThis): fixed indentation, enbraced for-body for clarity
6228         * (rematStr): commented out as now unused
6229         * (regTypeNum): commented out special spill case (overwrites
6230           arbitrary values)
6231         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
6232
6233 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
6234
6235         * doc/sdccman.lyx: documented sfr16/sfr32,
6236           added example for using storage class with function pointers
6237         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
6238
6239 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
6240
6241         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
6242         * device/lib/_itoa.c,
6243         * device/lib/_ltoa.c: optimized codesize
6244         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
6245           but don't know how to suppress the double warning.
6246         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
6247         * support/Util/SDCCerr.c,
6248         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
6249
6250 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
6251
6252         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
6253           fixed old K&R prototypes
6254         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
6255         * device/lib/_gptrget.c,
6256         * device/lib/_gptrgetc.c,
6257         * device/lib/_gptrput.c: changed versions for new memory indicator values,
6258           also new versions for small generic pointers and banked generic pointers
6259         * src/port.h: added const_name
6260         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
6261         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
6262         * src/SDCCcse.c (findPrevIc): check all associative operators
6263         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
6264         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
6265         * src/SDCCmem.c: updated comments,
6266           set far-space to 0 for pdata, results in optimized code
6267         * src/SDCCmem.h: added macro CONST_NAME
6268         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
6269           moving the info into the highest bits, see also gptrget/gptrput
6270         * src/src.dsp: added sdcc.ico to project files
6271         * src/avr/gen.c (genCast): fixed bug 0x%d
6272         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
6273         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
6274           relation between ptr_type and DCL_TYPE,
6275           (genCast): fixed bug 0x%d
6276         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
6277           (CODE)" for const_name
6278         * src/hc08/gen.c (genCast): fixed bug 0x%d
6279         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
6280           (hc08_port): added "CONST (CODE)" for const_name
6281         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
6282           (aopForRemat, adjustArithmeticResult): disconnected direct relation
6283           between ptr_type and DCL_TYPE,
6284           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
6285           operand* and took AOP() inside function so sfr-ness can be checked,
6286           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
6287           new prototype,
6288           (genFunction, genEndFunction): optimized stack setup,
6289           (genMinus): optimized for literals with ending zeroes (in bytes),
6290           (genCast): fixed bug 0x%d
6291         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
6292           (mcs51_port): added "CONST (CODE)" for const_name
6293         * src/mcs51/peeph.def: made rule 226 more generic
6294         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
6295         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
6296         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
6297         * src/z80/main.c (z80_port): added NULL for const_name,
6298           (gbz80_port): added NULL for const_name
6299         * support/regression/tests/bug663539.c,
6300         * support/regression/tests/sfr16.c: new tests
6301
6302 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6303
6304         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
6305
6306 2005-06-24 Raphael Neider <rneider AT web.de>
6307
6308         * device/lib/pic16/libdev/pic18f[68][567]20.c:
6309           corrected typos...
6310         * device/include/pic16/signal.h: added USBIF
6311           and SIG_USB
6312
6313 2005-06-24 Raphael Neider <rneider AT web.de>
6314
6315         * device/lib/pic16/libdev/pic18f2455.c,
6316           device/include/pic16/pic18f2455.h: NEW
6317         * device/include/pic16/pic18fregs.h,
6318           device/lib/pic16/pics.all,
6319           src/pic16/device.c: added 18f2455
6320         * device/lib/pic16/libdev/pic18f[68][567]20.c,
6321           device/include/pic16/{pic18f[68][567].h,usart.h}:
6322           replaced MULTIPLE_USARTS define with more relaible
6323           compatibility sfrs (for USART access)
6324
6325 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
6326
6327         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
6328           and the output asm file line is printed on two lines.
6329
6330 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6331
6332         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
6333           BGT, BLE, BHI, and BLS instructions
6334         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
6335           genCmpEq): removed
6336         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
6337           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
6338           fixes bug #1216342
6339         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
6340
6341 2005-06-15 Raphael Neider <rneider AT web.de>
6342
6343         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
6344         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
6345         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
6346           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
6347           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
6348
6349 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6350
6351         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
6352           Marcel Telka in bug #1215704
6353
6354 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
6355
6356         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
6357           located in shared memory bank.
6358
6359 2005-05-31 Raphael Neider <rneider AT web.de>
6360
6361         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
6362           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
6363           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
6364
6365 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
6366
6367         * device/lib/_strncpy.c: fixed the fix
6368
6369 2005-05-26 Raphael Neider <rneider AT web.de>
6370
6371         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
6372           initializers with \0, bug #1208187
6373         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
6374           intializers with \0, bug #1208187
6375
6376 2005-05-26 Raphael Neider <rneider AT web.de>
6377
6378         * src/pic16/glue.c (pic16_printIvalChar): fixed string
6379           initializers with \0, bug #1208187
6380         * src/pic16/main.c (_process_pragma): added sanity checks
6381           for stack position and size, emit warnings when appropriate
6382
6383 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
6384
6385         * device/lib/_strncpy.c: fixed not filling with \0
6386
6387 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6388
6389         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
6390           createFunction),
6391         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
6392           compound_statement),
6393         * src/SDCCsymt.h,
6394         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
6395
6396 2005-05-24 Raphael Neider <rneider AT web.de>
6397
6398         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
6399
6400 2005-05-24 Raphael Neider <rneider AT web.de>
6401
6402         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
6403           TRISE definitions, closes bug #1162453
6404
6405 2005-05-22 Raphael Neider <rneider AT web.de>
6406
6407         * src/pic16/main.c (_process_pragma): check for missing
6408           arguments to pragmas code and udata
6409         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
6410           consistency fixes to match other headers (thanks to Jim Paris)
6411         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
6412
6413 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
6414
6415         * src/SDCCicode.c (isOperandEqual): fixed missing ;
6416
6417 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
6418
6419         * support/regression/tests/bug1198642.c: new test
6420         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
6421         * src/SDCCcse.c (findPrevIc): added comment, please have a look
6422         * support/scripts/resource.h,
6423         * support/scripts/resource.rc,
6424         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
6425         * support/scripts/sdcc.ico: added 32x32 icon
6426
6427 2005-05-18 Raphael Neider <rneider AT web.de>
6428
6429         * device/lib/pic16/libdev/pic18f*.c,
6430         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
6431           keywords to "__sfr" and "__at (X)"
6432         * device/include/pic16/pic18fregs.h: added pic18f4520
6433         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
6434           #1203088 (MPLAB compatibility)
6435
6436 2005-05-17 Raphael Neider <rneider AT web.de>
6437
6438         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
6439         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
6440         * device/lib/pic16/pics.all: added new devices
6441         * src/pic16/device.c: added support for pic18f4520
6442
6443 2005-05-16 Raphael Neider <rneider AT web.de>
6444         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
6445         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
6446         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
6447           convenience function for bit access
6448
6449 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6450
6451         * device/lib/printf_large.c: fixed bug 1193299
6452         * support/regression/tests/bug1057979.c: added test %3.3s
6453
6454 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6455
6456         * device/include/mcs51/8051.h,
6457         * device/include/mcs51/8052.h: made parseable with lint
6458         * device/include/mcs51/lint.h: added include file for (sp)lint
6459         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
6460         * doc/cdbfileformat.lyx,
6461         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
6462
6463 2005-05-14 Raphael Neider <rneider AT web.de>
6464
6465         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
6466         * device/lib/pic16/libc/stdlib/itoa.c (new)
6467         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
6468         * device/lib/pic16/libio/Makefile: exclude subdir according to
6469           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
6470         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
6471         * src/pic16/gen.c (genFunction): prevent annoying warning
6472         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
6473           nameclashes on BeOS
6474         * support/cpp2/cppmain.c (cpp_output_string): new
6475         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
6476           fixes bug 1116802
6477
6478 2005-05-13 Borut Razem <borut.razem AT siol.net>
6479
6480         * src/SDCCmain.c (linkEdit): fixed bug 1195202
6481
6482 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6483
6484         * .version: changed to version 2.5.1; back to bleeding edge development
6485
6486 2005-05-11 Borut Razem <borut.razem AT siol.net>
6487
6488         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
6489           generate PDF version 1.3 documents
6490
6491 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6492
6493         * .version: changed to version 2.5.0
6494
6495 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6496
6497         * doc/sdccman.lyx: updated weblinks, index and smaller updates
6498
6499 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6500
6501         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
6502         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
6503         well as many smaller updates.
6504         * .version: changed to version 2.5.0-pre1
6505
6506 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6507
6508         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
6509
6510 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6511
6512         * support/regression/tests/bug1185672.c: added
6513         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
6514           bug 1185672
6515         * src/mcs51/gen.c (genCall): added comments, made it look safer
6516         * src/mcs51/gen.c (genEndFunction): simplified
6517
6518 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6519
6520         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
6521
6522 2005-04-14 Borut Razem <borut.razem AT siol.net>
6523
6524         * fixed bug 1045046 - SIGSEGV with really simple code?:
6525           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
6526           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
6527
6528 2005-04-14 Borut Razem <borut.razem AT siol.net>
6529
6530         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
6531           src/pic16/device.h: temporarily disabled experimental #inline pragma
6532           for 2.5.0 release
6533
6534 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
6535
6536         * device/include/z80/stdio.h,
6537         * device/include/z80/string.h: removed these highly incomplete files so
6538           SDCC can use the default ones in device/include/
6539
6540 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6541
6542         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
6543         gcc warning.
6544         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
6545         fix sdcpp warnings.
6546
6547 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6548
6549         * device/include/malloc.h: removed redundant __reentrant prototypes
6550         * device/lib/_mullong.c: added working xstack variant in asm (C version
6551           doesn't pass regression tests)
6552         * device/lib/bpx.c: used __data and made bpx char for mcs51
6553         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
6554           (createFunction): fixed bug with xstackPtr
6555         * src/SDCCcse.c: corrected comments
6556         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
6557           (killDeadCode, eBBlockFromiCode): removed unused code
6558         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
6559           corrected comments
6560         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
6561           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
6562           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
6563           (genModOneByte): fixed warning in MSVC
6564         * src/mcs51/main.c (): added comments
6565         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
6566
6567 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6568
6569         * src/SDCCmain.c (linkEdit): oops, changed one line too many
6570
6571 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
6572
6573         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
6574
6575 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
6576
6577         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
6578         characters arrays of larger size than the declared one.
6579
6580 2005-04-10 Borut Razem <borut.razem AT siol.net>
6581
6582         * src/pic/gen.c (genInline),
6583           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
6584           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
6585           (findNextInstruction), (findPrevInstruction),
6586           (findInstructionUsingLabel),
6587           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
6588         * src/pic/pcode.c (findLabel): added missing '\n'
6589         * src/src.dsp: added SDCCdwarf2.c to the project
6590
6591 2005-04-09 Borut Razem <borut.razem AT siol.net>
6592
6593         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
6594
6595 2005-04-08 Raphael Neider <rneider AT web.de>
6596
6597         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
6598           into the chain after a given one) and mergeDefmapSymbols (combine
6599           defmap entries for each symbol per pcode)
6600         * (createDefmap): have defmap entries merged in the end
6601         * (defmapReplaceSymRef): split defmap entries covering two accesses to
6602           a symbol before replacing one access type's symbol, merge symbols in
6603           the end (replacement symbol might already have an entry)
6604         * (assignValnums): keep reference to written WREG intact
6605
6606 2005-04-08 Raphael Neider <rneider AT web.de>
6607
6608         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
6609           Alpha)
6610
6611 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
6612
6613         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
6614         bytes
6615
6616 2005-04-07 Raphael Neider <rneider AT web.de>
6617
6618         * device/include/pic16/usart.h: added compatibility defines for
6619           devices with more than one USART
6620         * device/include/pic16/pic18f[68][567]20.h: activated above defines
6621
6622 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6623
6624         * device/lib/Makefile.in: updated for port specific include
6625
6626 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6627
6628         * support/regression/ports/mcs51/spec.mk: added mcs51 include
6629
6630 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6631
6632         * device/include/8051.h,
6633         * device/include/8052.h,
6634         * device/include/at89S8252.h,
6635         * device/include/at89c55.h,
6636         * device/include/at89x051.h,
6637         * device/include/at89x51.h,
6638         * device/include/at89x52.h,
6639         * device/include/mcs51reg.h,
6640         * device/include/reg51.h,
6641         * device/include/reg764.h,
6642         * device/include/regc515c.h,
6643         * device/include/sab80515.h: (re)moved these 12 files
6644         * device/include/mcs51/8051.h,
6645         * device/include/mcs51/8052.h,
6646         * device/include/mcs51/at89S8252.h,
6647         * device/include/mcs51/at89c55.h,
6648         * device/include/mcs51/at89x051.h,
6649         * device/include/mcs51/at89x51.h,
6650         * device/include/mcs51/at89x52.h,
6651         * device/include/mcs51/mcs51reg.h,
6652         * device/include/mcs51/reg51.h,
6653         * device/include/mcs51/reg764.h,
6654         * device/include/mcs51/regc515c.h,
6655         * device/include/mcs51/sab80515.h: and added them here
6656
6657 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6658
6659         * device/include/stdarg.h: changed SDCC specific keywords to double
6660           underlined form.
6661         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
6662           mcs51 and ds390.
6663         * device/include/hc08/mc68hc908gp32.h,
6664         * device/include/hc08/mc68hc908jb8.h,
6665         * device/include/hc08/mc68hc908jkjl.h,
6666         * device/include/hc08/mc68hc908qy.h: fixed comments
6667         * device/include/mcs51/README: updated
6668         * device/include/mcs51/c8051f120.h: added PINRSF
6669         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
6670         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
6671           amidst code. Also inline is not supported.
6672
6673 2005-04-06 Raphael Neider <rneider AT web.de>
6674
6675         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
6676         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
6677           callers stack/frame pointers
6678
6679 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6680
6681         * device/include/pic16/usart.h: added, missing in previous commit,
6682         * device/include/pic16/adc.h: fixed typo,
6683         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6684         commit,
6685         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6686         <p18fxxx.inc>
6687         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6688         uninitialized because a bug appears with gplink
6689         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6690         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6691         complains for unrecognised option
6692
6693 2005-04-05 Raphael Neider <rneider AT web.de>
6694
6695         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6696           structs as well (using memcpy)
6697         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6698           on ISRs (GOTO has no label)
6699         * src/pic16/device.h: added OF_OPTIMIZE_DF
6700         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6701           new data flow analysis/optimization
6702         * src/pic16/pcode.c: added (prototypes for and implementation of)
6703           dataflow analysis functions, fixed pCodeInstructions' inCond and
6704           outCond values, made RCALL a branch instruction
6705         * (pic16_unlinkpCode): keep C line if possible
6706         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6707           C line moved if possible
6708         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6709         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6710           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6711         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6712           new flow)
6713         * (pic16_getJumptabpCode): NEW, needed in...
6714         * (LinkFlow): fixed handling of jumptables, calls and conditional
6715           branches
6716         * (pic16_InsertCommentAfter): NEW
6717         * (pic16_pCodeReplace): made verbose and flow preserving
6718         * (AnalyzeFlow): added call to data flow analysis
6719         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6720         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6721         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6722
6723 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6724
6725         * src/SDCCast.c (decorateType): fixed bug #1105626
6726
6727 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6728
6729         * device/include/asm/pic16/features.h,
6730         * pic18f*.h headers,
6731         * device/include/pic16/adc.h,
6732         * device/include/pic16/delay.h,
6733         * device/include/pic16/i2c.h,
6734         * device/include/pic16/malloc.h,
6735         * device/include/pic16/stdio.h,
6736         * device/include/pic16/stdlib.h,
6737         * device/include/pic16/string.h,
6738         * device/lib/pic16/libc/stdio/printf_tiny.c,
6739         * device/lib/pic16/libc/stdio/printf_small.c,
6740         * device/lib/pic16/libc/stdio/strmgpsim.c,
6741         * device/lib/pic16/libc/stdio/strmmssp.c,
6742         * device/lib/pic16/libc/stdio/strmusart.c,
6743         * device/lib/pic16/libc/stdio/vfprintf.c,
6744         * device/lib/pic16/libc/stdlib/ltoa.c,
6745         * device/lib/pic16/libc/stdlib/putchar.c,
6746         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6747         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6748         * device/lib/pic16/libc/stdlib/memchrram.c,
6749         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6750         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6751         * device/lib/pic16/libio/adc/adcbusy.c,
6752         * device/lib/pic16/libio/adc/adcread.c,
6753         * device/lib/pic16/libio/adc/adcsetch.c,
6754         * device/lib/pic16/libio/usart/ubaud.c,
6755         * device/lib/pic16/libio/usart/ubusy.c,
6756         * device/lib/pic16/libio/usart/udrdy.c,
6757         * device/lib/pic16/libio/usart/uopen.c,
6758         * device/lib/pic16/libio/usart/uputc.c,
6759         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6760         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6761         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6762         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6763         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6764         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6765         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6766         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6767         specific keywords to double underlined form,
6768         * device/lib/pic16/libc/Makefile.rules,
6769         * device/lib/pic16/libsdcc/Makefile.rules,
6770         * device/lib/pic16/libm/Makefile,
6771         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6772         to compile with C standard set in Makefile.common
6773         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6774         rand.c and crc.c in compilation process,
6775         * device/lib/pic16/libsdcc/int/divuint.c,
6776         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6777         `c' from signed to unsigned,
6778         * device/lib/pic16/startup/crt0.c,
6779         * device/lib/pic16/startup/crt0i.c,
6780         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6781         keywords to double underlined form, bug fixes in _do_cinit function
6782         which prevented the correct initialization of the .idata segment,
6783         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6784         core to enter a infinite loop
6785         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6786
6787 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6788
6789         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6790
6791 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6792
6793         * device/include/Makefile.in: add support for hc08 subdirectory
6794         * device/include/hc08/: new subdirectory
6795         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6796         Lucas Loizaga, thanks!
6797         * device/include/hc08/mc68hc908qy.h,
6798         * device/include/hc08/mc68hc908gp32.h,
6799         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6800         their own directory. Changed internal macro names to use the compiler
6801         reserved namespace. Changed SDCC specific keywords to double
6802         underlined form.
6803         * device/include/math.h,
6804         * device/include/malloc.h,
6805         * device/include/stdarg.h,
6806         * device/include/stdbool.h
6807         * device/include/string.h,
6808         * device/include/tinibios.h,
6809         * device/include/ds400rom.h,
6810         * device/include/8051.h,
6811         * device/include/8052.h,
6812         * device/include/80c51xa.h,
6813         * device/include/at89c55.h,
6814         * device/include/at89S8252.h,
6815         * device/include/at89x51.h,
6816         * device/include/at89x52.h,
6817         * device/include/ds80c390.h,
6818         * device/include/reg764.h,
6819         * device/include/regc515c.h,
6820         * device/include/sab80515.h,
6821         * device/include/mcs51/c8051f000.h,
6822         * device/include/mcs51/c8051f018.h,
6823         * device/include/mcs51/c8051f020.h,
6824         * device/include/mcs51/c8051f040.h,
6825         * device/include/mcs51/c8051f060.h,
6826         * device/include/mcs51/c8051f120.h,
6827         * device/include/mcs51/c8051f300.h,
6828         * device/include/mcs51/c8051f310.h,
6829         * device/include/mcs51/c8051f320.h,
6830         * device/include/mcs51/c8051f330.h,
6831         * device/include/mcs51/c8051f350.h,
6832         * device/include/z180.h: Changed SDCC specific keywords to double
6833         underlined form.
6834
6835 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6836
6837         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6838         18F4455,
6839         * (pic16_assignConfigWordValue): disable testing of configuration
6840         register value with config mask,
6841         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6842         function with port->fun_prefix,
6843         * (genFunction): when generating a naked interrupt function never
6844         create an absolute segment placed in interrupt vector address, place
6845         the actual interrupt function at IVA instead, when an interrupt
6846         function is generated with unspecified interrupt then do not create
6847         the absolute section,
6848         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6849         code for generating a call to generic pointer get/put function with
6850         a call to function pic16_callGenericPointer(),
6851         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6852         the call to the generic pointer get/put functions with prefixing the
6853         function name with port->fun_prefix,
6854         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6855         * src/pic16/main.c (_process_pragma): prefix function with
6856         port->fun_prefix,
6857         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6858         calling assembler, old 18Fxxxx macro is deprecated,
6859         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6860         PC_ASMDIR in while condition,
6861         * (findInstruction): add PC_ASMDIR in while condition,
6862         * (buildCallTree): prefix main with port->fun_prefix,
6863         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6864         identifier for variable with banked access in instructions BTFSS,
6865         BTFSC, BCF, BSF, BTG
6866         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6867         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6868         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6869         perform optimization when enviroment variable NO_REG_OPT is set,
6870         * (insideLRBlock): NEW, return 1 if register is inside an
6871         INF_LOCALREGS block,
6872         * (RemoveRegFromLRBlock): remove a register that is completely
6873         eliminated by register optimization, but it is still left in local
6874         register store/restore in/from stack block,
6875         * (Remove2pcodes): after removing register, check to see if it
6876         should be removed from local register store/restore in/from stack
6877         block,
6878         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6879         DUMMY_READ_VOLATILE,
6880
6881         * device/include/pic16/adc.h: minor prototype modifications and
6882         update,
6883         * device/include/pic16/malloc.h: added GPL notice various
6884         modifications,
6885         * device/include/pic16/stdint.h: NEW, standard header for ints
6886         * device/include/pic16/delay.h: NEW, header for delay functions,
6887         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6888         delay1mtcy,
6889         * device/include/pic16/signal.h: NEW, header providing helper macros
6890         for implementing signal handlers,
6891         * device/include/pic16/stdio.h: added prototypes for functions,
6892         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6893         prototypes for stdin and stdout, added macro PUTCHAR to
6894         automatically implement putchar function prototype,
6895         * device/include/pic16/usart.h: modified and updated USART library,
6896         * device/lib/pic16/libio/adc/,
6897         * device/lib/pic16/libio/i2c: some modifications to improve library
6898         performance,
6899         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6900         family of functions,
6901         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6902         family of functions and other sources,
6903         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6904         of the PIC18Fxx[28] devices,
6905         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6906         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6907         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6908         _do_cinit function, because the previous failed when local variables
6909         where not placed in the same memory bank,
6910         * device/lib/pic16/libsdcc/char/: various modifications to improve
6911         library performance,
6912         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6913         information on the new functions of the c library and more...
6914
6915 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6916
6917         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6918
6919 2005-03-26 Raphael Neider <rneider AT web.de>
6920
6921         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6922           if condition == CARRY)
6923         * (genCmp): adapted to new genSkipc semantics
6924         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6925           on rIfx (genCmp was broken)
6926
6927 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6928
6929         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6930         * src/z80/main.c (_keywords[]),
6931         * src/SDCCglobal.h (struct options),
6932         * src/SDCC.y,
6933         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6934         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6935         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6936         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6937         always available in leading double underscore form. The C99 support is
6938         mostly missing, but it's a start.
6939         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6940         reserved identifier "__data".
6941
6942 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6943
6944         * src/mcs51/peeph.def: fixed bug 1170013
6945
6946 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6947
6948         * device/include/mcs51reg.h: fixed bug 842007
6949
6950 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6951
6952         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6953         last time.
6954
6955 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6956
6957         * src/port.h (struct PORT),
6958         * src/avr/ralloc.c (avr_assignRegisters),
6959         * src/avr/main.c,
6960         * src/ds390/ralloc.c (ds390_assignRegisters),
6961         * src/ds390/main.c,
6962         * src/hc08/ralloc.c (hc08_assignRegisters),
6963         * src/hc08/main.c,
6964         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6965         * src/mcs51/main.c,
6966         * src/pic/ralloc.c (pic14_assignRegisters),
6967         * src/pic/main.c,
6968         * src/pic16/ralloc.c (pic16_assignRegisters),
6969         * src/pic16/main.c,
6970         * src/xa51/ralloc.c (xa51_assignRegisters),
6971         * src/xa51/main.c,
6972         * src/z80/ralloc.c (z80_assignRegisters),
6973         * src/z80/ralloc.h,
6974         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6975         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6976         * src/SDCCcse.h,
6977         * src/SDCCdflow.c (computeDataFlow),
6978         * src/SDCCdflow.h,
6979         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6980         * src/SDCCloop.h,
6981         * src/SDCCcflow.c (*),
6982         * src/SDCCcflow.h,
6983         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6984         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6985         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6986         immedDom() returning wrong block; probably fixes bug #1160833)
6987
6988 2005-03-20 Borut Razem <borut.razem AT siol.net>
6989
6990         * support/scripts/inc2h.pl: WIN32 port
6991
6992 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6993
6994         * device/lib/makefile.in: added abs.c and labs.c
6995
6996 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6997
6998         * device/include/stdint.h: added
6999         * device/lib/abs.c: added
7000         * device/lib/labs.c: added
7001         * device/include/stdlib.h: added abs() and labs() prototypes
7002         * device/lib/libsdcc.lib: added abs and labs
7003         * device/include/float.h,
7004         * device/lib/_fsmul.c,
7005         * device/lib/printf_fast.c,
7006         * device/lib/printf_tiny.c: updated comments
7007
7008 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7009
7010         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
7011         bug #1164313
7012
7013 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7014
7015         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
7016         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
7017
7018 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
7019
7020         * device/lib/printf_large.c: removed inline assembly for portability and
7021           readability. Use printf_fast if speed or size are more important.
7022         * src/pic16/gen.c: removed conditions around use of DEBUGpc
7023         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
7024
7025 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
7026
7027         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
7028         prevent compiler warning
7029
7030 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
7031
7032         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
7033         moved to level 0 and declared as static. Also they are explicit
7034         placed in access bank. This was necessery because some times they
7035         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
7036         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
7037         optimizations. Currently only compare to unsigned char is implemented,
7038         * src/pic16/gen.c: added fReturnIdx array,
7039         * (struct resolvedIfx) is moved to gen.h and made public,
7040         * (struct _G): added sregsAlloc and sregsAllocSet fields,
7041         * (aopForSym): added an optimization to directly store in stack of
7042         the operand of a SEND iCode,
7043         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
7044         but as registers instead (AOP_REG) using the fReturnIdx array,
7045         * (pic16_freeAsmop): remove the freed register from the
7046         _G.sregsAlloc field,
7047         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
7048         a compare of 'WREG',
7049         * (pic16_popGetTempRegCond): changed function prototype, now
7050         function takes also a bitVector argument v which holds the current
7051         set of registers that are allocated for stack access by aopForSym,
7052         registers allocated in aopForSym for accessing stack symbols are not
7053         any more part of the functions usedRegs field,
7054         * (genCall): some times aopOp is called for a stack variable to be
7055         send, aopForSym might perform the push, if this is true make sure
7056         that genCall doesn't push the variable twice by testing _G.resDirect,
7057         * (genFunction): changed testing for unspecified interrupt number
7058         from 256 to INTNO_UNSPEC,
7059         * modified selection scheme of frame pointer generation. Previously
7060         if function did use local registers a frame pointer was generated,
7061         now a frame pointer is generated only if function has arguments
7062         (that need PLUSW2 register access), or has stack arguments, or the
7063         compiler is not instructed to omit the frame pointer,
7064         * (genEndFunction): before restoring local registers that were saved
7065         in the function preamble, also restore the registers that *might*
7066         have been allocated for stack access,
7067         * (genRet): removed some old comments,
7068         * (genCmp, the active (RN's) version): added a call to the
7069         pic16_genCmp_special function to perform the compare with a more
7070         robust and optimized way,
7071         * (genInline): a feature has been added in inline code generation,
7072         which allows a wildcard variable substitution when writing inline
7073         assembly. Code is incomplete and experimental therefore undocumented,
7074         * (genCast): changed order of aopOp for result and right to allow
7075         aopForSym to directly load the result if possible,
7076         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
7077         perform an optimized compare on some selected special occasions,
7078         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
7079         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
7080         generate an IVT any more,
7081         * src/pic16/main.c (pic16_optionsTable): added command line option
7082         --optimize-cmp,
7083         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
7084         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
7085         macros,
7086         * src/pic16/NOTES: Raphael Neider added in list of active developers
7087         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
7088         jumptable_end to prevent bug #,
7089         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
7090         inCond and outCond fields,
7091         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
7092         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
7093         turn off register spilling,
7094         * (packRegsForOneUse): synced with other ports' versions although it
7095         is not used currently,
7096         * (pic16_packRegisters): added an optimization while reading
7097         structure bitfields, some registers may be saved (malloc code is
7098         decreased by 80 bytes)
7099
7100 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
7101
7102         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
7103         left is a bitfield, if yes, then don't optimize assignment. Perhaps
7104         this can be optimized more?
7105
7106 2005-03-10 Raphael Neider <rneider AT web.de>
7107
7108         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
7109           genNearPointerGet): (hopefully) fixed access to bitfields via
7110           pointers (p->bitN = x; and x = p->bitN; failed)
7111
7112 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
7113
7114         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
7115
7116 2005-03-09 Raphael Neider <rneider AT web.de>
7117
7118         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
7119
7120 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
7121
7122         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
7123         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
7124           (regTypeNum): set REG_BIT type if necessary
7125         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
7126         * support/regression/tests/critical.c: check bug 1144613
7127
7128 2005-03-02 Raphael Neider <rneider AT web.de>
7129
7130         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
7131
7132 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7133
7134         * src/avr/ralloc.c (serialRegAssign),
7135         * src/ds390/ralloc.c (serialRegAssign),
7136         * src/hc08/ralloc.c (serialRegAssign),
7137         * src/mcs51/ralloc.c (serialRegAssign),
7138         * src/pic/ralloc.c (serialRegAssign),
7139         * src/pic16/ralloc.c (serialRegAssign),
7140         * src/xa51/ralloc.c (serialRegAssign),
7141         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
7142
7143 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
7144
7145         * src/SDCCast.c (decorateType): fixed bug 1124787
7146
7147 2005-02-20 Hubert Sack <sack AT digiplan.de>
7148         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7149
7150         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
7151         patch #1121755
7152
7153 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7154
7155         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
7156         to keep the correct label reference count when adding/removing references
7157         to labels. A peephole file using this is appended to patch #1144962.
7158
7159 2005-02-14 Raphael Neider <rneider AT web.de>
7160
7161         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
7162         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
7163         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
7164           retrievals of result operand's value on assignment
7165
7166 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
7167
7168         * device/include/pic16/string.h: modified prototype for memccpy()
7169         to memccpy(void *, void *, char, size_t)
7170         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
7171         check whether to omit frame pointer or not,
7172         * (genInline): convert all occurences of "\n" to LF in inline
7173         assembler blocks, this helps formatting the inline text,
7174         * (pic16_loadFSR0): modified prototype,
7175         * (genNearPointerGet, genNearPointerSet): reorganization of code,
7176         removed some 8051 legacy code,
7177         * (genPackBits): enabled handling bitfields exceeding one byte in size,
7178         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
7179         before allocating temporary registers in functions,
7180
7181 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
7182
7183         * support/regression/tests/bitvars.c: corrected the "fix"
7184
7185 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
7186
7187         * support/regression/tests/bitvars.c,
7188         * support/regression/tests/bitwise.c,
7189         * support/regression/tests/rotate.c: "fixed" problems on Alpha
7190
7191 2005-02-10 Raphael Neider <rneider AT web.de>
7192
7193         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
7194           different size for Alpha
7195         * src/pic16/gen.c (genCmpEq) : improved compare with 0
7196
7197 2005-02-09 Raphael Neider <rneider AT web.de>
7198
7199         * src/SDCC.lex(doPragma) : save and restore warning options as well
7200           (also added new stack plus clone- and copyAndFreeSDCCERRG())
7201         * have #pragma less_pedantic set the errorlevel to WARNING
7202           (fixes #1117001)
7203         * (cloneOptimize) : fixed wrong malloc's size
7204         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
7205           facilitate correct handling of #pragma (save|restore)
7206
7207 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
7208
7209         * src/mcs51/gen.c: removed non-standard C nameless struct/union
7210
7211 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
7212
7213         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
7214
7215 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
7216
7217         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
7218
7219 2005-02-02 Raphael Neider <rneider AT web.de>
7220
7221         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
7222         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
7223         * (pic16_storeForReturn): fixed to allow returning function pointers
7224         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
7225         * device/include/pic16/{stddef.h,stdbool.h}: added
7226
7227 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
7228
7229         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
7230
7231 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
7232
7233         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
7234         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
7235          appeared to be required
7236
7237 2005-01-31 Borut Razem <borut.razem AT siol.net>
7238
7239         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
7240           include/mcs51 and include/z80 directories to the package
7241
7242 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7243
7244         * src/hc08/gen.c (genFunction): fixed bug #1112752
7245
7246 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7247
7248         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
7249
7250 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7251
7252         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
7253
7254 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
7255
7256         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
7257
7258 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
7259
7260         * device/include/c8051fxxx.h: removed these 6 files
7261         * device/include/mcs51/c8051fxxx.h: added these 11 new files
7262
7263 2005-01-26 Raphael Neider <rneider AT web.de>
7264
7265         * src/pic16/gen.c (genAssign): fixed assignment from longs
7266           in codespace (were cut to three bytes)
7267         * (genDummyRead): implemented (except for CODESPACE...),
7268           fixed bug #1108575
7269         * src/pic16/glue.c (emitStatistics): beautified
7270         * device/lib/pic16/libm/Makefile: added include path
7271
7272 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7273
7274         * src/z80/gen.c (aopPut): fixed bug #1103902
7275
7276 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7277
7278         * device/lib/expf.c: fixed bug #1095792
7279
7280 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
7281
7282         * device/lib/pic16/libm: added Math library sources
7283
7284 2005-01-24 Raphael Neider <rneider AT web.de>
7285
7286         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
7287           to enable upcast to pCodeOpReg2 (there is no type tag to
7288           differenciate the two and pic16_popGet2p cast into PCOR2)
7289         * src/pic16/main.c (_process_pragma): fixed another malloc bug
7290           (sizeof(sectNames) changed to sizeof(sectName))
7291           Both patches fix segfaults under MinGW.
7292
7293 2005-01-23 Raphael Neider <rneider AT web.de>
7294
7295         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
7296           Safe_[mc]?alloc()'ed variables
7297         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
7298           of (byte sized) temporaries (assign them to WREG for now)
7299         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
7300           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
7301           this might fix SIGSEGVs on MinGW...
7302         * src/SDCCopt.c (killDeadCode): restored original behaviour
7303           (volatile operands might get thrown away though)
7304
7305 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
7306
7307         * src/pic16/gen.c: fixed bug #1106975,
7308         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
7309         pointer update, INTCON is saved, global interrupts are disabled and
7310         restored after updateing TOS.
7311         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
7312         * added function attribute 'shadowregs' to take advantage of shadow
7313         registers,
7314         * added function attribute 'wparam' as an alternative to the wparam
7315         pragma,
7316         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
7317         user declares a non-ISR function as 'shadowregs',
7318         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
7319
7320 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
7321
7322         * .version: bumped version number to 2.4.8
7323         * device/lib/pic16/pics.all: list of PIC18F devices supported by
7324         pic16 port,
7325         * device/lib/pic16/libio/i2c/: I2C module support library,
7326         * device/include/pic16/i2c.h: I2C support library header,
7327         * device/lib/pic16/libc/stdio/: standard IO support sources,
7328         * (printf_small.c): printf_small() source, supports float print,
7329         * (printf_tiny.c): printf_tiny() source, does not support floats,
7330         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
7331         enable global optimizations for entire library source, other
7332         Makefiles in the source tree are also modified to reflect this,
7333         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
7334         function,
7335         * doc/sdccman.lyx: updated to reflect new changes,
7336         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
7337         sym->onStack if-case,
7338         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
7339         sbit, idata, _idata, xdata, _xdata,
7340         * added pragma library, to link an external library, (see doc),
7341         * removed command line options, --pomit-config-words, --pomit-ivt,
7342         --pleave-reset-vector,
7343         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
7344         when calling assembler to reflect memory model used, also define
7345         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
7346         reflect stack model used,
7347         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
7348         on stack return NULL,
7349
7350 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7351
7352         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
7353           of the operands is volatile. Fixes #1020220
7354
7355 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7356
7357         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
7358         * (OptimizeRegUsage): make sure that there is really no other flow where
7359           the first pCode is used
7360
7361 2005-01-22 Raphael Neider <rneider AT web.de>
7362
7363         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
7364           to fix #1106967 (pCode->seq are not set up correctly)
7365
7366 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7367
7368         * src/SDCCglue.c (glue): make sure code area is declared before the
7369         static initialization area.
7370
7371 2005-01-21 Raphael Neider <rneider AT web.de>
7372
7373         * device/lib/Makefile.in: fixed test for pic16 install dir
7374         * device/lib/pic16/*/Makefile*: modified compile flags to enable
7375           optimizations
7376         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
7377           added --optimize-goto compiler switch and pragma wparam documentation
7378         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
7379         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
7380           and PRODH closing bug #1071770 (peephole optimizer)
7381
7382 2005-01-19 Raphael Neider <rneider AT web.de>
7383
7384         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
7385           cmdLine buffers (used when calling sdcpp...) are large enough
7386           (MAX_PATH=256 truncates arguments leading to system halts when
7387           used in MinGW...)
7388         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
7389         * (genUminus): rewritten to for efficiency
7390         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
7391           used uninitialized in some cases)
7392         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
7393           copy the third byte from the int -- now assumes 0x80 (data memory)
7394         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
7395           operands (genAddLit expects the iCode's operands to swapped as
7396           well), fixed leftover bytes (crashed for short left operands)
7397         * (pic16_genMinusDec): performance improvements, removed false
7398           PIC14 emitSKPNCs
7399         * (pic16_genMinus): fixed to cope with differently sized operands
7400         * src/pic16/glue.c (pic16_glue): added new banksel optimization
7401           for --obanksel > 1
7402         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
7403         * src/pic16/graph.[ch]: implementation of directed graphs, used by
7404           new banksel optimization
7405         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
7406           analysis for temporary registers (segfaults...)
7407         * src/pic16/peeph.def: added rule
7408
7409 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
7410
7411         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
7412         which converts a float number to its ASCII representation
7413         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
7414         functions to convert the fractional and integer part of a float to ASCII,
7415         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
7416         realloc.c): added _MALLOC_SPEC to explicit place variables in data
7417         ram
7418         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
7419         _STATMEM macros,
7420         * device/include/pic16/adc.h: added GPL info,
7421         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
7422         a pCodeOp as tested operand,
7423         * (genNearPointerGet): optimized bit testing, does not use
7424         intermediate register for bit value, test directly instead with
7425         BTFSS, BTFSC, works only for single bits,
7426         * (genpic16Code): dump the name of the iCode in the asm,
7427         * src/pic16/ralloc.c (decodeOp): removed static declaration and
7428         renamed to pic16_decodeOp,
7429         * (serialRegAssign): do not allocate a temporary register for iCode
7430         sequences that test a single bit for 1/0
7431
7432 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
7433
7434         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
7435         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
7436         access stack and frame pointers. They are initially assigned to
7437         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
7438         accessing SFRs. Updated all occurences of modification of stack or
7439         frame pointer in gen.c and pcode.c,
7440         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
7441         assigning of a literal value to pointers,
7442         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
7443         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
7444         selected
7445
7446 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7447
7448         * doc/sdccman.lyx: update documentation about stack pragma, added
7449         some info for stack memory models
7450
7451 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7452
7453         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
7454
7455 2005-01-08 Raphael Neider <rneider AT web.de>
7456
7457         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
7458           udata sections to fix bug #1097823
7459
7460 2005-01-05 Raphael Neider <rneider AT web.de>
7461
7462         * src/pic16/gen.c (genGenericShift): added handling of differently
7463           sized left operand and result
7464
7465 2005-01-04 Raphael Neider <rneider AT web.de>
7466
7467         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
7468         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
7469           to hold the condition bit)
7470         * added new version of genCmp (old code available via #define)
7471         * added new version of genShiftLeft/genShiftRight in a generic
7472           way, now supports shifting by negative values
7473         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
7474           shiftCount (expected by genGenericShift)
7475         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
7476         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
7477           dump
7478         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
7479           is an invalid literal too...)
7480
7481 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
7482
7483         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
7484         from Raphael Neider,
7485         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
7486         for 8-bit literals. This fixes some literal operands which are sign
7487         extended to 16-bits ints when instruction needs only 8-bits.
7488
7489 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
7490
7491         * device/lib/logf.c: added mcs51 assembly version
7492         * device/lib/expf.c: added mcs51 assembly version
7493         * device/lib/_logexpf.c: new shared asm code for expf and logf
7494         * device/include/math.h: add defines for assembly math library
7495         * device/lib/Makefile.in: build new _logexpf.c
7496         * device/lib/libfloat.lib: use new _logexpf.c
7497
7498 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7499
7500         * src/pic/device.c
7501         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
7502           device types which have less than 0x7f registers.
7503
7504 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7505
7506         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
7507
7508 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7509
7510         * device/lib/printf_fast.c: only build on supported arch.
7511         * device/lib/printf_tiny.c: only build on supported arch.
7512         * device/lib/printf_fast_f.c: only build if asm float lib
7513         * device/lib/_fsget1arg.c: only build if asm float lib
7514         * device/lib/_fsget2args.c: only build if asm float lib
7515         * device/lib/_fsnormalize.c: only build if asm float lib
7516         * device/lib/_fsreturnval.c: only build if asm float lib
7517         * device/lib/_fsrshift.c: only build if asm float lib
7518         * device/lib/_fsswapargs.c: only build if asm float lib
7519         * device/include/stdio.h: don't provide print_fast,
7520           print_fast_f, print_tiny prototypes if --xstack used
7521
7522 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
7523
7524         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
7525         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
7526           to the SOURCES
7527
7528 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7529
7530         * device/lib/printf_fast_f.c: same as printf_fast, but
7531           with floating point enabled
7532         * device/lib/printf_fast.c: minor tweaks
7533         * device/include/stdio.h: add printf_fast_f
7534
7535 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7536
7537         * src/SDCCmain.c: make --float-reent default for mcs51
7538         * device/lib/_fsadd.c: added mcs51 assembly version
7539         * device/lib/_fssub.c: added mcs51 assembly version
7540         * device/lib/_fsmul.c: added mcs51 assembly version
7541         * device/lib/_fsdiv.c: added mcs51 assembly version
7542         * device/lib/_fseq.c: added mcs51 assembly version
7543         * device/lib/_fsneq.c: added mcs51 assembly version
7544         * device/lib/_fsgt.c: added mcs51 assembly version
7545         * device/lib/_fslt.c: added mcs51 assembly version
7546         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
7547         * device/lib/Makefile.in: add _fscmp to build
7548         * device/lib/libfloat.lib: add _fscmp to build
7549
7550 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7551
7552         * device/lib/_fs2slong.c: added mcs51 assembly version
7553         * device/lib/_fs2sint.c: added mcs51 assembly version
7554         * device/lib/_fs2schar.c: added mcs51 assembly version
7555         * device/lib/_fs2ulong.c: added mcs51 assembly version
7556         * device/lib/_fs2uint.c: added mcs51 assembly version
7557         * device/lib/_fs2uchar.c: added mcs51 assembly version
7558         * device/lib/_slong2fs.c: added mcs51 assembly version
7559         * device/lib/_sint2fs.c: added mcs51 assembly version
7560         * device/lib/_schar2fs.c: added mcs51 assembly version
7561         * device/lib/_ulong2fs.c: added mcs51 assembly version
7562         * device/lib/_uint2fs.c: added mcs51 assembly version
7563         * device/lib/_uchar2fs.c: added mcs51 assembly version
7564         * device/include/float.h: added #define to select asm vs c
7565
7566 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
7567
7568         * device/lib/printf_fast.c: improvements to float output
7569         * device/include/float.h: add defines for assembly float library
7570         * device/lib/_fsget1arg.c: receive 1 float arg
7571         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
7572         * device/lib/_fsnormalize.c: normalize a float
7573         * device/lib/_fsreturnval.c: return float, various helper routines
7574         * device/lib/_fsrshift.c: right shift a float's mantissa
7575         * device/lib/_fsswapargs.c: swap 2 floats
7576         * device/lib/Makefile.in: build these 6 new files for mcs51
7577         * device/lib/libfloat.lib: add these 6 files to the library
7578
7579 2004-12-26 Borut Razem <borut.razem AT siol.net>
7580
7581         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
7582           built by gcc 3.4.2
7583
7584 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
7585
7586         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
7587           and fully reentrant and register bank neutral.
7588         * device/lib/printf_fast.c: added float (not enabled by default),
7589           added compact/slower integer (also not enabled by default),
7590           improved size/speed of fast integer code, other minor changes
7591         * device/include/stdio.h, device/lib/Makefile.in,
7592           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
7593
7594 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
7595
7596         * src/pic16/pcode.c: declaring variables other than at the start of a
7597           block is not supported in C by VC6.
7598
7599 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
7600
7601         * applied a previous patch from Raphael Neider that wasn't included
7602         in the previous commits, which fixes infinite loops within jumptable
7603         improvements,
7604         * made some fixes that previous patches introduced
7605
7606 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
7607
7608         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
7609         that fixes an issue with AOP_PCODE asmop's offset,
7610         * (pic16_popCopyReg): update instance field too,
7611         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
7612         function of pic port,
7613         * (genCmp, genAnd, genAssign),
7614         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
7615
7616 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
7617
7618         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
7619         variables initial values to idata section,
7620         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
7621         variables in some functions. This utilizes parmBytes field of iCode
7622         structure to hold the offset of the variable in stack. (might be
7623         able to use the stack field too?)
7624         * applied patch from Raphael Neider # ### , # ###
7625         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
7626         variable initial values in idata section,
7627         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
7628         for static variables with initial value
7629         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
7630         applied fix in while loop from Raphael Neider.
7631
7632 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
7633
7634         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
7635         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
7636         * src/ds390/ralloc.c (serialRegAssign): spill bits
7637         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
7638         * support/Util/SDCCerr.c,
7639         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
7640         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
7641         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
7642
7643 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
7644
7645         * device/include/sdcc-lib.h: inserted LGPL, added includes
7646           asm/ds390/features.h and asm/mcs51/features.h
7647         * device/include/asm/default/features.h,
7648         * device/include/asm/gbz80/features.h,
7649         * device/include/asm/z80/features.h: added empty _AUTOMEM
7650           and _STATMEM
7651         * device/include/asm/ds390/features.h,
7652         * device/include/asm/mcs51/features.h: added files with defines for
7653           _AUTOMEM and _STATMEM indicating automatic and static storage class
7654         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
7655         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
7656         * src/SDCCicode.c (geniCodeCast),
7657         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
7658         * src/SDCCloop.c (loopInduction): removed unused variable lr
7659         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
7660           to convertToFcall to include char modulo (RFE 1065037), added check
7661           if left operand is unsigned and use abs of literal value
7662         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
7663           as it doesn't work after conversion from peephole.def to peephole.rul
7664         * src/mcs51/gen.c (toBoolean): added check for size,
7665           (genModOneByte): optimized code for signed char modulo a literal
7666           power of 2 (thanks to Hubert Sack),
7667           (genRRC): removed unnecessary "clr c",
7668           (genRLC): replaced "add a,acc" with cheaper "rlc a"
7669         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
7670           jump optimization,
7671           swapped rules 256.c and 256.d,
7672           extended 256.d by using new multiple checks (thanks Erik),
7673           added rules 256.e and 256.f,
7674           updated rule 261.a and 261.b to new generated code
7675         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
7676
7677 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7678
7679         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
7680           induction related bugs, including first part of bug #1074377
7681
7682 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
7683
7684         * applied patch from bug-report #1076292,
7685         * applied patches for genAnd and Goto-optimizations for Raphael
7686         Neider,
7687         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7688         dump a less iCode information,
7689         * src/pic16/device.h (pic16_options_t): added field debgen,
7690         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7691         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7692         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7693         puclic,
7694         * (various functions): added macros FENTRY and FENTRY2 to functions,
7695         to emit function prologue,
7696         * (various functions): fixed indentation,
7697         * (genNearPointerGet): fixed loading of FSR0,
7698         * (genPackBits): applied patch from Raphael Neider to fix updating
7699         of FSR0 and touching only the modified bits,
7700         * src/pic16/genarith.c (various functions): added macros FENTRY to
7701         emit function prologue in comments,
7702         * src/pic16/pcode.h: added functions debugf2, debugf3,
7703         * src/pic16/ralloc.c: partial fix for packForPush caused
7704         segmentation fault,
7705
7706 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7707
7708         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7709           <stsp AT users.sourceforge.net> with reversed byte order
7710         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7711
7712 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7713
7714         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7715           bug #1074377
7716         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7717         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7718
7719 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7720
7721         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7722
7723 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7724
7725         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7726           conditions,
7727           (setFromConditionArgs): friendly operand parser for peephole rules,
7728           (operandBaseName, operandsNotRelated): new peephole condition
7729           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7730           architecture specific register naming into account, handles n-way
7731           comparisons, and supports quoted literals
7732         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7733
7734 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7735
7736         * src/mcs51/peeph.def: fixed bug #1076940
7737
7738 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7739
7740         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7741
7742 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7743
7744         Adding support for replacing ljmps with sjmps in jumptables
7745         generated for switch statements. For now you need to set the
7746         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7747         Now 4 algorithms for mcs51 jumptable generation are used:
7748         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7749         addresses loaded pc-relative for up to 112 cases and stack-pushing
7750         target addresses loaded with offset from dptr for up to 256 cases.
7751
7752         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7753         * src/mcs51/main.c: adapted constants for switch table generation
7754         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7755
7756 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7757
7758         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7759         * support/regression/tests/bug1057979.c: added test for bug 1073386
7760
7761 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7762
7763         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7764         compilers
7765
7766 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7767
7768         * src/pic16/device.h,
7769         * src/pic16/genarith.c,
7770         * src/pic16/glue.c,
7771         * src/pic16/main.c,
7772         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7773
7774 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7775
7776         Large cummulative patch for pic16 port.
7777         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7778         to call when a stack overflow occurs,
7779         * (malloc.h): added CVS Id tag,
7780         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7781         variable,
7782         * added libc directory. The current version of LibC contains string
7783         functions, ctype functions and macros and some functions of the
7784         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7785         be extensively tested in the future. Standard disclaimer here.
7786         Library is not automatically build yet. But one can build it by
7787         invoking 'make' inside the libc directory.
7788         * added ADC library under libio. Preliminary version yet.
7789
7790         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7791         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7792         aopForRemat() now and not by pic16_aopOp(),
7793         * (pic16_popGetTempReg): removed warning messgae when allocating
7794         temporary registers, its a buggy feature and will be removed,
7795         * (pic16_popGet): set register instance field in AOP_CRY,
7796         * (pic16_outBitC): fixed for results in size greater than 1,
7797         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7798         * (pic16_storeForReturn): optimized return of 0,
7799         * (genCmp): experimental code for new genCmp which uses PIC18's
7800         special compare&skip instructions. Initial tests fail some times
7801         with variables grater than 1 byte in size, so new code is disabled,
7802         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7803         a single bit,
7804         * (genCast): began a fix to optimize the casting of a bit to another
7805         bit, now assigning a bitfield to another bitfield will fail, sorry,
7806         * src/pic16/main.c: disabled the use of lr-support feature,
7807         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7808         * added some function prototypes, added function _debugf prototype,
7809         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7810         bits with offset (case PO_GPR_BIT),
7811         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7812         command line,
7813         * (isBankInstruction): modified to return 0 for no banking instruction,
7814         and 1 for banking instruction,
7815         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7816         caused stop processing pCodes after a inline assembly block,
7817         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7818         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7819         registers when it shouldn't,
7820         * src/pic16/ralloc.c (allocReg): add preliminary support for
7821         supporting a limited set of temporary registers,
7822
7823 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7824
7825         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7826           genDataPointerSet): ensure assignments always copy in MSB to LSB
7827           order,
7828           (loadRegFromAop): recognize CLRH optimization,
7829           (genFunction): optimize RECEIVE iCodes in reentrant functions
7830
7831 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7832
7833         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7834           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7835           selected.
7836         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7837         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7838           contiguous with data
7839
7840 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7841
7842         * device/lib/_gptrget.c (_gptrget),
7843         * device/lib/_gptrgetc.c (_gptrgetc),
7844         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7845           instead of sjmp to ret
7846         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7847           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7848
7849 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7850
7851         * .version: bumped version to 2.4.7
7852         * device/lib/_gptrget.c (_gptrget): is now _naked
7853         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7854         * device/lib/_gptrput.c (_gptrput): is now _naked
7855         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7856           (createFunction): fixed xstack
7857         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7858         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7859           or bit either,
7860           (geniCodeCritical): store original interrupt state in an iTemp bit
7861           var unless stack-auto
7862         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7863         * src/SDCCmain.c (setIncludePath): added include/target to search path
7864         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7865         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7866           prototype,
7867           (processFuncArgs): put bit vars in bit area
7868         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7869           unsaveRBank): fixed xstack,
7870           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7871           (genFunction, genEndFunction): fixed xstack,
7872           (genAssign): optimization don't walk backwards through mem
7873         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7874         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7875         * support/regression/Makefile: also make library (for stack-auto) when
7876           making "all" and added "test-mcs51-xstack-auto"
7877         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7878         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7879         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7880         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7881         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7882           make-library by MAKE_LIBRARY
7883         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7884           regression tests for xstack
7885         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7886         * support/regression/tests/critical.c: test for critical on mcs51
7887
7888 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7889
7890         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7891           built version of sdcc instead of installed version
7892
7893 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7894
7895         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7896         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7897           vprintf.c now
7898         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7899         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7900           WARNING: remove device/lib/build/z80/printf.o by hand when
7901           updating from previous build!
7902         * device/lib/z80/printf.c: updated comment
7903         * support/regression/tests/bug1057979.c: test all ports now
7904         * support/regression/tests/bug1065458.c: file added
7905
7906 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7907
7908         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7909           *_start and *_end symbols for static functions
7910
7911 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7912
7913         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7914           and search crt0.o in all library paths,
7915           (setIncludePath): proper handling of --nostdinc,
7916           (setLibPath): proper handling of --nostdlib
7917         * support/regression/Makefile,
7918         * support/regression/ports/ds390/spec.mk,
7919         * support/regression/ports/gbz80/spec.mk,
7920         * support/regression/ports/hc08/spec.mk,
7921         * support/regression/ports/mcs51/spec.mk,
7922         * support/regression/ports/mcs51-large/spec.mk,
7923         * support/regression/ports/mcs51-stack-auto/spec.mk,
7924         * support/regression/ports/z80/spec.mk: use include and lib files from
7925           built version of sdcc instead of installed version
7926         * doc/sdccman.lyx: fixed typo in --nostdinc
7927
7928 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7929
7930         * src/pic/pcode.c,
7931         * src/pic/device.c,
7932         * src/pic/ralloc.c,
7933         * src/pic/gen.c : added support to generate code for struct bit fields.
7934
7935 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7936
7937         * as/xa51/xa_version.h,
7938         * device/include/errno.h,
7939         * device/include/regc515c.h,
7940         * device/lib/_itoa.c,
7941         * device/lib/_ltoa.c,
7942         * device/lib/ser_ir_cts_rts.c,
7943         * sim/ucsim/xa.src/glob.cc,
7944         * sim/ucsim/xa.src/inst_gen.cc,
7945         * sim/ucsim/xa.src/xa_bit.cc,
7946         * sim/ucsim/xa.src/xa_sfr.cc,
7947         * sim/ucsim/z80.src/inst_dd.cc,
7948         * sim/ucsim/z80.src/inst_fdcb.cc,
7949         * support/scripts/keil2sdcc.pl,
7950         * src/pic16/pic16.dsp,
7951         * src/pic16/pic16a.dsp: corrected cvs line endings
7952         * device/lib/printf_large.c: fixed bug 1057979
7953         * src/pic16/gen.c: fixed non-C standard code
7954         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7955         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7956         * support/regression/ports/mcs51/support.c: reload T1 asap
7957         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7958           pdata use and clear idata startup behaviour
7959         * support/regression/tests/bug1057979.c: added
7960
7961 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7962
7963         * device/examples/ds390/ow390/ad26.h,
7964         * device/examples/ds390/ow390/cnt1d.h,
7965         * device/examples/ds390/ow390/crcutil.c,
7966         * device/examples/ds390/ow390/ownet.h,
7967         * device/examples/ds390/ow390/owsesu.c,
7968         * device/examples/ds390/ow390/swt12.h,
7969         * device/examples/ds390/ow390/swtoper.c,
7970         * device/examples/ds390/ow390/temp10.h,
7971         * device/examples/ds390/ow390/thermodl.c,
7972         * device/examples/ds390/tinitalk/tinitalk.dsp,
7973         * device/examples/ds390/tinitalk/tinitalk.dsw,
7974         * device/examples/mcs51/clock/hw.h,
7975         * device/examples/mcs51/simple2/go.bat,
7976         * device/examples/serialcomm/windows/serial.h,
7977         * device/examples/xa51/dummy.c,
7978         * device/examples/xa51/hello.c,
7979         * device/include/80c51xa.h,
7980         * device/include/at89x051.h: corrected cvs line endings
7981
7982 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7983
7984         * src/pic16/main.c (options): added command line --gstack, to trace
7985         stack over/under flows,
7986         * added pragma 'wparam' to allow passing first byte of function
7987         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7988         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7989         call to __gstack_test function and sets up the symbol as extern,
7990         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7991         * popaop): added call to pic16_testStackOverflow,
7992         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7993         wparamList list,
7994         * (genCall, genPcall): now all parameters are passed via stack
7995         except in functions that are pass to wparam pragma in which WREG is
7996         used too,
7997         * (genPcall): REENTRANT flag is checked to see if variable prototype
7998         contains reentrant keyword, don't call a non-reentrant function, via
7999         a reentrant function pointer or vice versa, functions are never
8000         passed via WREG,
8001         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
8002         D.Winkler,
8003         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
8004         SIGSEGV when accessing a NULL register stucture,
8005         * (pic16_printGPointerType): modified to handle UPPER modifier for
8006         function initializers, changed prototype of function to simpler one,
8007         * (pic16_printIvalFuncPtr): check to see if function is already
8008         added in externs list,
8009         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
8010         optimized a move from W to SFR with a move to the same register
8011         later after a CALL,
8012         * device/lib/pic16/debug: NEW directory, contains debug features
8013         which are enabled when linking with libdebug.lib, currently command
8014         line option --gstack enables stack pointer tracing for over/under
8015         flow, corresponding sources are in debug/gstack
8016
8017 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
8018
8019         * doc/sdccman.lyx: updated SDCC version,
8020         * (PIC16 port): update list of command line options,
8021         * src/pic16/device.h (structure pic16_options_t): added field gstack
8022         to enable stack overflow tracing on push/pops,
8023         * src/pic16/device.c (statistics structure): added statistics
8024         structure,
8025         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
8026         pic16_dump_int_registers): increase statistics counters for each
8027         * variable which is encountered
8028         * (pic16_dump_usection): emit each .udata variable to its own udata
8029         section,
8030         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
8031         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
8032         parameters via stack, otherwise use old scheme,
8033         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
8034         assembler output file,
8035         * src/pic16/main.c: added command line options --gstack to enable
8036         push/pop tracing for stack overflow,
8037         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
8038         instructions): added size of each instruction,
8039         * (pic16_countInstruction): estimate size of instructions in
8040         the_pFile list, inline assembly blocks are not counted,
8041         * (pic16_FixRegisterBanking): trace previous register usage, when
8042         banksel optimizations is greater than 0, don't emit a redudant
8043         banksel directive,
8044
8045 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
8046
8047         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
8048         * src/pic16/ralloc.c : applied same fix for pic16.
8049         * src/pic/gen.c : tidied it up a little.
8050
8051 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8052
8053         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
8054         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
8055
8056 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8057
8058         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
8059
8060 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8061
8062         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
8063         non-reentrant function __modsint in the interrupt function (thus
8064         corrupting math operations during serial I/O)
8065         * device/lib/ser_ir.c: as above, changed buffersize
8066         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
8067         256.c,d for zeroing
8068         * doc/Makefile: added option -t for rsync
8069
8070 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8071
8072         * src/SDCCast.h (struct ast),
8073         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
8074
8075 2004-10-20 Borut Razem <borut.razem AT siol.net>
8076
8077         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
8078         package
8079
8080 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
8081
8082         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
8083         makefile targets,
8084         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
8085         support functions to replace long sequences of MOVFF's from access
8086         bank registers to stack and vice versa,
8087         * src/pic16/device.h: added new field opt_flags, where optimization
8088         flags can be set to enable certain features,
8089         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
8090         * pBlock, (genFunction, genEndFunction): surroung loop for
8091         saving/loading used registers in stack with PC_INFO pCodes,
8092         INF_LREGS. Code in between can then be optimized by pCode optimizer
8093         to support function calls,
8094         * (genDataPointerSet): fixed bug which loaded float fields in
8095         structures with corrupt data,
8096         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
8097         in a standard way debug info on stderr. Feature used for developing
8098         and debugging only,
8099         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
8100         obsolete chunks of code,
8101         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
8102         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
8103         * pic16/src/pcode.c (pic16_newpCodeInfo,
8104         * (pic16_newpCodeOpLocalRegs),
8105         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
8106         feature,
8107         * (pic16_pCodeConstString): printing of the initial value of a
8108         symbol as a comment is inhibited since parsing was already done by
8109         copyStr and output is corrupt,
8110         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
8111
8112 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8113
8114         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
8115
8116 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
8117
8118         * as/mcs51/lkarea.c: removed old K&R style,
8119           (lnksect): changed check on boundary error,
8120           (lnksect2): changed check on boundary error,
8121           (lnksect2): extend XSTK to end of page if size = 1
8122         * as/mcs51/lkmain.c: removed old K&R style,
8123           (Areas51): create l_IRAM symbol
8124         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
8125         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
8126           model-mcs51-stack-auto, added model-mcs51-xstack-auto
8127         * device/lib/_mullong.c: added version to be compiled with xstack
8128         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
8129         * device/lib/mcs51/crtxclear.asm: clear pdata as well
8130         * device/lib/mcs51/crtxstack.asm: fixed comment
8131         * src/SDCCglue.c: maxInterrupts defaults to 0,
8132           (emitMaps): added pdata,
8133           (createInterruptVect): (re)moved default,
8134           (glue): added pdata,
8135           (glue): moved __start__xstack to XSTK with default size 1
8136         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
8137           and options.float_rent when options.stackAuto is set,
8138           (linkEdit): only write XDATA_NAME if provided on command line
8139         * src/SDCCmem.h,
8140         * src/SDCCmem.c: added pdata
8141         * src/port.h: added pdata_name to PORT
8142         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
8143           (saveRegisters, unsaveRegisters): removed usage of B,
8144           (genMinus): fixed accumulator clash,
8145           (genJumpTab): added comment, this needs another look
8146         * src/mcs51/gen.c: added check for "B in use" paranoia,
8147           added pushB() and popB()
8148         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
8149           chance
8150         * src/avr/main.c,
8151         * src/ds390/main.c,
8152         * src/hc08/main.c,
8153         * src/mcs51/main.c,
8154         * src/pic/main.c,
8155         * src/pic16/main.c,
8156         * src/xa51/main.c,
8157         * src/z80/main.c: (reset_regparms) made void parameter explicit and
8158           added PSEG (PAG,XDATA) or NULL to port specifier
8159         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
8160         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
8161           (_mcs51_genInitStartup): removed __start__xstack equ,
8162           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
8163         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
8164         * src/z80/gen.c (_rleAppend): fixed warnings
8165         * support/regression/tests/zeropad.c: added pdata test
8166         * .version: bumped to 2.4.6
8167
8168 2004-10-17 Borut Razem <borut.razem AT siol.net>
8169
8170         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
8171         as a part of nightly build
8172
8173 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
8174
8175         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
8176         WREG holds the first byte function parameters,
8177         * (aopForSym): take special case for symbols which are in FARSPACE
8178         but in CODESPACE too,
8179         * (assignResultValue): modified to take into account _G.useWreg,
8180         * (genCall): don't use wreg for parameter passing when function is
8181         declared as reentrant, too, added optimization INCF to stack
8182         pointer when stack parameter count is 1,
8183         * (genFunction, genEndFunction): refurnished and fixed to not using
8184         wreg for passing parameters when function has varargs or is
8185         reentrant, fixed bug with symbol name compare for generating
8186         functions in absolute address,
8187         * (pic16_storeForReturn): refurnished,
8188         * (genCmp): began writing a new version of the function, not ready
8189         yet, therefore it is disabled,
8190         * (genAssign): do not read code memory when assigning a function to
8191         a pointer function,
8192         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
8193         array of characters, not pointer,
8194         * (pic16initialComments): in debug mode emit an .ident directive for
8195         the assembler,
8196         * (_process_pragma): emit a new warning type (internal to pic16)
8197         when setting stack to default length, emit a similar warning when
8198         placing a function at absolute address and address is not word aligned
8199         * (_pic16_parseOptions): added 'return TRUE' statement,
8200         * (_pic16_linkEdit): if compiling a source, then add the source's
8201         file object, first in the list of objects to link,
8202
8203 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
8204
8205         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
8206         * src/pic/main.c : removed VC warning.
8207         * src/pic/gen.c : changed comment.
8208
8209 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
8210
8211         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
8212         reference to a deprecated symbol _GPTRREG was causing failure to
8213         link. Thanks G. M. Gallant for the info.
8214
8215 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
8216
8217         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
8218         comments for Bugs item #954788.
8219
8220 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
8221
8222         * src/pic16/device.c (pic16_dump_gsection,
8223         * pic16_groupRegistersInSection): handle symbols declared to be in
8224         access bank differently,
8225         * src/pic16/gen.c (struct _G): added field resDirect,
8226         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
8227         send values read from stack directly to result and don't allocate
8228         temporary values,
8229         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
8230         same registers,
8231         * (pic16_sameRegsOfs): NEW,
8232         * (freeAsmop): if _G.resDirect is set then do not mark registers as
8233         free because they were not allocated from temporary pool,
8234         * pic16_popRegFromString): workaround to fix a problem with
8235         allocating variables twice or never,
8236         * (genGenPointerGet): using PRODL instead of FSR0H,
8237         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
8238         instead of FSR0H,
8239         * (genAssign): take advantage of the _G.resDirect flag,
8240         * (genCast): around line 11844, use mov2f instead of directly
8241         MOVFF'ing between operands to account for literal values,
8242         * src/pic16/genutils.c: some new debug functions for gpsim have been
8243         added,
8244         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
8245         float with integer part only,
8246         * src/pic16/main.c (_process_pragma): handle pragma udata access to
8247         place variables in access bank
8248         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
8249         updated sources to reflect recent changes in gen.c
8250
8251 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
8252
8253         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
8254         sources that searched for headers in installation path, now the
8255         device/include/pic16 is used,
8256         * src/pic16/glue.c (pic16glue),
8257         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
8258         .line directives if not in debug mode, this suppresses assembler's
8259         warnings for ignored directives
8260
8261 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
8262
8263         * src/port.h: made reset_regparms prototype void parameter explicit.
8264         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
8265         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
8266         * doc/sdccman.lyx: documented warning disabling and how to use
8267           printf_large to make it print floats.
8268         * device/include/stdbool.h: NEW
8269         * device/lib/_atof.c,
8270         * device/lib/_divuint.c,
8271         * device/lib/_divulong.c,
8272         * device/lib/expf.c,
8273         * device/lib/printf_large.c,
8274         * device/lib/sincosf.c,
8275         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
8276         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
8277           a completely reentrant lib.
8278
8279 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
8280
8281         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
8282         * device/include/pic16/stdio.h: fixed bug with colon
8283
8284 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
8285
8286         * device/include/pic16/stdio.h,
8287         * device/include/pic16/stdlib.h,
8288         * device/include/pic16/math.h: NEW
8289         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
8290         declared as _naked to reduce overhead
8291         * device/lib/Makefile.in (target port-specific-objects-pic16):
8292         changed * to *.* so to ignore the CVS directory,
8293         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
8294         stacked variables back in stack,
8295         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
8296         corruption
8297
8298 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
8299
8300         * .version: bumped version number to 2.4.5
8301         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
8302         * support/Util/SDCCerr.c (messages structure): added entry for
8303         W_POSSBUG2
8304
8305         Large cumulative patch for pic16 port and libraries.
8306         * device/include/pic16/sdcc-lib.h,
8307         * device/include/pic16/stdarg.h,
8308         * device/include/asm/pic16/features.h,
8309         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
8310         * device/include/pic16/float.h: changes reentrant keyword with
8311         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
8312         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
8313         updated target build-libraries to include objects from gptr,
8314         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
8315         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
8316         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
8317         all function headings,
8318         * src/SDCCmain.c: added global parameter userIncDirsSet,
8319         * (parseCmdLine): when option -I is encountered add directory to
8320         userIncDirsSet too,
8321         * src/version.awk: added space between control and long,
8322         * src/pic16/NOTES: added some notes for the port,
8323         * src/pic16/gen.c: added prototype for mov2fp function,
8324         * (fReturnpic16[]): properly named return value registers,
8325         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
8326         * (aopForSym): added code to handle symbols with onStack flag set,
8327         symbols onStack are allocated PTRSIZE bytes,
8328         * (aopFreeAsmop): handles special case where asmops are stack objects,
8329         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
8330         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
8331         added argument lock to trace flaws in allocating temporary registers
8332         when developing port,
8333         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
8334         * (pic16_popRegFromString): reenabled allocating a direct register
8335         from string,
8336         * (assignResultValue): various beautifications,
8337         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
8338         referenced function argument,
8339         * (genIpush): reenabled to allow stacked arguments, handles only
8340         ic->parmPush iCodes,
8341         * (genCall, genPcall): major changes to allow for variable argument
8342         functions, fixed a bug with falsely restoring stack pointer after
8343         returning from call,
8344         * (genFunction): pending code for critical function,
8345         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
8346         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
8347         * (genNearPointerGet): fixed bug with indirect reading, was always
8348         reading from INDF0
8349         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
8350         pointers,
8351         * (genAddrOf): rewrote code to take address of a stacked function parameter
8352         * (genCast): fixed casting to generic pointer type,
8353         * src/pic16/gen.h: added AOP_STA,
8354         * (struct asmop): added field stk,
8355         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
8356         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
8357         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
8358         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
8359         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
8360         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
8361         generic pointers,
8362         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
8363         and library paths,
8364         * (pic16_port structure): generic pointer size is set to 3,
8365         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
8366         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
8367         compiler warning,
8368         * src/pic16/ralloc.c (allocReg): prevent allocating register when
8369         operand is an iTemp,
8370
8371 2004-09-24 Martin Helmling <mh AT octo-soft.de>
8372
8373         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
8374         * debugger/mcs51/simi.c: addapt new syntax of s51
8375
8376 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
8377
8378         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
8379         * src/pic16/pcode.c: commented out some calls to free() in order to
8380         fix bug #989576,
8381
8382 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8383
8384         * src/SDCCicode.h,
8385         * src/SDCCicode.c (isiCodeInFunctionCall),
8386         * src/avr/ralloc.c (selectSpil),
8387         * src/pic/ralloc.c (selectSpil),
8388         * src/pic16/ralloc.c (selectSpil),
8389         * src/ds390/ralloc.c (selectSpil),
8390         * src/hc08/ralloc.c (selectSpil),
8391         * src/xa51/ralloc.c (selectSpil),
8392         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
8393         stack in the middle of a function call sequence (fixes bug #1020268)
8394         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
8395         costs associated with the minimum switch case.
8396
8397 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8398
8399         * src/SDCC.lex: fixed bug #1030549
8400
8401 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8402
8403         * src/SDCCcse.h (struct cseDef),
8404         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
8405         over a function call if the CSE is derived from a symbol whose
8406         address has been taken (fixes bug #1029883)
8407         * support/regression/tests/bug-1029883: a new regression test for
8408         this bug
8409
8410 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8411
8412         * src/hc08/gen.c (emitinline): fixed bug #1029778
8413         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
8414         to a cast object is no longer a syntax error ("fixes" bug #1030006,
8415         and starts toward RFE #905167)
8416
8417 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
8418
8419         * src/pic16/gen.c (mov2f): New function to move an operand to
8420         another without considering if it is a literal or a register,
8421         * (pic16_sameRegs): don't check if they are both AOP_REG,
8422         * (AccRsh): removed andmask=0 lines,
8423         * (genLeftShift): duplicated to be improved in future versions,
8424         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
8425         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
8426         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
8427         * (pic16initMnemonics): added initialization for POC_INFSNZW,
8428         * (insertBankSwitch): fixed inserting banksel directives algorithm
8429         for instructions that follow a skip instruction, this fixes a report
8430         for broken subtraction code generation,
8431         * src/pic16/ralloc.c (deassignLRs): do not free register if current
8432         iCode is a left op, just in case result and right share the same
8433         registers
8434
8435 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8436
8437         * src/hc08/main.c,
8438         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
8439         preservation of HX
8440         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
8441         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
8442         on 2004-09-12; it was buggy
8443
8444 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
8445
8446         * src/SDCCsymt.h: removed RESULT_CHECK
8447         * src/SDCCast.c,
8448         * src/SDCCglue.c,
8449         * src/SDCCval.c,
8450         * src/pic/glue.c,
8451         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
8452
8453 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
8454
8455         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
8456         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
8457         configuration values no more rejected by compiler, they are assigned
8458         to configuration registers with a warning message instead,
8459         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
8460         the for-loop so last conf register is emitted too,
8461         * (_pic16_initPaths): link library libsdcc.lib by default,
8462         * (_hasNativeMulFor): modified test for multiplication according to
8463         Raphael Neider's remarks. Integer multiplication is also done with
8464         support functions,
8465         * device/include/pic16/pic18fregs.h: corrected type error in while
8466         testing and including 18f6720 header file
8467
8468 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
8469
8470         * src/pic16/device.h (pic16_options): removed field use_crt,
8471         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
8472         until an optimization to handle single bits is added,
8473         * (pic16_loadFSR0): moved before genUnpackBits,
8474         * (genAnd): some white lines removed,
8475         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
8476         leave_reset flags in pic16_options when using crt modules,
8477
8478 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
8479
8480         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
8481           for bugs 898889 & 979599. Also used some safer print instructions.
8482
8483 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
8484
8485         * src/pic16/device.h (pic16_options_t): added field use_crt,
8486         crt_name, no_crt,
8487         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
8488         catch a probable future bug,
8489         * src/pic16/gen.c: aopIdx function commented out,
8490         * (genAssign): commented out old code which used aopIdx,
8491         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
8492         code, added if conditionals to take into account the --use-crt
8493         command line options,
8494         * src/pic16/main.c (pic16_optionsTable): added new command line
8495         options, --use-crt= and --no-crt,
8496         * (_pic16_linkEdit): now the proper crt object is added in the
8497         linker command line except than when --no-crt is specified,
8498         * src/pic16/pcode.c,
8499         * src/pic16/pcode.h: added some structures and functions for a new
8500         optimization scheme to compansate for instruction overhead between
8501         same iCodes, this scheme is currently under development and is not
8502         working in any way,
8503         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
8504         to && operator,
8505         * device/lib/pic16/startup/crt0i.c,
8506         * device/lib/pic16/startup/crt0iz.c: added global char variable
8507         __uflags to force the generation of an idata section
8508
8509 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
8510
8511         * doc/Makefile,
8512         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
8513         * doc/sdccman.lyx: updated sdcc version to 2.4.4
8514
8515 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8516
8517         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
8518         Frieder) and clarified the default code optimization mode
8519
8520 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8521
8522         * src/SDCC.lex (doPragma, process_pragma),
8523         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
8524         "opt_code_size", and "opt_code_balanced"
8525         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
8526         regrouped options by category, added support for category headers
8527         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
8528         and "--opt-code-size"
8529         * doc/sdccman.lyx: documented these new options and pragmas
8530         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
8531         preference into account
8532
8533 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8534
8535         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
8536           geniCodePreDec): Fixed bug 904237 by generating a warning
8537         * src/SDCCerr.h,
8538         * src/SDCCerr.c: added warning W_SIZEOF_VOID
8539
8540 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
8541
8542         * src/pic/device.c : When no max ram set validate full memory range.
8543         * src/pic/pcode.c,
8544         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
8545
8546 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8547
8548         * device/lib/_gptrget.c,
8549         * device/lib/_gptrput.c: updated comment
8550         * device/lib/calloc.c,
8551         * device/lib/free.c,
8552         * device/lib/malloc.c,
8553         * device/lib/realloc.c: added LGPL, made them reentrant-safe
8554         * src/SDCCcse.c (cseBBlock),
8555         * src/SDCCicode.c (printOperand, geniCodeArray),
8556         * src/SDCCicode.h (struct operand): fixed bug 868103
8557         * support/regression/tests/bug-868103.c: added
8558         * src/SDCCast.c (searchLitOp),
8559         * src/SDCCcse.h (struct cseDef),
8560         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
8561         * src/SDCCicode.h (struct operand),
8562         * src/SDCCsymt.h (struct sym_link),
8563         * src/avr/gen.c (hasInc),
8564         * src/ds390/gen.c (hasInc),
8565         * src/hc08/gen.c (genPlusIncr, hasInc),
8566         * src/mcs51/gen.c (hasInc),
8567         * src/pic16/glue.c (pic16_printIvalChar),
8568         * src/pic16/ralloc.c (regWithIdx),
8569         * src/xa51/gen.c (hasInc) : removed warnings
8570         * src/SDCCast.c (createBlock): added comment ???
8571         * src/hc08/ralloc.c: updated comments
8572
8573 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8574
8575         * doc/sdccman.lyx: updated section on switch statements, added
8576         section about semaphore locking
8577         * doc/Makefile: added option -info for latex2html
8578         * device/lib/_gptrget.c,
8579         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
8580
8581 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8582
8583         * src/pic/device.h,
8584         * src/pic/device.c,
8585         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
8586          maxram is less than 0x100.
8587
8588 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8589
8590         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
8591
8592 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8593
8594         * src/port.h,
8595         * src/mcs51/main.c,
8596         * src/ds390/main.c,
8597         * src/z80/main.c,
8598         * src/hc08/main.c,
8599         * src/pic/main.c,
8600         * src/pic16/main.c,
8601         * src/avr/main.c,
8602         * src/xa51/main.c
8603         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
8604         a jump table is the best form for a switch statement, including
8605         automatic insertion of missing cases to make the case range
8606         continuous. Developed in collaboration with Frieder Ferlemann.
8607
8608 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8609
8610         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
8611         accumulator result if it needs sign extension
8612
8613 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8614
8615         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
8616
8617 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8618
8619         * device/lib/gbz80/printf.c,
8620         * device/lib/z80/printf.c: removed define for NULL
8621
8622 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8623
8624         * as/xa51/xa_link.c,
8625         * device/examples/ds390/ow390/ad26.c,
8626         * device/examples/ds390/ow390/cnt1d.c,
8627         * device/examples/ds390/ow390/counter.c,
8628         * device/examples/ds390/ow390/ds2480.h,
8629         * device/examples/ds390/ow390/ds2480ut.c,
8630         * device/examples/ds390/ow390/findtype.c,
8631         * device/examples/ds390/ow390/gethumd.c,
8632         * device/examples/ds390/ow390/owllu.c,
8633         * device/examples/ds390/ow390/ownetu.c,
8634         * device/examples/ds390/ow390/swt12.c,
8635         * device/examples/ds390/ow390/swtloop.c,
8636         * device/examples/ds390/ow390/temp.c,
8637         * device/examples/ds390/ow390/temp10.c,
8638         * device/examples/ds390/ow390/thermo21.c,
8639         * device/examples/ds390/ow390/tinilnk.c,
8640         * device/examples/ds390/ow390/tstfind.c,
8641         * device/examples/serialcomm/windows/serial.cpp,
8642         * device/examples/serialcomm/windows/test_serialcomm.cpp,
8643         * device/include/reg51.h: fixed line endings for cvs
8644
8645 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8646
8647         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
8648         packRegsForAccUse, packRegisters): new accumulator register
8649         packing algorithm
8650         * support/regression/ports/hc08/support.c (_putchar): suppress
8651         warning of unused variable
8652         * src/SDCCicode.c: added SWAP entry to codeTable
8653
8654 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
8655
8656         * device/lib/sprintf.c: forgot to add this file before previous commit
8657
8658 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
8659
8660         * src/pic16/gen.c (genPackBits): added operand right in function
8661         parameters, load result directly if p_type is POINTER (that is
8662         called by genNearPointerSet)
8663         * (genUnPackBits): added operand left in function parameters,
8664         * (genNearPointerGet, genNearPointerSet): prevent the loading of
8665         FSR0 if accessing bitfields,
8666
8667 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
8668
8669         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
8670           _print_format; updated printf, sprintf, vsprintf
8671         * device/include/asm/default/features.h: corrected comment/define
8672         * device/lib/Makefile.in: added sprintf.c
8673         * device/lib/libsdcc.lib: added sprintf module
8674         * device/lib/printf_large.c,
8675         * device/lib/vprintf.c,
8676         * device/lib/sprintf.c: totally refactored printf_large and vprintf
8677           into these 3 files
8678         * support/regression/Makefile: changed ALL_PORTS into a usefull default
8679         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
8680         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
8681           hc08 test
8682         * support/regression/tests/zeropad.c: define idata as data for hc08
8683
8684 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8685
8686         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8687         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8688         labels are referenced at least once (even if a reference is not found)
8689         * src/hc08/gen.c (emitcode): set isComment flag for comments
8690         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8691         loads), rules 6a..6b (optimize jumps to return)
8692
8693 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8694
8695         * device/lib/acosf.c (acosf),
8696         * device/lib/asinf.c (asinf),
8697         * device/lib/atanf.c (atanf),
8698         * device/lib/ceilf.c (ceilf),
8699         * device/lib/cosf.c (cosf),
8700         * device/lib/coshf.c (coshf),
8701         * device/lib/cotf.c (cotf),
8702         * device/lib/fabsf.c (fabsf),
8703         * device/lib/floorf.c (floorf),
8704         * device/lib/log10f.c (log10f),
8705         * device/lib/logf.c (logf),
8706         * device/lib/sinf.c (sinf),
8707         * device/lib/sinhf.c (sinhf),
8708         * device/lib/sqrtf.c (sqrtf),
8709         * device/lib/tanf.c (tanf),
8710         * device/lib/tanhf.c (tanhf),
8711         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8712         replaced all instances of "reentrant" in the library functions
8713         defined in math.h with this macro.
8714         * support/regression/tests/float_trans.c: reenabled test for hc08
8715
8716 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8717
8718         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8719         erroneously deleted
8720
8721 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8722
8723         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8724         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8725         multi-byte volatile operands are used
8726         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8727         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8728         initialization to area GSINIT0 so that it would always precede
8729         any static initializers in GSINIT
8730         * support/regression/tests/zeropad.c: fixed idata define for hc08
8731         * support/regression/tests/bug-927659.c,
8732         * support/regression/tests/float_trans.c: disabled tests for hc08
8733         pending missing library routines
8734         * .version: increased version number to 2.4.4 - hc08 port now passes
8735         regression tests
8736
8737
8738 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8739
8740         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8741         * Makefile.common.in,
8742         * as/Makefile,
8743         * as/hc08/Makefile.in,
8744         * as/mcs51/Makefile.in,
8745         * as/z80/Makefile.in,
8746         * debugger/mcs51/Makefile.in,
8747         * device/include/Makefile.in,
8748         * device/lib/Makefile.in,
8749         * doc/Makefile,
8750         * link/Makefile,
8751         * link/z80/Makefile.in,
8752         * packihx/Makefile.in,
8753         * sim/ucsim/main_in.mk,
8754         * sim/ucsim/avr.src/Makefile.in,
8755         * sim/ucsim/doc/Makefile.in,
8756         * sim/ucsim/gui.src/serio.src/Makefile.in,
8757         * sim/ucsim/hc08.src/Makefile.in,
8758         * sim/ucsim/s51.src/Makefile.in,
8759         * sim/ucsim/xa.src/Makefile.in,
8760         * sim/ucsim/z80.src/Makefile.in,
8761         * src/Makefile.in,
8762         * support/cpp2/Makefile.in,
8763         * support/librarian/Makefile,
8764         * support/makebin/Makefile: added DESTDIR to the install path proposed
8765         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8766         * doc/sdccman.lyx: added DESTDIR documentation
8767
8768 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8769
8770         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8771         instruction for interrupt handlers, use fast returns when returning
8772         from high priority interrupts
8773
8774 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8775
8776         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8777         code generation
8778         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8779         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8780         bugs, ported much of Bernhard's code from mcs51
8781         * src/mcs51/gen.c (genSend),
8782         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8783         than one when calling a reentrant function
8784         * device/lib/_mullong.c: defined an alternate struct layout for big
8785         endian ports (hc08)
8786
8787 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8788
8789         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8790         test
8791
8792 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8793
8794         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8795         are sane and complete before asking the port its prefered parameter
8796         passing method (fixes bug #1017633)
8797         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8798         and _ret3
8799
8800 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8801
8802         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8803         problem in bitfields >= 8 bits.
8804
8805 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8806
8807         * src/SDCCsymt.c: undid changes that were not meant to be committed
8808
8809 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8810
8811         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8812
8813 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8814
8815         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8816           copied and wrong bit got inverted
8817
8818 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8819
8820         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8821         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8822         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8823         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8824         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8825         assignments to bitfields at known addresses
8826         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8827         reads from bitfields at known addresses
8828         * src/hc08/ralloc.c (packRegisters),
8829         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8830         genhc08Code): optimize pointer get values used as conditionals
8831         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8832         and branch
8833
8834 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8835
8836         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8837         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8838         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8839         as conditionals
8840
8841 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8842
8843         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8844
8845 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8846
8847         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8848         related problems
8849
8850 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8851
8852         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8853
8854 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8855
8856         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8857         mcs51 port
8858
8859 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8860
8861         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8862
8863 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8864
8865         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8866         cases use more compact code.
8867
8868 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8869
8870         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8871
8872 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8873
8874         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8875
8876 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8877
8878         * src/SDCCsymt.h,
8879         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8880         parameter of changePointer() from symbol* to sym_link*
8881         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8882         * src/SDCCsymt.c (compareType): void* type is castable to other
8883         pointers, but not necesarily an exact match.
8884         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8885         is no longer blindly treated as an exact match.
8886         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8887
8888 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8889
8890         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8891
8892 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8893
8894         * src/pic/gen.c,
8895         * src/pic/pcode.c,
8896         * src/pic/ralloc.h,
8897         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8898
8899 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8900
8901         * src/pic/device.c,
8902         * src/pic/device.h,
8903         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8904
8905 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8906
8907         * src/mcs51/gen.c (emitcode): fixed bug #992819
8908
8909 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8910
8911         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8912           there's no need to make it worse
8913
8914 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8915
8916         * src/mcs51/ralloc.c (deassignLR),
8917         * src/ds390/ralloc.c (deassignLR),
8918         * src/hc08/ralloc.c (deassignLR),
8919         * src/z80/ralloc.c (deassignLR),
8920         * src/pic/ralloc.c (deassignLR),
8921         * src/pic16/ralloc.c (deassignLR),
8922         * src/avr/ralloc.c (deassignLR),
8923         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8924         rlivePoint): fixed another part of bug #971834
8925
8926 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8927
8928         * src/z80/main.c: enabled "critical" keyword
8929         * src/z80/mappings.i,
8930         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8931         functions (fixes bug #979646)
8932         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8933
8934 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8935
8936         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8937           such as c:\mydir.
8938
8939 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8940
8941         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8942           doesn't disable too much optimizations
8943
8944 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8945
8946         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8947
8948 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8949
8950         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8951
8952 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8953
8954         * src/pic/gen.c tidied up tabs
8955         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8956         * src/pic/main.c tidied up tabs
8957         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8958         * src/pic/pcoderegs.c tidied up tabs
8959         * src/pic/ralloc.c tidied up tabs
8960
8961 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8962
8963         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8964         to S_FIXED for pic16 port and when symbol is not in level 0,
8965         allocate for S_REGISTER storage class and pic16 port, too,
8966         * src/pic16/device.h: prototype for checkSym,
8967         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8968         * (pic16_assignConfigWordValue): test the value and the mask to
8969         validate that the value is suitable for the configuration word,
8970         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8971         collect extern declared symbols, don't emit symbol twice, check
8972         first if symbol is in publics set first,
8973         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8974         * added command line '--fstack' which enables an experimental
8975         feature for stack access, too buggy to be used yet...
8976         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8977         * (pic16_allocDirReg): when register has storage class S_REGISTER
8978         allocate in pic16_dynAccessRegs,
8979         * device/include/pic16/pic18f????.h: modified configuration word
8980         naming convention, words started as CONFIG0H but should be CONFIG1H
8981
8982 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8983
8984         * device/include/mcs51reg.h: fixed bug 970993
8985
8986 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8987
8988         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8989         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8990         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8991         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8992         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8993         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8994           error/warning numbers,
8995           added function setWarningDisabled()
8996         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8997         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8998           _memcmp.c _memmove.c calloc.c realloc.c free.c
8999         * support/regression/tests/malloc.c: added tests for new functionality
9000         * support/regression/tests/zeropad.c: added tests for truncated initializers
9001           and initialized char arrays starting with '\x0'
9002         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
9003
9004 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
9005
9006         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
9007
9008 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9009
9010         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
9011         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
9012         peephole 177.e. Thanks to anonymous
9013
9014 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
9015
9016         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
9017         function isn't used in the source but referenced as a
9018         variable initializer then declare it as extern in .asm file
9019
9020 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
9021
9022         * .version: increased version number to 2.4.3
9023
9024         Adding version extension according to ChangeLog CVS revision
9025         * src/Makefile.in (target all): added dependency 'version.h'
9026         * (rule version.h): added rule to create version.h from ChangeLog,
9027         * (rule dep): added dependency version.h,
9028         * src/version.awk: AWK script to create version.h
9029         * src/SDCCdwarf2.c (dwWriteModule),
9030         * src/SDCCglue.c (initialComments),
9031         * src/SDCCmain.c (printVersionInfo): modified to write after
9032         version string the version extension number,
9033         * src/SDCCutil.c: included "version.h"
9034         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
9035         number,
9036         * src/SDCCutil.h: added prototype for getBuildNumber
9037
9038         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
9039         includeDirsSet, too,
9040         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
9041         const char [] is found in function prototype...
9042
9043         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
9044         moving to WREG with source is already in WREG,
9045         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
9046         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
9047         * (aopForSym): stack'ed symbols are partially supported, added
9048         if-clause to support symbols in FARSPACE,
9049         * (sameRegs): added test for AOP_ACC to see if registers are same,
9050         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
9051         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
9052         * (pic16_popRegFromString): will not allocate a new register if it
9053         doesn't find one by name, bug may have introduced...
9054         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
9055         * (genIpush): revived to use pic16 port's stack,
9056         * (genAddrOf): added incomplete case for stack'ed operand,
9057         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
9058         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
9059         can handle multibyte operands,
9060         * src/pic16/glue.c (pic16_printIval*): some debug info added,
9061         * (pic16initialComments): added message for MPLAB compatibility
9062         mode enabled,
9063         * src/pic16/main.h: prototype for pic16_mplab_comp,
9064         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
9065         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
9066         * (_pic16_linkEdit): NEW, handles link stage, transferred here
9067         because of increased complexity of procedure,
9068         * (_process_pragma): stack pragma changed to format 'stack pos len',
9069         emit symbol '_stack_end' to conform with gplink,
9070         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
9071         to search for register,
9072         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
9073         PO_GPR_REGISTER,
9074         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
9075         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
9076         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9077         case for PO_GPR_REGISTER,
9078         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
9079         dies, the new era is ahead !...
9080         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
9081         pic16_dynInternalRegs,
9082         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
9083         * (pic16_allocDirReg): minor optimizations and bug fixes,
9084         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
9085
9086         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
9087         load stack and frame pointer with address of 'stack_end' symbol
9088
9089 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
9090
9091         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
9092         without source code but only variable initializers
9093
9094 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
9095
9096         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
9097         external are not declared as extern to reduce overhead while linking
9098
9099 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
9100
9101         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
9102
9103 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
9104
9105         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
9106           Yee Keat for the patch
9107         * src/SDCCast.c (decorateType): fixed bug #979599
9108         * src/ds390/gen.h: removed local fReturnSizeDS390
9109         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
9110         * src/ds390/gen.c (genAnd, genOr, genXor),
9111         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
9112
9113 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
9114
9115         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
9116         add relFilesSet to $3, manipulate $2 to handle linking of object
9117         files without source files in command line,
9118         * device/include/pic16 (all headers): added ID location macros,
9119         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
9120         entries for ID location bytes,
9121         * (pic16_assignIdByteValue): NEW,
9122         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
9123         added field dumpcalltree to pic16_options_t,
9124         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
9125         is used instead of pic16_Gstack_base_addr, check if (ifx) before
9126         emitting rFalseIfx label after check_carry label,
9127         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
9128         pic16_emitDIRegs), NEW
9129         * (pic16glue): dump .calltree file when option --calltree found,
9130         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
9131         * (_pic16_genAssemblerPreamble): emit ID locations after
9132         configuration registers,
9133         * (pic16_linkCmd): modifications of the link command,
9134         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
9135         * (pic16_pCodeInitRegisters): don't init stack registers,
9136         * (pic16_findPrevInstruction): fixed bug,
9137         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
9138         bug with immediate registers,
9139         * (buildCallTree): traces stack push and pop,
9140         * (pct2): dump also stack usage for each function,
9141         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
9142         * (pic16_allocDirReg): various modifications,
9143         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
9144         fixed to 1,
9145
9146 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
9147
9148         * src/pic16/pcode.c: removed buggy double colon
9149
9150 2004-07-01 Borut Razem <borut.razem AT siol.net>
9151
9152         * support/scripts/sdcc.nsi: added include/pic16 to setup
9153
9154 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
9155
9156         * device/lib/Makefile.in: fixed bug in target objects-pic16,
9157         * device/lib/pic16/Makefile: prefixed with dash (-) command under
9158         target 'clean',
9159         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
9160         specific command line arguments. Also added sample lkr script
9161         for placing a variable at a specific memory bank.
9162         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
9163         at a specific memory bank,
9164         * (pic16_dump_isection): fixed bug which caused string literals to
9165         be omitted when dumping idata section,
9166         * (pic16_groupRegistersInSection): added code to handle registers
9167         in specific memory banks,
9168         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
9169         public, all references are renamed too,
9170         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
9171         AOP_DPTR2,
9172         * (pic16_storeForReturn): added case to handle when dest is WREG,
9173         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
9174         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
9175         pic16_rel_udata, check to see if that register is marked as being
9176         a member of a specific memory bank,
9177         * (pic16_printIvalCharPtr): added code to add string literals either
9178         to code or the idata sections,
9179         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
9180         also accept the 'udata' pragma,
9181         * src/pic16/main.h: new structure types sectName and sectSym
9182         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
9183         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
9184         * (pic16_findPrevInstruction): fixed, it returned nothing,
9185         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
9186         instruction combinations,
9187         * (pic16_FixRegisterBanking): heavily reorganised,
9188         * (pic16_AnalyzeBanking): if generating banksel directives is
9189         disabled, then don't call FixRegisterBanking at all,
9190         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
9191         completely removed,
9192         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
9193
9194 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
9195
9196         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
9197         Phuah Yee Keat <yk.phuah AT nestac.com>
9198
9199 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
9200
9201         * src/pic16/glue.c (pic16createInterruptVect): function now emits
9202         correctly the IVT even if it is relocated to some other location
9203
9204 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
9205
9206         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
9207         * device/include/pic16/pic18f2220.h: NEW,
9208         * device/lib/pic16/libdev/pic18f2220.c: NEW,
9209         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
9210         * src/pic16/device.c (struct Pics16): added info for 18f2220,
9211         * src/pic16/device.h (struct pic16_options): added ivt_loc and
9212         nodefaultlibs, ivt_loc is the location of the interrupt vector
9213         table, and nodefaultlibs signs that default libraries should not be
9214         linked in link stage,
9215         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
9216         according to --ivt-loc argument,
9217         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
9218         when pragma stack is found,
9219
9220 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9221
9222         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
9223         256 (range check), 257 (do while), 258.a-f (bit banging
9224         f.e. on 3-wire SPI bus)
9225
9226 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9227
9228         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
9229         variables used exclusively within a loop
9230
9231 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
9232
9233         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
9234
9235 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9236
9237         * src/SDCClrange.c (computeClash): fixed bug #971834
9238
9239 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9240
9241         * src/mcs51/gen.c (genCmp): fixed bug #975903
9242         * src/hc08/gen.c (operandsEqu),
9243         * src/ds390/gen.c (operandsEqu),
9244         * src/z80/gen.c (operandsEqu),
9245         * src/pic/gen.c (operandsEqu),
9246         * src/pic16/gen.c (operandsEqu),
9247         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
9248         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
9249
9250 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9251
9252         * src/SDCCcse.c (cseBBlock): fixed bug #966963
9253
9254 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
9255
9256         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
9257         default case in switch statement,
9258         * glue.c (pic16_initPointer): expr is initialised via decoarteType
9259         to eliminate problem with initialisation of pointers, but problem
9260         still exists,
9261         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
9262         * (emitStaticSegment): removed various lines emitting debug info,
9263         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
9264         added processor registers for utilizing EEPROM,
9265         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
9266         configurable and set 8
9267
9268 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
9269
9270         * .version: increased version number to 2.4.2,
9271
9272         Cumulative patch for pic16 port
9273         * src/pic16/device.c: changed scheme to dump initial values for
9274         variables in idata segment, all print_idata* functions were removed,
9275         now the pic16_printIval* will be called,
9276         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
9277         * _pic16_printPointerType, pic16_printPointerType,
9278         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
9279         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
9280         NEW, similar to the respective functions in SDCCglue.c,
9281         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
9282         way, emitting hex bytes,
9283         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
9284
9285 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9286
9287         * src/avr/ralloc.c (serialRegAssign),
9288         * src/xa51/ralloc.c (serialRegAssign),
9289         * src/pic/ralloc.c (serialRegAssign),
9290         * src/pic16/ralloc.c (serialRegAssign),
9291         * src/hc08/ralloc.c (serialRegAssign),
9292         * src/z80/ralloc.c (serialRegAssign),
9293         * src/ds390/ralloc.c (serialRegAssign),
9294         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
9295
9296 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9297
9298         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
9299         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
9300
9301 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
9302
9303         Cumulative patch for pic16 port:
9304         * src/pic16/device.h (typedef PIC16_device) modified fields for
9305         defining microcontrollers,
9306         * src/pic16/device.c: added new info for all devices in Pics16 array,
9307         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
9308         to be optimised out by the pCode optimiser,
9309         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
9310         specially, bug reported by G.M. Gallant,
9311         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
9312         as force'd so that cannot be optimised out by pCode optimiser,
9313         * src/pic16/pcode.c,
9314         * src/pic16/pcodepeeph.c,
9315         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
9316         they are disabled by default, but can be enabled explicit with
9317         command argument --denable-peeps, for testing,
9318         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
9319         --pomit-ivt in COMPILE_FLAGS
9320
9321 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9322
9323         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
9324           compilation on MSVC
9325
9326 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9327
9328         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
9329
9330 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9331
9332         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
9333         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
9334
9335 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
9336
9337         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
9338         would only assign 0x300001 register.
9339
9340 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
9341
9342         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
9343         in COMPILE_FLAGS. Thanks to G. Gallant for report.
9344
9345 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9346
9347         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
9348         for ds80c400
9349         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
9350         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
9351         added peephole 254 (left shift), 255 (jump table)
9352
9353 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
9354
9355         * device/lib/Makefile.in: removed comment line with model-pic16,
9356         * (target port-specific-objects-pic16): the libraries and objects
9357         are copied to the build directory form the device/lib/pic16/bin
9358         directory
9359
9360         Cumulative patch concerning pic16 port:
9361         * library directory has been re-organized,
9362         * added support for PIC18F1220,
9363         * added headers and library sources for chips 18f1220,18f6520,
9364         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
9365
9366         * configuration registers setting has changed, now each supported
9367         device has a complete description of the registers it uses,
9368         * all initialisations are moved to idata sections, these section
9369         can be absolute or relocatable,
9370         * fixed initialisation of codespace variables,
9371         * fixed warning about PCLATU and gpsim,
9372         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
9373         * (genAssign): use table reads when assigning from variables in codespace,
9374         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
9375         char/int variables placed in codespace,
9376         * (pic16_emitConfigRegs): NEW, emits a list with configuration
9377         registers set in .asm file, no need for --pomit-config-words anymore,
9378         * (pic16glue): some 8051 legacy segments are commented out
9379         (to be removed completely),
9380         * added support for alternative assembler and linker with --asm=
9381         and --link= command line arguments,
9382         * peepholes are disabled automatically in the port, no need to
9383         specify on command line,
9384         * port supports natively char/int/long multiplication, but converts
9385         all divisions to support functions,
9386         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
9387         to the file set in variable $2,
9388         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
9389         strings in ASCII format and not in hex,
9390         * ralloc.c (serialRegAssign): added a triplet of conditional calls
9391         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
9392         allocate proper register if iCodes aren't temporary,
9393
9394 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
9395
9396         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
9397
9398 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
9399
9400         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
9401         is commented out
9402
9403 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9404
9405         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
9406         computed address is reused
9407         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
9408         multi-byte bitfields
9409
9410 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9411
9412         * src/z80/gen.c: (genArrayInit): must check for pointers too
9413
9414 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9415
9416         * support/regression/tests/zeropad.c: never meant to commit the
9417           nestedstruct test: removed, added check for GCC version
9418
9419 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
9420
9421         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
9422         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
9423         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
9424           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
9425           bugs 928906 and 954082 half-empty initializers
9426         * src/SDCCsymt.h,
9427         * src/SDCCsymt.c (getAllocSize): added for above fix
9428         * src/z80/gen.c (genArrayInit): fixed bug 741044
9429         * support/regression/tests/zeropad.c: added tests
9430
9431 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
9432
9433         * src/pic16/device.c (pic16_dump_section): corrected bug which
9434         caused some symbols of the libraries to be misplaced
9435
9436 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9437
9438         * src/pic16/glue.c,
9439         * src/pic16/ralloc.h,
9440         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
9441         to fix conflict with pic port
9442
9443 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9444
9445         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
9446         externs configuration variables,
9447         * src/pic16/ralloc.h,
9448         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
9449         prototype in header, commented out some debug messages
9450
9451 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
9452
9453         * src/pic16/glue.c,
9454         * src/pic16/main.c,
9455         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
9456         for gpasm COFF object generation. Thanks to D. Hawkins for
9457         his patch info
9458
9459 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9460
9461         * src/ds390/main.c,
9462         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
9463         Brock for spotting this)
9464         * src/ds390/gen.c (genEndFunction),
9465         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
9466         interrupt handler and critical. Disable push/pop optimizations when
9467         peephole optimizations disabled.
9468
9469 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9470
9471         Updated pic16 library sources and headers.
9472         * device/lib/pic16/pic18f*/ ,
9473         * device/include/pic16/*.h: modified to handle structured SFR
9474         definitions
9475
9476 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9477
9478         * src/port.h (PORT structure): added hook initPaths, now each
9479         port can declare its own default search paths,
9480         which can been seen with the --print-search-dirs option,
9481         see pic16 port for example,
9482         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
9483         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
9484         * (doPrintSearchDirs): NEW, replaces in a central manner the
9485         printing of search dirs which was split in set*Paths functions,
9486         * (main): added call to port->initPaths and doPrintSearchDirs,
9487         * src/avr/main.c,
9488         * src/ds390/main.c,
9489         * src/hc08/main.c,
9490         * src/izt/i186.c,
9491         * src/izt/tlcs900h.c,
9492         * src/mcs51/main.c,
9493         * src/pic/main.c,
9494         * src/pic16/main.c: modified port structures to reflect addition of
9495         initPaths hook,
9496
9497         * src/pic16/device.c (regCompare): registers are finally sorted by name,
9498         * (pic16_dump_section): for registers in same address reserve memory once,
9499         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
9500         to no_banksel,
9501         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
9502         result is greater in size than right or left,
9503         * (pic16_genUMult8X8_8): there are some cases where the result can
9504         be 16 bits size, so handle these,
9505         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
9506         * (pic16_outBitC): modified to emit pcodes,
9507         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
9508         or not,
9509         * (genDivOneByte): implemented algorithm to divide 8-bits,
9510         * (genCmp): uncommented goto, but issues still exist,
9511         * (genAnd): fixed a bug with variables >8bits,
9512         * (genPackBits): optimization added that uses BCF/BSF to change a
9513         single bit,
9514         * (genAssign): fixed bug when assigning floating point literals,
9515         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
9516         __sdcc_gsinit_startup label,
9517         * src/pic16/main.c (_pic16_init): removed search directory
9518         initialisations,
9519         * (_pic16_initPaths): NEW, used to initialise search directories,
9520         * (_hasNativeMulFor): support functions for all except char/int
9521         multiplication, and char division,
9522         * (PIC16_port struct): modified entry for native mul support,
9523         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
9524         no_banksel option,
9525         * (buildCallTree): call to register_usage is ifdef'ed out,
9526
9527 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9528
9529         * device/include/string.h: applied Stas Sergeev's patch to make this
9530         header file compatible with the preprocessor -Wundef option
9531         * src/SDCCmain.c (main): abort compilation if preprocessor reports
9532         failure (fixes bug #941458)
9533
9534 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9535
9536         * src/SDCCopt.c (killDeadCode): fixed bug #907733
9537         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
9538         that the variable, not the function, should be static
9539         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
9540         to be consistent with non-literal case
9541
9542 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9543
9544         * src/SDCCast.c (isConformingBody): fixed bug #949967
9545         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
9546         convilong): fixed bug #952086
9547
9548 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9549
9550         * src/SDCCmem.c (allocVariables): fixed bug #955321
9551
9552 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9553
9554         * src/hc08/main.c (_hc08_genAssemblerEnd),
9555         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
9556         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
9557         completely eliminated the use of a temporary file
9558         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
9559         when more than one file linked
9560         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
9561
9562 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9563
9564         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
9565         which fixes bug #543481
9566         * support/regression/tests/bug-751703.c: fixed comments left from a
9567         cut and paste error
9568         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
9569         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
9570         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
9571         scopes
9572         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
9573         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
9574         are now changed to underscores in moduleName
9575
9576 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9577
9578         * as/mcs51/lkmem.c: better fix for bug #954173
9579
9580 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
9581         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9582
9583         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
9584         * device/include/c8051f000.h,
9585         * device/include/c8051f120.h,
9586         * device/include/c8051f300.h,
9587         * device/include/c8051f310.h,
9588         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
9589         PWM16) and detab'ed
9590
9591 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9592
9593         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
9594         and mailing lists, doc'ed --no-peep-comments, removed reference
9595         to knoppix (newest version has no LyX/LaTeX), other minor changes
9596         * src/SDCCglue.c (glue): save 2 bytes stack space with
9597         option --main-return. The ljmp could probably be avoided too
9598
9599 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9600
9601         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
9602
9603 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9604
9605         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
9606         * src/SDCCopt.c (isLocalWithoutDef),
9607         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
9608         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
9609         (credit to Maarten Brock for patch #949363, on which this is based)
9610         * support/regression/tests/bug-751703.c: some test cases of extern used
9611         within inner scopes.
9612
9613 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9614
9615         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
9616         SPEC_STRUCT
9617         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
9618         struct definitions
9619         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
9620         dwWriteLabel): fix to create valid debugger symbols even when
9621         the module name has non-alphanumeric symbols in it
9622         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
9623         when a variable's allocation has been optimized away
9624
9625
9626 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9627
9628         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
9629         * src/hc08/main.c,
9630         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
9631         * src/mcs51/main.c,
9632         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
9633         * src/ds390/main.c,
9634         * src/z80/gen.c (z80_emitDebuggerSymbol),
9635         * src/z80/main.c,
9636         * src/pic/gen.c (pic14_emitDebuggerSymbol),
9637         * src/pic/main.c,
9638         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
9639         * src/pic16/main.c,
9640         * src/avr/gen.c (avr_emitDebuggerSymbol),
9641         * src/avr/main.c,
9642         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
9643         * src/xa51/main.c,
9644         * src/SDCCdebug.c (emitDebuggerSymbol),
9645         * src/SDCCdebug.h,
9646         * src/port.h: added a debugger struct to the port struct. Added a
9647         callback for defining debugger symbols
9648
9649         * src/SDCCast.c (createLabel),
9650         * src/SDCC.y (labeled_statement): mark all compiler generated labels
9651         with isitmp = 1
9652         * src/SDCCicode.h,
9653         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
9654         iCode back to the ast for the function
9655
9656         * src/hc08/ralloc.c (hc08_assignRegisters),
9657         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
9658         unneeded fields from the regs struct.
9659         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
9660         pushReg() & pullReg() functions instead of emitcode()
9661
9662         * src/hc08/gen.c (genLabel, genhc08Code),
9663         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
9664
9665         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
9666         debugger hooks
9667
9668         * src/hc08/gen.c (genEndFunction, genhc08Code),
9669         * src/hc08/gen.h,
9670         * src/mcs51/gen.c (genEndFunction, gen51Code),
9671         * src/mcs51/gen.h,
9672         * src/ds390/gen.c (genEndFunction, gen390Code),
9673         * src/ds390/gen.h,
9674         * src/z80/gen.c (genEndFunction, genZ80Code),
9675         * src/z80/gen.h,
9676         * src/z80/z80.h,
9677         * src/pic/gen.c (genEndFunction, genpic14Code),
9678         * src/pic/gen.h,
9679         * src/pic16/gen.c (genEndFunction, genpic16Code),
9680         * src/pic16/gen.h,
9681         * src/avr/gen.c (genEndFunction, genAVRCode),
9682         * src/avr/gen.h,
9683         * src/xa51/gen.c (genEndFunction, genXA51Code),
9684         * src/xa51/gen.h,
9685         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9686         specific code to cdbFile.c and out of the backend code generators
9687
9688         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9689         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9690         starting address is now 0
9691
9692         * as/hc08/asm.h,
9693         * as/hc08/m08pst.c,
9694         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9695         assembler directive for DWARF support
9696         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9697
9698         * src/src.dsp,
9699         * src/Makefile.in,
9700         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9701
9702 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9703
9704         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9705         and inappropriate peephole optimization in jump tables
9706
9707 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9708
9709         * as/hc08/m08pst.c,
9710         * src/SDCCglue.c: sdccopt works for the hc08 port now
9711
9712 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9713
9714         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9715
9716 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9717
9718         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9719
9720 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9721
9722         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9723         rules
9724         * src/SDCCmain.c,
9725         * src/SDCCglobl.h,
9726         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9727         comments from the peephole optimizer replacement rules
9728         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9729         symbols
9730         * src/SDCCcse.c (updateSpillLocation),
9731         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9732         equivalents
9733         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9734         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9735         objects far pointers
9736
9737 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9738
9739         * src/SDCCsymt.h: a missing part of my last change
9740         * src/pic/ralloc.c (regTypeNum),
9741         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9742
9743 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9744
9745         * src/SDCCicode.h,
9746         * src/SDCCicode.c (aggrToPtrDclType),
9747         * src/SDCCptropt.h,
9748         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9749         ptrPseudoSymConvert),
9750         * src/pic/ralloc.c (regTypeNum),
9751         * src/pic16/ralloc.c (regTypeNum),
9752         * src/hc08/ralloc.c (regTypeNum),
9753         * src/ds390/ralloc.c (regTypeNum),
9754         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9755         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9756
9757 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9758
9759         * link/z80/lkmain.c (afile),
9760         * as/hc08/lkmain.c (afile),
9761         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9762         prevent a pointer problem when a filename has no directory and
9763         no extension specified.
9764
9765 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9766
9767         * link/z80/lkmain.c (afile): allow periods in directory names
9768         * link/z80/lkmain.c (afile),
9769         * as/mcs51/lkmain.c (afile),
9770         * as/hc08/lkmain.c (afile): allow linker script file to have an
9771         extension other than ".lnk"
9772         * link/z80/lklex.c (getfid),
9773         * link/z80/lkmain.c (parse),
9774         * as/mcs51/lklex.c (getfid),
9775         * as/mcs51/lkmain.c (parse),
9776         * as/hc08/lklex.c (getfid),
9777         * as/hc08/lkmain.c (parse): Support comments in the linker script
9778         file on lines by themselves and after filenames
9779
9780 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9781
9782         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9783
9784 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9785
9786         * src/z80/peeph-z80.def: removed some peephole rules that don't
9787         work with multibyte arithmetic (fixed bug #937126)
9788         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9789         to registers and not global variables
9790         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9791         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9792         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9793         checking for assignments not internally generated (fixed bug #931895)
9794         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9795         structure member (fixed bug #930072)
9796
9797 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9798
9799         * src/SDCCmain.c (linkEdit),
9800         * src/hc08/main.c (_hc08_parseOptions),
9801         * as/hc08/Makefile.in,
9802         * as/hc08/aslink.h,
9803         * as/hc08/asm.h,
9804         * as/hc08/m08pst.c,
9805         * as/hc08/lkrloc.c (relr, rele),
9806         * as/hc08/lkarea.c (lnkarea)
9807         * as/hc08/lkmain.c (afile, parse),
9808         * as/hc08/lkelf.c: support for ELF output
9809         * as/hc08/lks19.c (s19),
9810         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9811
9812 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9813
9814         * as/mcs51/lkihx.c: Fixed bug #899105.
9815
9816 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9817
9818         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9819         .dsp files from Unix to DOS.
9820
9821 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9822
9823         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9824         function pointers; we have been compliant for several months now.
9825         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9826         change that was accidently commented out
9827         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9828         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9829         bug #922319
9830
9831 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9832
9833         * src/hc08/gen.c: output of all of the internal debugging information
9834         is now controlled by the D() macro; it is disabled by default
9835
9836 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9837
9838         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9839         harder to keep the same registers during a CAST iCode
9840         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9841         long via int can be done in a single cast, if the signedness is
9842         correct.
9843         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9844         putchar() in tinibios.c in ds390's library
9845
9846 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9847
9848         * src/SDCCast.c (decorateType): fixed bug #898889,
9849         cast result of a literal complement too
9850         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9851         fixed check for bitfields
9852
9853 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9854
9855         * src/SDCCicode.c (geniCodeLogic): made it static,
9856         (geniCodeLogicAndOr): added in order to fix bug #905492,
9857         (ast2iCode): fixed bug #905492
9858         * support/regression/tests/bug-905492.c: added
9859         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9860         (processParms): fixed bug #927659: don't copy parms, this will clear
9861         decorated flag
9862         * support/regression/tests/bug-927659.c: added
9863
9864 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9865
9866         * src/SDCCast.c (addCast): don't cast float to char
9867         * device/lib/libsdcc.lib: added _memmove
9868
9869 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9870
9871         * device/lib/large/Makefile: fixed parallel execution by
9872         replacing `make` by `$(MAKE)`
9873
9874 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9875
9876         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9877         offsets (fixes bug #923936)
9878
9879 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9880
9881         * device/lib/small/Makefile: fixed parallel execution by
9882         replacing `make` by `$(MAKE)`
9883
9884 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9885
9886         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9887
9888 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9889
9890         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9891         * src/regression/Makefile: Regression test was not running.
9892
9893 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9894
9895         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9896         complement if possible
9897         * src/SDCCval.c (valComplement),
9898         * src/SDCCicode.c (operandOperation): fixed complement of literal
9899         * support/regression/tests/onebyte.c (testComplement): added
9900
9901 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9902
9903         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9904         return an optimized tree; actually replace actParm with the new tree
9905         * src/SDCCast.h: added some parantheses to remove side effects
9906         * support/regression/tests/bug-920866.c
9907
9908 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9909         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9910         Bit operands were not being handled properly in the pic14 port.
9911         (now src/regression/add.c passes again).
9912
9913 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9914
9915         * src/SDCC.y (labeled_statement): case and default no longer require
9916         a following statement (RFE #893037)
9917
9918 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9919
9920         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9921         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9922         disabled (fixes bug #916294)
9923         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9924         "mov a,acc"; patch provided by Lenny Story
9925         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9926
9927 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9928
9929         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9930         functions
9931         * src/ds390/gen.c (genFunction, genEndFunction),
9932         * src/ds390/ralloc.c (ds390_assignRegisters),
9933         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9934         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9935         pushed if there are parameters passed on the stack. Also, a cleaner
9936         way to decide if r0/r1 should be pushed/popped. (Together they fix
9937         bug #918693)
9938
9939 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9940
9941         * doc/sdccman.lyx,
9942         * device/lib/mcs51/crtpagesfr.asm,
9943         * device/lib/mcs51/crtxinit.asm,
9944         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9945         to avoid confusion with Si Lab's SFRPAGE register.
9946
9947 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9948
9949         * src/SDCCglue.c (emitMaps): allow public sfr variables
9950         * src/SDCCglue.c (initialComments): include compiler build date
9951         with compiler version and put the timestamp of the generated
9952         assembly file on a serperate line to be less confusing.
9953         * src/port.h: added genInitStartup hook
9954         * src/avr/main.c,
9955         * src/ds390/main.c,
9956         * src/hc08/main.c,
9957         * src/pic/main.c,
9958         * src/pic16/main.c,
9959         * src/xa51/main.c,
9960         * src/z80/main.c: genInitStartup initialize as NULL (default to
9961         historical behaviour)
9962         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9963         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9964         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9965         library instead of hard coding it into the compiler.
9966         * support/regression/ports/mcs51-stack-auto/spec.mk,
9967         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9968         * device/lib/mcs51/Makefile,
9969         * device/lib/small/Makefile,
9970         * device/lib/large/Makefile,
9971         * device/lib/mcs51/crtpagesfr.asm,
9972         * device/lib/mcs51/crtstart.asm,
9973         * device/lib/mcs51/crtxclear.asm,
9974         * device/lib/mcs51/crtxinit.asm,
9975         * device/lib/mcs51/crtclear.asm,
9976         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9977         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9978         and into user configurable files.
9979         * device/lib/clean.mk: clean mcs51 directory too
9980         * support/regression/tests/longlit.c: added static to T1 declaration
9981         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9982         accesses in the initialization code
9983
9984 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9985
9986         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9987         OSCTRIMVAL as noted in bug #916008
9988
9989 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9990
9991         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9992         in loops with multiple exits (reported as incorrect registers
9993         used by Martin Helmling in Sdcc-user list)
9994
9995 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9996
9997         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9998         made ds390 register extensions look less like error messages
9999
10000 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10001
10002         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
10003         reported by Adam Wozniak in Sdcc-user list
10004
10005 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
10006
10007         * src/SDCCast.c (decorateType): fixed with bug and promotion in
10008         arithmetic optimizations, added debug output
10009
10010 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
10011
10012         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
10013         * sdcc.spec: updated and split sdcc into 3 rpms
10014         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
10015         needed for literals of LEFT_OP and '+'
10016         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
10017         introduced RESULT_TYPE_NOPROM
10018         (geniCodeMultiply): fixed logic for decision if mul is optimized to
10019         left shift
10020         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
10021         limited promotion to int only for '*'
10022         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
10023
10024 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
10025
10026         * src/pic16/gen.c (genSkip),
10027         (genc16bit2lit), (gencjneshort): commented out
10028         (is_LitOp): new helper function, checks operand type
10029         (genCmpEq): rewritten
10030
10031 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
10032
10033         * support/regression/tests/bug-908454.c: added
10034
10035 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
10036
10037         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
10038         * src/SDCCicode.c (usualBinaryConversions): op needs int type
10039         (geniCodeCast): cosmetic, don't preserve bit storage class
10040         (geniCodeLeftShift): added promotion
10041         (geniCodeLogic): fixed regression
10042         * src/SDCCsymt.c (computeTypeOr): accept bits too
10043         (compareType): 2nd part of fix for bug #908454, needed for bitfields
10044
10045 2004-03-07  Borut Razem <borut.razem AT siol.net>
10046
10047         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
10048
10049 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
10050
10051         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
10052         version of pic16_genPackRegisters which does not check if ic is a
10053         CAST operator,
10054         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
10055         function cause string1.c regression test fails
10056
10057 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
10058
10059         * sim/ucsim/configure.in,
10060         * sim/ucsim/configure,
10061         * sim/ucsim/doc/Makefile.in: use docdir
10062         * src/SDCC.y: fixed sbit atrributes
10063         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
10064         * src/SDCCast.c (decorateType): |^& need special promotion handling
10065         * src/SDCCast.h,
10066         * src/SDCCsymt.h: moved definition of RESULT_TYPE
10067         * src/SDCCsymt.h (computeType),
10068         * src/SDCCicode.c: computeType() needs op
10069         * src/SDCCsymt.c (checkTypeSanity),
10070         * doc/sddman.lyx: "plain" bitfields are unsigned
10071         * src/SDCCsymt.c (computeTypeOr): added
10072         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
10073         |^& ops
10074         * src/SDCCval.c (val*): computeType() needs op
10075         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
10076         * support/regression/tests/onebyte.c: added tests for |^&
10077
10078 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
10079
10080         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
10081         for writing icode into asm output.
10082
10083 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
10084
10085         * src/pic16/device.c: added some debug lines enabled
10086         with macro DEBUG_CHECK,
10087         * src/pic16/genarith.c: more debug in genPlus,
10088         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
10089         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
10090         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
10091         * (aopForSym): onStack symbols are re-placed in data memspace,
10092         and onStack flag is cleared,
10093         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
10094         copy temporary pcodeop,
10095         * (genPcall): added warning for not updating PCLATU,
10096         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
10097         always true for pic16 port,
10098         * (genMultOneWord): NEW, supports integer multiplication,
10099         * (genMult): modified to call genMultOneWord,
10100         * (ifxForOp): added warning when return NULL,
10101         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
10102         flag is set before call to operandFromSymbol for implicit
10103         added structures,
10104         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
10105         options.intlong_rent are set by default,
10106         * (_hasNativeMulFor): modified to allow port generation of integer
10107         multiplication,
10108         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
10109         set regtype to REG_SFR for all registers, restricting seting the
10110         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
10111
10112 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10113
10114         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
10115         more than 500 times in the regression tests
10116
10117 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10118
10119         * support/Util/SDCCerr.h,
10120         * support/Util/SDCCerr.c,
10121         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10122         enumerator_list),
10123         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
10124         for symbol conflicts.
10125         * support/valdiags/tests/enum.c,
10126         * support/valdiags/tests/tentdecl.c,
10127         * support/valdiags/tests/struct.c: expect possible error messages
10128         referring to original symbol definitions.
10129         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
10130         * src/SDCCsymt.h,
10131         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
10132
10133 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
10134
10135         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
10136
10137 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
10138
10139         * src/pic16/ralloc.c (newReg): fixed bug #908929
10140
10141 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10142
10143         * src/ds390/gen.c: added missing #include "main.h"
10144
10145 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
10146
10147         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
10148         checking if symbol is already in set,
10149         * src/pic16/device.h: prototype for checkAddSym,
10150         * src/pic16/gen.c: (_G): added entry interruptvector,
10151         * (assignResultValue): removed some commented out lines,
10152         * (genFunction): check for ISR via sym->type, absolute section for
10153         interrupt code is created via a new pBlock, the goto instruction is
10154         placed now correctly at the interrupt vector position, changed all
10155         references from ivec to _G.interruptvector,
10156         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
10157         is the interrupt is a high priority one, same for return from ISR,
10158         * src/pic16/glue.c: changed all calls of addSetHead for publics and
10159         externs to calls of checkAddSym,
10160         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
10161         pic16_pcode_verbose flag is set,
10162         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
10163         * src/pic16/pcoderegs.c: message about how many registers are saved
10164         will only be emitted if pic16_pcode_verbose flag is set,
10165
10166 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10167
10168         * src/ds390/ralloc.h,
10169         * src/ds390/ralloc.c (ds390_regWithIdx),
10170         * src/ds390/gen.c (emitcode),
10171         * src/ds390/main.h,
10172         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
10173         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10174         ds390operandCompare, getRegsRead, getRegsWritten,
10175         initializeAsmLineNode): customized instruction size calculation for
10176         ds390, started basis for some register optimizations
10177         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
10178         corresponding assembly output
10179         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
10180         missing push/pop of r0/r1. Optimized push/pops
10181
10182 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10183
10184         * src/mcs51/main.c (instructionSize): fixed ACALL size
10185         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
10186
10187 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
10188
10189         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
10190         the sorting of rlist with NULL elements
10191         * (print_idataType, print_idata): NEW to create idata sections
10192         * src/pic16/device.h: idataSymSet new variable
10193         * src/pic16/gen.c (genFunction): fixed some bugs in string
10194         comparing, improved the absolute section creation for ISRs,
10195         added FSR0L/FSR0H in registers that are saved in an ISR,
10196         * (genInline): fixed the processing of inline snippets,
10197         now they undergo no process by the peephole optimizer
10198         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
10199         are placed in idataSymSet,
10200         * (pic16emitStaticSeg): extern symbols are added in externs,
10201         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
10202         switching when aboslute variables are placed in access bank memory
10203         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
10204         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
10205         commented out with #if,
10206         * (pic16_packRegisters): reintroduce the check for CAST because some
10207         symbols are not correctly handled,
10208         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
10209         pCodeInstruction instead of pCode,
10210         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
10211         pCodeAsmDir definition,
10212         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
10213         directive, then the argument directive is emitted without the leading
10214         tab, hack for inline labels which must be in the first column,
10215         * (compareLabel,pic16_findNextInstruction),
10216         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
10217         * (insertBankSwitch): modified for the new pCodeAsmDir,
10218
10219 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10220         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
10221
10222         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
10223         instance,
10224         * (pushSide): commented out with #if,
10225         * (assignResultValue): fixed some typos in saving
10226         registers,
10227         * (genPcall): FIXED and sync'ed with genCall,
10228         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
10229         * (genNearPointerGet): fixed to handle some more cases,
10230         implementation scheme via table reads,
10231         * (genConstPointerGet): modified to access code memory correct,
10232         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
10233         and improved to handle some cases
10234         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
10235         instead of "RETLW" for init data
10236         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
10237         not IN_DIRSPACE, work around to reduce bank switching when aboslute
10238         variables are placed in access bank memory (<0x80 and >=0xf80),
10239         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
10240         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
10241         TBLWT_POSTDEC,TBLWT_PREINC
10242         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
10243         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
10244         directives
10245         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
10246         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
10247         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
10248         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
10249
10250 2004-02-29  Borut Razem <borut.razem AT siol.net>
10251
10252         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
10253         support/Util/findme.h, support/Util/system.h: enhance binary relative
10254         search for lib and include by using findProgramPath()
10255
10256 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10257
10258         * src/SDCCpeeph.h,
10259         * src/SDCCpeeph.c (pcDistance),
10260         * src/port.h,
10261         * src/mcs51/ralloc.h,
10262         * src/mcs51/ralloc.c (mcs51_regWithIdx),
10263         * src/mcs51/main.h,
10264         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
10265         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10266         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
10267         size calculation port specific, started basis for some register
10268         optimizations
10269         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
10270         missing push/pop of r0/r1. Optimized push/pops
10271         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
10272         * device/lib/_modsint.c (_modsint),
10273         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
10274         and stack version so regression tests pass
10275
10276 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
10277
10278         * src/Makefile.in (dep): include SLIBOBJS in dependency check
10279         * src/SDCCast.c (decorateType): catch another small optimization
10280         with '?' operator
10281         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
10282         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
10283         modified to finally use computeType() all over SDCC,
10284         see Feature Request #877103
10285         * src/SDCCval.h: cosmetic
10286         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
10287         valCompare(); regression tested in muldiv.c
10288         * support/regression/tests/muldiv.c (testMod): mod sign follows
10289         dividend only
10290
10291 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
10292
10293         * src/SDCCast.c (decorateType): fixed bug #902362
10294         * doc/INSTALL.txt: fixed install instructions for win32
10295
10296 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
10297
10298         * device/include/Makefile.in (install): fixed by replacing spaces
10299         by tabs
10300         * doc/README.txt,
10301         * doc/INSTALL.txt: updated for release
10302         * doc/sdccman.lyx: added warning for --xstack being buggy
10303
10304 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
10305
10306         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
10307         to eliminate build warnings.
10308         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
10309
10310 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
10311            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10312
10313         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
10314         removed -penable-stack, added comment for stack pragma, added
10315         warning for not initializing the stack/frame registers, removed
10316         comment at interrupts section
10317
10318         Stack is made permanent, there is no ability to disable stack usage.
10319         * src/pic16/device.h,
10320         * src/pic16/device.c: removed all references to USE_STACK macro,
10321         * src/pic16/device.c (pic16_dump_section): when no elements in
10322         rlist, free rlist before return,
10323         * (pic16_dump_int_registers): NEW, internal registers are a new set
10324         of general purpose registers reused by each function,
10325         * (checkAddReg): returns 1 if registers is added to set,
10326         * (pic16_groupRegistersInSection): when a registers is of type
10327         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
10328         * src/pic16/device.h: memRange and Assigned Memory are deleted,
10329         SRCASECMP macro is moved here from device.c
10330         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
10331         PO_PCLATU, PO_PRODL, PO_PRODH,
10332         * (pic16_pCodeOpType, genMinus,
10333         changed compares to "a" register, with AOP_ACC,
10334         * (pic16_genPlus): fixed some bugs and indented properly,
10335         * (pic16_addSign): changed size to size+offset in the MOVWF
10336         instruction,
10337         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
10338         multiply 8-bit operand by literal, result is 8-bit,
10339         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
10340         multiply 2 8-bit operand, result is 8-bit,
10341         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
10342         genUMult8X*_16,
10343         * src/pic16/gen.c: changed accUse to contain WREG only,
10344         * (pic16_emitcomment): renamed to pic16_emitpcomment,
10345         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
10346         true, do not use immediate addressing any more unless sym is a
10347         pointer in codespace,
10348         * (aopForRemat): do not use immediate addressing when symbol not in
10349         codespace and when symbol's address is requested,
10350         * (aopOp): for-loop in if(sym->accUse) is modified for the new
10351         accUse size (= 1),
10352         * (aopGet): added case for AOP_ACC and don't return "accumulator
10353         bug" but WREG instead,
10354         * (popGetTempReg): pushes contents of temporary register in stack,
10355         * (popReleaseTempReg): pops contents of temporary register from
10356         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
10357         * (pic16_popGet): separated case AOP_ACC to return register WREG
10358         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
10359         or PO_IMMEDIATE and initializes their instance/offset appropriately,
10360         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
10361         the use of immediate pointers to certain cases only.
10362
10363         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
10364         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
10365         * (assignResultValue, genCall, genRet): modified to use the new
10366         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
10367         genPcall is still broken,
10368         * (genFunction): added code to create 'A' type pBlocks when
10369         interrupt functions are generated, code not extensively tested yet,
10370         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
10371         * (genEndFunction): modified so ISRs pop stored registers from stack,
10372         * (genMultOneByte): cleanup,
10373         * (AccRsh): added flag andmask, to and result with appropriate mask,
10374         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
10375         * (genDataPointerGet): fixed and reenabled its use,
10376         * (genNearDataPointerGet): bugs fixed,
10377         * (genDataPointerSet): bugs fixed,
10378         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
10379         pic16_DumpSymbol, pic16_DumpOp,
10380         * src/pic16/genutils.h: function prototypes for the above functions,
10381         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
10382         pointers,
10383         * (pic16emitRegularMap): many many many improvements, but needs a
10384         major cleanup,
10385         * src/pic16/main.c: enable_stack in pic16_options is removed,
10386         * (_pic16_parseOptions): removed command line options -penable-stack,
10387         * (_process_pragma): emit stack symbol only when stack pragma is
10388         processed,
10389         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
10390         redirected to FSR0L/FSR0H pair,
10391         * (pic16_get_op, pic16_get_op2): modifications and improvements,
10392         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10393         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
10394         for immediates,
10395         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
10396         * (dumpPicOptype): NEW,
10397         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
10398         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
10399         with movff instruction,
10400         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
10401         added pic16_int_regs, some packRegsFor* functions are commented out,
10402         because produce errors,
10403         * src/pic16/NOTES: minor modifications
10404
10405 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10406
10407         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
10408         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
10409         --pack-iram.
10410         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
10411         * as/mcs51/lkaomf51.c: fixed bug #895763
10412
10413 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
10414
10415         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
10416
10417 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10418
10419         * doc/sdccman.lyx: added details about the HC08 storage classes and
10420         interrupts, fixed the register usage info for z80 & gbz80
10421
10422 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
10423
10424         * doc/sdccman.lyx: added more pic16 port documentation
10425         * device/include/pic16/: added header pic18fregs.h
10426
10427 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
10428
10429         * doc/sdccman.lyx: added Vangelis' contribution
10430
10431 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10432
10433         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
10434         extend to the next CALL or PCALL, not just to the next CALL.
10435
10436 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
10437
10438         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
10439
10440 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10441
10442         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
10443         bug #895752 and a better fix for bug #716790
10444
10445 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10446
10447         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
10448
10449 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10450
10451         * doc/sdccman.lyx: minor changes, minor changed
10452
10453 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
10454
10455         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
10456         which can't handle SDCC_NEWONEBYTEOPS,
10457         (geniCodeMultiply): removed conversion from mult to shift for pic14
10458         and pic16
10459
10460 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10461
10462         * src/hc08/gen.h,
10463         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
10464         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
10465         thus fixing bug #895406
10466
10467 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
10468
10469         * device/lib/_modsint.c,
10470         * device/lib/_modslong.c: sign follows divisor only
10471         * src/hc08/gen.c (genMultOneByte): if result size is 1,
10472         signs or signedness can be ignored
10473         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
10474         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
10475         added optimization for IFX,
10476         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
10477         arguments;
10478         reenabled optimization for IFX, which was removed on 2004-01-11
10479         * src/SDCCast.h: added return type IFX
10480         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
10481         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
10482         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
10483         SDCC_OLDONEBYTEOPS selects the old behaviour
10484         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
10485         changed again and commented promotion rule
10486         * src/SDCCval.c (valDiv): promotion no longer necessary
10487         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
10488         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
10489         rewritten
10490         * support/regression/tests/onebyte.c: added
10491
10492 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
10493
10494         * gen.c (genInline): reverted to old code for assemnling inline
10495         code because of bug reported James Chadd
10496
10497 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
10498
10499         * ralloc.h: missing declarations from previous patch,
10500         seems that patch for ralloc.h was never applied, fixed
10501
10502 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10503            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10504
10505         * pcode.c,
10506         * pcode.h,
10507         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
10508         indirect addressing. Marked FSR0 as deprecated
10509         * gen.c (pointerCode): commented out, not needed now
10510         (pic16_popGet2p): new MOVFF helper function
10511         (genGenPointerGet),
10512         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
10513         (shiftRLong): removed duplicate debugging info
10514
10515 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10516
10517         * src/ds390/gen.c (genNearPointerGet),
10518         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
10519         optimization with bits, but not bitfields.
10520         * src/ds390/ralloc.c (packRegisters),
10521         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
10522
10523 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
10524
10525         * src/SDCCcse.c (algebraicOpts): copy operands before modification
10526
10527 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10528
10529         * src/SDCCsymt.h,
10530         * src/SDCCicode.c (operandFromSymbol),
10531         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
10532         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
10533         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
10534         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
10535         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
10536         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
10537         bug #892038
10538         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
10539         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
10540         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
10541         * src/SDCCsymt.c (newSymbol),
10542         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10543         enumerator_list),
10544         * src/SDCCval.h,
10545         * src/SDCCval.c (newiList): fixed bug #885705
10546
10547 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10548
10549         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
10550         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
10551
10552 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10553
10554         * device/include/c8051f120.h,
10555         * device/include/c8051f300.h,
10556         * device/include/c8051f310.h: added/updated header files for Silicon
10557         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10558         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
10559         in new section Submitting patches
10560
10561 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10562
10563         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
10564         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10565         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10566         genGenPointerSet),
10567         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
10568         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10569         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10570         genGenPointerSet),
10571         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
10572         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10573         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10574         genGenPointerSet),
10575         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
10576         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10577         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10578         genGenPointerSet): fixed bug #892400
10579         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
10580         to eliminate build warnings.
10581         * src/SDCCast.c (processParms),
10582         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
10583         fixed bug 751859
10584         * support/valdiag/valdiag.py: added GCC to the list of defines active
10585         when compiling with gcc
10586
10587 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10588
10589         * support/Util/SDCCerr.h,
10590         * support/Util/SDCCerr.c,
10591         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
10592         with an incomplete type (fixed bug #883734)
10593         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
10594
10595 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10596
10597         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
10598
10599 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10600
10601         * src/SDCCast.c (decorateType),
10602         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
10603         function pointer implementation
10604         * support/regression/tests/funptrs.c: added tests to verify both forms
10605         of function pointers work correctly. Added tests to verify parameters
10606         are passed in the correct order.
10607
10608 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
10609
10610         * device.c (regCompare): registers are sorted by ascending
10611         address and increasing size,
10612         * main.c (_pic16_finaliseOptions): removed the declaration
10613         of compiler macro MCU. Now a macro of the format pic18fxxxx
10614         will be defined from the command line
10615
10616 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10617             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10618
10619         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
10620         PCOP_RLCF was overwritten!
10621         * gen.c (genSkip): commented out calls to pic16_emitcode,
10622         * (genCmpEQ): fixed "long" compares, only high word did get compared,
10623         * (genlshTwo),
10624         * (genRRC): added debugging info,
10625         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
10626         overwritten while shifting,
10627         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
10628         overwritten while shifting,
10629         * (AccLsh),
10630         * (AccRsh),
10631         * (shiftLLeftOrResult),
10632         * (shiftRLeftOrResult),
10633         * (shiftRLong),
10634         * (shiftLLong): Implemented with pic16_emitpcode
10635         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
10636         * (genLeftShift): Fixed bug, operand for shift by variable always
10637         was "and"ed with 0x0f,
10638         * (genLeftShiftLiteral),
10639         * (genrshTwo),
10640         * (genRightShiftLiteral): added debugging info,
10641         * (genrshFour): added comment,
10642         * (genRightShift): determined signedness from operand "left"
10643         instead of "result"
10644
10645 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10646
10647         * src/SDCCicode.c (geniCodeParms),
10648         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
10649         function pointers, fixed function pointer bugs #861242 and #861896
10650
10651 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10652
10653         * device/include/c8051f000.h,
10654         * device/include/c8051f120.h,
10655         * device/include/c8051f300.h: added header files for Silicon
10656         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10657
10658 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
10659
10660         * src/SDCCast.c (processParams): added new type flow and restructured
10661         (gatherAutoInit): added new type flow
10662         (addCast): cosmetic changes
10663         (getLeftResultType): added new type flow for array indices, patch
10664         provided by Stas, see FR #877103
10665         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
10666         array index patch by Stas
10667         * src/SDCCast.h: added prototype getResultTypeFromType()
10668         * src/SDCCval.h,
10669         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
10670         * src/pic/glue.c (pic14emitStaticSeg),
10671         * src/pic16/glue.c (pic16emitStaticSeg),
10672         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
10673         for initialization of symbols
10674         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
10675         * support/Util/SDCCerr.h:
10676         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
10677         * .version: bumped version number to 2.3.8
10678         * device/include/Makefile.in (install),
10679         * doc/Makefile (install): changed to 'rm `find ...`' construct to
10680         avoid warnings
10681
10682 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
10683
10684         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10685         Slade Rich fixed an optimization bug
10686         * src/pic/pcodepeep.c,
10687         * src/pic/pcoderegs.c
10688         * doc/Makefile (install): added test for directory
10689
10690 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10691
10692         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10693         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10694         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10695         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10696         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10697         * as/mcs51/asexpr.c (term),
10698         * as/hc08/asexpr.c (term): fixed bug #887146
10699
10700 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10701
10702         * src/z80/gen.c (genMult): handle single byte result product
10703         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10704         DUMMY_READ_VOLATILE (fixed bug #886367)
10705
10706 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10707
10708         * support/regression/tests/libmullong.c: fixed logic, on little endian
10709         hosts we ended without a mullong_wrapper()
10710
10711 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10712
10713         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10714         virus/worm forged address usage.
10715
10716 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10717
10718         Fixed promotion, it should be done on AST level:
10719         * src/SDCCast.c (addCast): added promotion to int
10720         (decorateType): updated call to upCast()
10721         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10722         usualUnaryConversions()
10723
10724 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10725
10726         * support/regression/tests/literalop.c (mulWrapper): Added a
10727         wrapper to remove integer overflow warnings.
10728
10729         * support/regression/tests/float_trans.c: Made work on host.
10730
10731         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10732         location of sz80.
10733
10734         * support/regression/generate-cases.py (main): Changed from inline
10735         to a main method.
10736
10737         * doc/Makefile (install): Changed to depth first to get rid of
10738         missing directory install warning.
10739
10740         * as/Makefile (install-doc): Made work on Mac.
10741
10742 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10743
10744         * src/SDCCast.c: added an additional type flow in decorateType() of
10745         opposite direction, see feature request #860006; it's enabled at runtime
10746         by setting the environment variable SDCC_NEWTYPEFLOW
10747         * src/SDCCast.h: changed prototype of decorateType()
10748         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10749         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10750         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10751         see feature request #877103
10752         * src/SDCCval.c: updated call of decorateType()
10753         (valBitwise): fixed bug #882876
10754         (valMinus): added promotion
10755         (valLogicAndOr): result is unsigned
10756         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10757         * src/SDCCsymt.c (computeType),
10758         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10759         must not cause an unsigned operation
10760         * src/pic/glue (pic14emitRegularMap),
10761         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10762
10763 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10764
10765         * src/pic/pcode.c (PCodeID): commented out left over debug code
10766
10767 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10768
10769         * support/valdiag/tests/overflow.c: added shift tests
10770         * src/pic/device.c,
10771         * src/pic/gen.c,
10772         * src/pic/gen.h,
10773         * src/pic/glue.c,
10774         * src/pic/main.c,
10775         * src/pic/pcode.c,
10776         * src/pic/pcode.h,
10777         * src/pic/pcodepeep.c,
10778         * src/pic/pcoderegs.c,
10779         * src/pic/ralloc.c,
10780         * src/pic/ralloc.h: applied patch from Slade Rich;
10781         added support for multiple code pages and multiple RAM banks on the
10782         PIC 14 port. The ASM files now no longer simply assume all the
10783         code / RAM are in the same page / bank. This means the linker can
10784         safely allocate code/RAM of separate ASM files to different pages/banks.
10785         * doc/sdccman.lyx: added Slade's tips
10786         * src/mcs51/peeph.def: fixed bug #880768
10787
10788 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10789
10790         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10791         * src/SDCCast.c (decorateType): fixed bug #880197
10792
10793 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10794
10795         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10796         getopt.h.
10797
10798         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10799         strtof is not part of C89 and isn't included with Mac OS X.
10800
10801 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10802
10803         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10804         shiftL2Left2Result): fixed bug #879326
10805         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10806         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10807         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10808         address fetch for clr instruction
10809         * device/lib/hc08/_mulint.c: created optimized assembly version
10810         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10811
10812 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10813
10814         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10815         proposed in FR #877103
10816
10817 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10818
10819         * src/SDCCval.c (cheapestVal): added missing checks
10820         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10821         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10822
10823 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10824
10825         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10826         equal operands
10827
10828 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10829
10830         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10831         loaded with the linker search paths (-L arguments) and the libraries
10832         to be linked with the current source (-l arguments). Changes
10833         currently will affect only the pic16 port.
10834         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10835         include path the port specific paths and port specific libraries,
10836         * gplink command now contains the $3 argument,
10837         * src/pic16/device.h,
10838         * src/pic16/device.c,: structure PIC_device is made public and
10839         renamed to PIC16_device, the same for variable Pics which is renamed
10840         to Pics16. Updated all references to them.
10841         * src/pic16/glue.c (pic16glue): corrected bug with code
10842         initialization which bypassed the variable initializations block.
10843
10844         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10845         COMPILE_FLAGS and added the --nostdinc option
10846
10847 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10848
10849         * device/include/mc68hc908jb8.h: Register defs for another member
10850         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10851
10852 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10853
10854         Documenting changes from previous commits.
10855         * configure.in (version 1.56),
10856         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10857         when generating output files to configure the pic16 library,
10858         but now I've commented it out, since gputils aren't installed in the
10859         SF compile farm, so library won't compile
10860
10861         * device/lib/Makefile.in (version 1.56): initially I've added in
10862         target 'all' the prerequestive 'model-pic16' so it compiled the
10863         pic16 library, but now I've commented it out for the same reasons
10864         above,
10865         * added targets 'model-pic16' and 'objects-pic16' to compile the
10866         library
10867         * added target 'port-specific-objects-pic16' to handle the
10868         generated libraries and copy them into the build/ directory
10869         * added target 'clean-intermediate-pic16' to clean intermediate
10870         files into pic16 directory
10871         * in target 'installdirs' added line to create directory pic16 in
10872         the installation path
10873
10874         * device/include/Makefile.in (version 1.11): in target 'install'
10875         added lines to copy all header files to installation path,
10876         * in target 'installdirs' added line create directory for pic16
10877         headers in the installation path
10878
10879 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10880
10881         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10882          a function call
10883
10884 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10885
10886         * configure,
10887         * device/lib/configure.in,
10888         * device/lib/configure: fixed for autoconf 2.57
10889
10890 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10891
10892         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10893         option so that it actually works. Made it specific to the z80, since
10894         the gbz80 doesn't have these kinds of I/O ports.
10895
10896 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10897
10898         * device/include/z180.h,
10899         * device/lib/_memcpy.c,
10900         * device/lib/_memmove.c,
10901         * device/lib/_mulint.c,
10902         * device/lib/ser_ir.c,
10903         * device/lib/ser_ir_cts_rts.c,
10904         * device/lib/_strcmp.c,
10905         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10906         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10907         portmode; added deprecation warning for bank= and protmode= forms.
10908         Also, guard against buffer overflow.
10909         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10910
10911 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10912
10913         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10914         changed interrupt vector table generation to only emit declared vectors.
10915         * device/include/Makefile.in: added missing backslash
10916         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10917
10918 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10919
10920         Mainly changes to support compilation of the device libraries
10921         * src/pic16/device.c: stack is allocated via symbol and not
10922         via literal number. The symbol is placed in the corresponding
10923         position of the data ram
10924         * (pic16_dump_section): relocatable and absolute uninitialized
10925         data are now emitted in sorted order to reduce section naming,
10926         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10927         weren't marked as being in the access bank,
10928
10929 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10930
10931         Added portion of GNU PIC Library under the directory
10932         device/include/pic16 and device/lib/pic16. These files
10933         contain the declarations of SFRs for the PIC18Fxx2 devices.
10934         The directory is initialized via configure from toplevel.
10935
10936 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10937
10938         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10939         the spilllocations to be compared correctly
10940
10941 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10942
10943         * src/SDCCast.c (decorateType): fixed bug introduced today
10944
10945 2004-01-12  Borut Razem <borut.razem AT siol.net>
10946
10947         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10948         doc/sdccman.lyx: upper case pragmas are deprecated
10949
10950 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10951
10952         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10953         in simpler and even better code
10954
10955 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10956
10957         * src/SDCCicode.c (operandOperation): fixed bug #874819
10958         * src/SDCCast.c (decorateType): fixed
10959         char foo (unsigned long ul) { return ul > 0; }
10960
10961 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10962
10963         * doc/sdccman.lyx: Moved and added some sections, small changes
10964         all over. Telling LaTeX to be less strict with word spacing
10965         to better keep the right margin. Changed some notes about
10966         maintainance of the ports in section 3.2.1 - is it OK like this?
10967
10968 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10969
10970         SDCC source changes:
10971         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10972         convilong): modified to inform the pic16 port that builtin functions
10973         are external
10974
10975         PIC16 PORT specific changes:
10976         * src/pic16/device.c pic16_dump_equates() added,
10977         processor registers declared internally by the port are emitted in
10978         the translation as equates,
10979         * src/pic16/gen.c: inline code is passed unprocessed to the
10980         translation,
10981         * (pic16_popGetLit2): fnuction modified to take second operand as
10982         pCodeOp pointer and not as literal,
10983         * (popRegFromIdx): prefixed with pic16_,
10984         * (pic16_popCombine2): modified to receive already allocated pCode
10985         operands,
10986         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10987         * (genFunction): initializes local stack frame and pushes on stack
10988         all the registers used by this function,
10989         * (genEndFunction): restores all registers from stack and restores
10990         stack frame,
10991         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10992         improvements,
10993         * (pic16glue): changed the program startup sequence,
10994         * added new dbName code 'A' for functions placed in absolute section
10995         * src/pic16/main.c: added function attribute _naked,
10996         * added pragma 'code' to place a fnuction at an absolute address,
10997         * added command line arguments --debug-ralloc and --pcode-verbose,
10998         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10999         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
11000         * (pic16_newpCodeOpLit2): modified to take the second operand as
11001         pCodeOp pointer,
11002         * (pic16_printpBlock): modified to emit each function in a separate
11003         section,
11004         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
11005         UPPER for immediate operands,
11006         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
11007         instruction,
11008         * src/pic16/peeph.def: all peepholes with movff are commented out,
11009         because there is a problem in the pcode peep optimizer,
11010         * src/pic16/ralloc.c: the register allocator can now reuse local
11011         function symbols for another function. This saves register usage.
11012         * src/pic16/ralloc.h: added flag isLocal in structure regs,
11013
11014         Added file src/pic16/NOTES with information about program writing on
11015         the current port version.
11016
11017 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11018
11019         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
11020         and peephole 252 (array access)
11021
11022 2004-01-09  Borut Razem <borut.razem AT siol.net>
11023
11024         * src/SDCCmain.c : fixed #872250: -l command line defined library
11025           files are scanned before standard library files
11026
11027 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11028
11029         * src/SDCCast.c (decorateType): fixed bug #874046
11030
11031 2004-01-09  Borut Razem <borut.razem AT siol.net>
11032
11033         * support/scripts/sdcc.nsi: remove previous installation
11034
11035 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11036
11037         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
11038         bytes for last interrupt vector (mcs51)
11039         * sdcc.spec: fixed typo
11040
11041 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11042
11043         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
11044         gen51Code): more efficient parameter receive for --model-large
11045         ("bug" #845294)
11046
11047 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11048
11049         * src/ds390/main.c,
11050         * src/z80/main.c: added missed needLinkerScript flags (more than
11051         one port structure defined in these file)
11052         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
11053         bug #795325
11054
11055 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
11056
11057         * src/SDCCmain.c: removed various references to DEFAULT_PORT
11058         * src/port.h: added flag needLinkerScript in port->linker
11059         structure to inform whether to create a .lnk file or not,
11060         * src/avr/main.c,
11061         * src/ds390/main.c,
11062         * src/hc08/main.c,
11063         * src/mcs51/main.c,
11064         * src/pic/main.c,
11065         * src/pic16/main.c,
11066         * src/xa51/main.c,
11067         * src/z80/main.c: changed appropriately to configure
11068         needLinkerScript flag
11069         * src/pic/gen.c,
11070         * src/pic16/gen.c (genAddrOf): fixed bug #863624
11071         * src/pic/glue.c: added variable udata_section_name to
11072         override default uninitialized data segment definition for
11073         devices only with SHAREBANK memory (reported from Erik Epetrich)
11074         * (pic14emitOverlay): modified to emit a commented overlay segment
11075         directive when no overlay data exist
11076         * (picglue): modified to emit uninitialized data segment
11077         according to udata_section_name
11078         * src/pic/main.c (_pic14_parseOptions): added command line
11079         options --udata-section-name=[name] to override default
11080         udata definition name
11081         * modified _linkCmd and _asmCmd to include compiler passed
11082         arguments via -W option
11083         * src/pic16/main.c: added $l in _asmCmd, changed extension for
11084         object file from '.rel' to '.o' in port->linker structure,
11085         changed size of fptr from 2 to 3 in port structure
11086
11087 2004-01-07  Borut Razem <borut.razem AT siol.net>
11088
11089         * support/scripts/sdcc.nsi: update PATH
11090         * support/scripts/sdcc.ico: craeted
11091
11092 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
11093
11094         * device/include/Makefile.in: fix install
11095         * doc/Makefile: fix install
11096
11097 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11098
11099         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
11100         in bug #860505
11101         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
11102         how the function variable allocation summary is displayed; also
11103         include information about variables allocated to the overlay
11104         segment
11105
11106 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11107
11108         * as/mcs51/lkmain.c: Help about -Y option
11109         * as/mcs51/lkarea.c: Fixed gcc warnings
11110
11111 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
11112
11113         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
11114         fixed warning
11115         * support/valdiag/tests/overflow.c: added
11116         * src/SDCCast.c (decorateType),
11117         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
11118         LEFT_OP (left shift)
11119
11120 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11121
11122         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
11123         (default behaviour).
11124
11125 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11126
11127         A python script to validate compiler diagnostic messages. It can be
11128         used to verify that sdcc complains about bad c source code and
11129         gives a good location of the error.
11130         * support/valdiag/Makefile,
11131         * support/valdiag/valdiag.py,
11132         * support/valdiag/tests/*
11133
11134 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11135
11136         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
11137         * src/SDCCsymt.c (newEnumType),
11138         * src/SDCCsymt.h
11139         * support/Util/SDCCerr.c,
11140         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
11141         enum related bugs.
11142         * support/regression/tests/enum.c: added test for enum values that
11143         require at least 2 bytes of storage.
11144
11145 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
11146
11147         * src/common.h: added ifndef/define/endif macros
11148         around the header file.
11149         Bug reported from Jesus Calvino-Fraga
11150
11151 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
11152
11153         * sdcc.spec: updated
11154         * device/include/Makefile.in: don't install CVS directories
11155         * device/lib/Makefile.in: added removal of CVS directories after install
11156         * doc/Makefile: fixed install, added local_icons
11157         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
11158         * src/mcs51/gen.c (genRightShift): fixed bug #870788
11159         * src/ds390/gen.c (genRightShift): fixed bug #870788
11160         * src/SDCCast.c (decorateType): fixed bug #870781
11161
11162 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
11163
11164         PIC16 port related changes:
11165         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
11166         added variable stackPos,
11167
11168         * gen.c: genCall, assignResultValue: added support for
11169         pushing/retrieving function parameters to/from stack,
11170         genFunction,genEndFunction: setup stack frame for the
11171         generated function,
11172         genAddrOf: will be changed according to bug 863624
11173
11174         * added files genutils.c and genutils.h which contain gen*
11175         debugged and optimised functions extracted from gen.c
11176
11177         * glue.c: added variable 'externs' which holds extern symbols,
11178         pic16emitRegularMap: is modified to properly handle relocatable
11179          symbols under the new scheme,
11180         pic16createInterruptVect: is modified
11181         pic16printPublics: is modified to emit 'global' assembler directives,
11182         added pic16_printExterns to print extern symbols,
11183         pic16glue: initializes stack/frame pointer in the beginning of
11184         the assembly output. Temporary hack, will be corrected later,
11185         because gplink yet does not support stack and SDCC does not
11186         yet support a type of crt0.o object to create the final binary.
11187
11188         * Removed many lines that contain 8051 legacy code.
11189         * The code is finally placed under a 'code' directive.
11190         * Added port specific options.
11191
11192         * _process_pragma: simplified since now we do not need *special*
11193         include file to define SFR registers. But a separate header
11194         will be needed. This will be developed later.
11195         * _pic16_parseOptions: added, parses port specific options:
11196         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
11197         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
11198         --preplace-udata-with=
11199
11200         * _pic16_setDefaultOptions: modified to initialize section names,
11201         but hack is temporarly out of order since it needs improvement.
11202         * _pic16_genAssemblerPreamble: configuration words are emitted by
11203         their address instead of their name. This part is incomplete and
11204         supports only the 18Fxx2 devices. Other devices will emit an error
11205         during assembly since they do not contain the same set of config
11206         registers
11207         * _pic16_genIVT: is modified,
11208
11209         * pcode.c: added definitions for some hardware registers that are needed
11210         for stack support
11211         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
11212         All PCI entries are updated. Now LFSR is supported.
11213         * Removed pic16_pciTRIS is mentioned by mdubuc in source
11214         * added pic16_newpCodeOpLit2 to support instructions with
11215         two literal arguments
11216         * pic16_pCode2str: corrected code that emits assembler instructions
11217         with two literal operands and those that have an access bit modifier
11218         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
11219         this fixes a bug which caused some labels to be lost, when an
11220         assembler directive was added, i.e. banksel,
11221         * pic16_FixRegisterBanking: improved logic that causes the insertion
11222         of bank switching,
11223         * InlineFunction: functions that are called once, are not any more
11224         inlined. This can be a port option in the future,
11225
11226         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
11227
11228         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
11229         hold the corresponding uninitialized symbols,
11230         * pic16_allocProcessorRegister: registers have explicit marked the
11231         accessBank field,
11232         * pic16_allocInternalRegister: registers are explicit marked as
11233         not used,
11234         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
11235         processing list, so bit registers were lost,
11236         *
11237
11238         * ralloc.h: added field 'accessBank' and original symbol operand
11239         in register definition,
11240         * removed the field isMapped from register definition,
11241
11242         ** Several functions have been removed from various sources:
11243         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
11244         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
11245         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
11246         pic16_assignRelocatableRegisters
11247
11248         ** others have been introduced:
11249         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
11250         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
11251
11252 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
11253
11254         * support/scripts/inc2h.pl: changed definition of BIT_AT
11255         to emit 'sbit at' instead of 'bit at'. This was a request.
11256
11257         PIC16 port related preliminary changes:
11258         * gen.c: prefixed function popRegFromString with
11259         pic16_ and all references to it corrected
11260         * pcode.c: all pic16_pc_* hardware registers prefixed
11261         with underscore (_),
11262         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
11263         * ralloc.c: newReg(): when register is REG_SFR then
11264         set address to rIdx,
11265         pic16_allocProcessorRegister(): marks register wasUsed=0
11266         pic16_writeUsedRegs(): added a call to assign processor
11267         registers via pic16_assignFixedRegisters
11268
11269 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11270
11271         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
11272         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
11273         variables in unused register banks.  Also the SSEG is placed
11274         wherever there is enough space for it, and IDATA can be anywhere
11275         in internal RAM.  For now compile using -Wl-Y[stack_size].
11276         The mem file is different for this option as well, since it
11277         makes no sense of talking about DSEG lenght.
11278
11279 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
11280
11281         * src/SDCClrange.c: fixed bug 869095 that caused segfault
11282         in certain cases, e.g. when ROM assignment, patch provided
11283         from Albert den Haan.
11284
11285 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
11286
11287         Many signedness and type propagation fixes:
11288         * src/SDCCicode.c: made geniCodeCast() static
11289         replaced SPEC_ by IS_ (cosmetic)
11290         (operandOperation): fixed div and mod operation
11291         (usualBinaryConversions): added support for promotion of char
11292         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
11293         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
11294         (geniCodeAdd): an array index will stay unsigned, even if promoted
11295         from char to int
11296         (geniCodeArray): ditto
11297         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
11298         * src/SDCCsymt.c (computeType): added more support for char;
11299         promotion of char is selectable by promoteCharToInt, fixed signedness
11300         for all cases
11301         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11302         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11303         * src/SDCCval (val*): replaced signedness calculation by
11304         computeType()
11305         rearranged if-branches (cosmetic)
11306         (valShift): added warning W_SHIFT_CHANGED
11307         (valCompare): fixed problem with different types
11308         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
11309         * support/regression/tests/literalop.c: added many cases
11310         * support/regression/tests/ast_constant_folding.c: changed finally to
11311         'unsigned int'
11312         * .version: new year, new version: 2.3.7
11313         * src/SDCCmain.c (main): applied patch #866468
11314         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
11315         provided by Scott Bronson
11316         * doc/sdccman.lyx: updated documentation for sdcdb
11317         updated and added chapter tips
11318
11319 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11320
11321         * src/SDCCsymt.h: missing from yesterday's commits
11322
11323 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11324
11325         * src/SDCC.y (struct_or_union_specifier),
11326         * support/Util/SDCCerr.c,
11327         * support/Util/SDCCerr.h: verify that struct & union tags are used
11328         as declared.
11329
11330 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11331
11332         * src/SDCCglobl.h: missing from yesterday's commits
11333
11334 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11335
11336         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
11337         sft_attributes, struct_declaration, parameter_declaration,
11338         type_name, start_block, declaration_list),
11339         * src/SDCC.lex (check_type): support redefinition of typedef names
11340
11341 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11342
11343         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
11344         aligned xdata arrays. Erik helped me with the if clause.
11345
11346 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11347
11348         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
11349         warning
11350
11351 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11352
11353         * src/SDCCast.h,
11354         * src/SDCCast.c (newAst_),
11355         * src/SDCCicode.h,
11356         * src/SDCCicode.c (ast2iCode, newiCode),
11357         * src/SDCCglobl.h,
11358         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
11359         expr, statement, expression_statement, selection_statement,
11360         iteration_statement, expr_opt, jump_statement): foundation for tracking
11361         sequence points
11362         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
11363         point code too)
11364
11365 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11366
11367         * support/Util/SDCCerr.c,
11368         * src/SDCCast.h,
11369         * src/SDCCast.c (createCase, createDefault, decorateType),
11370         * src/SDCClabel.c (labelUnreach),
11371         * src/SDCC.y (labeled_statement, jump_statement): More improvements
11372         to error messages.
11373         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
11374         (with thanks to Stas Sergeev)
11375         * device/include/time.h,
11376         * device/lib/time.c (CheckTime): suppress unreachable code warning
11377
11378 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11379
11380         * src/SDCCast.c (createIvalCharPtr),
11381         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
11382         bug #753752)
11383         * support/regression/tests/nullstring.c: tests for these two bugs
11384
11385 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11386
11387         * support/Util/SDCCerr.h,
11388         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
11389         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
11390         about storage class and 'at' used inside struct or union
11391         * src/SDCCBBlock.c (iCodeFromeBBlock),
11392         * src/SDCCcse.c (ifxOptimize),
11393         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
11394         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
11395         printIval, emitStaticSeg, emitOverlay),
11396         * src/SDCClabel.c (deleteIfx),
11397         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
11398         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
11399         gatherAutoInit, processParms),
11400         * support/Util/SDCCerr.h,
11401         * support/Util/SDCCerr.c (werrorfl): Support for better error location
11402         reporting for post-parse errors.
11403
11404 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11405
11406         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
11407         implicit casts via union; they don't work on big endian systems
11408         (possible fix for bug #861138)
11409
11410 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11411
11412         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
11413         * src/mcs51/main.c: fixed the fix for bug #737001
11414
11415 2003-12-15  Borut Razem <borut.razem AT siol.net>
11416
11417         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
11418
11419 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11420
11421         * support/makebin/makebin.c: put output in binary mode
11422
11423 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11424
11425         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
11426         xdata and data memory on startup. Set the environment variable
11427         SDCC_NOGENRAMCLEAR to disable this.
11428         * src/mcs51/peephole.def,
11429         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
11430         (allows non-interrupt and interrupt code to safely compete for a resource
11431         without the non-interrupt code having to disable interrupts)
11432
11433 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11434
11435         * src/SDCCicode.c (geniCodeAdd),
11436         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
11437         with valFromType if type might be a pointer and host is big endian).
11438         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
11439         types, not just integer types.
11440         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
11441         multiply defined with mismatching "at" address.
11442
11443 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11444
11445         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
11446         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
11447         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
11448         with embedded nulls (fixed bug #753752)
11449
11450 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11451
11452         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
11453         Apparently this did not see much testing (endless loop)
11454
11455 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11456
11457         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
11458
11459 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11460
11461         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
11462         gracefully handle NULL memmap pointers
11463
11464 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11465
11466         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
11467         instead of deleting the iCode when an operand is volatile
11468         * src/z80/gen.c (genDummyRead),
11469         * src/mcs51/gen.c (genDummyRead),
11470         * src/ds390/gen.c (genDummyRead),
11471         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
11472         not just IC_RIGHT
11473         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
11474         * src/SDCC.y: fixed bug #850420
11475
11476 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11477
11478         Applied z80 i/o port patch from Peter Townson and fixed some operators
11479         to better handle operands in A register.
11480         * device/include/z180.h
11481         * src/SDCC.y
11482         * src/SDCCglue.c
11483         * src/z80/gen.c
11484         * src/z80/gen.h
11485         * src/z80/main.c
11486         * src/z80/peeph-z80.def
11487         * src/z80/peeph.def
11488         * src/z80/z80.h
11489
11490 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11491
11492         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
11493
11494 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11495
11496         * device/lib/hc08/_mullong.c: Removed extra #endif
11497
11498 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11499
11500         * sim/ucsim/hc08.src/inst.cc,
11501         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
11502         carries from x to h
11503         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
11504         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
11505         * device/include/stdarg.h: fixed varargs for hc08
11506         * device/lib/Makefile.in,
11507         * device/lib/hc08/Makefile,
11508         * device/lib/hc08/_mulint.c,
11509         * device/lib/hc08/_mullong.c: fixed some endian problems
11510
11511 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11512
11513         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
11514         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
11515         * device/lib/_gptrget.c,
11516         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
11517
11518 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11519
11520         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
11521         * src/SDCCast.c (astErrors): fixed bug #846007
11522         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
11523
11524 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11525
11526         * src/SDCCast.c (decorateType): disabled a transformation I added in
11527         revision 1.188 (access to fields of a structure at an absolute address);
11528         it breaks with bitfields, extern declarations, and gcse analysis.
11529         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
11530         could be assigned through a pointer, so don't complain.
11531         * src/SDCCast.c (astErrors),
11532         * src/SDCCast.h,
11533         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
11534
11535 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
11536
11537         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
11538         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
11539         output of __config directives, since gpasm now supports them
11540         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
11541         pre-processor macro, i.e. -DMCU=p18f452
11542         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
11543         and modified to handle 'cast' icode similarly to '=' icode
11544         * src/pic16/device.h (typedef struct PIC_device): added field
11545         'extMIface' to indicate that chip has external memory interface
11546         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
11547         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
11548         18F8720
11549
11550 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11551
11552         * src/SDCC.y (pointer): fixed bug #846006
11553         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
11554         * src/SDCCast.c (decorateType): fixed bug #846009
11555         * src/ds390/peeph.def,
11556         * src/ds390/gen.c (genAnd, genOr),
11557         * src/mcs51/peeph.def,
11558         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
11559
11560 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11561
11562         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
11563         * src/SDCCdflow.c
11564         * src/SDCCcse.c
11565         * src/SDCCcse.h
11566         * src/SDCCBBlock.h
11567         * src/SDCCBBlock.c
11568
11569 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
11570
11571         fixed bug #845089
11572         * src/SDCCbitv.h,
11573         * src/SDCCbitv.c: added function to free a bitvector
11574         * src/SDCClrange.h,
11575         * src/SDCClrange.c: added function to recompute the liveranges
11576         * src/avr/ralloc.c,
11577         * src/ds390/ralloc.c,
11578         * src/hc08/ralloc.c,
11579         * src/mcs51/ralloc.c,
11580         * src/pic/ralloc.c,
11581         * src/pic16/ralloc.c,
11582         * src/xa51/ralloc.c,
11583         * src/z80/ralloc.c: recompute the liveranges after register packing
11584
11585 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
11586
11587         * src/SDCCloop.c (newInduction): fixed bug #845630
11588
11589 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11590
11591         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
11592         inadvertantly left behind from my 2003-11-12 change
11593
11594 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11595
11596         Updated headers I neglected to commit yesterday.
11597         * src/SDCClrange.h,
11598         * src/SDCCicode.h
11599
11600 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11601
11602         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
11603         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
11604         * src/SDCCopt.c (eBBlockFromiCode),
11605         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
11606         the creation of the key hash table from the sequencing so it can be used
11607         earlier (for some GCSE bug fixes still pending)
11608
11609 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11610
11611         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
11612         * support/regression/tests/addsub.c: testing genPlus shortcut
11613
11614 2003-11-15  Borut Razem <borut.razem AT siol.net>
11615
11616         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
11617
11618 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11619
11620         * src/SDCCcse.c (cseBBlock): fixed bug #527779
11621         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
11622         ordering is immaterial.
11623         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
11624
11625 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11626
11627         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
11628         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
11629         (SIGSEV) of bug #840381
11630         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
11631         unlink new file before rename if new and old filenames are the same)
11632
11633 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11634
11635         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
11636         uninitialized variables) for the mcs51. Set environment variable
11637         SDCC_GENRAMCLEAR to test.
11638         xdata initialization slightly shorter
11639
11640 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11641
11642         * src/SDCCsymt.h,
11643         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
11644         #838241 & 780691 (basicly the same bug)
11645         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
11646         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
11647
11648 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
11649
11650         * src/SDCCmain.c (linkEdit): "fix" #834252
11651
11652 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11653
11654         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
11655         * src/SDCCast.h,
11656         * src/SDCC.y: fixed bug #819403
11657
11658 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11659
11660         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
11661         the reentrant attribute.
11662         * src/hc08/gen.c (genPackBits): added missing stack readjustment
11663         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
11664         simulation
11665         * src/SDCCast.c (decorateType): fixed bug with storage class not being
11666         updated during pointer dereference; f.e. ~(((char *)1)*) was being
11667         erroneously reduced to a literal.
11668         * src/hc08/ralloc.c (packRegisters, rematStr),
11669         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
11670         some cases
11671
11672 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11673
11674         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
11675         * doc/sdccman.lyx: changed from 'article' to 'book'
11676         * doc/Makefile: readded test_suite_spec and cdbfileformat
11677
11678 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
11679
11680         * device/include/stdlib.h: include malloc.h to comply with ANSI
11681         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
11682
11683 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11684
11685         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11686         * doc/clean.mk: also remove *.out files
11687         * doc/sdccman.lyx: some additions, larger top/bottom margins
11688
11689 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11690
11691         * src/SDCC.y: fixed bug #837365
11692         * support/regression/tests/bitopcse.c
11693         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11694         a symbol (might be valop instead)
11695         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11696         * device/lib/clean.mk: added hc08 to the cleaning list
11697
11698 2003-11-04  Borut Razem <borut.razem AT siol.net>
11699
11700         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11701           made 2003-11-04
11702         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11703           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11704           malloc is declared in standard stdlib.h
11705
11706 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11707
11708         * device/lib/hc08/Makefile: need to clean .rel not .o files
11709         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11710
11711 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11712
11713         * src/port.h,
11714         * src/hc08/main.c,
11715         * src/mcs51/main.c,
11716         * src/ds390/main.c,
11717         * src/z80/main.c,
11718         * src/avr/main.c,
11719         * src/pic/main.c,
11720         * src/pic16/main.c,
11721         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11722         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11723         tests (which uses the port's oclsExpense function)
11724         * src/SDCC.y,
11725         * src/SDCCast.c,
11726         * src/SDCCicode.c,
11727         * src/hc08/gen.c,
11728         * src/ds390/gen.c,
11729         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11730
11731 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11732
11733         * src/SDCCcse.c (ifxOptimize),
11734         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11735         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11736         deleting the IFX iCode.
11737         * src/hc08/ralloc.c: reduced unneeded slocs
11738         * src/hc08/gen.c: fixed bug in asmopToBoolean
11739
11740 2003-11-04  Borut Razem <borut.razem AT siol.net>
11741
11742         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11743           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11744           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11745           transferred to configure
11746
11747 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11748
11749         Use headers defined in the C[++] standards:
11750         * sim/ucsim/gui.src/serio.src/fileio.cc
11751         * sim/ucsim/gui.src/serio.src/frontend.cc
11752         * sim/ucsim/gui.src/serio.src/main.cc
11753         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11754         * support/Util/NewAlloc.c
11755         * as/hc08/lklibr.c
11756         * as/mcs51/lklibr.c
11757         * as/z80/aslist.c
11758         * as/z80/assym.c
11759
11760 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11761
11762         * Added MSVC projects for hc08 assembler and linker:
11763         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11764         /as/hc08/link_hc08.dsp
11765
11766 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11767
11768         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11769
11770 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11771
11772         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11773
11774 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11775
11776         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11777
11778 2003-10-31  Borut Razem <borut.razem AT siol.net>
11779
11780         * support/cpp2/cpplib.h,
11781           support/cpp2/cpplib.c,
11782           support/cpp2/cpplex.c,
11783           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11784           to switch _asm block preprocessing on / off. Default is
11785           #pragma preproc_asm +
11786
11787 2003-10-31  Borut Razem <borut.razem AT siol.net>
11788
11789         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11790           when outputting comment blocks (when executed with -C option) and
11791           _asm (SDCPP specific) blocks
11792
11793 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11794
11795         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11796
11797 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11798
11799         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11800
11801 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11802
11803         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11804         * src/SDCCast.c (decorateType): fixed bug #832664
11805
11806 2003-10-31  Borut Razem <borut.razem AT siol.net>
11807
11808         * support/cpp2/cpplex.c: fixed for SDCPP:
11809           comments(when executed with -C option) and _asm blocks
11810           were included even if they where in skipped #if block.
11811           Applied solution from GCC cpp 3.3.2
11812
11813 2003-10-31  Borut Razem <borut.razem AT siol.net>
11814
11815         * src/SDCC.lex: sdcc now understands both formats:
11816           '# <line_number> <file_name>' and
11817           '#line <line_number> <file_name>'
11818         * support/cpp2/cppmain.c: sdcpp now generates the standard
11819           '# <line_number> <file_name>' instead of former
11820           '#line <line_number> <file_name>'
11821
11822 2003-10-30  Borut Razem <borut.razem AT siol.net>
11823
11824         * support/cpp2/cpphash.h,
11825         * support/cpp2/cpplib.h
11826         * support/cpp2/cpplex.c,
11827         * support/cpp2/cppmain.c,
11828         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11829
11830 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11831
11832         Fixed a number of problems revealed by bug #827883.
11833         * src/SDCCloop.c (loopInvariants): Spill location of the
11834         result operand should be recomputed if extracted from
11835         a loop. Also, don't extract assignments of an iTemp
11836         from a literal.
11837         * src/SDCCast.c (isConformingBody): loop reversal should
11838         not occur if the control variable is involved with a
11839         relational operator.
11840
11841 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11842
11843         * .version: bumped to 2.3.6 to reflect the big improvements
11844         made by Erik and Klaus. Thanks!
11845
11846 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11847
11848         Replaced the livrange code.
11849         * src/SDCClrange.c: added new LR code
11850         * src/SDCCloop.c,
11851         * src/SDCCBBlock.h: removed remainig parts from old LR code
11852         * src/ds390/ralloc.c,
11853         * src/ds390/gen.c: minor fixes to make it work with new code
11854
11855 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11856
11857         * as/hc08/asm.h,
11858         * as/hc08/lkrloc.c,
11859         * src/hc08/gen.c,
11860         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11861         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11862         (tweaked fix for bug #818696)
11863
11864 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11865
11866         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11867
11868 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11869
11870         * src/SDCCmain.c,
11871         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11872         * src/mcs51/gen.c (gencjneshort),
11873         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11874         more efficient (per Scott Bronson's suggestion)
11875
11876 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11877
11878         Extended the semantics of the critical keyword to include
11879         individual statements. See RFE #827755 and #799831
11880         * src/SDCC.y
11881         * src/SDCCicode.c
11882         * src/SDCCopt.c
11883         * src/SDCCast.c
11884         * support/Util/SDCCerr.c
11885         * support/Util/SDCCerr.h
11886         * src/mcs51/gen.c
11887         * src/ds390/gen.c
11888         * src/hc08/gen.c
11889
11890 2003-10-19  Borut Razem <borut.razem AT siol.net>
11891
11892         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11893
11894 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11895
11896         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11897         Fixed bug #818696
11898         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11899         and predecrement operand is displayed
11900
11901 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11902
11903         * src/SDCCval.c (valMinus): fixed bug #826041
11904
11905 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11906
11907         Some hc08 related updates that I missed earlier
11908         * sim/ucsim/stypes.h
11909         * support/regression/ports/hc08/spec.mk
11910
11911 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11912
11913         New target "hc08" for the Motorola 68hc08 family of micros
11914
11915         * configure
11916         * configure.in
11917         * Makefile
11918         * src/hc08/*
11919         * src/SDCCmain.c
11920         * src/port.h
11921         * sim/ucsim/hc08.src/*
11922         * sim/ucsim/configure.in
11923         * src/ucsim/configure
11924         * sim/ucsim/packages_in.mk
11925         * as/hc08/*
11926         * as/Makefile
11927         * device/include/mc68hc908qy.h
11928         * device/lib/hc08/*
11929         * device/lib/Makefile.in
11930         * support/regression/ports/hc08/*
11931         * support/regression/Makefile
11932
11933 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11934
11935         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11936         regression test
11937         * src/ds390/gen.c (genCast): fixed bug #821957
11938
11939 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11940
11941         * device/lib/logf.c: "fixed" overlay bug
11942         * support/regression/ports/host/spec.mk: added m library
11943         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11944         * support/regression/tests/float_trans: added (for Eric)
11945
11946 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11947
11948         * src/mcs51/gen.c (genCpl): fixed bug
11949         http://sf.net/mailarchive/message.php?msg_id=6263915
11950
11951 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11952
11953         * src/SDCCast.c (decorateType): added extended constant folding
11954         * src/SDCCsymt.c (computeType): cleanup
11955         * src/SDCCval.c (valShift): minor optimization
11956         * support/regression/tests/ast_constant_folding.c: added
11957
11958 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11959
11960         * src/SDCCmain.c: removed some unintended changes
11961
11962 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11963
11964         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11965         * src/z80/gen.c: fixed part of bug #817589
11966         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11967
11968 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11969
11970         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11971         * src/SDCCcflow.c
11972         * src/SDCCcse.c
11973         * src/SDCCdflow.c
11974         * src/SDCClabel.c
11975         * src/SDCClrange.c
11976         * src/SDCCmem.c
11977         * src/SDCCopt.c
11978         * src/SDCCpeeph.c
11979         * src/SDCCset.c
11980         * src/avr/ralloc.c
11981         * src/ds390/ralloc.c
11982         * src/izt/ralloc.c
11983         * src/mcs51/ralloc.c
11984         * src/pic/ralloc.c
11985         * src/pic16/ralloc.c
11986         * src/xa51/ralloc.c
11987         * src/z80/ralloc.c
11988         * src/z80/gen.c: removed unused label "release:"
11989
11990 2003-10-06  Borut Razem <borut.razem AT siol.net>
11991
11992         * src/SDCC.lex: removed definition of unused variables
11993           save_optimize and save_options
11994
11995 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11996
11997         * clean.mk: removed '=' in "-maxdepth=1"
11998         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11999         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
12000
12001 2003-10-06  Borut Razem <borut.razem AT siol.net>
12002
12003         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
12004           my_unput() replaced by unput()
12005
12006 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
12007
12008         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
12009         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
12010         type-punned pointer will break strict-aliasing rules"
12011         Old LR behaviour is again default; Klaus' LR can be choosen by
12012         defining the environment variable LRKLAUS
12013         * src/SDCCBBlock.h
12014         * src/SDCCloop.c
12015         * src/SDCClrange.c
12016         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
12017         * clean.mk: fixed removal of files in bin/CVS/
12018         * device/lib/clean.mk: fixed removal of directories small and large
12019         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
12020         * src/SDCCicode.c,
12021         * src/SDCCval.c: removed superflous test for pedantic
12022
12023 2003-10-05  Borut Razem <borut.razem AT siol.net>
12024
12025         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
12026           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
12027           message "unmatched #pragma SAVE and #pragma RESTORE"
12028
12029 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12030
12031         * doc/sdccman.lyx: various additions and updates (interrupts, inline
12032           assembly, critical functions, atomic, nojtbound)
12033
12034 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
12035
12036         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
12037         * src/SDCCBBlock.h
12038         * src/SDCCloop.c
12039         * src/SDCCloop.h
12040         * src/SDCClrange.c
12041
12042 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12043
12044         * src/z80/gen.h,
12045         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12046         * src/mcs51/gen.h
12047         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12048         * src/ds390/gen.h
12049         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12050         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
12051         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
12052
12053 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12054
12055         * src/z80/gen.c (genRet): fixed bug #524753
12056         * src/z80/gen.c (genCast): fixed internal error on cast from
12057         pointer to long
12058         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
12059         fix for bug #477835 to the z80
12060         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
12061         for tracking iCodes in the peephole optimizer for z80
12062
12063 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12064
12065         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
12066         the other part of bug #814548
12067         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
12068
12069 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
12070
12071         * src/SDCCcse.c: fixed part of bug #814548
12072
12073 2003-09-28  Borut Razem <borut.razem AT siol.net>
12074
12075         * src/asm.c: rewrite of printILine() to use temporary file instead
12076           a pipe
12077         * src/xa51/main.c: commented out declaration of int rewinds
12078
12079 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12080
12081         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
12082
12083 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12084
12085         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
12086         * src/asm.c (printILine): Fixed bug #811015
12087
12088 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12089
12090         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
12091         freeing.
12092
12093 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12094
12095         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
12096         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
12097         to correctly handle general case of AOP_PAIRPTR
12098         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
12099
12100 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12101
12102         * src/mcs51/ralloc.c (fillGaps),
12103         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
12104         register positioning bug)
12105
12106 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
12107
12108         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
12109
12110 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12111
12112         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
12113         genCodePointerGet, genGenPointerGet, genFarPointerSet,
12114         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
12115         (ralloc doesn't intentionally do this now, but perhaps later)
12116         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
12117         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
12118         register positioning bugs (Fixed bug #762602 and #795325)
12119         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
12120         (Fixed bug #808779)
12121         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
12122         lines that --i-code-in-asm generates
12123
12124 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12125
12126         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
12127         trying to fclose a FILE* that was already closed.
12128
12129 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12130
12131         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
12132         of const struct should be treated as if const themselves)
12133
12134 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
12135
12136         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
12137
12138 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12139
12140         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
12141         Unix (/n) and DOS (/r/n) line terminations.
12142
12143 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12144
12145         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
12146         bug #613775
12147
12148 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12149
12150         * src/mcs51/gen.c (genFunction, genEndFunction),
12151         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
12152         and restore of EA so that stack offsets to parameters are
12153         correct when using both critical and reentrant/stack-auto.
12154         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
12155         size (can be triggered in error if sloc is shared between
12156         different sized objects)
12157         * device/include/float.h: fixed macros to explicitly use
12158         unsigned long where needed
12159
12160 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
12161
12162         Feature req. 799831: added code to allow nesting of critical functions
12163         * src/mcs51/gen.c (genFunction, genEndFunction)
12164         * src/ds390/gen.c (genFunction, genEndFunction)
12165
12166 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12167
12168         * src/SDCCsymt.c (sclsFromPtr),
12169         * src/SDCCsymt.h,
12170         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
12171         support for standard C idiom of memory mapped variables; for
12172         example, *((xdata int*)0x1234) = 1 is now internally equivalent
12173         to xdata int at 0x1234 tempvar = 1.
12174         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
12175         provided by Akiya ISHIDA
12176
12177 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
12178
12179         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
12180         * src/SDCCval.c (constVal): added reduction from int to char
12181         * src/SDCCval.c (valMult, valDiv): fixed sign handling
12182         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
12183         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
12184         to ignore the sign
12185         * support/regression/tests/shifts.c: fixed
12186
12187 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12188
12189         * src/z80/gen.c (genXor): Fixed bug #805445
12190
12191 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12192
12193         Fixed bug #621531 (const & volatile confusion in the type chain).
12194         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
12195         refer to the const or volatile state of the pointer itself.
12196
12197         * src/SDCCast.c
12198         * src/SDCCglue.c
12199         * src/SDCCicode.c
12200         * src/SDCCsymt.c
12201         * src/SDCCval.c
12202         * src/SDCC.y
12203         * src/SDCCsymt.h
12204         * src/pic/gen.c
12205         * src/pic/ralloc.c
12206         * src/pic16/gen.c
12207         * src/pic16/ralloc.c
12208         * support/regression/tests/const.c
12209
12210 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12211
12212         When checking for duplicated modules, use absolute paths
12213         instead of relative paths.  Files changed:
12214
12215         * as/mcs51/lklib.c
12216         * link/z80/lklib.c
12217
12218 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12219
12220         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
12221
12222 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12223
12224         * device/include/string.h: added size_t typedef, changed
12225         prototypes to use size_t, eliminated separate reentrant and
12226         non-reentrant declarations, added _memmove declaration
12227         * device/lib/_memcpy.c: changed to use size_t instead of int,
12228         changed /4 to >>2 to avoid division library call
12229         * device/lib/_memcmp.c,
12230         * device/lib/_memset.c,
12231         * device/lib/_strncat.c,
12232         * device/lib/_strncpy.c,
12233         * device/lib/_strncmp.c: changed to use size_t instead of int
12234         * device/lib/_memmove.c: new file (fixed bug #772294)
12235         * device/lib/Makefile.in: added _memmove.c
12236         * device/lib/z80/asm_strings.s: fixed bug #772290
12237         * support/regression/tests/bitfields.c: attempt to fix host assertion
12238         failure on amd64-unknown-linux2.2
12239
12240 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12241
12242         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
12243         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
12244         * as/z80/asmain.c (main): fixed bug #801766
12245
12246 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
12247
12248         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
12249         compilers
12250
12251 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12252
12253         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
12254         reported in bug #800609
12255
12256 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
12257
12258         * Top header beautifications in src/pic16 directory:
12259           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
12260           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
12261           pcoderegs.h, ralloc.c, ralloc.h
12262         * main.c: added top header and GPL license notice
12263         * pcode.c: fixed the if-conditional warning
12264
12265 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
12266
12267         * device/lib/_mullong.c: replaced int by short for gcc
12268
12269 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12270
12271         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
12272         and JUMPTABLE iCodes properly now (worked by accident before)
12273         * src/mcs51/gen.c (leftRightUseAcc),
12274         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
12275         iCode properly now. Use getSize instead of nRegs since a & b
12276         aren't part of the nRegs tally.
12277
12278 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
12279
12280         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
12281         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
12282           before instructions that use the _STATUS register
12283
12284 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
12285
12286         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
12287         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
12288         fetching of the pointer
12289         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
12290         copied from genNearPointerSet()
12291         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
12292         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
12293         If they pop r0/r1 they must be called in the opposite order than aopOp().
12294         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
12295         (resp. --stack-auto), prepared for --xstack
12296
12297 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12298
12299         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
12300
12301 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12302
12303         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
12304         these ports have their own __sdcc_external_start()
12305
12306 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
12307
12308         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12309         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
12310         type for bits was changed. It resulted in bit variables becoming
12311         global, which is not permitted in PIC 14 assembly output.
12312
12313 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12314
12315         * doc/sdccman.lyx: various additions and updates. Rearranged sections
12316
12317 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12318
12319         Z80 and MCS51 linkers complaint if a public symbol is defined
12320         in more than one library module:
12321
12322         * as/mcs51/lklib.c
12323         * link/z80/lklib.c
12324         * as/mcs51/Makefile.in
12325
12326 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12327
12328         A few small changes that speed up the peephole optimizer.
12329
12330         * src/SDCCpeeph.c
12331
12332 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12333
12334         Try to make the peephole optimizer smarter by maintaining
12335         an association between the assembly source code and the
12336         iCodes that originated them. Put this information to use
12337         with a new peephole rule condition "notVolatile" so that
12338         the rules can be aggressive yet still safe.
12339
12340         * src/SDCCpeeph.c
12341         * src/SDCCpeeph.h
12342         * src/mcs51/gen.c
12343         * src/mcs51/peeph.def
12344
12345 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12346
12347         Fixed bug #741761
12348
12349         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
12350         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
12351         if the left or right operand symbols have the accuse flag set.
12352
12353 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12354
12355         Changed the type of the result of the ! (NOT) operator to char;
12356         previously it returned the same type as the source. This allows
12357         us to eliminate all the genFloatNot functions (all of its target
12358         implementations were very buggy) since !float can use the same
12359         code as !long now.
12360
12361         * src/SDCCicode.c (ast2iCode): ! returns char
12362         * src/mcs51/gen.c (genNot, genNotFloat),
12363         * src/ds390/gen.c (genNot, genNotFloat),
12364         * src/z80/gen.c (genNot, genNotFloat),
12365         * src/pic/gen.c (genNot, genNotFloat),
12366         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
12367
12368 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
12369
12370         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12371         1. Interrupt would not compile properly. Ensure PCLATH register is saved
12372            during interrupts. Ensure WSAVE is located at a shared bank address.
12373         2. Fixed page selection in some places
12374         3. Fixed BTFSS/C to where necessary use registers directly and not simply
12375            the registers name strings.
12376         4. Fixed "signed / unsigned compare" compiler warnings.
12377         5. The PIC port manages its own allocation of the general purpose
12378            registers, but makes no attempt to reuse them. As a result when
12379            compiling it soon runs out of general purpose registers. Some
12380            additional code was added to the files pcode.c and device.c to walk
12381            through the function call tree and rename the registers so that they
12382            get reused.
12383
12384         * src/pic/device.c
12385         * src/pic/gen.c
12386         * src/pic/glue.c
12387         * src/pic/pcode.c
12388         * src/pic/pcode.h
12389         * src/pic/ralloc.c
12390         * src/pic/ralloc.h
12391         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
12392         genPlus() & genMinus() when the result is the same as left or right
12393
12394 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12395
12396         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
12397
12398 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12399
12400         Made bitfield a distinct type from bit so that bitfields
12401         convert as per ANSI C and bits retain their traditional
12402         boolean style behaviour. Implemented bitfield support in
12403         the z80 port.
12404
12405         * src/SDCCsymt.h,
12406         * src/SDCCsymt.c,
12407         * src/SDCCast.c,
12408         * src/cdbFile.c,
12409         * src/mcs51/gen.c,
12410         * src/ds390/gen.c: bit v bitfield split
12411         * src/z80/gen.c: New support for bitfields
12412         * support/regression/tests/bitfields.c: reenabled z80,
12413         added more tests
12414
12415 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12416
12417         Rules 246.x, 247.x relate to bitfields, the others speed up
12418         access to xdata mapped I/O devices.
12419
12420         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
12421
12422 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12423
12424         Cleaned up genPackBits and genUnpackBits and added two helper
12425         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
12426         for literal assignments in genPackBits (thanks to Frieder for
12427         reminding me).
12428
12429         * src/mcs51/gen.c
12430         * src/ds390/gen.c
12431
12432 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12433
12434         Fixed bug #748310 (pointer to function type mishandled when the
12435         function name is omitted). Also fixed a SIGSEGV when a function
12436         attribute (reentrant, etc) is used on a non-function or on a
12437         function but misplaced before the parameter list.
12438
12439         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
12440         bug #748310
12441         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
12442         * support/Util/SDCCerr.h,
12443         * support/Util/SDCCerr.c: Added func attr misuse error msg
12444
12445 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12446
12447         Fixed bug #787649 by anonymous
12448         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
12449         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
12450
12451 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12452
12453         Fixed numerous bitfield problems.
12454
12455         * src/SDCC.y: More bitfield related error checking
12456         * src/SDCCsymt.h,
12457         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
12458         * support/Util/SDCCerr.h,
12459         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
12460         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12461         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12462         * support/regression/tests/bitfields.c: tests added
12463
12464 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12465
12466         Made the constant following the "interrupt" keyword optional. If
12467         omitted, the function will not automatically be given an entry
12468         in the interrupt vector table (similar to #pragma NOIV, but
12469         less syntacticly kludgy). The interrupt number is also now
12470         range checked. Also fixed a bug in the high order bit example
12471         in the manual.
12472
12473         * src/SDCC.y
12474         * src/SDCCmem.c
12475         * src/SDCCglue.c
12476         * src/SDCCsymt.h
12477         * support/Util/SDCCerr.c
12478         * support/Util/SDCCerr.h
12479         * doc/sdccman.lyx
12480
12481 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12482
12483         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
12484         * src/SDCCicode.c (operandOperation): rewritten some ops
12485         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
12486         * src/SDCCsymt.c (computeType): literals are handled the same way as any
12487         other type
12488         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
12489         be re-activated by defining REDUCE_LITERALS)
12490         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
12491         unsigned, but are signed by default
12492         * src/SDCCval.c (constVal): rearranged
12493         * src/SDCCval.c (valMod): preliminary fix
12494         * src/SDCCval.c (valCastLiteral): use TYPE_* types
12495         * support/regression/literalop.c: added, work in progress
12496
12497 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12498
12499         Generate warnings for useless declarations like "char data;"
12500         that don't do what new users expect.
12501
12502         * src/SDCC.y
12503         * support/Util/SDCCerr.h
12504         * support/Util/SDCCerr.c
12505
12506 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
12507
12508         * src/SDCCval.c (valMult): fix overflow detection of negative int
12509
12510 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12511
12512         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
12513
12514         Changes to support big endian targets:
12515
12516         * src/ports.h
12517         * src/SDCCglue.c
12518         * src/avr/main.c
12519         * src/ds390/main.c
12520         * src/izt/i186.c
12521         * src/mcs51/main.c
12522         * src/pic/main.c
12523         * src/pic16/main.c
12524         * src/xa51/main.c
12525         * src/z80/main.c
12526
12527 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
12528
12529         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
12530         * device/lib/time.c: fixed warning "integer overflow in expression"
12531
12532 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
12533
12534         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
12535         * src/SDCCval.c (constVal): changed default to signed; hex and octal
12536         constants are unsigned; added recognition of "u" flag for unsigned
12537         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
12538         * src/SDCCval.c (valDiv, valMod): fixed signdness
12539         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
12540         signedness of modulo, left and right shift
12541         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
12542         * support/Util/SDCCerr.h: added warning W_INT_OVL
12543         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
12544         * src/SDCCast.c (ast_print): improved output of constants
12545
12546 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12547
12548         Fixed some warnings when building with MSVC:
12549
12550         * as/mcs51/asdata.c
12551         * as/z80/asdata.c
12552         * as/mcs51/asm.h
12553         * as/z80/asm.h
12554         * link/z80/aslink.h
12555         * link/z80/lkdata.c
12556         * link/z80/lkeval.c
12557         * link/z80/lkgb.c
12558         * link/z80/lkihx.c
12559         * link/z80/lks19.c
12560         * link/z80/lksym.c
12561         * support/cpp2/cpplib.c
12562         * src/ds390/gen.c
12563         * src/mcs51/gen.c
12564
12565 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
12566
12567         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
12568
12569 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12570
12571         * support/librarian/clean.mk: Do not remove Makefile.
12572         * support/librarian/Makefile: added.
12573
12574 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12575
12576         Added librarian to MSVC build:
12577         * all.dsp
12578         * sdcc.dsw
12579         * support/librarian/librarian.dsp
12580
12581         'configure' not needed for librarian, removed:
12582         * support/librarian/configure
12583         * support/librarian/configure.in
12584         * support/librarian/config_in.h
12585         * support/librarian/Makefile.in
12586
12587         Hopefully these ones built the librarian and the rest of sdcc properly:
12588         * Makefile
12589         * Makefile.common.in
12590
12591         Messed up 'configure', so revert to previous version:
12592         * configure
12593         * configure.in
12594
12595 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
12596
12597         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
12598         there, while the mantissa of a double is "only" 53 bits wide.
12599
12600 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12601
12602         Adding sdcclib to the build.  MSVC project coming soon.
12603         Files added/changed:
12604
12605         * support/librarian/clean.mk
12606         * support/librarian/configure
12607         * support/librarian/configure.in
12608         * support/librarian/config_in.h
12609         * support/librarian/Makefile.bcc
12610         * support/librarian/Makefile.in
12611         * support/librarian/sdcclib.c
12612         * Makefile.bcc
12613         * Makefile
12614         * Makefile.common.in
12615         * configure
12616         * configure.in
12617
12618 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12619
12620         Linker now complaints if linked modules have conflicting options, for
12621         example, one compiled using --model-large and another one compiled with
12622         --model-small.  The following files were modified:
12623
12624         * as/mcs51/asdata.c
12625         * as/mcs51/aslink.h
12626         * as/mcs51/asm.h
12627         * as/mcs51/asmain.c
12628         * as/mcs51/asout.c
12629         * as/mcs51/i51pst.c
12630         * as/mcs51/lkdata.c
12631         * as/mcs51/lklibr.c
12632         * as/mcs51/lkmain.c
12633         * as/z80/asdata.c
12634         * as/z80/asm.h
12635         * as/z80/asmain.c
12636         * as/z80/asout.c
12637         * as/z80/z80pst.c
12638         * link/z80/aslink.h
12639         * link/z80/lkdata.c
12640         * link/z80/lklibr.c
12641         * link/z80/lkmain.c
12642         * src/SDCCglue.c
12643
12644 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12645
12646         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
12647         as/mcs51/lklibr.c: Generate a warning when a library is not found.
12648
12649 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
12650
12651         * src/z80/mappings.i: fix _mul[us][int,long] entries
12652
12653 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12654
12655         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
12656
12657 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12658
12659         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
12660         * support/regression/tests/bitopcse.c: added
12661         fixed warning:
12662         * src/avr/gen.c:
12663         * src/pic/gen.c:
12664         * src/pic16/gen.c:
12665         * src/z80/gen.c:
12666         * src/xa51/gen.c:
12667
12668 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12669
12670         added support for new library format to z80, gbz80 linkers:
12671         *link/z80/aslink.h
12672         *link/z80/lklex.c
12673         *link/z80/lklib.c
12674         *link/z80/lklist.c
12675
12676 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12677
12678         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
12679         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
12680
12681 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
12682
12683         added DUMMY_READ_VOLATILE:
12684         * src/SDCC.y:
12685         * src/avr/gen.c:
12686         * src/xa51/gen.c:
12687         * src/z80/gen.c:
12688         * src/pic/gen.c:
12689         * src/pic16/gen.c:
12690         * src/mcs51/gen.c:
12691         * src/ds390/gen.c:
12692         * src/SDCCcse.c (algebraicOpts): many improvements
12693         * src/SDCCcse.h: removed algebraicOpts()
12694         * src/SDCCicode.c (picDummyRead): added
12695
12696 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12697
12698         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12699         "Insufficient space in data memory".
12700
12701 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12702
12703         * src/mcs51/gen.c: fixed bug #771358
12704         * src/z80/gen.c: fixed bug #759087
12705
12706 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12707
12708         * src/pic16/glue.c: minor cleanup by Vangelis
12709
12710 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12711
12712         * device/include/regc515c.h: fixed #758477
12713         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12714         * device/lib/_gptrput.c: saved a few bytes
12715         * my tab spacing is 8, yours too?)
12716         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12717         * device/lib/serial.c: process RX bytes earlier than TX bytes
12718         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12719
12720 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12721
12722         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12723
12724 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12725
12726     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12727
12728 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12729
12730         * device/lib/Makefile.in: bad fix, reverted to 1.43
12731
12732 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12733
12734         * device/lib/Makefile.in: added missing z80 object files
12735
12736 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12737
12738         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12739         pic16 progress by Vangelis:
12740         * src/SDCCglobl.h:
12741         * src/SDCCmain.c:
12742         * src/pic/Makefile:
12743         * src/pic:
12744         * pic/Makefile:
12745         * pic16/device.c:
12746         * pic16/device.h:
12747         * pic16/gen.c:
12748         * pic16/gen.h:
12749         * pic16/genarith.c:
12750         * pic16/glue.c:
12751         * pic16/main.c:
12752         * pic16/pcode.c:
12753         * pic16/pcode.h:
12754         * pic16/pcodepeep.c:
12755         * pic16/peeph.def:
12756
12757 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12758
12759     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12760
12761 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12762
12763     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12764     added gbz80 build to MSVC project.
12765     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12766     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12767     from 8051 stuff and setup so it links using a .lnk file.
12768
12769 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12770
12771     * support/librarian/sdcclib.c: sdcc librarian.
12772     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12773     with sdcclib.
12774
12775 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12776
12777     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12778
12779 2003-07-02  Borut Razem <borut.razem AT siol.net>
12780
12781         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12782         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12783         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12784         src/xa51/main.c, src/z80/main.c:
12785         virtualization of glue() function: each port has it's own glue function,
12786         which is accessed by do_glue function pointer in PORT.general structure
12787
12788 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12789
12790         * DS800C400 fun, improved ROM interface and tinibios.
12791
12792 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12793
12794         * More support for DS80C400. Now includes beginning of interface to ROM.
12795
12796 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12797
12798         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12799
12800 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12801
12802         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12803
12804 2003-06-19  Borut Razem <borut.razem AT siol.net>
12805
12806         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12807
12808 2003-06-19  Borut Razem <borut.razem AT siol.net>
12809
12810         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12811         fixed Z80 port - crt0.o: cannot open.
12812
12813 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12814
12815         * support/Util/MySystem.c (merge_command): revert bad fix
12816
12817 2003-06-18  Borut Razem <borut.razem AT siol.net>
12818
12819         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12820
12821 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12822
12823         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12824         option --use-stdout sends errors to stdout instead of stderr.
12825
12826 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12827
12828         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12829
12830 2003-06-15  Borut Razem <borut.razem AT siol.net>
12831
12832         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12833         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12834         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12835         fixed width array of pointers replaced with sets;
12836         multiple include and lib paths ared transferred to preprocessor and linker
12837         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12838         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12839         fixed width array of pointers
12840         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12841         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12842         fixupPath(), getPathDifference()
12843         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12844         fixed width array of pointers
12845
12846 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12847
12848         * src/pic16/ralloc.c: fix warnings
12849         * src/pic16/pcode.c: fix warning
12850
12851 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12852
12853          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12854         know all the details, but essentially this set of changes enable
12855         the pic16 port to generate movff instructions and generate assembler
12856         directives,
12857         * src/SDCCmain.c:
12858         * src/pic16/gen.c:
12859         * src/pic16/glue.c:
12860         * src/pic16/pcode.c:
12861         * src/pic16/device.c:
12862         * src/pic16/main.c:
12863         * src/pic16/pcode.h:
12864         * src/pic16/pcoderegs.c:
12865         * src/pic16/ralloc.c:
12866         * src/pic16/ralloc.h:
12867
12868 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12869
12870         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12871         added option --vc, so sdcc errors and warnings are compatible with
12872         Microsoft Visual Studio.
12873
12874 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12875
12876         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12877           device/lib/libfloat.lib: added atof function.
12878
12879 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12880
12881         * doc/sdccman.lyx: updated to Lyx 1.3
12882         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12883         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12884         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12885
12886 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12887
12888         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12889
12890 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12891
12892         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12893           additions to the "related tools/documentation" section
12894
12895 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12896
12897         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12898
12899 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12900
12901         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12902         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12903
12904 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12905
12906         * doc/sdccman.lyx: fix double dash and other minor things
12907         * doc/Makefile: fix double dash
12908
12909 2003-05-28  Karl Bongers(patches from Martin Helmling)
12910         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12911           condition and ignore commands.
12912
12913 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12914
12915         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12916           is in parts still quite out of date, I did changes as far as I felt makes sense
12917           for a non-native english speaker.
12918           Please feel free to add to the manual or to correct my changes.
12919         * doc/Makefile: undid touching the date of intermediate tex files.
12920
12921 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12922
12923         * doc/sdccman.lyx: Manual has an index now
12924
12925 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12926
12927         Finalize muluint/mulsint and mululong/mulslong merging:
12928         * device/lib/_mulint.c
12929         * device/lib/_mullong.c
12930         * device/lib/gbz80/mul.s
12931         * device/lib/gbz80/stubs.s
12932         * device/lib/z80/mul.s
12933         * device/lib/z80/stubs.s
12934         * src/SDCCsymt.c (initCSupport)
12935
12936 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12937
12938         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12939         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12940           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12941           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12942           instead of /Zm500.
12943
12944 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12945
12946         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12947           the regression tests I'm not brave enough to enable 245.b, 245.c
12948         * doc/sdccman.lyx: added latex preamble for hyperref package.
12949           Using pdflatex this will give you a hyperlinked pdf file with
12950           bookmarks. (prepend '%' before /usepackage if this breaks something)
12951
12952 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12953
12954          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12955
12956 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12957
12958         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12959
12960 2003-05-21    <johan AT balder>
12961
12962         * src/SDCCglue.c (printIval): fixed bug #739934
12963
12964 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12965
12966         Applied patch from bug 737905 (renamed yylineo to mylineno):
12967         * src/altlex.c
12968         * src/SDCCast.c
12969         * src/SDCglobl.h
12970         * src/SDCC.lex
12971         * src/SDCCsymt.c
12972         * src/SDCCval.c
12973         * src/pic16/pcode.c: Cleaned warnings
12974         * src/pic16/pcodeflow.c: Cleaned warnings
12975         * src/pic16/pcoderegs.c: Cleaned warnings
12976
12977 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12978
12979         * src/pic16/pcode.c: Cleaned warnings
12980         * src/pic16/pcodepeep.c: Cleaned warnings
12981         * src/pic16/ralloc.c: Cleaned warnings
12982
12983 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12984
12985         * doc/sdccman.lyx: fixed bug 739745
12986         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12987
12988 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12989
12990         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12991         it can be defined with CFLAGS when running configure
12992         * src/SDCCmain.c: fixed compiling + linking with object files
12993
12994 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12995
12996         * configure.in: configure for pic16 port,
12997             added --disable-pic16-port
12998         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12999         * src/SDCCmain.c: linkOptions is changed to set *,
13000             added if/endif conditional macros to remove options help
13001             messages from optionsTable when a port is not configured, added
13002             support for the PIc16 port in the ports table, when executing
13003             the compiler with no port specified on command line, a default
13004             port is selected with the new macro DEFAULT_PORT which is
13005             defined in port.h, in setDefaultOptions() linkOptions is removed
13006             from initialization assignment, since now it is a set,
13007             parseCmdLine uses setParseWithComma for linkOptions, in
13008             linkEdit() linkOptions are accessed with new function indexSet()
13009             which returns the i'th item of a set variable. See SDCCset.c, in
13010             linkEdit() when calling buildCmdLine(), added linkOptions as
13011             last argument. Now users can pass arguments to gplink via the
13012             -Wl option, main() uses pic16glue() to glue up pic16 programs
13013         * src/SDCCpeeph.c: various changes to support pic16
13014         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
13015             return the i'th item of the set
13016         * src/SDCCset.h: added function prototype for indexSet()
13017         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
13018         * src/clean.mk: added pic16 in CLEANALLPORTS variable
13019         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
13020             added macro DEFAULT_PORT
13021         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
13022         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
13023             generated
13024         * src/pic16/glue.c: commented out some error producing lines
13025         * src/pic16/main.c: __config directives are commented out to stop
13026             gpasm complaining and test the linkage with gplink, _linkCmd and
13027             _asmCmd changed to be more gplink and gpasm friendly
13028         * src/pic16/peeph.def: peep rule 3 is commented out, since it
13029             produced an error when parsed, peep rule 12 is added to utilize
13030             movff, but it is commented out since the pCode does not support
13031             yet a command with 2 address arguments
13032
13033 2003-05-18    <johan AT balder>
13034
13035         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
13036         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
13037 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
13038
13039         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
13040   Added feature to script commands from file.
13041
13042 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
13043
13044         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
13045         * src/SDCCutil.c: include ctype.h for win32
13046
13047 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
13048
13049         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
13050
13051 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
13052
13053         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
13054   Fixed so you can set breakpoints prior to run, run does not stop
13055   on entry now.  Add tbreak.  Other enhancements and fixes for use
13056   with ddd.
13057
13058 2003-05-12  Borut Razem <borut.razem AT siol.net>
13059
13060         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
13061
13062 2003-05-11  Borut Razem <borut.razem AT siol.net>
13063
13064         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
13065         the path of bin directory, so that PATH is the only env. variable, which has to be set
13066         in case of standard installation.
13067         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
13068         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
13069         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
13070
13071 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
13072
13073         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
13074         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
13075         temp files are in the port dir; clean the gen/test directory when
13076         generating new test.c
13077         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
13078         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
13079         * support/regression/tests/zeropad.c: added
13080
13081 2003-05-09    <johan AT balder>
13082
13083         * src/SDCCglue.c: fixed bug #597940
13084
13085 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
13086
13087         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
13088   cache sfr, optimize next,step, fix off by one sourceline,
13089   support ddd list function.
13090         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
13091
13092 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
13093
13094         * support/regression/HTMLgen.py: added compare_s2f()
13095         * support/regression/Makefile: redo 1.27
13096         * support/regression/generate-cases.py: redo 1.5
13097
13098 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
13099
13100         * support/regression/tests/float.c: workaround 33 bit hex constant
13101         * support/regression/tests/simplefloat.c: fix division for host
13102
13103 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
13104
13105         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
13106         that tame's the PIC's over-aggressive optimizer.
13107
13108 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13109
13110          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
13111          support for MSVC.
13112
13113 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
13114
13115         Initial support for DS80C400. "Hello world" runs on TINIm400
13116         (with polled I/O).
13117
13118 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
13119
13120          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
13121          * Some notes on ddd usage added in debugger/README
13122          Martin Helmling adding more features and fixes for ddd GUI debugger.
13123          Code added for nexti, stepi, up, down, and other adjustments.
13124
13125 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
13126
13127         * src/pic/pCodepeep.c non-wildcard asmops are now handled
13128         * src/pic/peeph.def Added two rules to optimize carry manipulation
13129         * src/pic/* removed debug printfs
13130
13131 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
13132
13133         * debugger/mcs51/cmd.c: added header newalloc.h
13134
13135 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
13136
13137         * as/Makefile: new EXEEXT
13138         * as/z80/Makefile: remove trailing slash of BUILDIR
13139         * as/z80/clean.mk: new EXEEXT
13140         * Makefile.common.in: add to CFLAGS (and others), don't replace it
13141         * support/cpp2/Makefile.in: new EXEEXT
13142         * src/pic/glue.c (pic14emitRegularMap): fixed warning
13143
13144 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
13145
13146         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
13147         EXEEXT was introduced to fix all related problems with targets
13148         "clean", "install" and "uninstall"; a couple of further flaws
13149         especially with "clean" have been fixed too
13150         * as/mcs51/Makefile.in
13151         * as/mcs51/clean.mk
13152         * as/z80/Makefile
13153         * Makefile
13154         * clean.mk
13155         * debugger/mcs51/Makefile.in
13156         * debugger/mcs51/clean.mk
13157         * link/z80/Makefile
13158         * link/z80/Makefile.in
13159         * link/z80/clean.mk
13160         * link/Makefile
13161         * packihx/Makefile.in
13162         * packihx/clean.mk
13163         * sim/ucsim/Makefile
13164         * sim/ucsim/clean.mk
13165         * sim/ucsim/avr.src/Makefile.in
13166         * sim/ucsim/avr.src/clean.mk
13167         * sim/ucsim/s51.src/Makefile.in
13168         * sim/ucsim/s51.src/clean.mk
13169         * sim/ucsim/xa.src/Makefile.in
13170         * sim/ucsim/xa.src/clean.mk
13171         * sim/ucsim/z80.src/Makefile.in
13172         * sim/ucsim/z80.src/clean.mk
13173         * sim/ucsim/main_in.mk
13174         * sim/ucsim/packages_in.mk
13175         * sim/ucsim/gui.src/Makefile.in
13176         * sim/ucsim/gui.src/serio.src/Makefile.in
13177         * sim/ucsim/gui.src/serio.src/clean.mk
13178         * src/Makefile.in
13179         * src/clean.mk
13180         * support/cpp2/Makefile.in
13181         * support/cpp2/clean.mk
13182         * support/makebin/Makefile
13183         * support/makebin/clean.mk
13184         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
13185         * doc/sdccman.lyx: --program-suffix no longer needed
13186
13187 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
13188
13189          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
13190          Martin Helmling added support for ddd GUI debugger.
13191          Code added to display assembly, set variables, and other commands
13192          to interface to ddd.
13193
13194 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
13195
13196         * as/Makefile: fix target clean
13197         * as/clean.mk: fix target clean
13198         * as/z80/clean.mk: fix target clean
13199
13200 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
13201
13202         * Makefile.common.in: added  AT EXEEXT AT
13203         * configure.in: removed all mingw32 stuff
13204         * configure: rebuilt from configure.in
13205         * doc/sdccman.lyx: updated section "installation"
13206         * support/scripts/sdcc_mingw32: adapted to configure
13207         * support/scripts/sdcc_cygwin_mingw32: added
13208
13209 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
13210
13211         * src/pic Added object file support for the PIC port
13212         * src/pic Applied patch from Craig Franklin (this started the object file support)
13213         * src/regression Updated the PIC regression tests for object files
13214
13215 2003-04-20  Borut Razem <borut.razem AT siol.net>
13216
13217         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
13218           lklex.c: In function `getfid':
13219           lklex.c:203: warning: array subscript has type `char'
13220         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
13221           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
13222         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
13223           stack handling macros
13224
13225 2003-04-19  Borut Razem <borut.razem AT siol.net>
13226
13227         * "handling space characters in file path" task:
13228         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
13229         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
13230         * support/Util/MySystem.h: make it self-sufficient
13231         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
13232           src/z80/main.c, sdcc/as/mcs51/lklex.c:
13233           handling space characters in file path
13234         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
13235           (it will be used by assemblers, which have their own includes, e.g. gpasm)
13236         * support/Util/MySystem.c: handling space characters in executable's path
13237
13238 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
13239
13240         * as/z80/Makefile: fix permanent rebuild of z80
13241         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
13242         * support/regression/tests/bitfields.c: added Johan's bitfields.c
13243
13244 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
13245
13246         * src/SDCCopt.c: add special case optimization to replace modulo by
13247           a power of two with a bitwise AND.
13248
13249 2003-04-18    <johan AT balder>
13250
13251         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
13252
13253 2003-04-17    <johan AT balder>
13254
13255         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
13256         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
13257
13258 2003-04-13  Borut Razem <borut.razem AT siol.net>
13259
13260         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
13261         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
13262           fixed mingw problem in adl_NORMALIZE_PATH
13263
13264 2003-04-12  Borut Razem <borut.razem AT siol.net>
13265
13266         * fixed "#pragma SAVE/RESTORE can not be nested":
13267         * src/SDCC.lex: reworked pragma handling functions
13268         * sdcc/src/SDCCglobl.h: reworked stack handling macros
13269         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
13270
13271 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13272
13273         * src/SDCCutil.c (pathEquivalent): defined but not used
13274         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
13275         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
13276         * configure: rebuilt from configure.in
13277         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13278         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13279         * device/include/Makefile.in: replace sdcc_datadir
13280         * device/lib/Makefile.in: replace sdcc_datadir
13281         * Makefile.common.in: add LDFLAGS from configure
13282         * packihx/Makefile.in: use LDFLAGS
13283         * src/Makefile.in: use LDFLAGS
13284         * support/cpp2/Makefile.in: add LDFLAGS from configure
13285         * support/makebin/Makefile: use LDFLAGS
13286         * .version: bumped version number to 2.3.5
13287
13288 2003-04-12  Borut Razem <borut.razem AT siol.net>
13289
13290         * completed "different paths" task:
13291         * src/SDCCmacro.c: fixed bug in handling quotes
13292         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
13293         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
13294
13295 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13296
13297         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
13298
13299 2003-04-11 kevin Vigor <kevin AT vigor.nu>
13300
13301         * ds390/gen.c ds390/peeph.def: fix bug 706781
13302
13303 2003-04-11  Borut Razem <borut.razem AT siol.net>
13304
13305         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
13306
13307 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
13308
13309         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
13310         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
13311          set - this bit used to not be set...).
13312         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
13313           bad code in PIC Port
13314         * src/regression/and2.c added to test bug 609268
13315         * src/regression/Makefile added and2.c to regression test
13316
13317
13318 2003-04-08    <johan AT CP255758-A>
13319
13320         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
13321         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
13322         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
13323
13324 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
13325
13326         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
13327         fix bug #487815
13328         * support/cpp2/Makefile.in: fix bug #487815
13329         * configure: rebuilt from configure.in
13330         * Makefile.common.in: docdir changed, new path suffixes
13331         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13332         * sdcc_vc_in.h: reflect changes from sdccconf.h
13333         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
13334         * src/SDCCutil.h: remove BINDIR hack
13335         * doc/sdccman.lyx: update new path hierarchy
13336
13337 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13338
13339         * src/SDCCpeeph.c: added okToRemoveSLOC test
13340
13341 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13342
13343         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
13344
13345 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13346
13347         * src/SDCCpeeph.c: added labelIsReturnOnly test
13348         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
13349
13350 2003-04-05    <johan AT balder>
13351
13352         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
13353         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
13354         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
13355         * src/SDCCast.c: fixed a warning
13356         * src/SDCCast.h: fixed a warning
13357         * src/SDCCicode.c (operandFromAst): fixed a warning
13358
13359 2003-04-04    <johan AT balder>
13360
13361         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
13362         * src/SDCCast.c (decorateType): fixed bug #715076
13363         * src/SDCC.y: fixed bug #702907
13364
13365 2003-04-03    <johan AT balder>
13366
13367         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
13368         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
13369         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
13370         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
13371         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
13372
13373 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
13374
13375         * _decdptr.c: fix return values
13376         * _gptrget.c: fix return values
13377         * _gptrgetc.c: fix return values
13378         * _gptrput.c: fix return values
13379         * _mulint.c: fix return values
13380         * as/z80/Makefile: fix 'make -j' problem
13381
13382 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
13383
13384         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
13385         * configure.in: big cleanup, updated to autoconf 2.5x
13386         * configure: rebuilt from configure.in
13387         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13388         * sdcc_vc_in.h: reflect changes from sdccconf.h
13389         * doc/Makefile: fixed a flaw in "make install"
13390
13391 2003-04-02    <johan AT balder>
13392
13393         * src/ds390/gen.c (genCmp): no comments
13394         * src/mcs51/gen.c (genCmp): no comments
13395         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
13396         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
13397
13398 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
13399
13400         * support/regression/generate-cases.py: place generated file in given sub directory
13401         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
13402         * support/regression/Makefile: improvements for 'make -j';
13403         side effect: it's simpler and faster now
13404
13405 2003-03-31  Borut Razem <borut.razem AT siol.net>
13406
13407         * src/z80/main.c: link-{port} and as-{port} defined without path
13408         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
13409
13410 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
13411
13412         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
13413
13414 2003-03-30  Borut Razem <borut.razem AT siol.net>
13415
13416         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
13417           changed type of list parameter to set
13418         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
13419         * src/port.h: changed type of do_assemble() parameter to set
13420         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
13421           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
13422           definition of "cppoutfilename" macro with NULL value in preProcess()
13423         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
13424         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
13425         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
13426           replaced with set *binPathSet
13427         * shash_add() deallocates the item, if allready exsists, before adding the new one
13428         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
13429
13430 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
13431
13432         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
13433           a nested for loop bug in the PIC port
13434         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
13435           for loops
13436
13437 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
13438
13439         * support/Util/dbuf.h: remove C++ stuff to make it portable
13440
13441 2003-03-28  Borut Razem <borut.razem AT siol.net>
13442
13443         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
13444           literal strings in stringLiteral()
13445         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
13446         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
13447           to the project
13448
13449 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
13450
13451         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
13452
13453 2003-03-26    <johan AT balder>
13454
13455         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
13456         * src/ds390/gen.c (saveRegisters): catched symbol abuse
13457         * src/SDCCast.c (decorateType): fixed " -v < 3"
13458
13459 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
13460
13461         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
13462         Added Lenny Story's debug infrastructure changes:
13463         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
13464         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
13465         * src/cdbFile.c: added
13466         * src/SDCCdebug.c: added
13467         * src/SDCCdebug.h: added
13468         * src/SDCCast.c (createFunction)
13469         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
13470         * src/SDCCmain.c (parseCmdLine, main)
13471         * src/SDCCmem.c (redoStackOffsets)
13472         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
13473         * src/SDCCsymt.h
13474         * src/common.h
13475         * src/avr/gen.c (genAVRCode)
13476         * src/ds390/gen.c (gen390Code)
13477         * src/mcs51/gen.c (gen51Code)
13478         * src/pic/gen.c (genpic14Code)
13479         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
13480         * src/xa51/gen.c (genXA51Code)
13481         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
13482
13483 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13484
13485         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
13486         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
13487
13488 2003-03-22    <johan AT balder>
13489
13490         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
13491
13492 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
13493
13494         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
13495         * doc/cdbfileformat.lyx: added, written by Lenny Story
13496         * doc/Makefile: added cdbfileformat.lyx
13497         * doc/clean.mk: added cdbfileformat.lyx
13498
13499 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
13500
13501         * src/mcs51/peeph.def: fix bug #705773
13502
13503 2003-03-20    <johan AT balder>
13504
13505         An sfr/sbit can have an "at #" AND an initializer
13506         * src/SDCCsymt.c (checkSClass):
13507         * src/SDCCmem.c (allocGlobal):
13508         * src/SDCCmem.c (allocLocal):
13509         * src/SDCCast.c (createBlock):
13510
13511 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
13512
13513         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
13514
13515 2003-03-16    <johan AT balder>
13516
13517         Undid the hackup of const and volatile, the problem is much bigger
13518         * src/SDCC.y:1.65
13519         * src/SDCCast.c:1.171
13520         * src/SDCCglue.c:1.138
13521         * src/SDCCicode.c:1.146
13522         * src/SDCCsymt.c:1.150
13523         * src/SDCCval.c:1.65
13524
13525 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
13526
13527         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
13528         * src/ds390/gen.c (genAddrOf): fixed bug #704087
13529
13530 2003-03-13    <johan AT balder>
13531
13532         Hackup const and volatile modifiers in type chains a bit:
13533         * src/SDCC.y:1.63
13534         * src/SDCCast.c:1.169
13535         * src/SDCCglue.c:1.136
13536         * src/SDCCicode.c:1.143
13537         * src/SDCCsymt.c1.146
13538         * src/SDCCsymt.h1.59
13539         * src/SDCCval.c:1.63
13540
13541 2003-03-12    <johan AT balder>
13542
13543         * src/SDCCBBlock.h: more LRH debugging junk
13544         * src/SDCCcflow.h: more LRH debugging junk
13545         * src/SDCCloop.c: more LRH debugging junk
13546         * src/SDCC.y (struct_declaration): fixed bug #697590
13547         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
13548         * src/ds390/gen.c (aopForRemat): fixed bug #700031
13549         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
13550
13551 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13552         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
13553         test function names must now match exactly).
13554         * src/SDCCcse.c: added special case in findCheaperOp to allow
13555         extending a short integer. Makes less awful code for bug 700121 test case.
13556
13557 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13558
13559         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
13560         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
13561
13562 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13563
13564         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
13565         actually called (operandsNotEqual() was called for all
13566         operandsNotEqualX tests).
13567
13568 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13569
13570         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
13571         with shorter literals. Fixes bug 700121.
13572
13573 2003-03-11    <johan AT balder>
13574
13575         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
13576
13577 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
13578
13579         * src/SDCCloop.c (mergeRegions): an evil beast is dead
13580         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
13581
13582 2003-03-10  Borut Razem <borut.razem AT siol.net>
13583
13584         * src/SDCCmain.c: pipe preprocessor's output
13585         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13586         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13587         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13588         which closes all pipes in pipeSet set
13589         * src/SDCCset.c: free deleted item in function deleteSetItem()
13590         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13591         moved from z80 to src subproject
13592         * .version: increased version number to 2.3.4
13593
13594 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
13595
13596         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
13597         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
13598         * support/regression/ports/xa51/spec.mk: fix typo
13599
13600 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
13601
13602         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
13603
13604 2003-03-09  Borut Razem <borut.razem AT siol.net>
13605
13606         * src/SDCCmain.c: pipe preprocessor's output
13607         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13608         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13609         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13610         which closes all pipes in pipeSet set
13611         * src/SDCCset.c: free deleted item in function deleteSetItem()
13612         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13613         moved from z80 to src subproject
13614
13615 2003-03-09  Borut Razem <borut.razem AT siol.net>
13616
13617         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
13618         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
13619         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
13620         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
13621         * src/SDCCglobl.h: unification of WIN32 native definitions
13622
13623 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13624
13625         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
13626
13627 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13628
13629         * src/configure.in:   check for endianess (even while cross-compiling)
13630         * src/configure:      check for endianess (even while cross-compiling)
13631         * src/configure_in.h: check for endianess (even while cross-compiling)
13632         * src/avr/gen.c:        remove old endianess stuff
13633         * src/mcs51/gen.c:      remove old endianess stuff
13634         * src/ds390/gen.c:      remove old endianess stuff
13635         * src/pic/gen.c:        remove old endianess stuff
13636         * src/pic/genarith.c:   remove old endianess stuff
13637         * src/pic/glue.c:       fix endianess check
13638         * src/pic16/gen.c:      remove old endianess stuff
13639         * src/pic16/genarith.c: remove old endianess stuff
13640         * src/pic16/glue.c:     fix endianess check
13641         * src/xa51/gen.c:       remove old endianess stuff
13642         * src/z80/gen.c:        fix endianess check
13643         * src/SDCCglue.c:       fix endianess check
13644         * src/ds390/peeph.def: fix bug 700036
13645
13646 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13647
13648         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
13649         * src/configure: find appropriate data-types on host for SDCC's int and long
13650         * src/configure.in: find appropriate data-types on host for SDCC's int and long
13651         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
13652         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
13653
13654 2003-03-07    <johan AT balder>
13655
13656         Just a big NOOP:
13657                 some minor cleanups before the big shot
13658                 OP_DEFS and OP_USES now use Kevin's protection
13659                 new option --nolabelopt
13660
13661         * src/SDCCBBlock.c:
13662         * src/SDCCast.c,:
13663         * src/SDCCcflow.c:
13664         * src/SDCCcse.c:
13665         * src/SDCCicode.c:
13666         * src/SDCCicode.h:
13667         * src/SDCClabel.c:
13668         * src/SDCCloop.c:
13669         * src/SDCCmain.c:
13670         * src/ds390/ralloc.c:
13671         * src/mcs51/ralloc.c:
13672         * src/pic/ralloc.c:
13673         * src/xa51/ralloc.c:
13674         * src/z80/ralloc.c:
13675
13676 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
13677
13678         * src/pic/pcode.c (get_op): fix 64 bit warnings
13679         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
13680         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
13681         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
13682         * support/regression/tests/malloc.c: fix 64 bit warnings
13683
13684 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
13685
13686         * src/mcs51/gen.c (genMinus): fixed bug 696436
13687
13688 2003-03-02  Borut Razem <borut.razem AT siol.net>
13689
13690         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13691
13692 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13693
13694         * configure.in: test for mkstemp
13695         * sdccconf_in.h: add HAVE_MKSTEMP
13696
13697 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13698
13699         * device/include/ctype.h: removed warning while using --stack-auto
13700         * device/include/malloc.h: removed warning while using --stack-auto
13701         * device/include/string.h: removed warning while using --stack-auto
13702
13703 2003-02-23  Borut Razem <borut.razem AT siol.net>
13704
13705         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13706         because NDEBUG is defined (see man assert)
13707         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13708
13709 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13710
13711         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13712         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13713
13714 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13715
13716         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13717         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13718
13719 2003-02-18    <johan AT balder>
13720
13721         * as/mcs51/asmain.c (asmbl): module can start with a digit
13722         * as/z80/asmain.c (asmbl): module can start with a digit
13723
13724 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13725
13726         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13727         * src/asm.c: fix pipe() for Mingw32
13728
13729 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13730
13731         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13732         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13733         make -V work again; --c1mode reads now from stdin
13734         * doc/sdccman.lyx: added --c1mode
13735         * support/Util/SDCCerr.c: new messages for c1 mode
13736         * support/Util/SDCCerr.h: new messages for c1 mode
13737         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13738
13739 2003-02-15    <johan AT balder>
13740
13741         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13742
13743 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13744
13745         * doc/sdccman.lyx: Environment variables, -o and other minor things
13746
13747 2003-02-14    <johan AT balder>
13748
13749         * src/xa51/main.c: before anyone really tries to use it :)
13750
13751         * Install doc's in share/sdcc/doc
13752         * removed some obsolete files
13753         * Do a proper make distclean and uninstall
13754         M Makefile.common.in
13755         R sdccbuild.sh
13756         M as/Makefile
13757         M device/include/Makefile.in
13758         M device/lib/Makefile.in
13759         M doc/sdccman.lyx
13760         M link/Makefile
13761         M sim/ucsim/doc/Makefile.in
13762         M src/clean.mk
13763         R src/avr/peeph.rul
13764         R src/xa51/peeph.rul
13765         M support/cpp2/Makefile.in
13766         M support/makebin/Makefile
13767
13768
13769 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13770
13771         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13772
13773 2003-02-10  Borut Razem <borut.razem AT siol.net>
13774
13775         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13776         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13777         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13778         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13779         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13780         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13781         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13782         src/z80/Makefile.bcc: Borland Makefile cleanup
13783         * as/z80/Makefile.bcc: Added Borland Makefile
13784         * support/cpp2/borland.h: Removed
13785
13786 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13787
13788         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13789         * src/SDCC.lex: new pragma NOIV
13790         * src/SDCCglobl.h: new pragma NOIV
13791         * src/SDCCmem.c: new pragma NOIV
13792
13793 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13794
13795         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13796
13797 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13798
13799         * src/SDCCmain.c: signal handling is switched off by --debug
13800         * doc/Makefile: small fix for install; use clean.mk again
13801         * doc/clean.mk: clean *.pdf and *.html too
13802
13803 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13804
13805         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13806         * device/lib/printfl.c: fix a ds390 bug by making it portable
13807         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13808         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13809         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13810         * debugger/mcs51/cmd.c: converted multi-line string literals
13811         * sim/ucsim/globals.cc: converted multi-line string literals
13812         * src/SDCCmain.c: introduced signal handler to remove temp files
13813         * doc/Makefile: small tweaks, implement clean
13814         * doc: removed generated files
13815
13816 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13817
13818         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13819         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13820         Address Record is not correctly generated for DS390."
13821
13822 2003-02-02  Borut Razem <borut.razem AT siol.net>
13823
13824         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13825         * as/mcs51/asm.h: fixed compilation with Borland C
13826         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13827         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13828         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13829         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13830         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13831         src/z80/Makefile.bcc: delete $(LIB) only if exist
13832         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13833
13834 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13835
13836         * device/include/malloc.h: introduced NULL
13837         * device/include/string.h: introduced NULL
13838         * device/include/stdlib.h: introduced NULL
13839         * device/lib/_memcpy.c: removed NULL
13840         * device/lib/_strcat.c: removed NULL
13841         * device/lib/_strchr.c: removed NULL
13842         * device/lib/_strcmp.c: removed NULL
13843         * device/lib/_strcpy.c: removed NULL
13844         * device/lib/_strcspn.c: removed NULL
13845         * device/lib/_strlen.c: removed NULL
13846         * device/lib/_strncat.c: removed NULL
13847         * device/lib/_strncmp.c: removed NULL
13848         * device/lib/_strncpy.c: removed NULL
13849         * device/lib/_strpbrk.c: removed NULL
13850         * device/lib/_strrchr.c: removed NULL
13851         * device/lib/_strspn.c: removed NULL
13852         * device/lib/_strstr.c: removed NULL
13853         * device/lib/_strtok.c: removed NULL
13854         * device/lib/malloc.c: removed NULL, include own header
13855
13856 2003-02-02    <johan AT balder>
13857
13858         * 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
13859         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13860         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13861         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13862         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13863         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13864
13865 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13866
13867         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13868         area 'DATA'"
13869
13870 2003-02-01    <johan AT balder>
13871
13872         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13873
13874 2003-01-31    <johan AT CP255758-A>
13875
13876         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13877
13878 2003-01-30    <johan AT balder>
13879
13880         * src/SDCCBBlock.c: automatic bug detection
13881         * src/SDCCicode.c: automatic bug detection
13882
13883 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13884
13885         * src/SDCCglobl.h:   now --xram-size 0 works
13886         * src/SDCCmain.c:    now --xram-size 0 works
13887
13888 2003-01-29    <johan AT balder>
13889
13890         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13891
13892 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13893
13894         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13895         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13896         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13897         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13898         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13899         * src/SDCCmain.c:    Added options --xram-size and --code-size
13900
13901 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13902
13903         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13904         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13905
13906 2003-01-27    <johan AT balder>
13907
13908         * src/SDCC.y: fixed bug #613764
13909
13910 2003-01-26    <johan AT balder>
13911
13912         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13913         * src/SDCCsymt.h: fixed bug #673374
13914         * src/SDCCglue.c: fixed bug #661910
13915         * src/SDCCast.c: fixed bug #458099 and 673374
13916
13917 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13918
13919         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13920         * as/mcs51/strcmpi.h: added
13921         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13922         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13923         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13924         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13925         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13926         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13927         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13928         * as/mcs51/Makefile.aslink: new module strcmpi
13929         * as/mcs51/Makefile.asx8051: new module strcmpi
13930         * as/mcs51/Makefil.bcc: new module strcmpi
13931         * as/mcs51/Makefile.in: new module strcmpi
13932         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13933
13934 2003-01-26    <johan AT balder>
13935
13936         * src/SDCCglue.c: reverted back to 1.124
13937         * src/SDCCast.c: reverted back to 1.156
13938         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13939
13940 2003-01-25    <johan AT balder>
13941
13942         * src/SDCCglue.c: A better fix for bug #661910
13943         * src/SDCCast.c: A better fix for bug #661910
13944         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13945
13946 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13947
13948         * src/Makefile.in: remove spawn.o
13949         * src/SDCCmain.c: remove spawn.h
13950         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13951         * src/spawn.c: removed
13952         * src/spawn.h: removed
13953         * support/regression/ports/ds390/spec.mk: link with -r
13954
13955 2003-01-24    <johan AT CP255758-A>
13956
13957         * src/ds390/gen.c (aopOp): fixed bug #667458
13958         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13959         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13960         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13961
13962 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13963
13964         * src/mcs51/peeph.def: better assembler identation by Frieder
13965         * src/mcs51/gen.c: better assembler identation by Frieder
13966
13967 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13968
13969         * as/z80/string.h: removed for gcc 3.2
13970         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13971         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13972
13973 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13974
13975         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13976         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13977         * support/regression/Makefile: separate temp files for ports
13978         * support/regression/generate-cases.py: separate temp files for ports
13979         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13980         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13981
13982 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13983
13984         * moved tinitalk to device/examples/ds390
13985
13986 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13987
13988         * as/mcs51/lkmem.c: rflag is for DS390
13989         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13990         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13991                          (linkEdit): move mem- and map-files the same way as ihx-files
13992         * src/z80/main.c (_setDefaultOptions): removed --generic
13993         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13994         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13995         * src/pic/glue.c (picglue): --c1mode works again
13996         * src/pic16/glue.c (pic16glue): --c1mode works again
13997         * src/asm.c (printCLine): fix #660034
13998
13999 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
14000
14001         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
14002         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
14003         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
14004         * as/mcs51/lkmem (summary): better fix for sp problem
14005         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
14006         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
14007         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
14008                                               remove --stack-after-data
14009
14010 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
14011
14012         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
14013         * src/SDCCutil.c (join): ugly bug: missing '\0'
14014         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
14015
14016 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
14017
14018         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
14019         * src/port.h: typo
14020         * src/pic/main.c (_asmCmd): gpasm supports -o
14021         * src/z80/main.c: more general macros
14022         * device/lib/Makefile.in: remove intermediate files
14023
14024 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
14025
14026         * .version: Bumped version number to 2.3.3
14027         * src/SDCCBBlock.c: new option -o
14028         * src/SDCCglobl.h: new option -o
14029         * src/SDCCglue.c: new option -o
14030         * src/SDCCmain.c: new option -o
14031         * src/asm.c: new option -o
14032         * src/ds390/main.c: new option -o
14033         * src/pic/glue.c: new option -o
14034         * src/pic/pcode.c: new option -o
14035         * src/pic/ralloc.c: new option -o
14036         * src/pic16/glue.c: new option -o
14037         * src/pic16/pcode.c: new option -o
14038         * src/pic16/ralloc.c: new option -o
14039         * src/z80/main.c: new option -o
14040         * device/lib/Makefile.in: use -o
14041         * support/regression/ports/ds390/spec.mk: use -o
14042         * support/regression/ports/gbz80/spec.mk: use -o
14043         * support/regression/ports/mcs51/spec.mk: use -o
14044         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
14045         * support/regression/ports/z80/spec.mk: use -o
14046         * support/regression/ports/ucz80/spec.mk: use -o
14047         * support/regression/ports/xa51/spec.mk: use -o
14048         * support/regression/fwk/lib/timeout.c: fix usage string
14049
14050 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
14051         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
14052
14053 2003-01-07    <johan AT balder>
14054
14055         * src/SDCCast.c (decorateType): fixed bug #600035
14056
14057 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
14058         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
14059         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
14060         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
14061         * src/pic/pcode.c: outcommented unused variable to remove warnings
14062         * src/pic/ralloc.c: outcommented unused variable to remove warnings
14063
14064 2003-01-06    <karl AT turbobit.com>
14065         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
14066    regression tests.
14067
14068 2003-01-06    <johan AT balder>
14069
14070         * src/SDCCicode.c: fixed array add
14071
14072 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
14073         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
14074         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
14075
14076 2003-01-04    <johan AT balder>
14077
14078         * src/SDCCval.c (getNelements): fixed the initialized array of structures
14079
14080 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14081         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
14082
14083 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
14084         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
14085         * support/regression/tests/bug-524697.c: fit mem usage into 8032
14086
14087 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
14088         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
14089
14090 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
14091         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
14092
14093 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
14094         * src/mcs51/main.c: removed {bindir}{sep} from aslink
14095
14096 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14097
14098     * in /sdcc/as/mcs51/ changed these files in order to create an
14099     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
14100     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
14101     following files to include the previous two files: aslink.dsp,
14102     Makefile.aslink, Makefile.bcc, and Makefile.in.
14103
14104     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
14105     .adb instead of .cdb
14106
14107 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14108
14109         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
14110         value from option --iram-size.
14111
14112 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14113
14114         * /sdcc/as/mcs51/lklist.c: added boundary check before using
14115         dram[] array.
14116
14117 2002-09-18    <wiml AT hhhh.org>
14118
14119         * SDCClrange.h: exposed setFromRange() and setToRange()
14120         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
14121           packRegsForAccUse() (bug 542397)
14122         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
14123           multiple times and emitting the fetch operations more than once
14124           added aopGetUsesAcc() function to allow binary operators to
14125           fetch their operands in the correct order; made genMinus() emit
14126           compact code for X = LITERAL - Y
14127
14128 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14129         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
14130         sprintf() in line 1267.
14131
14132 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14133         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
14134         like ports.
14135
14136 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14137         Changes to aslink (All the changes are marked with 'JCF'):
14138
14139         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
14140         summary().
14141
14142         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
14143         area BSEG.  Also moves, if possible, the DATA area down into the internal
14144         ram so more space is available.
14145
14146         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
14147         sflag.
14148
14149         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
14150         not bytes.  Function summary() which creates a memory usage summary
14151         file with extension .mem.  Reports of overlaping stack and small stack
14152         size.  If the space for the stack is less than 16 bytes aslink trows a
14153         warning.
14154
14155         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
14156         the 8051.  Option 'y' for memory summary output file.
14157
14158         Changes to sdcc (All the changes are marked with 'JCF'):
14159
14160         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
14161
14162         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
14163         overlaying area for it (uses RegBankUsed[4]).
14164
14165         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
14166         bank zero as used by default.  By default aslink locates the stack
14167         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
14168         the creation of the .mem file.  Delegates the allocation of data area
14169         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
14170         the begining of the stack area to aslink.
14171
14172         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
14173         glue() in SDCCglue.c creates an area for it.
14174
14175 2002-09-03  Borut Razem <borut.razem AT siol.net>
14176         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
14177         sdcc/src/pic/glue.c:
14178         introduced atexit() handler for teporay files removal in case of
14179         errors, assertions, ...
14180
14181 2002-08-29  Borut Razem <borut.razem AT siol.net>
14182         * sdcc/support/cpp2/auto-host_vc_in.h:
14183         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
14184         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
14185         Maybe there is a similar problem with BORLANDC? It should be checked!
14186
14187         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
14188         corrected improper use of assert: the assignment to clr variable was done inside the assert.
14189         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
14190         was not executed, and the compiler (cl) launched a warning:
14191         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
14192
14193 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
14194         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
14195
14196 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
14197         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
14198
14199         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
14200           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
14201           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
14202           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
14203           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
14204           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
14205           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
14206         - added Release configuration in VS projects
14207         - review of compiler an linker options
14208         - VC .exe files are generated in bin_vc directory, not to interfere
14209           with binaries generated from other projects (cygwin, mingw, bcc ...)
14210
14211         * sdcc/src/yacc.dsp: added
14212
14213         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
14214         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
14215         and insert the version number definitions from .version
14216
14217         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
14218
14219         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
14220         added - genarate auto-host.h using auto-host_vc_in.h as template
14221
14222         * sdcc/sdcc_vc.h,
14223         removed from CVS, generated automatically
14224
14225 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
14226         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
14227
14228 2002-08-11  Borut Razem <borut.razem AT siol.net>
14229         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
14230
14231 2002-08-10  Borut Razem <borut.razem AT siol.net>
14232         * src/SDCCmain.c (main):
14233         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
14234         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
14235         The consequence was that some temporary files were not removed.
14236
14237         * src/SDCCglue.c:
14238         unification of code in functions tempfilename() and tempfile():
14239         function tempnam() is defined in Visual Studio 6.0 and .NET
14240
14241         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
14242
14243         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
14244           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
14245         - removed compiler command line option /WX: Treats all warnings as errors
14246         - update a list of source files, included into the project
14247
14248         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
14249           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
14250         changed project type to Generic Project so that can be correcly converted to VS.NET project
14251
14252         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
14253
14254         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
14255
14256         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
14257
14258         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
14259         added return 0 statements after assert() to make compiler happy
14260
14261         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
14262         added newline in the def file to keep MSC compiler satisfied
14263
14264         * sdcc/src/z80/gen.c:
14265         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
14266           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
14267         - solved MSC error in function aopDump()
14268
14269         * sdcc_vc.h: define PREFIX as "\\sdcc"
14270
14271 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
14272         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
14273
14274 2002-06-22  Scott Dattalo <scott AT dattalo.com>
14275         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
14276         - Rewrote the register banking algorithm.
14277         - Added pCode live-range analysis to registers (for now, only non-used and
14278         singly-used registers optimized away)
14279
14280         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
14281
14282         * 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.
14283
14284 2002-05-10  Scott Dattalo <scott AT dattalo.com>
14285         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
14286
14287 2002-04-22  Michael Hope  <michaelh AT vroom>
14288
14289         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
14290
14291         * configure.in (DD_COPT): Added include support required for gbdk.
14292
14293         * .version: Bumped version number just to increase it.
14294
14295         * src/SDCCmain.c: Added -nostdinc to the default options.
14296
14297 2002-04-15  Michael Hope  <michaelh AT vroom>
14298
14299         * device/lib/z80/printf.c (sprintf): Added.
14300
14301         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
14302
14303         * src/z80/peeph.def: Added transpose redundent load rule.
14304
14305         * src/z80/main.c: Added force callee saves for jaune.
14306
14307         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
14308
14309         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
14310
14311 2002-03-28  Johan Knol  <johan AT balder>
14312
14313         * src/SDCCval.c: fixed bug #532436
14314
14315 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14316         * /src/port.h:
14317         Added "char *Processor" field to the port structure.
14318
14319         * /src/SDCCmain.c:
14320         Added -p option. Allows port dependent processor to be specified.
14321
14322         * all ports:
14323         Initialized the new field char *Processor field to NULL in all ports
14324
14325         * /src/pic/*:
14326         Compiler generated registers for interrupt context saving
14327         were not getting allocated.
14328
14329 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
14330
14331         * /src/SDCCast.c:
14332         Fixed left shift. Will promote the left side of a left shift
14333         if a) left shifting more than size of operand or b) when assigned
14334         to something size > size of left side
14335
14336 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14337         * src/pic/*
14338         tons of changes. Register allocation has been
14339         rewritten. Added customization for the various PICs. Flow
14340         analysis is restructured. ...
14341
14342         * src/pic/device.h:
14343         Added
14344
14345         * src/pic/device.c:
14346         Added. device.c is a PIC port hack to accomodate variations
14347         in PIC devices.
14348
14349 2002-03-13  Michael Hope  <michaelh AT vroom>
14350
14351         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
14352
14353 2002-03-04  johanknol  <johanknol AT manik>
14354
14355         * /src/SDCCval.c: fixed
14356
14357         const unsigned char arr[][2] = { { 0, 1 } };
14358         t18.c:1: error: Initializer element is not constant
14359
14360 2002-03-04  bela  <bela AT manik>
14361
14362         * /device/include/mcs51reg.h:
14363         ds89c420 register definition update
14364
14365 2002-03-03    <johan AT FRIJA>
14366
14367         * support/Util/SDCCerr.c: did something, but don't no why anymore
14368
14369         * support/regression/tests/bug-524691.c: made it a little less shy
14370
14371         * src/SDCCast.c (decorateType): fixed bug #524697
14372
14373         * src/SDCCast.c: made some lineno improvements
14374
14375         * src/SDCCval.c (getNelements): changed warning to error
14376
14377         * src/SDCCglue.c (printIvalArray): changed warning to error
14378
14379         * src/SDCCicode.c: fixed a warning for mingw
14380
14381         * src/SDCCast.c (decorateType): fixed the << promotion for ops
14382
14383         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
14384
14385 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
14386
14387         * src/ds390/peeph.def:
14388         Added some more peephole rules
14389
14390         * src/ds390/gen.c: Various fixes & enhancements
14391
14392         * src/SDCClrange.c, src/SDCClrange.h:
14393         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
14394
14395         * src/ds390/ralloc.c:
14396         various fixes & enhancements (ds390) specific
14397
14398         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
14399         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
14400         from rallocs.
14401
14402         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
14403
14404 2002-03-02    <johan AT FRIJA>
14405
14406         * src/SDCCast.c (decorateType): fixed bug #524708
14407
14408         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
14409
14410         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
14411
14412 2002-03-01  Michael Hope  <michaelh AT vroom>
14413
14414         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
14415
14416         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
14417
14418 2002-03-01    <johan AT FRIJA>
14419
14420         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
14421
14422         * src/SDCCast.c (decorateType): fixed bug #524209
14423
14424         * src/SDCCval.c (valNot): fixed bug #524195
14425
14426 2002-02-26    <johan AT balder>
14427
14428         * src/xa51/gen.c: fixed a warning
14429
14430         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
14431
14432         * src/SDCCast.c (decorateType): fixed bug #522534
14433
14434 2002-02-23    <johan AT balder>
14435
14436         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
14437
14438 2002-02-22    <johan AT balder>
14439
14440         * src/SDCCast.c: fixed bug #514865
14441
14442         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
14443
14444 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
14445
14446         * sdcc/src/SDCCloop.c:
14447         Previous fix was not good. basic blocks that have "break" or "return" are
14448         not really partof a loop , but live ranges used in these blocks should
14449         be live thru the entire loop, so set partOfLoop but don't add them to
14450         loop region
14451
14452 2002-02-21    <johan AT FRIJA>
14453
14454         * src/SDCCcse.c: fixed bug #514308
14455
14456 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
14457
14458         * src/SDCCloop.c:
14459         Fixed BUG #519583. If a conditional block ended in a return/break
14460         statement inside a loop, it was not being considered part of the loop.
14461
14462         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
14463
14464 2002-02-10  Karl Bongers <karl AT turbobit.com>
14465
14466         * debugger/*:
14467         Fixed up SDCDB debugger somewhat.  Updated debugger/README
14468         with lots of comments and notes.
14469
14470         * device/examples/test2.c:
14471         Fix bug, "red" variable not being initialized(compiler complained).
14472
14473         * device/examples/Makefile, examples/test3.c:
14474         Add Makefile in device/examples folder, compiles test3.c
14475         for use as a multiple module SDCDB test case.
14476
14477         * sim/ucsim/cmd.src/cmdset.cc:
14478         Took out debug printfs in ucsim "next" command.
14479
14480         * sim/ucsim/xa.src:
14481         Karl and Johan start ucsim XA support.  Most dissassembly working,
14482         about 75% emulation done(plenty of work remaining).
14483
14484         * sim/ucsim/z80.src:
14485         Add Z80 support to ucsim, add test-ucz80 regression test,
14486         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
14487         Notice z80 compiler fails on examples/test3.c/crc code.
14488
14489 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
14490
14491         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
14492         Added support for --parms-in-bank1
14493
14494         * src/ds390/peeph.def:
14495         added a few more peephole optimzations
14496
14497         * src/ds390/main.c:
14498         1) added __builtin_inp & __builtin_outp used to read in data of given length
14499            from a memory mapped port
14500         2) added __builtin_memcmp
14501         3) added __builtin_swapw swap bytes of a short
14502
14503         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
14504         1) handle multiple send & receives from register bank1
14505         2) ralloc can now allocate DPTR1 to some liveRanges
14506
14507         * src/SDCCsymt.c, src/SDCCsymt.h:
14508         changes to handle multiple sends & receives
14509
14510         * src/SDCCptropt.h:
14511         added some pointer arithmetic optimization
14512
14513         * src/SDCCptropt.c:
14514         added some pointer arithmetic optimizations but not stable yet so not
14515         called from anywhere (will get this working shortly)
14516
14517         * src/SDCCopt.c: fixed for multiple sends & receives
14518
14519         * src/SDCCmain.c:
14520         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
14521         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
14522            set preprocessor defines (depending on options)
14523
14524         * src/SDCCicode.c, src/SDCCicode.h:
14525         changes made to handle multiple sends & receives
14526
14527         * src/SDCCglobl.h:
14528         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
14529
14530         * src/SDCCcse.c, src/SDCCcse.h:
14531         added function findbackward def (to be used in upcoming optimization)
14532
14533         * src/SDCCcflow.c, src/SDCCcflow.h:
14534         added function returnAtEnd - to determine if a basic block terminates with
14535         a RETURN iCode
14536
14537         * src/SDCCast.c, src/SDCCast.h:
14538         added option parms-in-bank1
14539
14540         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
14541         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
14542         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
14543         adjusted for --parms-in-bank1 option
14544
14545         * device/include/string.h:
14546         donot redefine "reentrant" keyword
14547
14548         * device/include/ds80c390.h: Added some more SFRs
14549
14550 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
14551
14552         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
14553
14554 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
14555
14556         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
14557
14558 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
14559
14560         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
14561
14562 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
14563
14564         * Added --xram-movc option
14565
14566 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
14567
14568         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
14569
14570 2002-01-11  Johan Knol
14571
14572         * Added math lib of Jesus Calvino-Fraga
14573
14574 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
14575
14576         * src/SDCCmain.c (processFile): fix processing of ../../src.c
14577         * support/regression/Makefile: new target test-mcs51-stack-auto
14578         * support/regression/ports/mcs51-stack-auto/spec.mk: added
14579
14580 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14581
14582         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
14583
14584 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14585
14586         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
14587
14588 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
14589
14590         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
14591
14592         * src/SDCCglue.h: add definition for printIvalChar()
14593
14594 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14595
14596         * src/SDCCast.c: fix #498138 by Johan
14597
14598         * src/SDCCglue.c: fix #498138 by Johan
14599
14600 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14601
14602         * support/regression/Makefile: fix clean
14603
14604         * support/regression/ports/ds390/support.c: fix transmission of last character
14605
14606 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
14607
14608         * /sdcc/src/ds390/gen.c:
14609         a) improved computing address of stack variable
14610         b) took out some #if 0 code
14611         c) improved parmBytes adjustment
14612         d) improved genPlusIncr & genMinusIncr
14613         e) genCmp could generate bad code (when left assigned to DPTR)
14614         f) Fixed bug in hasInc
14615
14616         * /sdcc/src/ds390/ralloc.c:
14617         a) packRegsForSupport could mess up live information (Fixed)
14618         b) packRegsDPTRuse could be incorrect for left & right shift
14619
14620         * /sdcc/src/mcs51/ralloc.c:
14621         packRegsForSupport could mess up the live information (Fixed)
14622
14623         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
14624
14625         * /sdcc/src/SDCCast.c:
14626         can reverse a loop even if function call is present as long
14627         as the loop control variable is local & is not passed as parameter
14628
14629 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14630
14631         * /sdcc/ChangeLog: *** empty log message ***
14632
14633         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
14634         More builtin function additions for TININative
14635
14636         * /sdcc/src/ds390/ralloc.c:
14637         Had broken the regression testsuite
14638
14639         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
14640
14641         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
14642         Added funcattr hasStackParms will be set for reentrant functions when there
14643         are paramteres on the stack, this helps in minimizing frame pointer generation
14644         typeFromStr can handle function pointers now
14645
14646         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
14647         *** empty log message ***
14648
14649 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14650
14651         * /src/ds390/gen.c, /src/ds390/main.c:
14652         More builtin function additions for TININative
14653
14654         * /src/ds390/ralloc.c:
14655         Had broken the regression testsuite
14656
14657         * /src/SDCCast.c: Fixed a bug in dumptree
14658
14659         * /src/SDCCsymt.c, /src/SDCCsymt.h:
14660         Added funcattr hasStackParms will be set for reentrant functions when there
14661         are paramteres on the stack, this helps in minimizing frame pointer generation
14662         typeFromStr can handle function pointers now
14663
14664         * /doc/builtins.txt, /doc/TININative.txt:
14665         *** empty log message ***
14666
14667
14668 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14669
14670         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
14671         ALPHA version for -mTININative
14672
14673         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
14674         updated to reflect changes in the port structure
14675
14676         * /src/port.h:
14677         added function do_assemble (similar to do_link) if non-null this function
14678         will be called to do assembly (-mTININative) requires a multi command
14679         assembly
14680         added function genAssemblerEnd will be called to generate assembler Epilogue
14681
14682         * /src/SDCCsymt.c:
14683         added _JavaNative to debug info printing
14684
14685         * /src/SDCCmain.c: added option --tini-libid
14686         added port->do_assemble function (-mTININative) has a multi command assemble
14687
14688         * /src/SDCCglue.c: Disabled "constExpr" check
14689         added port->genAssemblerEnd function
14690
14691         * /src/SDCCglobl.h: Added option --tini-libid value
14692
14693         * /src/SDCCast.h:
14694         tookout optimizeCompare from the header (has no external references)
14695
14696         * /src/SDCCast.c: made one more function "static"
14697
14698 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14699
14700         * src/z80/mappings.i: Added z80asm support.
14701
14702         * src/z80/main.c: Added z80asm support on --asm=z80asm
14703
14704         * src/z80/gen.c: Fixed asm portability issues.
14705
14706         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14707
14708         * src/SDCCglue.c (printExterns): Added global/extern split.
14709
14710 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14711
14712         * support/regression/Makefile: added test for mcs51 model large
14713
14714         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14715
14716         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14717
14718 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14719
14720         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14721
14722 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14723
14724         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14725
14726         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14727
14728 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14729
14730         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14731
14732         * support/regression/tests/simplefloat.c: Port to mcs51.
14733
14734 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14735         * support/regression/tests/bug-485362.c: Added.
14736
14737         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14738
14739         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14740
14741         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14742
14743         * src/z80/gen.c (aopDump): Added a dump function.
14744
14745 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14746         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14747
14748         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14749
14750         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14751
14752         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14753
14754         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14755
14756         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14757
14758         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14759
14760         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14761
14762         * support/regression/ports/ds390/support.c: Use tinibios.
14763
14764         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14765
14766 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14767
14768         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14769         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14770
14771         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14772
14773         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14774
14775 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14776
14777         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14778
14779         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14780         (packRegsForIYUse): Created and optimised.
14781
14782 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14783
14784         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14785 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14786
14787         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14788
14789         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14790
14791         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14792
14793 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14794
14795         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14796
14797         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14798
14799 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14800
14801         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14802
14803         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14804
14805         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14806
14807 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14808
14809         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14810         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14811         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14812
14813         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14814
14815         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14816         (genNotFloat): Added.
14817         (genUminusFloat): Added.
14818
14819         * device/lib/z80/Makefile: Added floating pt stubs.
14820
14821         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14822
14823         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14824
14825         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14826
14827 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14828
14829         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14830
14831         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14832
14833         * sdcc/support/regression/Makefile: Add port ds390.
14834
14835         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14836
14837         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14838
14839         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14840
14841         * sdcc/support/regression/ports/ds390/support.c: Added.
14842
14843         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14844
14845         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14846
14847         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14848
14849 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14850
14851         * device/include/malloc.h: Added z80 and gbz80 support.
14852
14853         * device/lib/gbz80/heap.s: Added.
14854
14855         * device/lib/z80/heap.s: Added.
14856
14857         * device/lib/malloc.c: Added z80 and gbz80 support.
14858
14859         * support/regression/tests/malloc.c (testMalloc): Added.
14860
14861         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14862
14863         * support/regression/tests/bug-478094.c: Added.
14864
14865         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14866
14867 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14868
14869         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14870
14871         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14872
14873         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14874
14875         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14876
14877         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14878
14879 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14880
14881         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14882
14883 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14884
14885         * support/regression/tests/bug-477927.c: Added.
14886
14887         * src/z80/peeph.def: Added minor rules.
14888
14889         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14890
14891         * src/z80/peeph.def: Added jump optimisation modification.
14892
14893 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14894
14895         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14896
14897 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14898
14899         * support/regression/tests/funptrs.c: Added.
14900
14901 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14902
14903         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14904
14905 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14906
14907         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14908
14909         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14910
14911         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14912         (movLeft2ResultLong): Created.
14913
14914         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14915         (joinPushes): Added.  Joins two char pushes into a word push.
14916
14917 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14918
14919         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14920
14921         * support/makebin/Makefile (install): Added creation of dest dir.
14922
14923 2001-10-24 Karl Bongers <karl AT turbobit.com>
14924
14925         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14926
14927 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14928
14929         * src/z80/ralloc.c: Turned off faulty pack for one use.
14930
14931         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14932
14933         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14934
14935 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14936
14937         * support/regression/Makefile: Improved clean
14938
14939         * support/regression/ports/gbz80/spec.mk: Added clean
14940
14941         * support/regression/ports/host/spec.mk: Added clean
14942
14943         * support/regression/ports/z80/spec.mk: Added clean
14944
14945         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14946
14947         * support/regression/ports/mcs51/timeout.c: little improvements
14948
14949 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14950
14951         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14952
14953         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14954
14955         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14956
14957 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14958
14959         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14960
14961         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14962
14963 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14964         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14965
14966         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14967
14968         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14969
14970         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14971
14972         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14973
14974         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14975
14976         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14977
14978         * support/regression/tests/longor.c: Added.
14979
14980 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14981
14982         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14983
14984         * as/mcs51/aslink.h: define PATH_MAX
14985
14986         * as/mcs51/asm.h: define PATH_MAX
14987
14988         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14989
14990         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14991
14992         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14993
14994         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14995
14996         * src/SDCCglobl.h: define PATH_MAX
14997
14998         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14999
15000         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
15001
15002 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
15003
15004         * src/z80/gen.c (gencjneshort): Fixed
15005
15006         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
15007
15008 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
15009
15010         * support/regression/tests/bug-469671.c: Added.
15011
15012         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
15013
15014 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
15015
15016         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
15017
15018         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
15019
15020 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
15021
15022         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
15023
15024         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
15025
15026         * src/device/lib/_mullong.c : removed hint: nooverlay bug
15027
15028         * src/device/lib/_divuint.c : removed hint: nooverlay bug
15029
15030         * src/device/lib/_divulong.c: removed hint: nooverlay bug
15031
15032         * src/device/lib/_moduint.c : removed hint: nooverlay bug
15033
15034         * src/device/lib/_modulong.c: removed hint: nooverlay bug
15035
15036 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
15037
15038         * 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.
15039
15040         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
15041
15042         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
15043
15044 2001-10-07    <johan AT FRIJA>
15045
15046         * device/lib/gets.c (gets): fixed the return value.
15047
15048 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
15049         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
15050
15051         * 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.
15052
15053         * 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.
15054
15055         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
15056
15057         * src/pic/gen.c: Removed Safe_strdup.
15058
15059         * configure.in: Added option to enable libgc support.
15060
15061         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
15062         (bitVectUnion): Optimised.
15063         (bitVectIntersect): Optimised.
15064         (bitVectBitsInCommon): Optimised.
15065         (bitVectCplAnd): Optimised.
15066
15067         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
15068
15069 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15070
15071         * src/SDCCmain.c: distinguish between assembler debug and plain options
15072
15073         * src/avr/main.c:   remove standard assembler options
15074
15075         * src/ds390/main.c: remove standard assembler options
15076
15077         * src/mcs51/main.c: remove standard assembler options
15078
15079         * src/port.h: removed "PENDING" comment
15080
15081 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15082
15083         * src/device/lib/_mulint.c  : new, with assember functions
15084
15085         * src/device/lib/_mullong.c : new, with assember functions
15086
15087         * src/device/lib/_divuint.c : with assember functions
15088
15089         * src/device/lib/_divsint.c : with assember functions
15090
15091         * src/device/lib/_divulong.c: with assember functions
15092
15093         * src/device/lib/_divslong.c: with assember functions
15094
15095         * src/device/lib/_moduint.c : with assember functions
15096
15097         * src/device/lib/_modsint.c : with assember functions
15098
15099         * src/device/lib/_modulong.c: with assember functions
15100
15101         * src/device/lib/_modslong.c: with assember functions
15102
15103         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
15104
15105         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
15106
15107         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
15108                                       replaced _mululong.c and _mulslong.c by _mullong.c
15109
15110 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15111
15112         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
15113
15114 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
15115
15116         * src/SDCCglue.c: test, if win32api is available for MINGW
15117
15118 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
15119
15120         * src/SDCCsymt.c: no more _modifier in printTypeChain()
15121         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
15122         * support/regression/ports/gbz80/spec.mk: removed GENERIC
15123         * support/regression/ports/host/spec.mk: removed GENERIC
15124         * support/regression/ports/mcs51/spec.mk: removed GENERIC
15125         * support/regression/ports/z80/spec.mk: removed GENERIC
15126
15127 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
15128
15129         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
15130
15131         * support/regression/tests/bug-467035.c: Created.
15132
15133 2001-10-01    <johan AT FRIJA>
15134
15135         * src/SDCC.y: fixed bug #466586 part 1
15136
15137 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
15138
15139         * SDCCicode.c: z80 has no generic pointers
15140         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
15141
15142 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
15143
15144         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
15145
15146 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
15147
15148         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
15149
15150         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
15151
15152 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
15153
15154         * configure.in: Fixed up so that ucsim is only configured once.
15155
15156         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
15157
15158         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
15159         (getPathDifference): As above.
15160
15161         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
15162
15163         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
15164
15165 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
15166         * .version: Updated to 2.3.1
15167
15168         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
15169         Added copyright header.
15170
15171         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
15172         (assemble): Added support for macro based assembler commands.
15173         (linkEdit): Added support for macro based linker commands.
15174         (preProcess): Changed the pre-processor to use macros.
15175         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
15176         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
15177
15178         * device/lib/z80/crt0.s: Added module name for debugging.
15179
15180 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
15181
15182         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
15183
15184         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
15185
15186         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
15187
15188         * src/Makefile.in: Added SDCCmacro and SDCCutil
15189
15190 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
15191
15192         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
15193
15194 2001-09-16    <johan AT FRIJA>
15195
15196         * 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.
15197
15198 2001-09-15    <johan AT FRIJA>
15199
15200         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
15201         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
15202
15203 2001-09-11    <johan AT FRIJA>
15204
15205         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
15206
15207 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
15208
15209         * support/regression/tests/bug-460444.c: Added test case.
15210
15211         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
15212         (genCast): Added justification for all of the asserts.
15213
15214 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
15215
15216         * support/regression/support.c: _xdata replaced by xdata
15217
15218         * support/regression/spec.mk: removed _generic
15219
15220 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
15221
15222         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
15223
15224         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
15225         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
15226
15227         * src/z80/peeph.def: Added a rule to optimise shift then compare.
15228
15229         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
15230
15231         * support/regression/tests/bug-460010.c: Added test case.
15232
15233         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
15234
15235 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
15236
15237         * support/regression/Makefile: inter-port-clean adjusted for mcs51
15238
15239         * support/regression/testfwk.c: removed workaround for bug #436344
15240
15241         * support/regression/tests/bp.c: use less memory with mcs51
15242
15243         * support/regression/tests/bug-441448.c: use less memory
15244
15245         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
15246
15247         * support/regression/collate-results.py: typo
15248
15249 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
15250
15251         * support/regression/tests/fetchoverlap.c: Added new test case.
15252
15253         * support/regression/tests/bp.c: Added new test case.
15254
15255         * support/regression/tests/bug-448984.c: Added new test case.
15256
15257         * support/regression/tests/pow2shifts.c: Added new test case.
15258
15259         * src/z80/gen.c: Turned off the noise it normally generates for the release.
15260         (genlshTwo): Fixed right shift for count > 8.
15261
15262         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
15263
15264 2001-09-08    <johan AT FRIJA>
15265
15266         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
15267
15268 2001-09-07    <johan AT FRIJA>
15269
15270         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
15271
15272         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
15273
15274 2001-09-06    <johan AT FRIJA>
15275
15276         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
15277         * bernhard noted me at this: "() equals to (void)" (1.38)
15278
15279 2001-09-05    <johan AT FRIJA>
15280
15281         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
15282
15283 2001-09-04    <johan AT FRIJA>
15284
15285         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
15286
15287
15288 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
15289
15290         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
15291
15292 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
15293
15294         * link/z80/aslink.h: Fixed path for PATH_MAX
15295
15296 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
15297
15298         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
15299
15300         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
15301
15302         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
15303
15304         * 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.
15305
15306 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
15307
15308         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
15309         (genCmp): Fixed up genCmp for the GB with longs.
15310
15311         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
15312
15313         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
15314
15315         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
15316
15317         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
15318
15319 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
15320
15321         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
15322
15323 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
15324
15325         * 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.
15326
15327         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
15328
15329 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
15330
15331         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
15332
15333         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
15334
15335 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
15336
15337   * sim/ucsim/configure:    little improvement of Cygwin-detection
15338   * sim/ucsim/configure.in: little improvement of Cygwin-detection
15339   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
15340   * support/regression/tests/bug-221100.c: small changes for mcs51
15341   * support/regression/tests/bug-221168.c: small changes for mcs51
15342   * support/regression/tests/bug-227710.c: small changes for mcs51
15343   * support/regression/tests/staticinit.c: small changes for mcs51
15344   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
15345   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15346   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15347
15348 $Revision$