* device/include/pic16/pic18f2431.h,
[fw/sdcc] / ChangeLog
1 2007-09-16 Raphael Neider <rneider AT web.de>
2
3         * device/include/pic16/pic18f2431.h,
4         * device/include/pic16/pic18f25j10.h,
5         * device/include/pic16/pic18f4431.h,
6         * device/include/pic16/pic18f45j10.h: adopted common include style
7         * device/include/pic16/pic18f1320.h,
8         * device/include/pic16/pic18f2320.h,
9         * device/include/pic16/pic18f2525.h,
10         * device/include/pic16/pic18f4320.h,
11         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
12         * device/include/pic16/pic18fregs.h: prepared for automatic include
13           file selection by having DEVICE.h for every DEVICE
14         * device/lib/pic16/libdev/pic18f2320.c,
15         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
16
17         * device/lib/pic16/configure.in,
18         * device/lib/pic16/configure: use rm -rf instead of rmdir
19         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
20         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
21
22 2007-09-09 Borut Razem <borut.razem AT siol.net>
23
24         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
25           distingush between i386 and ppc Mac OS X versions
26
27 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
28
29         * src/mcs51/gen.c (genReceive): fixed bug 1788177
30         * support/regression/tests/bug1788177.c: new, added
31
32 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
33
34         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
35         * device/include/mcs51/lint.h added keyword __naked
36
37 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
38
39         * src/pic16/glue.c,
40         * src/pic/glue.c,
41         * src/SDCCmem.h: removed maxRegBank
42         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
43           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
44         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
45         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
46           name and behaviour to handle banked functions
47           (scan4op): and use it to fix bug 1786213
48
49 2007-09-03 Raphael Neider <rneider AT web.de>
50
51         * device/include/pic16/pic18f248.h,
52         * device/include/pic16/pic18f258.h,
53         * device/include/pic16/pic18f448.h,
54         * device/lib/pic16/libdev/pic18f248.c,
55         * device/lib/pic16/libdev/pic18f258.c,
56         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
57           added T0CONbits, fixes #1786891
58
59 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
60
61         * src/ds390/gen.c (genFarPointerSet),
62         * src/hc08/ralloc.c (packRegisters),
63         * src/mcs51/ralloc.c (packRegisters),
64         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
65           bug 1750318
66         * src/SDCCicode.h: POINTER_SET can be true for literals too
67         * support/regression/tests/bug1750318.c: new, added
68
69 2007-08-23 Borut Razem <borut.razem AT siol.net>
70
71         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
72           library versions without the completition functionality
73
74 2007-08-22 Raphael Neider <rneider AT web.de>
75
76         * device/include/pic16/pic18f1220.h,
77         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
78
79 2007-08-12 Borut Razem <borut.razem AT siol.net>
80
81         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
82
83 2007-08-11 Borut Razem <borut.razem AT siol.net>
84
85         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
86           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
87           support/Util/SDCCerr.[ch] moved to src
88         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
89           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
90           device/examples/ds390/tinitalk/tinitalk.dsp,
91           device/examples/serialcomm/windows/serialcomm.dsp,
92           support/librarian/librarian.dsp:
93           removed linking of unused odbc32.lib and odbccp32.lib
94         * support/scripts/winres.h:
95           added for compilation with Visual C++ 2005 Express Edition
96
97 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
98
99         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
100           and CKCON1.
101
102 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
103
104         * sdccconf_in.h: update the endian test so that SPARC Solaris
105           does not throw syntax errors
106
107 2007-08-06 Borut Razem <borut.razem AT siol.net>
108
109         * doc/sdccman.lyx: removed two index entries which prevented the
110           generation of sdcc doc archive
111
112 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
113
114         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
115           instead of lyx 1.5.0.
116
117 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
118
119         * device/include/hc08/mc68hc908apxx.h: new header contributed by
120           Lucas Loizaga, with minor modifications. Thanks!
121
122 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
123
124         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
125           in sdcclib.
126
127 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
128
129         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
130           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
131           with acall/ajmp.
132
133 2007-07-22 Borut Razem <borut.razem AT siol.net>
134
135         * configure.in, configure: re-introduced .version
136         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
137           the version reverted to 2.7.0
138
139 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
140
141         * configure.in,
142         * doc/sdccman.lyx: bumped version to 2.7.3
143         * device/include/mcs51/compiler.h: fixed elif->else
144         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
145         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
146           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
147            enable accuse for bit operands
148         * src/SDCCmain.c (printVersionInfo),
149         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
150           environment descriptor
151         * src/SDCCutil.h: added getBuildEnvironment
152         * src/SDCCglue.c (initialComments): use getBuildEnvironment
153         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
154         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
155         * support/regression/tests/bug1348008.c,
156         * support/regression/tests/bug1496419.c,
157         * support/regression/tests/bug1503067.c,
158         * support/regression/tests/preproc.c: added empty tests
159
160 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
161
162         * support/regression/tests/bug1678803.c: new, added
163
164 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
165
166         * as/link/aslink.h,
167         * as/link/hc08/lkihx.c,
168         * as/link/hc08/lkrloc.c,
169         * as/link/mcs51/lkihx.c,
170         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
171           ihxExtendedLinearAddress
172         * as/link/mcs51/lkrloc.c (relr),
173         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
174           acall/ajmp, see bug 830513
175
176 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
177
178         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
179           (cseBBlock): remember aggr2ptr has been used
180         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
181           (geniCodeAssign): fixed bug 868103
182         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
183           added operandSize prototype
184         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
185           (genDataPointerSet): use max of size of right and result,
186           (gencjne): added parameter useCarry for optimization,
187           (genCmpEq): use carry if appropriate,
188           (genXor): check if operand already in carry
189         * support/regression/tests/bug-868103.c: enabled test
190
191 2007-07-12 Raphael Neider <rneider AT web.de>
192
193         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
194
195 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
196
197         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
198           from Robert Larice, thanks
199         * support/regression/tests/bitopcse.c,
200         * support/regression/tests/bitvars.c,
201         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
202         * support/regression/tests/bug-927659.c: enabled test for z80
203         * support/regression/tests/bug1738367.c: added extra tests by Frieder
204         * support/regression/tests/bug1745717.c: new, added
205         * support/regression/tests/literalop.c,
206         * support/regression/tests/nullstring.c: removed storage definitions that
207           are now in testfwk.h
208
209 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
210
211         * device/include/stdbool.h: do not define __bool_true_false_are_defined
212           and bool for targets that do not fully support it.
213         * support/regression/tests/bug1546986.c,
214         * support/regression/tests/bug1723128.c,
215         * support/regression/tests/bug1734654.c,
216         * support/regression/tests/bug1738367.c,
217         * support/regression/tests/constantRange.c: only use bool if allowed
218
219 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
220
221         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
222           Larice, also handle function pointers
223         * support/regression/tests/bug1749275.c: new, added
224
225 2007-07-03 Borut Razem <borut.razem AT siol.net>
226
227         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
228           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
229           #1746528: SDCC should ignore ':' in inline assembler comments
230         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
231
232 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
233
234         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
235         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
236
237 2007-06-29 Borut Razem <borut.razem AT siol.net>
238
239         * src/SDCCmain.c: fixed bug
240           #1744746: SDCC #4867: broken option --xram-size
241
242 2007-06-28 Borut Razem <borut.razem AT siol.net>
243
244         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
245           find out the endianess of host machine for ucsim
246
247 2007-06-27 Borut Razem <borut.razem AT siol.net>
248
249         * support/regression/generate-cases.py: corrected the file name
250           in warning
251         * configure.in, configure, sdccconf_in.h: find out the endianess of
252           host machine
253         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
254           negative size
255
256 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
257
258         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
259
260 2007-06-26 Borut Razem <borut.razem AT siol.net>
261
262         * support/regression/generate-cases.py: display warning if function
263           list is empty; implemented more flexible rule for detection of
264           testing functions, allowing return type 'void' in the same line as
265           the function name in the function definition
266         * support/regression/tests/bug-1654060.c: corrected test
267         * support/librarian/sdcclib.c: fixed warning:
268           format '%s' expects type 'char *', but argument 2 has type 'int'
269
270 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
271
272         * support/librarian/sdcclib.c: Added feature Requests [1510635]
273           Multiple infiles for sdcclib.
274
275 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
276
277         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
278           bug 1731741
279
280 2007-06-18 Borut Razem <borut.razem AT siol.net>
281
282         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
283           how to handle comments, so they have to be removed by the
284           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
285         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
286           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
287           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
288           table driven option hadling
289
290 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
291
292         * src/SDCCast.c (decorateType),
293         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
294           iCode to ast level to fix bug 1738367
295         * support/regression/tests/bug1738367.c: new, added
296
297 2007-06-15 Raphael Neider <rneider AT web.de>
298
299         * src/pic16/devices.inc,
300         * device/lib/pic16/pics.all,
301         * device/include/pic16/pic18fregs.h,
302         * device/include/pic16/pic18f[24][45]20.h,
303         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
304           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
305         * device/lib/pic16/Makefile.in: faster cleanup
306
307 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
308
309         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
310
311 2007-06-13 Raphael Neider <rneider AT web.de>
312
313         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
314
315 2007-06-12 Raphael Neider <rneider AT web.de>
316
317         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
318           suppress bit defines if NO_BIT_DEFINES is #define'd
319         * device/include/pic/pic*.h: recreated all headers to include
320           conditional bit defines
321         * device/include/pic/pic16f886.h,
322         * device/include/pic/pic16f887.h: fixed based on newer .inc file
323         * device/include/pic/recreate.sh: script to recreate the complete
324           device library files based on the currently supported devices
325
326 2007-06-12 Borut Razem <borut.razem AT siol.net>
327
328         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
329           support/regression/Makefile.in, support/scripts/build.mak,
330           support/scripts/Makefile.snapshot:
331           use new svn URL scheme
332         * doc/sdccman.lyx: SDCC Wiki moved to
333           http://sdcc.wiki.sourceforge.net/
334
335 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
336
337         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
338         * support/regression/tests/bug1734654.c: added
339
340 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
341
342         * src/SDCCast.c (decorateType): optimized '?' for equal operands
343         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
344           with literal operands
345
346 2007-06-10 Borut Razem <borut.razem AT siol.net>
347
348         * as/link/z80/lklibr.c: fixed mingw build warning
349           lklibr.c:575: warning: implicit declaration of function 'tolower'
350         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
351           src/z80/main.c: move target specific options from src/SDCCmain.c
352           to src/<target>/main.c
353
354 2007-06-09 Borut Razem <borut.razem AT siol.net>
355
356         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
357           removed unused swap_sense; removed outBitCLong, replaced with outBitC
358         * support/regression/tests/bug-1294691.c: added
359
360 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
361
362         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
363           can also be static, fixes bug 1733438
364         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
365           have absolute address too
366           (computeType): added optimization for 'cond ? true : false'
367         * support/regression/tests/absolute.c: added test for static absolute var
368
369 2007-06-08 Raphael Neider <rneider AT web.de>
370
371         * src/regression/Makefile: suppress parallel builds, allow easy
372           switching between pic14/pic16 ports
373         * src/regression/picregs.h: added pic14/16 header file switch
374         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
375           inline.c,nestfor.c,string1.c}: include "picregs.h"
376
377 2007-06-07 Borut Razem <borut.razem AT siol.net>
378
379         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
380           permanent solution to suppress GCC 4.2.0 c++ warning:
381           deprecated conversion from string constant to `char *'
382           use 'const char *' where ever required
383         * support/regression/generate-cases.py: implemented more flexible rule
384           for detection of testing functions, allowing white-spaces surrounding
385           the function name and the 'void' parameter.
386         * support/regression/tests/constantRange.c,
387           support/regression/tests/scott-compare3.c: fixed failing regression
388           tests, uncovered by implementation of more flexible rule for detection
389           of testing functions
390
391 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
392
393         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
394
395 2007-06-04 Borut Razem <borut.razem AT siol.net>
396
397         * configure.in, configure, config_vc.awk: sdcc version number is now
398           stored in configure.in; removed .version
399         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
400           doc/INSTALL.txt: version bumped to 2.7.2
401         * sim/ucsim/configure.in, sim/ucsim/configure:
402           use "read" to read from .version
403
404 2007-06-03 Borut Razem <borut.razem AT siol.net>
405
406         * */Makefile.in: removed annoying warning:
407           Makefile:xx: Makefile.dep: No such file or directory
408
409 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
410
411         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
412           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
413         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
414         * src/SDCCast.c (resultTypePropagate): propagate for '!',
415           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
416           bugfix: only use newBoolLink for bit result type
417         * src/SDCCicode.c (geniCodeLogic): added param tree,
418           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
419           (geniCodeLogicAndOr): use IS_BIT,
420           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
421           (ast2iCode): added tree param to geniCodeLogic for comparisons
422         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
423         * support/regression/tests/bug1723128.c: added test NotZero
424
425 2007-06-01 Borut Razem <borut.razem AT siol.net>
426
427         * SDCPP synchronized with GCC CPP release version 4.2.0,
428           currently the latest release:
429         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
430           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
431           support/cpp2/cppdefault.h, support/cpp2/except.h,
432           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
433           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
434           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
435           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
436           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
437           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
438           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
439           support/cpp2/opts.h, support/cpp2/output.h,
440           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
441           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
442           support/cpp2/system.h, support/cpp2/version.c,
443           support/cpp2/Makefile.in: modified
444         * support/cpp2/opts-common.c: added
445         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
446         * device/lib/pic16/libdev/pic18f[24]5j10.c:
447           search for included source file in local directory
448         * sim/ucsim/configure, sim/ucsim/configure.in:
449           temporary solution to suppress GCC 4.2.0 c++ warning:
450           deprecated conversion from string constant to `char *'
451
452 2007-06-01 Raphael Neider <rneider AT web.de>
453
454         * device/lib/pic/libdev/pic12f683.c,
455         * device/include/pic/pic12f683.h: added GPIO bits
456
457 2007-06-01 Raphael Neider <rneider AT web.de>
458
459         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
460           quotation marks, clarified role of PIC14 vs. PIC16 ports
461         * src/pic16/devices.inc,
462         * device/include/pic16/pic18fregs.h,
463         * device/include/pic16/pic18f[24][45]j10.h,
464         * device/lib/pic16/pics.all,
465         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
466           18f24j10, 18f25j10, 18f44j10, and 18f45j10
467         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
468           for new devices as they are not yet supported by gputils
469
470 2007-05-31 Borut Razem <borut.razem AT siol.net>
471
472         * Small Device C Compiler 2.7.0 released
473         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
474           changed sdcc version to 2.7.1
475         * support/scripts/sdcc.nsi: added How to create WIN32 release
476           setup.exe package
477
478 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
479
480         * doc/sdccman.lyx: documented initialization and allocation of absolute
481           variables, bit parameter passing, the need for function pointers to be
482           reentrant and alpha quality support of inline and retrict
483
484 2007-05-26 Borut Razem <borut.razem AT siol.net>
485
486         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
487           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
488         * docs/knownbugs.html: updated
489
490 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
491
492         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
493           thanks Jan Waclawek
494         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
495           AOP_CRY and ruonly
496           (gencjneshort): optimized when left is AOP_DIR
497         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
498           initializing unions in a struct/array
499         * support/regression/fwk/include/testfwk.h: added defines for data, near
500           and far for host and z80
501         * support/regression/tests/bug1723128.c: new, added
502
503 2007-05-22 Borut Razem <borut.razem AT siol.net>
504
505         * doc/knownbugs.html: updated
506
507 2007-05-21 Raphael Neider <rneider AT web.de>
508
509         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
510           error message instead
511         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
512
513 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
514
515         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
516
517 2007-05-21 Raphael Neider <rneider AT web.de>
518
519         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
520           closes #1722392
521         * src/regression/gpsim_assert.h,
522         * src/regression/Makefile,
523         * src/regression/pcodeopt.c: regression test for the above fix
524
525 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
526
527         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
528           jumps to self, fixed bug 1717281
529
530 2007-05-10 Borut Razem <borut.razem AT siol.net>
531
532         * support/scripts/gen_known_bugs.pl: cosmetic fix
533         * doc/knownbugs.html: generated by gen_known_bugs.pl
534
535 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
536
537         * src/SDCCast.c (createFunction): also generate non-inlined version of
538           function for functions declared as "static inline"
539         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
540           function can be inlined after non-inlined version generated.
541
542 2007-05-10 Borut Razem <borut.razem AT siol.net>
543
544         * support/scripts/gen_known_bugs.pl: added script
545           which generates knownbugs.html
546
547 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
548
549         * doc/knownbugs.html: updated for release 2.7.0
550
551 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
552
553         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
554
555 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
556
557         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
558           (throughout): updated generating comments
559         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
560           (throughout): updated generating comments
561         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
562           rule instead of at the second, or it might skip lines when removing the
563           complete match
564         * support/regression/tests/bug1714204.c: changed test to foo
565
566 2007-05-08 Borut Razem <borut.razem AT siol.net>
567
568         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
569           thanks to SDCC Distributed Compile Farm members,
570           added Z80 and GBZ80 command line options
571         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
572
573 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
574
575         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
576         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
577         * support/regression/tests/longlit.c: modified to be tested at all and
578           to pass the actual test
579
580 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
581
582         * device/include/mcs51/uPSD33xx.h: Added.
583
584 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
585
586         * device/lib/_gptrput.c,
587         * device/lib/_gptrget.c: removed old code,
588          (_gptrgetWord),
589         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
590         * support/regression/tests/bug1714204.c: new, added
591
592 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
593
594         * support/regression/tests/regtrack.c: test was never executed
595           because of the regression test being picky about white spaces.
596         * device/lib/mcs51/crtclear.asm: added comment
597
598 2007-05-06 Raphael Neider <rneider AT web.de>
599
600         * device/lib/pic/Makefile.rules,
601         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
602           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
603
604 2007-05-06 Raphael Neider <rneider AT web.de>
605
606         * src/pic16/device.h,
607         * src/pic16/main.h,
608         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
609           _pic16_setDefaultOptions): removed/reordered command-line args
610         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
611           devices, regrouped command line args, environment variables),
612           clarified sone points, added sections on how to add devices to the
613           PIC14/PIC16 ports
614
615 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
616
617         * src/z80/peeph.def: fixed bug in rule 2
618
619 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
620
621         * src/port.h: added TARGET_MCS51_LIKE
622         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
623           take advantage of it too
624         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
625           (shiftR2Left2Result): Optimized: don't check shifting by 0
626         * src/z80/peeph-z80.def,
627         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
628           modifications, see patch 1700823
629         * src/mcs51/peep.c (): fixed bug 1712928
630         * support/regression/tests/bug1712928.c: new, added
631
632 2007-05-05 Borut Razem <borut.razem AT siol.net>
633
634         * device/lib/pic16/Makefile.common.in,
635           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
636           removed bash dependencies
637
638 2007-05-01 Borut Razem <borut.razem AT siol.net>
639
640         * src/SDCCicode.c:
641           fixed bug #1710507: --i-code-in-asm makes compile fail
642           all iCode comments are now one liners
643         * src/mcs51/gen.c: fixed memory leak
644
645 2007-05-01 Raphael Neider <rneider AT web.de>
646
647         * device/lib/pic/libdev/*.c
648         * device/include/pic/*.h: regenerated all device libs from updated
649           .inc files
650         * support/scripts/inc2h.pl: documented usage, now uses strict to
651           catch more bugs
652
653 2007-04-30 Borut Razem <borut.razem AT siol.net>
654
655         * doc/sdccman.lyx:
656           fixed bug #1669175: Problem with space in output paths
657           documented how to use paths with spaces for Windows users
658
659 2007-04-29 Borut Razem <borut.razem AT siol.net>
660
661         * Fixed svn:eol-style and svn:keywords properties
662         * src/SDCCval.c: fixed bug
663           #1592871: Segfault with "large" const arrays of characters
664           replaced recursion with iteration
665         * Removed svn:executable property from non-executable files
666
667 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
668
669         * src/mcs51/gen.c (genRet): fixed bug 1707003
670
671 2007-04-27 Raphael Neider <rneider AT web.de>
672
673         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
674           createReachingDefinitions,assignValnums,pic16_destructDF,
675           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
676           prevent NULL pointer dereferences
677         * device/lib/pic/libdev/pic16f886.c,
678         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
679           prevent building them, gputils do not really support them yet
680
681 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
682
683         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
684           helps printf_small. 32 bytes more __idata mem.
685
686 2007-04-27 Raphael Neider <rneider AT web.de>
687
688         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
689           return early when pb or pb->pcHead is NULL (patch #1708427)
690         * src/regression/empty.c,
691         * src/regression/Makefile: added test with empty functions
692         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
693
694 2007-04-27 Borut Razem <borut.razem AT siol.net>
695
696         * src/SDCCast.c: fixed feature request
697           #1547512: Redundant strings linked when using sizeof("abc")
698
699 2007-04-23 Borut Razem <borut.razem AT siol.net>
700
701         * doc/sdccman.lyx, src/SDCCmain.c:
702           peep-hole comments are generated only if --fverbose-asm option is
703           specified and --no-peep-comments is not, as proposed by Frieder.
704         * support/regression/Makefile.in: compile regression tests with
705           --fverbose-asm option so one can "grep" whether a new (or an old)
706           peephole is (still) applied; requested by Frieder.
707
708 2007-04-23 Kevin Buettner <kevin AT buettner.to>
709
710         * device/include/pic/pic16f886.h,
711         * device/include/pic/pic16f887.h,
712         * device/lib/pic/libdev/pic16f886.c,
713         * device/lib/pic/libdev/pic16f887.c,
714         * device/include/pic/pic14devices.txt,
715         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
716
717 2007-04-23 Kevin Buettner <kevin AT buettner.to>
718
719         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
720           fixes #1704666
721
722 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
723
724         * device/lib/_memset.c: assembler version for mcs51
725
726 2007-04-22 Borut Razem <borut.razem AT siol.net>
727
728         * support/scripts/listerr.c: program to create the list of errors and
729           warnings list from - added
730         * doc/sdccman.lyx: removed the note
731           "For list of warnings and corresponding codes, see err_warn.txt"
732         * src/SDCCsymt.c: fixed bug #1699804:
733           Bug with some uses of sizeof(static local array) (MCS51)
734         * support/regression/tests/bug-1699804.c: added
735
736 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
737
738         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
739           (main): added option -i,
740           (asmbl, case S_INCL): use search_path_fopen,
741           mostly from patch 1579668 by Peter Miller, thanks
742         * src/z80/main.c: fixed typo --callee-saves-bc
743         * device/include/mcs51/compiler.h: added sfrword for Tasking
744
745 2007-04-20 Borut Razem <borut.razem AT siol.net>
746
747         * src/z80/main.c: replaced reserved keyword asm with asmblr
748
749 2007-04-19 Borut Razem <borut.razem AT siol.net>
750
751         * src/port.h: use const pointers to strings
752         * src/SDCCargs.h: declared getStringArg() and getIntArg()
753         * src/pic16/main.c: include SDCCargs.h
754         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
755           const char, since the strings are dynamically allocated
756         * src/SDCCmain.c: options.code_seg and options.const_seg are
757           dynamically allocated; check port specific command line options
758           before the general ones
759         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
760
761 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
762
763         * device/include/ds400rom.h,
764         * device/lib/ds390/lcd390.c,
765         * device/lib/ds390/memcpyx.c,
766         * device/lib/ds390/rtc390.c,
767         * device/lib/ds400/ds400rom.c,
768         * device/lib/ds400/memcpyx.c,
769         * device/lib/hc08/_ret.c: more replacements of keywords with their
770           double underscore equivalents
771         * device/lib/ds390/Makefile.in,
772         * device/lib/ds400/Makefile.in,
773         * device/lib/gbz80/Makefile.in,
774         * device/lib/hc08/Makefile.in,
775         * device/lib/mcs51/Makefile.in,
776         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
777
778 2007-04-17 Borut Razem <borut.razem AT siol.net>
779
780         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
781           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
782           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
783           to --fverbose-asm, to be gcc'ish
784
785 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
786
787         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
788
789 2007-04-17 Borut Razem <borut.razem AT siol.net>
790
791         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
792         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
793           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
794           with their double underscore equivalent
795
796 2007-04-14 Borut Razem <borut.razem AT siol.net>
797
798         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
799           source"
800
801 2007-04-13 Borut Razem <borut.razem AT siol.net>
802
803         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
804           C99 standard
805         * device/examples/serialcomm/windows/serial.[ch],
806           device/examples/serialcomm/windows/test_serialcomm.cpp:
807           updated by Bela Torok
808         * device/examples/serialcomm/windows/serialcomm.dsw,
809           device/examples/serialcomm/windows/serialcomm.dsp: added
810
811 2007-04-13 Jan Waclawek <wek AT efton.sk>
812
813         * doc/sdccman.lyx: additions and changes at various places
814           (submitted as #1697136).
815           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
816
817 2007-04-10 Borut Razem <borut.razem AT siol.net>
818
819         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
820           LyX file format changed to 245
821         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
822           "FreeWare" replaced with "free open source"
823
824 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
825
826         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
827
828 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
829
830         * device/include/pic16/pic18fregs.h,
831         * device/lib/_bp.c,
832         * device/lib/_decdptr.c,
833         * device/lib/_divsint.c,
834         * device/lib/_divslong.c,
835         * device/lib/_divuint.c,
836         * device/lib/_divulong.c,
837         * device/lib/_fs2schar.c,
838         * device/lib/_fs2sint.c,
839         * device/lib/_fs2slong.c,
840         * device/lib/_fs2uchar.c,
841         * device/lib/_fs2uint.c,
842         * device/lib/_fs2ulong.c,
843         * device/lib/_fsadd.c,
844         * device/lib/_fscmp.c,
845         * device/lib/_fsdiv.c,
846         * device/lib/_fseq.c,
847         * device/lib/_fsget1arg.c,
848         * device/lib/_fsget2args.c,
849         * device/lib/_fsgt.c,
850         * device/lib/_fslt.c,
851         * device/lib/_fsmul.c,
852         * device/lib/_fsneq.c,
853         * device/lib/_fsnormalize.c,
854         * device/lib/_fsreturnval.c,
855         * device/lib/_fsrshift.c,
856         * device/lib/_fssub.c,
857         * device/lib/_fsswapargs.c,
858         * device/lib/_gptrget.c,
859         * device/lib/_gptrgetc.c,
860         * device/lib/_gptrput.c,
861         * device/lib/_logexpf.c,
862         * device/lib/_modsint.c,
863         * device/lib/_modslong.c,
864         * device/lib/_moduint.c,
865         * device/lib/_modulong.c,
866         * device/lib/_mulint.c,
867         * device/lib/_mullong.c,
868         * device/lib/_schar2fs.c,
869         * device/lib/_ser.c,
870         * device/lib/_setjmp.c,
871         * device/lib/_sint2fs.c,
872         * device/lib/_slong2fs.c,
873         * device/lib/_spx.c,
874         * device/lib/_uchar2fs.c,
875         * device/lib/_uint2fs.c,
876         * device/lib/_ulong2fs.c,
877         * device/lib/asincosf.c,
878         * device/lib/atanf.c,
879         * device/lib/calloc.c,
880         * device/lib/ds390/tinibios.c,
881         * device/lib/ds400/tinibios.c,
882         * device/lib/expf.c,
883         * device/lib/free.c,
884         * device/lib/hc08/_mulint.c,
885         * device/lib/logf.c,
886         * device/lib/malloc.c,
887         * device/lib/printf_fast.c,
888         * device/lib/printf_tiny.c,
889         * device/lib/printfl.c,
890         * device/lib/realloc.c,
891         * device/lib/ser_ir.c,
892         * device/lib/serial.c,
893         * support/regression/tests/libmullong.c: replaced all special keywords
894           with their double underscore equivalent
895         * support/regression/ports/mcs51-xstack-auto/spec.mk,
896         * device/lib/Makefile.in: compile libs with --std-c99 instead of
897           --std-sdcc99
898         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
899           (genRet): if the bit-symbol is ruonly it already is in the carry
900         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
901         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
902         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
903           type UCHAR if dest is not bit
904
905 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
906
907         * device/include/math.h,
908         * device/lib/cotf.c,
909         * device/lib/expf.c,
910         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
911
912 2007-04-01 Borut Razem <borut.razem AT siol.net>
913
914         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
915           fixed bug #1692042: input buffer overflow...scanner uses REJECT
916         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
917           gcc_unreachable() called internal_error()...
918
919 2007-03-30 Raphael Neider <rneider AT web.de>
920
921         * src/pic/ralloc.c (isData): suppress garbage debug output
922
923 2007-03-28 Borut Razem <borut.razem AT siol.net>
924
925         * doc/sdccman.lyx:
926           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
927           is developed, built and used worldwide, and the word "night" doesn't
928           make any sense.
929
930 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
931
932         * device/include/mcs51/C8051F360.h: new, added
933         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
934
935 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
936
937         * src/SDCC.y (declaration_specifiers, function_specifier),
938         * support/Util/SDCCerr.c,
939         * support/Util/SDCCerr.h,
940         * src/SDCCsymt.h,
941         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
942           inline keyword
943         * src/SDCCmem.c (deallocParms),
944         * src/SDCCast.c: support for function inlining, not quite complete
945         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
946           'restrict' qualifier
947
948 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
949
950         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
951           (saveRBank, unsaveRBank): don't save bits,
952           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
953         * support/regression/tests/bug1535242.c: new, added
954         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
955           thanks Alexey Shamrin <shamrin AT gmail.com>,
956           made assert.h header ANSI compliant (added a check for NDEBUG macro,
957           removed header guard)
958         * .version,
959         * sdcc.spec: bumped version to 2.6.5
960         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
961
962 2007-03-22 Borut Razem <borut.razem AT siol.net>
963
964         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
965           fixed bug #1653671: sdcdb integration into ddd is broken
966
967 2007-03-22 Raphael Neider <rneider AT web.de>
968
969         * src/pic/gen.c (popGetExternal): augmented to also create references
970           to external variables (not only labels),
971           (genCall): comment on plan to reduce PAGESEL overhead,
972           (genFunction, genEndFunction): also save/restore FSR around interrupt
973           handling code, removed lots of unused code
974           (genDivOneByte): release acquired temp register
975         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
976           of popGetExternal
977         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
978           for registers that need to be saved during interrupts (FSR, STATUS,
979           PCLATH; W needs special handling), currently only FSR is used
980
981 2007-03-22 Raphael Neider <rneider AT web.de>
982
983         * device/include/pic/pic14devices.txt: 16f688 has only one config word
984
985 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
986
987         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
988
989 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
990
991         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
992
993 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
994
995         * as/link/aslink.h: added LKOBJEXT
996         * as/link/hc08/link_hc08.dsp,
997         * as/link/hc08/Makefile.bcc,
998         * as/link/hc08/Makefile.in,
999         * as/link/mcs51/aslink.dsp,
1000         * as/link/mcs51/Makefile.bcc,
1001         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
1002         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
1003         * as/link/lkaomf51.c: merged and moved
1004         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
1005         * as/link/z80/lkdata.c,
1006         * as/link/lkdata.c: merged and moved
1007         * as/link/hc08/lkmain.c,
1008         * as/link/mcs51/lkmain.c: cosmetic changes
1009         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
1010         * as/link/lklex.c: use LKOBJEXT
1011         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
1012           ANSI-fied functions, removed bubble-sorts
1013         * as/link/z80/lksym.c           as/link/lksym.c: merged,
1014           ANSI-fied functions
1015         * as/link/z80/linkgbz80.dsp,
1016         * as/link/z80/linkz80.dsp,
1017         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
1018           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
1019         * as/link/z80/lkhead.c,
1020         * as/link/z80/lklex.c: deleted
1021         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
1022         * as/link/z80/lkmain.c: added copyfile()
1023
1024 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1025
1026         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
1027
1028 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1029
1030         * device/lib/_strlen.c: assembler version for mcs51
1031
1032 2007-03-13 Raphael Neider <rneider AT web.de>
1033
1034         * device/include/pic16/pic18f2221.h,
1035         * device/include/pic16/pic18f2321.h,
1036         * device/include/pic16/pic18f2331.h,
1037         * device/include/pic16/pic18f4221.h,
1038         * device/include/pic16/pic18f4321.h,
1039         * device/include/pic16/pic18f4331.h: fixed config byte location names
1040         * support/scripts/inc2h-pic16.pl: removed debug output, emit
1041           consistently named config byte locations
1042
1043 2007-03-13 Borut Razem <borut.razem AT siol.net>
1044
1045         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1046           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
1047           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
1048           as/link/z80/Makefile.in, as/z80/Makefile.in:
1049           introduced LDFLAGS
1050
1051 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1052
1053         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
1054         * device/lib/printf_large.c: pointer was converted to generic
1055         pointer for mcs51 models other than model-small (Maarten noticed)
1056
1057 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1058
1059         * device/include/mcs51/ADuC84x.h: Added.
1060
1061 2007-03-10 Borut Razem <borut.razem AT siol.net>
1062
1063         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
1064           fixed RFE #1624219: double backslashes in filenames;
1065           functions hexEscape(), octalEscape() and copyStr() moved from
1066           SDCCval.c to SDCCutil.c and made them glovbally available
1067
1068 2007-03-09 Borut Razem <borut.razem AT siol.net>
1069
1070         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
1071           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
1072           1673361: Missaligned comments in output files
1073
1074 2007-03-09 Raphael Neider <rneider AT web.de>
1075
1076         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
1077
1078 2007-03-09 Raphael Neider <rneider AT web.de>
1079
1080         * src/pic/gen.c,
1081         * src/pic/glue.c,
1082         * src/pic/ralloc.c: suppress undesired debug output
1083         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
1084
1085 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1086
1087         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
1088
1089 2007-03-07 Borut Razem <borut.razem AT siol.net>
1090
1091         * device/lib/pic16/libdev/pic18f[24][34]31.c:
1092           search include files in the current directory
1093
1094 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
1095
1096         * src/SDCCglue.c (emitMaps, glue),
1097         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
1098           absolute xdata
1099         * support/regression/tests/absolute.c: added xdata test
1100
1101 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
1102
1103         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
1104           added condition to macro, fixes bug 1666080
1105
1106 2007-03-02 Raphael Neider <rneider AT web.de>
1107
1108         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
1109
1110 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1111
1112         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
1113         be cleared. Unconditionally set __XPAGE
1114         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
1115
1116 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1117
1118         * src/SDCCglobl.h,
1119         * src/SDCCmain.c,
1120         * src/mcs51/gen.c,
1121         * src/mcs51/rtrack.c,
1122         * src/ds390/gen.c,
1123         * doc/sdccman.lyx: added --no-gen-comments
1124         * src/mcs51/peeph.def: added 192.b, disabled 185
1125
1126 2007-02-25 Raphael Neider <rneider AT web.de>
1127
1128         * src/pic16/gen.c (genCast): fixed typo
1129         * device/lib/pic16/Makefile.subdir: only install existing files
1130         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
1131
1132 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1133
1134         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
1135         * device/lib/mcs51/crtclear.asm,
1136         * device/lib/mcs51/crtxclear.asm: renumbered labels
1137         * device/lib/mcs51/Makefile.in: added crtcall.asm
1138         * doc/sdccman.lyx: documented mcs51 crt* library startup code
1139         * src/mcs51/gen.c (movc): removed,
1140           (aopGet, genPlusBits): clear a after loading the carry (possibly from
1141             acc.x or psw.x),
1142           (toCarry, genSend, genRet): added function toCarry,
1143           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
1144           (assignBit, genAssign, genCast): added function assignBit
1145         * src/mcs51/Makefile.bcc: added rtrack.c
1146         * src/mcs51/ralloc.h: made valueKnown a bitfield
1147         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
1148           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
1149           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
1150         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
1151         * src/z80/gen.c: added AOP_IS_PAIRPTR,
1152           (_pop): only pop valid pairs, see gencjneshort,
1153           (gencjneshort): return pair that still needs to be popped, restructured,
1154           (gencjne, genCmpEq): call _pop
1155
1156 2007-02-23 Raphael Neider <rneider AT web.de>
1157
1158         * device/include/pic/pic14devices.txt: 16f684 has only one config word
1159
1160 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1161
1162         * device/include/mcs51/P89LPC925.h: Added.
1163
1164 2007-02-18 Raphael Neider <rneider AT web.de>
1165
1166         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
1167
1168 2007-02-17 Borut Razem <borut.razem AT siol.net>
1169
1170         * support/cpp2/directives.c, support/cpp2/version.c:
1171           synchronized with GCC CPP 4.1.2
1172
1173 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1174
1175         * src/mcs51/rtrack.h,
1176         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
1177           by checking the strings passed by emitcode() to the assembler.
1178           Feel free to change. This in part addresses RFE #482179.
1179           Set environment variable SDCC_RTRACK to enable.
1180         * src/mcs51/gen.c: inserted hooks
1181         * src/mcs51/ralloc.h: added two members to struct regs
1182         * support/regression/tests/regtrack.c: added
1183
1184 2007-02-14 Borut Razem <borut.razem AT siol.net>
1185
1186         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
1187         * Makefile.in: applied patch from Makefile related part of
1188           #1469393: Compiler does not initialize static data
1189
1190 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1191
1192         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
1193           for better fix of bug 1273984, compiles pic16 rand.c
1194
1195 2007-02-12 Borut Razem <borut.razem AT siol.net>
1196
1197         * src/pic16/main.c: fixed pic16 standard library directory bug
1198
1199 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1200
1201         * src/hc08/gen.c (genSwap): fix swap regression test
1202
1203 2007-02-10 Borut Razem <borut.razem AT siol.net>
1204
1205         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
1206           with same scope
1207         * support/regression/tests/bug-1654060.c: added regression test for
1208           #1654060
1209
1210 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
1211
1212         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
1213         bit moves in return statement
1214
1215 2007-02-09 Borut Razem <borut.razem AT siol.net>
1216
1217         * src/SDCC.y: fixed bug #1654060 typedef within function causes
1218           syntax error
1219
1220 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1221
1222         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
1223         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
1224
1225 2007-02-07 Raphael Neider <rneider AT web.de>
1226
1227         * src/pic16/devices.inc,
1228         * device/include/pic16/pic18fregs.h,
1229         * device/include/pic16/pic18f[24][34]31.h,
1230         * device/lib/pic16/libdev/pic18f[24][34]31.c,
1231         * device/lib/pic16/pics.all: added 18f[24][34]31 family
1232         * device/lib/pic16/libio/i2c.ignore: do not build i2c
1233
1234 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1235
1236         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
1237           can this have lived here for so many years?
1238         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
1239           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
1240         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
1241
1242 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
1243
1244         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
1245         appended by loop induction must be at the very end of the eBBlock
1246
1247 2007-02-05 Kevin Vigor
1248
1249         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
1250
1251 2007-02-05 Borut Razem <borut.razem AT siol.net>
1252
1253         * support/regression/fwk/lib/timeout.c: native WIN32 port,
1254           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
1255
1256 2007-02-03 Borut Razem <borut.razem AT siol.net>
1257
1258         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
1259           applied patch #1646602 option to set default signedness of char to
1260           unsigned, added -funsigned-char command line option,
1261           thanks to Gunther Jehle
1262         * device/lib/Makefile.in: added the -f option to rm so it doesn't
1263           prompt for file deletion a few hundred times (especially the
1264           subversion files, which have ro permissions so it asks for
1265           confirmation), thanks to Simon McAuliffe;
1266           added {} + option to find in order to remove multiple files from a
1267           single rm commad
1268
1269 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1270
1271         * device/include/mcs51/SST89x5xRDx.h: Added.
1272
1273 2007-02-02 Raphael Neider <rneider AT web.de>
1274
1275         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
1276         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
1277
1278 2007-02-01 Raphael Neider <rneider AT web.de>
1279
1280         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
1281           config words again
1282
1283 2007-01-31 Borut Razem <borut.razem AT siol.net>
1284
1285         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
1286           if compiled with GCC. Thanks to Raphael Neider
1287
1288 2007-01-31 Raphael Neider <rneider AT web.de>
1289
1290         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
1291             operand names, handles name and (name + n) for all n,
1292           (sameBank): restructured, also check bank allocation policy,
1293         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
1294           (pic14_operandsAllocatedInSameBank): check whether to operands
1295             will be allocated into the same bank (i.e., section) to reduce
1296             BANKSEL overhead, queried from pcode.c:sameBank,
1297           (pic14printLocals): reintroduced clustering registers into a single
1298             section: all compiler generated symbols will now reside in one
1299             bank (per file), reducing BANKSEL overhead and code size,
1300           (showAllMemmaps): use local dbuf where possible
1301
1302 2007-01-29 Raphael Neider <rneider AT web.de>
1303
1304         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
1305           (call_libraryfunc): retrieve/create symbol and mark as used,
1306           (genFunction): mark defined functions as non-extern and add again
1307            to code memmap for later output
1308         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
1309           (pic14printLocals): reworked for new symbol emission,
1310           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
1311           showAllMemmaps): reworked symbol output using dbufs, added handling
1312             of string literals (still incomplete),
1313           (picglue): removed symbol emission, moved into showAllMemmaps,
1314           (emitSymbolSet): new workhorse for symbol output,
1315           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
1316
1317 2007-01-29 Borut Razem <borut.razem AT siol.net>
1318
1319         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
1320           component contains the extension separator.
1321
1322 2007-01-28 Borut Razem <borut.razem AT siol.net>
1323
1324         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
1325           on WIN32
1326         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
1327           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
1328           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
1329           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
1330           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
1331           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
1332           src/z80/gen.c, support/Util/MySystem.c:
1333           accept slash and backslash as directory separator on WIN32 and
1334           Cygwin ports
1335
1336 2007-01-28 Raphael Neider <rneider AT web.de>
1337
1338         * src/pic16/devices.inc,
1339         * device/include/pic16/pic18f[24][23]21.h,
1340         * device/include/pic16/pic18fregs.h,
1341         * device/lib/pic16/libdev/pic18f[24][23]21.c,
1342         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
1343         * device/lib/pic16/libio/adc.ignore,
1344         * device/lib/pic16/libio/i2c.ignore,
1345         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
1346           family, as gputils do not yet support the devices
1347         * device/lib/pic16/Makefile.subdir: ignore errors on install
1348         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
1349           headers and libraries from gputils .inc files
1350
1351 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1352
1353         * doc/sdccman.lyx: add printf_fast_f precision limitation note
1354
1355 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1356
1357         * doc/sdccman.lyx: add printf benchmarks
1358
1359 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1360
1361         * device/lib/printf_fast.c: fix %c, char promoted to int
1362         * device/lib/printf_tiny.c: fix %c, char promoted to int
1363
1364 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1365
1366         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
1367
1368 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1369
1370         * support/regression/tests/swap.c: 64 bit hosts failed
1371         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
1372
1373 2007-01-25 Raphael Neider <rneider AT web.de>
1374
1375         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
1376           based on absolute register address, patch by Alex Blond
1377
1378 2007-01-22 Raphael Neider <rneider AT web.de>
1379
1380         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
1381           emitted, do not emit them again...
1382
1383 2007-01-22 Raphael Neider <rneider AT web.de>
1384
1385         * src/regression/bank1.c, src/regression/compare6.c,
1386           src/regression/add.c: cosmetic changes
1387         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
1388         * src/pic/gen.c: fixed global zero and one,
1389           (aopForSym): removed unued code,
1390           (aopGet): assert aop is defined, check and use `index' of
1391             pCodeImmd operands (fixes #1630908),
1392         * src/pic/pcode.c (get_op): added output of generic pointer tag,
1393           (register_reassign): prevent accidental register unification,
1394           (ReuseReg): cosmetic changes (also above)
1395         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
1396           pic14emitStaticSeg): do not emit initialized data,
1397           (printIval*): replaced with working versions,
1398           (pic14createInterruptVect,picglue): use idata for initialized data,
1399             now init data should work in all modules (not only main()),
1400         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
1401
1402 2007-01-21 Borut Razem <borut.razem AT siol.net>
1403
1404         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
1405           use -fPIC or -fpic if they are supported and not ignored
1406         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
1407         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
1408
1409 2007-01-20 Borut Razem <borut.razem AT siol.net>
1410
1411         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
1412           implemented RFE #1470316: allow "$" in variable names
1413
1414 2007-01-20 Raphael Neider <rneider AT web.de>
1415
1416         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
1417
1418 2007-01-20 Raphael Neider <rneider AT web.de>
1419
1420         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
1421         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
1422         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
1423         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
1424           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
1425         * device/lib/pic/libdev/pic*.c,
1426         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
1427         * device/lib/pic/libdev/Makefile.in: show progress
1428
1429 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1430
1431         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
1432         * support/scripts/sdcc_cygwin_mingw32,
1433         * support/scripts/sdcc_mingw32,
1434         * support/scripts/build.mak: replaced --datadir by --datarootdir for
1435         conformance with autoconf 2.6
1436
1437 2007-01-19 Raphael Neider <rneider AT web.de>
1438
1439         * src/pic/device.c (register_map): fixed list construction
1440         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
1441           (genMod): removed case for genModbits,
1442           (genModbits): removed as now unused/unimplemented
1443         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
1444
1445 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1446
1447         * support/regression/tests/swap.c: added in response to #1638622
1448         * doc/sdccman.lyx: synced version, minor changes
1449
1450 2007-01-18 Borut Razem <borut.razem AT siol.net>
1451
1452         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
1453           thanks to Gunther Jehle
1454         * src/asm.c: don't die if the file drfined in #line couldn't be opened
1455         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
1456           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
1457           use filename in lineno instead.
1458         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
1459           print the file name in ast_print()
1460
1461 2007-01-18 Borut Razem <borut.razem AT siol.net>
1462
1463         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
1464           defined in MSVC
1465         * src/SDCC.lex: stringLiteral() returns const char pointer,
1466           EOF detection in stringLiteral(), fixed asmbuf memory leak,
1467           fixed column counting
1468         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
1469           accept const char pointer as parameter
1470         * src/SDCCdwarf2.c: corrected buffer size
1471
1472 2007-01-17 Borut Razem <borut.razem AT siol.net>
1473
1474         * support/Util/dbuf_string.c: fixed for amd64
1475
1476 2007-01-15 Borut Razem <borut.razem AT siol.net>
1477
1478         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
1479           removed terminal symbol ELIPSIS, since it was never generated by the
1480           lexer and it was wrongly used in parameter_identifier_list rule
1481
1482 2007-01-15 Raphael Neider <rneider AT web.de>
1483
1484         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
1485             code page and data banking description
1486         * src/pic/genarith.c,
1487         * src/pic/gen.h: removed bit arithmetic functions,
1488             updated exit(1) to exit(EXIT_FAILURE)
1489         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
1490         * device/include/pic16/pic18f2455.h,
1491         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
1492             TRISD and TRISE, fixed/added some bit names
1493         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
1494         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
1495             updated pic18f2455.{c,h} instead of duplicating them
1496
1497 2007-01-14 Borut Razem <borut.razem AT siol.net>
1498
1499         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
1500           Cannot debug files that contain spaces in the path name
1501           by converting spaces in asm file name to underscores
1502
1503 2007-01-13 Borut Razem <borut.razem AT siol.net>
1504
1505         * doc/sdccman.lyx: fixed format errors
1506
1507 2007-01-10 Borut Razem <borut.razem AT siol.net>
1508
1509         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
1510           codeseg/constseg #pragma fail
1511         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
1512         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
1513           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
1514           suppoprt/cpp2/sdcpp.[ch]: house cleaning
1515
1516 2007-01-09 Borut Razem <borut.razem AT siol.net>
1517
1518         * get rid of diagnistic.[ch], pretty-print.[ch],
1519           c-pretty-print.[ch], ... used just for error, warning, ...
1520           message formatting
1521         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
1522           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
1523           suppoprt/cpp2/pretty-print.[ch]:
1524           removed
1525         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
1526           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
1527           suppoprt/cpp2/sdcpp.dsp:
1528           changed
1529
1530 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
1531
1532         * device/lib/printf_large.c (output_float): removed recursion,
1533           use smaller buffer on stack for mcs51,
1534           fixed bug printing 1.96
1535         * support/regression/tests/snprintf.c: added test
1536
1537 2007-01-07 Borut Razem <borut.razem AT siol.net>
1538
1539         * use dynamic memory buffers instead temporary files
1540         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1541           added
1542         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1543           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1544           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1545           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1546           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1547           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1548           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1549           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1550           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1551           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1552           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1553           support/Util/dbuf.c, support/Util/dbuf.h:
1554           modified
1555         * .version, sdcc.spec: bumped version to 2.6.4
1556
1557 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1558
1559         * src/port.h: added TARGET_Z80_LIKE macro
1560         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1561           output PSEG location if --xram-loc or --xstack-loc was used
1562         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1563
1564 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1565
1566         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1567         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1568         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1569         * sdcc.dsw: moved project files into subdir
1570         * as/hc08/as_hc08.dsp,
1571         * as/hc08/Makefile.bcc,
1572         * as/hc08/Makefile.in,
1573         * as/mcs51/Makefile.bcc,
1574         * as/mcs51/Makefile.in,
1575         * as/z80/Makefile.bcc,
1576         * as/z80/Makefile.in,
1577         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1578         * as/hc08/asm.h,
1579         * as/mcs51/asm.h,
1580         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1581         * as/hc08/asmain.c,
1582         * as/hc08/assym.c,
1583         * as/mcs51/asmain.c,
1584         * as/mcs51/assym.c,
1585         * as/z80/assym.c: removed include "strcmpi.h"
1586         * as/hc08/strcmpi.c,
1587         * as/hc08/strcmpi.h,
1588         * as/mcs51/strcmpi.c,
1589         * as/mcs51/strcmpi.h,
1590         * support/Util/strcmpi.c,
1591         * support/Util/strcmpi.h: removed files
1592         * as/strcmpi.c: added as_strncmpi()
1593
1594 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1595
1596         * sdcc.dsw: Added some dependencies on project config.dsp
1597
1598 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1599
1600         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1601           with [di]ram_start to fix a regresion
1602
1603 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1604
1605         * configure.in: added missing mcs51 in status output
1606         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1607         directory
1608         * debugger/mcs51/clean.mk (distclean): remove config.h
1609         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1610         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1611         options.h, s-options-h and options.c
1612         * support/cpp2/clean.mk: unused, removed
1613         * Makefile.common.in,
1614         * main_in.mk,
1615         * as/Makefile.in,
1616         * as/hc08/Makefile.in,
1617         * as/hc08/clean.mk,
1618         * as/mcs51/Makefile.in,
1619         * as/mcs51/clean.mk,
1620         * as/z80/clean.mk,
1621         * as/z80/conf.mk,
1622         * as/z80/Makefile.in,
1623         * as/z80/clean.mk,
1624         * as/link/Makefile.in,
1625         * as/link/hc08/Makefile.in,
1626         * as/link/hc08/clean.mk,
1627         * as/link/mcs51/Makefile.in,
1628         * as/link/mcs51/clean.mk,
1629         * as/link/z80/Makefile.in,
1630         * as/link/z80/clean.mk,
1631         * as/link/z80/conf.mk,
1632         * debugger/mcs51/Makefile.in,
1633         * debugger/mcs51/clean.mk,
1634         * device/include/Makefile.in,
1635         * device/lib/Makefile.in,
1636         * device/lib/mcs51/Makefile.in,
1637         * device/lib/pic/Makefile.in,
1638         * device/lib/pic/Makefile.common.in,
1639         * device/lib/pic/Makefile.subdir,
1640         * device/lib/pic/Makefile.rules,
1641         * device/lib/pic16/libio/Makefile.in,
1642         * device/lib/pic16/Makefile.subdir,
1643         * device/lib/pic16/libdev/Makefile.in,
1644         * device/lib/pic16/Makefile.rules,
1645         * device/lib/pic16/Makefile.common.in,
1646         * sim/ucsim/avr.src/Makefile.in,
1647         * sim/ucsim/main_in.mk,
1648         * sim/ucsim/cmd.src/Makefile.in,
1649         * sim/ucsim/doc/Makefile.in,
1650         * sim/ucsim/gui.src/Makefile.in,
1651         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1652         * sim/ucsim/gui.src/serio.src/Makefile.in,
1653         * sim/ucsim/hc08.src/Makefile.in,
1654         * sim/ucsim/libltdl/Makefile.in,
1655         * sim/ucsim/s51.src/Makefile.in,
1656         * sim/ucsim/sim.src/Makefile.in,
1657         * sim/ucsim/sim.src/conf.mk,
1658         * sim/ucsim/xa.src/Makefile.in,
1659         * sim/ucsim/z80.src/Makefile.in,
1660         * src/Makefile.in,
1661         * src/clean.mk,
1662         * src/port.mk,
1663         * support/cpp2/Makefile.in,
1664         * support/librarian/Makefile.in,
1665         * support/librarian/clean.mk,
1666         * support/makebin/Makefile.in,
1667         * support/makebin/clean.mk,
1668         * support/packihx/Makefile.in,
1669         * support/regression/Makefile.in,
1670         * support/regression/ports/ds390/spec.mk,
1671         * support/regression/ports/gbz80/spec.mk,
1672         * support/regression/ports/hc08/spec.mk,
1673         * support/regression/ports/mcs51/spec.mk,
1674         * support/regression/ports/mcs51-large/spec.mk,
1675         * support/regression/ports/mcs51-medium/spec.mk,
1676         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1677         * support/regression/ports/pic14/spec.mk,
1678         * support/regression/ports/pic16/spec.mk,
1679         * support/regression/ports/mcs51-stack-auto/spec.mk,
1680         * support/regression/ports/ucz80/spec.mk,
1681         * support/regression/ports/xa51/spec.mk,
1682         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1683         adding a slash after $(top_builddir) and/or adding @datarootdir@
1684         * configure.in,
1685         * debugger/mcs51/configure.in,
1686         * device/lib/pic/configure.in,
1687         * device/lib/pic16/configure.in,
1688         * sim/ucsim/configure.in,
1689         * support/cpp2/configure.in,
1690         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1691         * configure,
1692         * debugger/mcs51/configure,
1693         * device/lib/pic/configure,
1694         * device/lib/pic16/configure,
1695         * sim/ucsim/configure,
1696         * support/cpp2/configure,
1697         * support/packihx/configure: generated with autoconf 2.60
1698
1699 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1700
1701         * as/link/hc08/lkihx.c (newArea),
1702         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1703
1704 2007-01-02 Borut Razem <borut.razem AT siol.net>
1705
1706         * doc/sdccman.lyx: documented #pragma sdcc_hash
1707         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1708           initialized to 0
1709         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1710
1711 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1712
1713         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1714         empty 'while'-loop to work correctly, see regression test 'while.c'
1715         * support/regression/tests/while.c: added
1716
1717 2007-01-01 Borut Razem <borut.razem AT siol.net>
1718
1719         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1720           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1721           support/cpp2/libcpp/sdcpp.c:
1722           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1723         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1724         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1725
1726 2006-12-31 Borut Razem <borut.razem AT siol.net>
1727
1728         * SDCPP synchronized with GCC CPP release version 4.1.1,
1729           currently the latest release:
1730         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1731           support/cpp2/libcpp/include/cpp-id-data.h
1732           support/cpp2/libiberty/fopen_unlocked.c
1733           support/cpp2/libiberty/md5.c
1734           support/cpp2/md5.h
1735           support/cpp2/opt-functions.awk
1736           support/cpp2/opt-gather.awk
1737           support/cpp2/optc-gen.awk
1738           support/cpp2/opth-gen.awk:
1739           added
1740         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1741           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1742           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1743           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1744           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1745           support/cpp2/diagnostic.h, support/cpp2/except.h,
1746           support/cpp2/hwint.h, support/cpp2/input.h,
1747           support/cpp2/intl.h, support/cpp2/move-if-change,
1748           support/cpp2/opts.c, support/cpp2/opts.h,
1749           support/cpp2/output.h, support/cpp2/prefix.c,
1750           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1751           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1752           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1753           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1754           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1755           support/cpp2/version.c:
1756           modified
1757         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1758           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1759           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1760           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1761           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1762           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1763           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1764           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1765           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1766           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1767           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1768           moved
1769         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1770           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1771           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1772           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1773           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1774           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1775           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1776           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1777           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1778           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1779           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1780           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1781           support/cpp2/system.h:
1782           deleted / moved
1783
1784 2006-12-31 Borut Razem <borut.razem AT siol.net>
1785
1786         * configure.in, configure: fixed bug #1538756: configure dies if bison
1787           and flex are not installed, 2nd try
1788
1789 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1790
1791         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1792         400.x for better code in RFE 899102
1793
1794 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1795
1796         * src/SDCCpeeph.c (deadMove),
1797         * src/port.h,
1798         * src/mcs51/peep.h: renamed 'op' by 'reg'
1799         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1800         (scan4op): small change for removeDeadMove(), added support for
1801         'callee saves' and/or PACLL function calls,
1802         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1803         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1804         left in new dispatcher mcs51DeadMove()
1805         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1806         removeDeadMove()
1807         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1808
1809 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1810
1811         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1812           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1813
1814 2006-12-30 Borut Razem <borut.razem AT siol.net>
1815
1816         * support/cpp2/spacs.h: deleted from svn
1817         * configure.in, configure: fixed bug #1538756: configure dies if bison
1818           and flex are not installed
1819
1820 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1821
1822         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1823           with this z80 passes printf float test when enabled
1824         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1825
1826 2006-12-28 Borut Razem <borut.razem AT siol.net>
1827
1828         * support/cpp2/config.in, support/cpp2/configure.in,
1829           support/cpp2/configure, support/cpp2/Makefile.in:
1830           fix for the solaris build
1831
1832 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1833
1834         * src/SDCC.y (type_specifier2, pointer),
1835         * src/SDCCsymt.h,
1836         * src/SDCCsymt.c (mergeSpec, checkSClass),
1837         * support/Util/SDCCerr.c,
1838         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1839         * support/valdiag/valdiag.py: Allow test cases to specify
1840           required language standard
1841         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1842         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1843
1844 2006-12-27 Borut Razem <borut.razem AT siol.net>
1845
1846         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1847         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1848           mbchar removed
1849         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1850           fixed for borland C
1851         * support/cpp2/libiberty/Makefile.bcc: updated
1852         * src/pic16/main.c: fixed #pragma udata handling
1853         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1854
1855 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1856
1857         * src/SDCCpeeph.c: made labelHashEntry global,
1858         made pcDistance, FBYNAME static,
1859         (pcDistance): made static, use isComment and isLabel,
1860         (deadMove): added,
1861         (getLabelRef): added, extracted from labelRefCount(),
1862         (labelRefCount): use new getLabelRef(),
1863         (callFuncByName): made static, added deadMove,
1864         use isComment and isLabel,
1865         (newPeepRule): made static, set isLabel,
1866         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1867         labels from peephole rules,
1868         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1869         when isComment or isLabel is set
1870         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1871         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1872         to make them global
1873         * src/mcs51/peep.h: added
1874         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1875         * src/port.h: added peep->deadMove to port structure
1876         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1877         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1878         deadMove, finally removed no. 1 and 2
1879         * src/mcs51/gen.c,
1880         * src/pic/gen.c,
1881         * src/z80/gen.c,
1882         * src/z80/ralloc.c,
1883         * src/pic16/gen.c,
1884         * src/ds390/gen.c,
1885         * src/hc08/gen.c: mark lines with isComment or isLabel
1886         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1887         * .version,
1888         * sdcc.spec: bumped version to 2.6.3
1889
1890 2006-12-26 Borut Razem <borut.razem AT siol.net>
1891
1892         * support/cpp2/Makefile.in: added dependency on options.h
1893         * configure: regenerated
1894         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1895         * support/cpp2/Makefile.in: added vasprintf.c
1896
1897 2006-12-25 Borut Razem <borut.razem AT siol.net>
1898
1899         * SDCPP synchronized with GCC CPP release version 3.4.6,
1900           the latest release before 4.x:
1901         * support/cpp2/Makefile.in, support/cpp2/config.h,
1902           support/cpp2/configure, support/cpp2/configure.in,
1903           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1904           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1905           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1906           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1907           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1908           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1909           support/cpp2/cpptrad.c, support/cpp2/except.h,
1910           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1911           support/cpp2/hwint.h, support/cpp2/intl.h,
1912           support/cpp2/line-map.c, support/cpp2/line-map.h,
1913           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1914           support/cpp2/output.h, support/cpp2/prefix.c,
1915           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1916           support/cpp2/system.h, support/cpp2/version.c:
1917           modified
1918         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1919           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1920           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1921           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1922           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1923           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1924           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1925           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1926           support/cpp2/move-if-change, support/cpp2/opts.c,
1927           support/cpp2/opts.h, support/cpp2/opts.sh,
1928           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1929           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1930           support/cpp2/win32, support/cpp2/win32/dirent.c,
1931           support/cpp2/win32/dirent.h:
1932           added
1933         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1934         * support/cpp2/sdcpp.h: renamed from sdcc.h
1935         * sdcppinit.c: deleted
1936
1937 2006-12-23 Borut Razem <borut.razem AT siol.net>
1938
1939         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1940           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1941           preproc.c: an other try to fix bug #982435: introduced
1942           -pedantic-parse-number command line option and pedantic_parse_number
1943           pragma
1944
1945 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1946
1947         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1948            BSEG handling,
1949           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1950            corrected overlayed areax addresses, warn about memory overlaps
1951         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1952         * src/avr/main.c,
1953         * src/ds390/main.c,
1954         * src/hc08/main.c,
1955         * src/mcs51/main.c,
1956         * src/pic16/main.c,
1957         * src/pic/main.c,
1958         * src/xa51/main.c,
1959         * src/z80/main.c,
1960         * src/port.h: added xabs_name and iabs_name
1961         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1962           (glue, emitMaps): create and emit maps d_abs and i_abs
1963         * src/SDCCglue.h: cosmetic changes
1964         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1965         * src/SDCCmem.h,
1966         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1967           (allocDefault): put absolute, initialized globals in them
1968         * support/regression/tests/absolute.c: added absolute bdata test
1969         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1970
1971 2006-12-20 Borut Razem <borut.razem AT siol.net>
1972
1973         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1974         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1975           added regression test for bug #982435
1976
1977 2006-12-18 Borut Razem <borut.razem AT siol.net>
1978
1979         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1980         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1981           small cosmetic changes
1982         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1983         * support/regression/tests/bug-1351710.c: added regression test
1984
1985 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1986
1987         * doc/sdccman.lyx: added the long missed iCode table
1988           "<where is figure II?>", added links to wiki
1989
1990 2006-12-17 Borut Razem <borut.razem AT siol.net>
1991
1992         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1993           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1994           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1995           unified table driven pragma handling, pragma argument type checking
1996         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1997           current one - version 1.1.3
1998         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1999
2000 2006-12-13 Raphael Neider <rneider AT web.de>
2001
2002         * src/pic/device.h: removed AssignedMemory structure and macros
2003         * src/pic/device.c: removed global finalMapping (linker assigns
2004             memory locations),
2005           (register_map): add SFRs to remembered memRanges
2006           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
2007           assignFixedRegisters,assignRelocatableRegisters): removed,
2008           (setMaxRAM,validAddress): adapted accordingly,
2009           (pic14_hasSharebank,pic14_getSharedStack): only report and use
2010             reasonably sized sharebanks,
2011         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
2012           (allDefsOutOfRange): removed unused code,
2013         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
2014             handling
2015         * src/pic/pcode.c (register_reassign): removed recursion warning,
2016             fired far too often,
2017         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
2018             to use existing pic14_stringInSet() to avoid duplicate symbols,
2019             tidied up the code a bit,
2020           (pic14printLocals): added in symmetry to printExterns, replaces
2021             writeUsedRegs more or less,
2022           (picglue): call new pic14_printLocals(),
2023         * device/include/pic/pic*.h: removed #pragma memmap directives,
2024             information gathered from include/pic/pic14devices.txt
2025         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
2026
2027 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
2028
2029         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
2030
2031 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2032
2033         * device/include/mcs51/cc2430.h: fixed missing ';'
2034
2035 2006-12-10 Raphael Neider <rneider AT web.de>
2036
2037         * device/lib/pic16/libc/stdio/vfprintf.c,
2038         * device/lib/pic16/libc/stdio/printf_small.c,
2039         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
2040           char arguments, as char varargs are cast to int by the caller,
2041           hopefully fixes #1604915 (other device libraries are still affected)
2042
2043 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2044
2045         * src/mcs51/ralloc.c (packRegsForAssign),
2046         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
2047
2048 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
2049
2050         * device/include/malloc.h: removed init_dynamic_memory
2051         * device/lib/malloc.c: made init_dynamic_memory static and automatically
2052           call it once from malloc. Also use _sdcc_heap[] from _heap.c
2053         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
2054         * device/lib/libsdcc.lib,
2055         * device/lib/Makefile.in,
2056         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
2057         * doc/sdccman.lyx: documented use of new _heap.c
2058         * support/regression/tests/malloc.c: removed init_dynamic_memory
2059         * src/cdbFile.c(spacesToUnderscores): new function,
2060           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
2061           1068030
2062         * device/include/tinibios.h: removed defines for putchar and getchar
2063         * device/lib/ds390/Makefile.in: added putchar.c
2064         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
2065
2066 2006-12-09 Borut Razem <borut.razem AT siol.net>
2067
2068         * support/cpp2/sdcc.h: prevent multiple inclusion
2069         * support/cpp2/options.h: deleted
2070
2071 2006-12-08 Borut Razem <borut.razem AT siol.net>
2072
2073         * support/cpp2/sdcc.h: removed x*alloc() macros
2074         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
2075         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
2076           support/cpp2/sdcpp.sdc: x*alloc files added to the project
2077         * support/cpp2/system.h: moved #include "sdcc.h"
2078         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
2079           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
2080           added
2081         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
2082           -funsigned-char options
2083         * support/cpp2/sdcppmain.c: fixed bug 1611411
2084
2085 2006-12-07 Borut Razem <borut.razem AT siol.net>
2086
2087         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
2088           directive
2089
2090 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2091
2092         * src/SDCCsymt.c (addDecl): fixed bug 1609244
2093         * src/SDCCmain.c (linkEdit): fixed bug 1609279
2094         * doc/sdccman.lyx,
2095         * .version: bumped to 2.6.2 because a) it's been a while
2096           b) the linker sources have moved c) the preprocessor is upgraded
2097
2098 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2099
2100         * support/regression/tests/snprintf.c: some checks
2101         * lib/src/printf_large.c: %bc: read char instead of int from stack
2102
2103 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
2104
2105         * device/include/mcs51/cc2430.h: inserted _XPAGE
2106
2107 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2108
2109         * device/include/mcs51/cc2430.h: added
2110
2111 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
2112
2113         * device/include/asm/default/features.h,
2114         * device/include/asm/ds390/features.h,
2115         * device/include/mcs51/at89s53.h,
2116         * device/include/ser.h,
2117         * device/include/ser_ir.h,
2118         * device/include/serial.h: changed keywords to double underscore variants,
2119           fixes bug 1590261 some more, thanks Steven Borley
2120
2121 2006-12-01 Raphael Neider <rneider AT web.de>
2122
2123         * src/pic/pcode.c (register_reassign): do not crash on recursive code
2124           but emit warning (recursion is not supported for pic14)
2125
2126 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2127
2128         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
2129         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
2130
2131 2006-11-30 Raphael Neider <rneider AT web.de>
2132
2133         * src/pic/device.c (dump_sfr): always emit symbols
2134         * src/pic/glue.c (pic14printPublics): fixed typo
2135
2136 2006-11-30 Raphael Neider <rneider AT web.de>
2137
2138         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
2139           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
2140           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
2141            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
2142            a sharebank, use a non-shared bank for the stack if none available
2143         * src/pic/device.h (struct memRange): added linked list next field,
2144           added prototypes for above functions
2145         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
2146           (typeRegWithIdx): accept fixed and unfixed stack registers
2147         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
2148           the stack, handle shared and banked stack (except for WSAVE),
2149           (insertBankSel): removed useless optimization (will never fire),
2150           (FixRegisterBanking): added optimization for devices with only one
2151           possibly aliased bank of memory, like 16f84
2152         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
2153           devices have no SHAREBANK in the linker script
2154         * device/include/pic/pic14devices.txt: documented memmap
2155         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
2156
2157 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2158
2159         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
2160           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
2161           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
2162           genhc08Code): switched most of the D (debug) macros to DD (detailed
2163           debug) macros to better control clutter in the generated .asm file.
2164         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
2165           genRightShift): fixed bug with non-constant bit shift stored to
2166           a volatile result (SF Open Discussion forum thread #1616749).
2167           Single byte case is not yet optimized.
2168
2169 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
2170
2171         * device/include/asm/mcs51/features.h,
2172         * device/include/malloc.h,
2173         * device/include/stdio.h: changed keywords to double underscore variants,
2174           fixes bug 1590261
2175
2176 2006-11-27 Borut Razem <borut.razem AT siol.net>
2177
2178         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2179           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
2180           support/cpp2/output.h, support/cpp2/cppinit.c,
2181           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2182           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2183           support/cpp2/cppdefault.c, support/cpp2/system.h,
2184           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2185           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
2186           support/cpp2/prefix.c, support/cpp2/except.h,
2187           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
2188           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
2189           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2190           support/cpp2/version.c, support/cpp2/cppmain.c,
2191           support/cpp2/version.h, support/cpp2/hashtable.c,
2192           support/cpp2/cpperror.c:
2193           synchronized with GCC CPP release version 3.3.6,
2194           the latest where cppmain.c still exists.
2195         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
2196           support/cpp2/sdcppinit.c: added
2197
2198 2006-11-27 Borut Razem <borut.razem AT siol.net>
2199
2200         * support/cpp2/cpplex.c:
2201           fixed _asm ... _endasm handling bug, introduce with GCC CPP
2202           synchronization
2203         * support/cpp2/cpplib.c: removed definitions of unused variables
2204
2205 2006-11-26 Borut Razem <borut.razem AT siol.net>
2206
2207         * support/cpp2/libiberty.h: commented out x*alloc() declarations
2208           since they are redefined by macros in support/cpp2/sdcc.h
2209         * support/cpp2/sdcc.h: x*alloc macro redefinition
2210
2211 2006-11-25 Borut Razem <borut.razem AT siol.net>
2212
2213         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2214           support/cpp2/configure, support/cpp2/Makefile.in,
2215           support/cpp2/cppfiles.c, support/cpp2/output.h,
2216           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
2217           support/cpp2/config.h, support/cpp2/cpplib.h,
2218           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2219           support/cpp2/cppdefault.c, support/cpp2/config.in,
2220           support/cpp2/system.h, support/cpp2/cpplex.c,
2221           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
2222           support/cpp2/cppdefault.h, support/cpp2/prefix.c
2223           support/cpp2/hwint.h, support/cpp2/mbchar.h,
2224           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
2225           support/cpp2/configure.in, support/cpp2/intl.h,
2226           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
2227           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2228           support/cpp2/version.c, support/cpp2/cppmain.c,
2229           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
2230           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
2231           support/cpp2/cpperror.c,
2232           support/cpp2/libiberty/safe-ctype.c,
2233           support/cpp2/libiberty/safe-ctype.h,
2234           support/cpp2/libiberty/splay-tree.c,
2235           support/cpp2/libiberty/obstack.c,
2236           support/cpp2/libiberty/lbasename.c,
2237           support/cpp2/libiberty/splay-tree.h,
2238           support/cpp2/libiberty/obstack.h:
2239           synchronized with GCC CPP release version 3.2.3,
2240           the latest before integration of cpp into gcc
2241         * support/cpp2/except.h, support/cpp2/line-map.c,
2242           support/cpp2/line-map.h,
2243           support/cpp2/libiberty/hex.c,
2244           support/cpp2/libiberty/concat.c,
2245           support/cpp2/libiberty/filenames.h: added
2246         * support/cpp2/intl.c: deleted
2247
2248 2006-11-24 Borut Razem <borut.razem AT siol.net>
2249
2250         * src/SDCC.y: enabled compilation of empty source file
2251         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
2252           "ISO C forbids an empty source file"
2253         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
2254           if all the code is ifdefed out.
2255
2256 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2257
2258         * src/hc08/gen.c (genPcall): fix for bug #1601032
2259
2260 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2261
2262         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
2263         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
2264         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
2265         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
2266         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
2267         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
2268         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
2269         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
2270         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
2271         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
2272         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
2273         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
2274         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
2275         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
2276         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
2277           Renamed to all upper case as per the standard set by SiLabs
2278
2279 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2280
2281         * device/include/mcs51/C8051F520.h: new, added
2282         * device/include/mcs51/compiler.h: added link about predefined macros
2283
2284 2006-11-23 Raphael Neider <rneider AT web.de>
2285
2286         * src/regression/Makefile: add -L path to fresh library
2287         * src/regression/simulate: emphasize FAILED output
2288         * src/regression/create_stc: output _failures from gpsim
2289         * src/regression/compare4.c,
2290         * src/regression/rotate6.c: fixed char literals,
2291           all compile, all run =8-D
2292
2293         * src/pic/pcode.h: added isPCASMDIR macro
2294         * src/pic/gen.c (genAnd): fixed bit offset
2295         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
2296           packBits): unified register numbering schemes,
2297           (newReg): do not insert stack registers into hash table,
2298           (initStack): unpinned pseudo stack, simplified,
2299           (typeRegWithIdx): fixed retrieval of stack registers,
2300         * src/pic/pcode.c (addpCodeComment,sameBank): added,
2301           (pCodeReplace): removed invalid assertion,
2302           (insertPCodeInstruction): fixed newly added labels,
2303           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
2304           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
2305           DumpFlow): removed unsed (broken?) code,
2306           (insertBankSel): prevent STATUS from being BANKSELed,
2307           (FixRegisterBanking): rewritten from scratch, implemented generic
2308             optimizations (suppress BANKSELs to same register and to registers
2309             present in all banks),
2310           (AnalyzeBanking): update flow after BANKSELection
2311
2312         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
2313             sharebank, let linker place it, mark STKxx symbols as emitted
2314
2315 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2316
2317         * src/regression/arrays.c,
2318         * src/regression/bank1.c,
2319         * src/regression/bool2.c,
2320         * src/regression/compare7.c,
2321         * src/regression/compare8.c,
2322         * src/regression/compare9.c,
2323         * src/regression/compare10.c,
2324         * src/regression/configword.c,
2325         * src/regression/for.c,
2326         * src/regression/mult1.c,
2327         * src/regression/pointer1.c,
2328         * src/regression/rotate6.c,
2329         * src/regression/string1.c,
2330         * src/regression/struct1.c,
2331         * src/regression/Makefile: make PIC14 regression tests run again
2332           (3 fail, 6 won't compile)
2333
2334 2006-11-21 Raphael Neider <rneider AT web.de>
2335
2336         * device/include/pic16/pic18f4550.h,
2337         * device/include/pic16/pic18f4455.h,
2338         * device/lib/pic16/libdev/pic18f4550.c,
2339         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
2340         * configure.in: removed superfluous closing bracket
2341
2342 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2343
2344         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
2345           always positive.
2346
2347 2006-11-21 Raphael Neider <rneider AT web.de>
2348
2349         * src/pic/device.{c,h}: added pic14_getPIC()
2350         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
2351           (genAnd): added PIC code for one case, fixes #1597044
2352         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
2353           SFRs that are present in all banks (e.g., STATUS)
2354
2355 2006-11-20 Raphael Neider <rneider AT web.de>
2356
2357         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
2358           INCFSZ/INCFSZW and declared them as changing Z bit,
2359           (insertPCodeInstruction): correctly invert the above instructions,
2360           fixes #1599333,
2361           (DoBankSelect): don't panic on po_immediates
2362
2363 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2364
2365         * as/link/aslink.h,
2366         * as/link/mcs51/lkihx.c (newArea),
2367         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
2368         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
2369
2370 2006-11-11 Raphael Neider <rneider AT web.de>
2371
2372         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
2373           bitfield symbols, fixes #1579535 (once more...).
2374
2375 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2376
2377         * support/regression/generate-cases.py,
2378         * support/regression/fwk/include/testfwk.h,
2379         * support/regression/fwk/lib/testfwk.c: used code pointers,
2380           (about 50kByte less code generated for mcs51)
2381
2382 2006-11-06 Borut Razem <borut.razem AT siol.net>
2383
2384         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2385           debugger/mcs51/configure: fixed failed check because the function
2386           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
2387           who submitted the patch for gpsim.
2388         * debugger/mcs51/configure.in: removed the result message
2389         * debugger/mcs51/Makefile.in: fixed the config.status warning
2390           "... seems to ignore the --datarootdir setting"
2391
2392 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
2393
2394         * device/include/mcs51/c8051f020.h,
2395         * device/include/mcs51/c8051f040.h,
2396         * device/include/mcs51/c8051f060.h,
2397         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
2398         * src/z80/gen.c (gencjneshort),
2399         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
2400
2401 2006-10-31 Borut Razem <borut.razem AT siol.net>
2402
2403         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2404           debugger/mcs51/configure: get readline version
2405
2406 2006-10-30 Borut Razem <borut.razem AT siol.net>
2407
2408         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
2409         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2410           debugger/mcs51/configure: locate readline even when cross compiling
2411         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
2412
2413 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2414
2415         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
2416           serial port.
2417
2418 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2419
2420         * device/include/malloc.h,
2421         * device/lib/calloc.c,
2422         * device/lib/free.c,
2423         * device/lib/malloc.c,
2424         * device/lib/realloc.c: moved definition of struct into sources
2425         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
2426
2427 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2428
2429         * as/asx8051.dsp: corrected output directories
2430         * as/link/hc08: new directory for hc08 linker
2431         * as/hc08/aslink.h,             as/link/aslink.h,
2432         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
2433         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
2434         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
2435         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
2436         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
2437         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
2438         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
2439         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
2440         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
2441         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
2442         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
2443         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
2444         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
2445         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
2446         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
2447         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
2448         * as/link/hc08/conf.mk,
2449         * configure,
2450         * configure.in,
2451         * Makefile.in,
2452         * sdcc.dsw: moved hc08 linker to as/link/hc08
2453         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
2454         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
2455         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
2456         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
2457         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
2458         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
2459         * as/link/mcs51/aslink.dsp,
2460         * as/link/mcs51/Makefile.in: factored out the common files
2461         * as/hc08/lkstore.c: deleted, use the one already in as/link/
2462         * as/clean.mk: extra cleaning common files
2463         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
2464         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
2465         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
2466
2467 2006-10-29 Raphael Neider <rneider AT web.de>
2468
2469         * src/pic/ralloc.c (newReg): create aliases for registers with
2470           multiple names to fix #1579535 and #1584001,
2471           (regWithIdx,dirregWithName): resolve aliases on lookup
2472         * src/pic/pcode.c (DoBankSelect): die with error message on failing
2473           bankselect
2474         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
2475           to prevent build errors on small devices
2476
2477 2006-10-28 Raphael Neider <rneider AT web.de>
2478
2479         * src/pic/gen.c (genFunction,genCall): drop "same code page"
2480           assumption within interrupt handlers, fixes #1584940
2481         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
2482           "emitted" to avoid emitting them again in udata
2483
2484 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2485
2486         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2487         Removed.
2488
2489 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2490
2491         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2492         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
2493         on/off CR to CRLF conversion.
2494
2495 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2496
2497         * doc/sdccman.lyx: updated IRQ section
2498
2499 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2500
2501         * device/lib/serial_io.c: removed
2502         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
2503         replacements for serial_io.c
2504
2505 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
2506
2507         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
2508
2509 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2510
2511         * device/lib/serial_io.c: Default putchar() and getchar() for
2512           mcs51 uses serial port.
2513
2514 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
2515
2516         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
2517
2518 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2519
2520         * support/regression/ports/mcs51/support.c: smaller
2521         _sdcc_external_startup()
2522         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
2523
2524 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2525
2526         * device/lib/gbz80/crt0.s,
2527         * device/lib/gbz80/crt0_rle.s,
2528         * device/lib/gbz80/div.s,
2529         * device/lib/gbz80/fstubs.s,
2530         * device/lib/gbz80/heap.s,
2531         * device/lib/gbz80/mul.s,
2532         * device/lib/gbz80/putchar.s,
2533         * device/lib/gbz80/stubs.s,
2534         * device/lib/z80/crt0.s,
2535         * device/lib/z80/crt0_rle.s,
2536         * device/lib/z80/div.s,
2537         * device/lib/z80/fstubs.s,
2538         * device/lib/z80/heap.s,
2539         * device/lib/z80/mul.s,
2540         * device/lib/z80/putchar.s,
2541         * device/lib/z80/stubs.s: reverted, I was mistaken
2542
2543 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2544
2545         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2546         * support/regression/ports/mcs51/support.c: removed race
2547         condition on TI in _putchar allowing to use serial port mode 0
2548
2549 2006-10-20 Borut Razem <borut.razem AT siol.net>
2550
2551         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2552
2553 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2554
2555         * device/lib/gbz80/crt0.s,
2556         * device/lib/gbz80/crt0_rle.s,
2557         * device/lib/gbz80/div.s,
2558         * device/lib/gbz80/fstubs.s,
2559         * device/lib/gbz80/heap.s,
2560         * device/lib/gbz80/mul.s,
2561         * device/lib/gbz80/putchar.s,
2562         * device/lib/gbz80/stubs.s,
2563         * device/lib/z80/crt0.s,
2564         * device/lib/z80/crt0_rle.s,
2565         * device/lib/z80/div.s,
2566         * device/lib/z80/fstubs.s,
2567         * device/lib/z80/heap.s,
2568         * device/lib/z80/mul.s,
2569         * device/lib/z80/putchar.s,
2570         * device/lib/z80/stubs.s: removed all leading underscores from area names
2571
2572 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2573
2574         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2575           regression tests are not waiting in the simulator for simulated
2576           transmission of debug output
2577
2578 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2579
2580         * device/lib/printf_large.c: slightly smaller
2581         * doc/sdccman.lyx: do not use spaces within html links
2582
2583 2006-10-16 Borut Razem <borut.razem AT siol.net>
2584
2585         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2586           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2587           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2588           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2589           debugger/mcs51/configure:
2590           [ 1185668 ] add gnu readline support to sdcdb - enabled
2591
2592 2006-10-16 Raphael Neider <rneider AT web.de>
2593
2594         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2595           fixes #1577882, removes close to all banking optimizations
2596
2597 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2598
2599         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2600           variables in code memory
2601         * support/regression/tests/absolute.c: added test for this
2602
2603 2006-10-15 Raphael Neider <rneider AT web.de>
2604
2605         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2606           devices,
2607           (BankSelect): emit BANKSEL before touching linker-placed regs,
2608           fixes #1570934
2609
2610 2006-10-10 Raphael Neider <rneider AT web.de>
2611
2612         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2613         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2614         * src/pic/main.c (_pic14_parseOptions),
2615         * src/pic/main.h: mostly reverted to previous state, now use results
2616             from SDCCmain.c's argument parsing
2617
2618 2006-10-10 Borut Razem <borut.razem AT siol.net>
2619
2620         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2621           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2622           [ 1185668 ] add gnu readline support to sdcdb -
2623           prepared for READLINE, not enabled yet,
2624           thanks to <tal.bav AT gmail.com>
2625
2626 2006-10-10 Raphael Neider <rneider AT web.de>
2627
2628         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2629         * src/pic16/devices.inc,
2630         * device/include/pic16 (pic18f[24]620.h),
2631         * device/include/pic18fregs.h,
2632         * device/lib/pic16/pics.all,
2633         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2634             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2635             Gary Plumbridge and Anton Strobl
2636
2637 2006-10-10 Raphael Neider <rneider AT web.de>
2638
2639         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2640           --stack-siz=NUM options to configure the argument passing stack
2641         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2642         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2643           (pic14_getSharebankSize): obey --stack-siz=NUM,
2644           (pic14_getSharebankAddress): obey --stack-loc=NUM
2645
2646 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2647
2648         * doc/sdccman.lyx: added to the manual
2649         * doc/figures/ddd_example.png: added (neither pdflatex nor
2650         most browsers seem to like the .eps file)
2651
2652 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2653
2654         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2655         to /tmp and /var/tmp acc. LSB
2656         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2657         RESULT_TYPE_IFX
2658         * support/regression/tests/onebyte.c: added test
2659
2660 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2661
2662         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2663
2664 2006-10-05 Borut Razem <borut.razem AT siol.net>
2665
2666         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2667           thanks to dfulab:
2668           - sdcc.dsw: changed property eol-style to CRLF
2669           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2670
2671 2006-10-04 Raphael Neider <rneider AT web.de>
2672
2673         * device/include/pic/{pic16f84.h,pic16f84a.h},
2674         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2675           from patch #1522504, thanks to Robas Teodor
2676
2677 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2678
2679         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2680           fixes bug 1566015
2681
2682 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2683
2684         * src/pic16/glue.c (pic16emitMaps),
2685         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2686         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2687         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2688         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2689           Philipp Krause
2690         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2691         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2692
2693 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2694
2695         * support/librarian/sdcclib.c: Added option -l.
2696         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2697           usage totals.
2698         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2699           using Windows command prompt.
2700
2701 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2702
2703         * device/lib/libsdcc.lib: added module rand
2704         * src/ds390/ralloc.c (rematStr),
2705         * src/hc08/ralloc.c (rematStr),
2706         * src/mcs51/ralloc.c (rematStr),
2707         * src/z80/ralloc.c (rematStr): made output more consistent
2708         * src/mcs51/gen.c: cosmetic changes
2709
2710 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2711
2712         * src/port.h: added mem.cabs_name to PORT
2713         * src/ds390/main.c,
2714         * src/hc08/main.c,
2715         * src/mcs51/main.c,
2716         * src/pic16/main.c,
2717         * src/pic/main.c,
2718         * src/xa51/main.c,
2719         * src/z80/main.c: added cabs_name initializers
2720         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2721           constants
2722           (emitMaps): emit absolutes in code memory into cabs_name
2723         * src/SDCCmem.c,
2724         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2725         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2726         * support/regression/fwk/include/testfwk.h: added define for at
2727         * support/regression/tests/absolute.c: added, new
2728
2729 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2730
2731         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2732           optimizations, see also patch 887161 by Stas Sergeev
2733         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2734           to be necessary anymore,
2735           (102, 103, 104, 127): renamed all occurances of bp to _bp
2736
2737 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2738
2739         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2740           thanks Weston T. Schmidt for patch 1555221
2741         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2742         * src/SDCCicode.c(geniCodeMultiply): small optimization
2743
2744 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2745
2746         * device/include/stdlib.h: added rand prototypes
2747         * device/lib/rand.c: new, added
2748         * device/lib/Makefile.in: added rand.c
2749         * src/z80/peeph.def,
2750         * src/z80/peeph-gbz80.def,
2751         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2752
2753 2006-09-20 Raphael Neider <rneider AT web.de>
2754
2755         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2756
2757 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2758
2759         * as/link/aslink.h: cosmetic changes
2760         * as/link/mcs51/Makefile.in,
2761         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2762
2763 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2764
2765         * as/link/aslink.h,
2766         * as/link/mcs51/aslink.h,
2767         * as/link/z80/aslink.h: merged and moved to as/link/
2768         * as/link/lkstore.c,
2769         * as/link/mcs51/lkstore.c: moved to as/link/
2770         * as/link/clean.mk: remove *.o
2771         * as/link/mcs51/alloc.h: deleted
2772         * as/link/mcs51/lkarea.c: added lnksect prototype
2773         * as/link/mcs51/lkdata.c,
2774         * as/link/mcs51/lklex.c,
2775         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2776         * as/link/mcs51/lkmem.c,
2777         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2778         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2779         * as/link/mcs51/aslink.dsp,
2780         * as/link/mcs51/Makefile.aslink,
2781         * as/link/mcs51/Makefile.bcc,
2782         * as/link/mcs51/Makefile.in: updated for moved files
2783         * as/link/z80/lkarea.c,
2784         * as/link/z80/lkhead.c,
2785         * as/link/z80/lklex.c,
2786         * as/link/z80/lklibr.c,
2787         * as/link/z80/lklist.c,
2788         * as/link/z80/lkmain.c,
2789         * as/link/z80/lkrloc.c,
2790         * as/link/z80/lksym.c: synced with mcs51
2791         * as/link/z80/lkdata.c,
2792         * as/link/z80/lkeval.c,
2793         * as/link/z80/lkihx.c,
2794         * as/link/z80/lks19.c: cosmetic changes
2795         * as/link/z80/Makefile.in,
2796         * as/link/z80/linkgbz80.dsp,
2797         * as/link/z80/linkz80.dsp: updated for moved files
2798
2799 2006-09-16 Borut Razem <borut.razem AT siol.net>
2800
2801         * debugger/mcs51/sdcdb.c: partially fixed
2802           [ 1203664 ] sdcdb fails to open files w. two "." periods
2803         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2804           debugger/mcs51/symtab.h: fixed indenting
2805         * configure.in, configure: up to date with latest Maarten's changes
2806
2807 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2808
2809         as/link/mcs51
2810         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2811         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2812         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2813         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2814         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2815         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2816         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2817         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2818         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2819         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2820         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2821         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2822         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2823         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2824         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2825         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2826         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2827         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2828         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2829         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2830         as/link/mcs51/alloc.h,
2831         as/link/mcs51/clean.mk,
2832         as/link/mcs51/conf.mk,
2833         as/link/mcs51/Makefile.bcc,
2834         as/link/mcs51/Makefile.in,
2835         as/link/mcs51/readme.390,
2836         as/link/mcs51/strcmpi.c,
2837         as/link/mcs51/strcmpi.h,
2838         as/mcs51/clean.mk,
2839         as/mcs51/Makefile.bcc,
2840         as/mcs51/Makefile.in,
2841         configure,
2842         Makefile.in,
2843         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2844
2845 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2846
2847         * as/link,
2848         * as/link/Makefile.in,
2849         * as/link/z80/linkgbz80.dsp,
2850         * as/link/z80/linkz80.dsp,
2851         * configure,
2852         * link,
2853         * link/clean.mk,
2854         * link/Makefile.in,
2855         * link/README,
2856         * link/z80,
2857         * link/z80/aslink.h,
2858         * link/z80/clean.mk,
2859         * link/z80/conf.mk,
2860         * link/z80/linkgbz80.dsp,
2861         * link/z80/linkz80.dsp,
2862         * link/z80/lkarea.c,
2863         * link/z80/lkdata.c,
2864         * link/z80/lkeval.c,
2865         * link/z80/lkgb.c,
2866         * link/z80/lkgg.c,
2867         * link/z80/lkhead.c,
2868         * link/z80/lkihx.c,
2869         * link/z80/lklex.c,
2870         * link/z80/lklibr.c,
2871         * link/z80/lklist.c,
2872         * link/z80/lkmain.c,
2873         * link/z80/lkrloc.c,
2874         * link/z80/lks19.c,
2875         * link/z80/lksym.c,
2876         * link/z80/Makefile.in,
2877         * Makefile.in,
2878         * sdcc.dsw: moved link/ to as/link/
2879
2880 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2881
2882         * as/mcs51/i51mch.c (machine): fixed warning
2883
2884 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2885
2886         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2887
2888 2006-09-09 Borut Razem <borut.razem AT siol.net>
2889
2890         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2891           sdcdb WIN32 native port
2892         * src/clean.mk: fixed
2893
2894 2006-09-08 Borut Razem <borut.razem AT siol.net>
2895
2896         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2897
2898 2006-09-08 Raphael Neider <rneider AT web.de>
2899
2900         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2901         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2902             to gplink to disable processor mismatch warning and to allow
2903             the use of devices with only aliased (shared) memory banks,
2904           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2905
2906 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2907
2908         * doc/sdccman.lyx: Some re-formating plus example on using
2909           #pragma preproc_asm +/-
2910
2911 2006-09-07 Borut Razem <borut.razem AT siol.net>
2912
2913         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2914           section
2915
2916 2006-09-06 Borut Razem <borut.razem AT siol.net>
2917
2918         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2919           line at sdcc.nsi:153
2920         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2921
2922 2006-09-05 Borut Razem <borut.razem AT siol.net>
2923
2924         * configure.in, configure: support for winsock2
2925         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2926           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2927           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2928           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2929           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2930
2931 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2932
2933         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2934           and OP_DEFS
2935         * support/regression/tests/bug1551947.c: new, added
2936         * src/SDCCsymt.h: strings are char* not byte*
2937
2938 2006-09-05 Raphael Neider <rneider AT web.de>
2939
2940         * device/lib/pic16/libdev/pic18f4550.c,
2941           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2942             declarations/definitions from patch #1520949
2943
2944 2006-09-05 Raphael Neider <rneider AT web.de>
2945
2946         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2947           byte-aligned bitfields, fixes #1539278
2948
2949 2006-09-05 Raphael Neider <rneider AT web.de>
2950
2951         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2952           fixes #1544120
2953
2954 2006-09-04 Borut Razem <borut.razem AT siol.net>
2955
2956         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2957         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2958           -mno-cygwin is a part of the compiler name
2959         * support/scripts/sdcc_mingw32: don't disable ucsim
2960
2961 2006-09-03 Borut Razem <borut.razem AT siol.net>
2962
2963         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2964         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2965
2966 2006-09-03 Raphael Neider <rneider AT web.de>
2967
2968         * src/pic/ralloc.c,
2969         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2970           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2971           fixes #1550049
2972
2973 2006-09-01 Borut Razem <borut.razem AT siol.net>
2974
2975         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2976           to make ppc-osx happy
2977
2978 2006-08-31 Borut Razem <borut.razem AT siol.net>
2979
2980         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2981         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2982         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2983         * support/regression/ports/ds390/spec.mk,
2984           support/regression/ports/mcs51/spec.mk,
2985           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2986           To run regression tests in mingw environment:
2987           make DEV_NULL=NUL CC=gcc
2988
2989 2006-08-30 Borut Razem <borut.razem AT siol.net>
2990
2991         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2992           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2993           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2994           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2995           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2996           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2997           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2998           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2999           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
3000           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
3001           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
3002           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
3003           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
3004           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
3005           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
3006           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
3007           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
3008           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
3009           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
3010           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
3011           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
3012           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
3013           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
3014           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
3015           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
3016           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
3017           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
3018           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
3019           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
3020           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
3021           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
3022           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
3023           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
3024           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
3025           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
3026           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
3027           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3028           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
3029           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
3030           ucsim WIN32 native port
3031
3032 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3033
3034         * doc/sdccman.lyx: added note on dynamic memory heap initialization
3035
3036 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3037
3038         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
3039         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
3040
3041 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
3042
3043         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
3044         * support/regression/tests/bug1546986.c: new, added
3045         * as/mcs51/.cvsignore,
3046         * debugger/mcs51/.cvsignore,
3047         * src/.cvsignore: deleted
3048
3049 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3050
3051         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
3052           definitions)
3053
3054 2006-08-20 Borut Razem <borut.razem AT siol.net>
3055
3056         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
3057           removed cl_listen_console::match(), cl_console::match(),
3058           restructured cl_commander::proc_input()
3059
3060 2006-08-16 Borut Razem <borut.razem AT siol.net>
3061
3062         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
3063           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
3064           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
3065
3066 2006-08-14 Borut Razem <borut.razem AT siol.net>
3067
3068         * support/regression/Makefile.in,
3069           support/regression/ports/pic14/gpsim.cmd,
3070           support/regression/ports/pic14/spec.mk,
3071           support/regression/ports/pic14/support.c:
3072           added pic14 regression test
3073
3074 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
3075
3076         * as/doc/asxhtm.html: documented changed ABS behaviour
3077         * as/doc/README: fixed some typos
3078
3079 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
3080
3081         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
3082           not defined on host
3083
3084 2006-08-12 Borut Razem <borut.razem AT siol.net>
3085
3086         * support/regression/fwk/include/testfwk.h,
3087           support/regression/fwk/lib/testfwk.c,
3088           support/regression/generate-cases.py,
3089           support/regression/Makefile.in:
3090           regression test framework does not depend on function pointers and
3091           variable arguments
3092
3093 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
3094
3095         * device/include/stddef.h: c temporary hack to fix bug 1518273
3096
3097 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3098
3099         * device/include/mcs51/cc2510fx.h: added
3100         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
3101           to projects.
3102
3103 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
3104
3105         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
3106         * as/z80/Makefile.in: added strcmpi.c
3107         * as/z80/z80adr.c: added upper case registers and lower case conditionals
3108         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
3109
3110 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
3111
3112         * device/lib/gbz80/asm_strings.s,
3113         * device/lib/gbz80/crt0_rle.s,
3114         * device/lib/gbz80/div.s,
3115         * device/lib/gbz80/mul.s,
3116         * device/lib/gbz80/shift.s,
3117         * device/lib/z80/asm_strings.s,
3118         * device/lib/z80/crt0_rle.s,
3119         * device/lib/z80/div.s,
3120         * device/lib/z80/mul.s,
3121         * device/lib/z80/shift.s: changed to all lower case menmonics except the
3122           flags which are all upper case
3123
3124 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3125
3126         * as/z80/asm.h: made CASE_SENSITIVE 1
3127         * link/z80/aslink.h: made CASE_SENSITIVE 1
3128         * src/z80/gen.c (throughout): made all conditionals upper case
3129         * support/regression/tests/bug1503067.c: new
3130
3131 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3132
3133         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
3134           (shiftIntoPair): added case 2 for PAIR_IY,
3135           (setupToPreserveCarry): replaced parameters with iCode and check if
3136            PAIR_DE is in use to fix bug 1399290,
3137           (genPlus, genMinus): updated call to setupToPreserveCarry
3138         * support/regression/tests/bug1399290.c: new
3139
3140 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
3141
3142         * device/lib/Makefile.in (Z80SOURCES): enabled float support
3143         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
3144         * src/ds390/gen.c (shiftRLong),
3145         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
3146         * src/mcs51/gen.c (sameReg): changed to sameByte,
3147           (xch_a_aopGet): new,
3148           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
3149            shiftRLong): fixed bug 1533966
3150         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
3151           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
3152         * support/regression/Makefile.in: disabled z80, enabled ucz80
3153         * support/regression/tests/float_trans.c: enabled test for z80 and host
3154         * support/regression/tests/shifts2.c: new, for testing bug 1533966
3155
3156 2006-08-01 Borut Razem <borut.razem AT siol.net>
3157
3158         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
3159           comparison is always false due to limited range of data type
3160           on PPC64 machine (openpower-linux1) where "char = unsigned char"
3161
3162 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
3163
3164         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
3165         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
3166         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
3167         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
3168
3169 2006-07-31 Borut Razem <borut.razem AT siol.net>
3170
3171         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
3172           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
3173           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
3174           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
3175           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
3176           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
3177           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
3178           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
3179           enable ucsim mingw compilation. Serial port is disabled,
3180           since it uses termios.h API, which is not available on native
3181           WIN32
3182
3183 2006-07-31 Borut Razem <borut.razem AT siol.net>
3184
3185         * Small Device C Compiler 2.6.0 released
3186         * support/scripts/sdcc.nsi: added FULL_DOC option
3187         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
3188
3189 2006-07-28 Borut Razem <borut.razem AT siol.net>
3190
3191         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
3192         * doc/INSTALL.txt: updated
3193
3194 2006-07-27 Borut Razem <borut.razem AT siol.net>
3195
3196         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
3197           device/lib/pic/libdev/Makefile.in: fixed bug
3198           [ 1438354 ] pic libsdcc: distclean doesn't work
3199         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
3200           device/lib/pic16/libio/Makefile.in: fixed bug
3201           [ 1438344 ] pic16 lib: clean doesn't work properly
3202         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
3203
3204 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
3205
3206         * device/lib/pic/libsdcc/fsdiv.c,
3207         * device/lib/pic/libsdcc/fsmul.c,
3208         * device/lib/pic16/libsdcc/float/fsdiv.c,
3209         * device/lib/pic16/libsdcc/float/fsmul.c,
3210         * device/lib/_fsdiv.c,
3211         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
3212         * support/regression/tests/bug1520966.c: added
3213         * doc/knownbugs.html: removed [ 1520966 ] from the list
3214
3215 2006-07-25 Borut Razem <borut.razem AT siol.net>
3216
3217         * configure.in, configure, sdccconf_in.h: fixed bug
3218           [ 1519095 ] regression test onebyte.c fails on ppc64 host
3219         * doc/knownbugs.html: removed [ 1519095 ] from the list
3220
3221 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
3222
3223         * doc/knownbugs.html: added, contains list of known bugs at release
3224         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
3225
3226 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3227
3228         * device/include/mcs51/compiler.h: added SFRX for xdata based special
3229           function registers and corrected defaults with additional warning
3230         * device/lib/malloc.c: cosmetic changes
3231         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
3232         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
3233           (fillGaps): and used it
3234
3235 2006-07-20 Raphael Neider <rneider AT web.de>
3236
3237         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
3238           output unless SDCCPICDEBUG is set
3239         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
3240           output if SILENT is set
3241
3242 2006-07-11 Borut Razem <borut.razem AT siol.net>
3243
3244         * doc/README.txt: updated
3245
3246 2006-07-10 Borut Razem <borut.razem AT siol.net>
3247
3248         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
3249           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
3250           in WIN32 installation
3251         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
3252           release candidate 1
3253
3254 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
3255
3256         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
3257         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
3258
3259 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
3260
3261         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
3262
3263 2006-07-06 Borut Razem <borut.razem AT siol.net>
3264
3265         * support/regression/tests/bitfields.c:
3266           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
3267         * support/regression/tests/constantRange.c:
3268           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
3269
3270 2006-07-04 Borut Razem <borut.razem AT siol.net>
3271
3272         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
3273           src/port.mk,
3274           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3275           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3276           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3277           reverted changes from 2006-07-03
3278         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
3279         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
3280           added CPPFLAGS, used by the host port
3281
3282 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
3283
3284         * support/regression/valdiag/tests/switch.c,
3285         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
3286         * support/regression/tests/libmullong.c: fixed for host
3287         * support/regression/ports/host/spec.mk: disable all warnings for host,
3288         SDCC runs with --less-pedantic too
3289
3290 2006-07-03 Borut Razem <borut.razem AT siol.net>
3291
3292         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
3293           defined CPPFLAGS
3294         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
3295         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3296           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3297           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3298           include ../port.mk
3299         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
3300           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3301           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
3302           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
3303
3304 2006-07-02 Raphael Neider <rneider AT web.de>
3305
3306         * src/pic16/devices.inc,
3307         * device/include/pic16/pic18fregs.h,
3308         * device/include/pic16/pic18f4550.h,
3309         * device/lib/pic16/pics.all,
3310         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
3311
3312 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
3313
3314         * as/hc08/lkaomf51.c (OutputName),
3315         * as/mcs51/lkaomf51.c (OutputName),
3316         * as/z80/asmain.c (asmbl),
3317         * src/ds390/main.c (asmLineNodeFromLineNode),
3318         * src/hc08/ralloc.c (hc08_assignRegisters),
3319         * src/mcs51/main.c (asmLineNodeFromLineNode),
3320         * src/xa51/ralloc.c (checkRegMask),
3321         * src/xa51/gen.c (emitcode),
3322         * src/z80/gen.c (_emit2),
3323         * src/SDCCast.c (searchLitOp),
3324         * src/SDCCglobl.h,
3325         * support/packihx/packihx.c,
3326         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
3327         * src/ds390/gen.c (aopPutUsesAcc),
3328         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
3329         * support/regression/tests/libmullong.c (mullong_wrapper),
3330         * src/SDCCsymt.c (powof2),
3331         * src/SDCCast.c,
3332         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
3333         * src/SDCCsymt.h: added TYPE_TARGET_*
3334         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
3335         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
3336         SDCCast because 1) header problems 2) this is the right place
3337         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
3338         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
3339         prototype
3340
3341 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
3342
3343         * src/SDCCicode.h: removed buggy semicolon in unused macro
3344         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
3345         search for previous definiton of auto symbols too,
3346         (findPrevUse): fixed logic of emitWarnings
3347
3348 2006-06-26 Raphael Neider <rneider AT web.de>
3349
3350         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
3351           PCLATH and PCLATU on interrupts, potentially fixes #1505141
3352
3353 2006-06-25 Raphael Neider <rneider AT web.de>
3354
3355         * device/lib/pic/libm: NEW, added math library functions
3356         * device/lib/pic/libsdcc: NEW; added float support functions
3357         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
3358         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
3359           NEW, added math related headers
3360         * device/include/asm/pic/features.h: NEW
3361         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
3362           (popGet): allow larger offsets for AOP_PCODE,
3363           (genDataPointerSet): handle literals explicitly, more debug output,
3364           (genAssign): fixed for float using aopLiteral ;-)
3365         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
3366           GOTO initialisation routine
3367         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
3368           flag on registers, fixes #1469043 (local variables do not work)
3369         * src/pic/main.c (_pic14_do_link),
3370         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
3371           available
3372
3373 2006-06-25 Borut Razem <borut.razem AT siol.net>
3374
3375         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
3376           characters printed (not including the trailing '\0' used to end
3377           output to strings). Problem detected in regression test bug-927659.c.
3378           NOTE: printf() family functions should return int instead
3379           unsigned int!
3380         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
3381           specifier are printed as themselves
3382         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
3383           support flags, width and precision specifiers
3384
3385 2006-06-24 Borut Razem <borut.razem AT siol.net>
3386
3387         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
3388           to the list of sdcc tagrets not supporting bit type
3389         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
3390           testfor pic16 due to bug:
3391           [ 1511794 ] pic16: regression test bug-895992.c fails
3392
3393 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
3394
3395         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
3396         * src/SDCCglue.c (initPointer), fixed bug 1496419
3397         * support/regression/tests/bug1496419.c: new, added
3398
3399 2006-06-22 Borut Razem <borut.razem AT siol.net>
3400
3401         * support/regression/ports/pic16/support.c: use gpsim usart module from
3402           libgpsim_modules library
3403
3404 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3405
3406         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
3407         IP0H to IPH0.
3408
3409 2006-06-19 Raphael Neider <rneider AT web.de>
3410
3411         * src/pic/glue.h,src/pic16/glue.h: added prototypes
3412         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
3413           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
3414           (pic14printExterns,pic14printPublics,pic16printPublics,
3415           pic16_printExterns): use new functions to emit symbols
3416           (picglue,pic16glue): emit publics before emitting externs
3417         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
3418           locally defined functions to avoid bug #1443651
3419         * support/regression/tests/bug-716242.c: removed pic16 workaround
3420         * support/regression/ports/pic16/spec.mk: ignore errors during build
3421
3422 2006-06-19 Raphael Neider <rneider AT web.de>
3423
3424         * src/pic/glue.h: added pic14aopLiteral prototype
3425         * src/pic/glue.c (pic14aopLiteral): return unsigned int
3426         * src/pic/gen.c: removed stdint.h dependency
3427           (aopGet): use Safe_strdup()
3428           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
3429           (genDataPointerSet): use pic14aopLiteral()
3430         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
3431           for pic16; thanks to Bernhard and Maarten
3432
3433 2006-06-18 Borut Razem <borut.razem AT siol.net>
3434
3435         * support/regression/tests/structflexarray.c: flexible array members
3436           not supported by gcc < 3
3437         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
3438           GUI tool by default
3439         * src/pic/gen.c: don't include [p]strdin.h on solaris
3440         * support/Util/pstdint.h: addad svn attributes
3441         * support/regression/tests/constantRange.c,
3442           support/regression/tests/rotate.c: include inttypes.h instead
3443           stdint.h on solaris, addad svn attributes
3444
3445 2006-06-18 Raphael Neider <rneider AT web.de>
3446
3447         * src/SDCCsymt.c (initCSupport): change return type of divschar to
3448           int for PIC16
3449         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
3450           (pic16_genMinusBits): simplified sign-extension
3451           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
3452             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
3453             adjusted to correctly handle mixed-signed operands, disabled
3454             now unused multiplciation routines
3455         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
3456           (assignResultValue): added argument denoting the size of the result
3457             as returned by the function (fixes upcasts in assigning from
3458             function calls: char foo(); int i = foo();)
3459           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
3460             function result to assignResultValue
3461           (genMult): disabled inlined multiplication code
3462           (genDiv): augmented to also handle the modulus operator, fixed to
3463             handle mixed-signed operands correctly
3464           (genMod): simply call genDiv, disabled unused code
3465           (genAssign): fixed missing (sign-)extension on result
3466         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
3467             valid char operands, allow signed operands for native code, added
3468             division and modulo operator handling
3469         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
3470
3471         As a consequence, onebyte.c (if split into two files) and muldiv.c
3472         pass regression tests.
3473
3474 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3475
3476         * doc/Makefile.in: two runs of makeindex seem needed to get
3477         correct page references in the index of sdccman.pdf
3478         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
3479
3480 2006-06-17 Borut Razem <borut.razem AT siol.net>
3481
3482         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
3483
3484 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3485
3486         * doc/sdccman.lyx: updated, added (porting source code, debugging),
3487         mentioned ec2drv and paulmon
3488
3489 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
3490
3491         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
3492           consecutive abs areas
3493           (find_empty_space, allocate_space): added map to handle codemap or
3494            xdatamap,
3495           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
3496            absolute idata and xdata
3497         * as/mcs51/lkmem.c (summary2): updated legend
3498
3499 2006-06-16 Raphael Neider <rneider AT web.de>
3500
3501         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
3502
3503 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
3504
3505         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
3506           1208515
3507         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
3508
3509 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
3510
3511         * src/port.h (struct PORT): added field gp_tags, to hold the tag
3512         value of generic pointers,
3513         * src/avr/main.c,
3514           src/ds390/main.c,
3515           src/hc08/main.c,
3516           src/izt/i186.c,
3517           src/izt/tlcs900h.c,
3518           src/mcs51/main.c,
3519           src/pic/main.c,
3520           src/pic16/main.c,
3521           src/xa51/main.c,
3522           src/z80/main.c: PORT structure, added elements for gp_tags field,
3523         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
3524         fields in the PORT structure of each port,
3525         * src/SDCCast.c (decorateType): allow processing of generic pointers
3526         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
3527         S_FIXED symbols
3528
3529 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
3530
3531         * link/z80/lkgb.c,
3532         * link/z80/lkgg.c,
3533         * src/pic16/gen.c,
3534         * src/pic16/main.c,
3535         * src/pic16/pcode.c,
3536         * src/pic/main.c,
3537         * src/pic/pcoderegs.c,
3538         * src/SDCCicode.c,
3539         * src/SDCCmain.c,
3540         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3541           bug 1504689 on minGW
3542
3543 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3544
3545         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3546
3547 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3548
3549         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3550
3551 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3552
3553         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3554           for optimization
3555
3556 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3557
3558         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3559         to a char variable. Fixed bug #1504211
3560         * device/include/pic16/adc.h,
3561         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3562         and fixed bug #1364390
3563
3564 2006-06-10 Borut Razem <borut.razem AT siol.net>
3565
3566         * CVSROOT: removed the CVS left-over
3567
3568 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3569
3570         * as/hc08/asmain.c (asexit),
3571         * as/hc08/lkmain.c (lkexit),
3572         * as/mcs51/asmain.c (asexit),
3573         * as/mcs51/lkmain.c (lkexit),
3574         * src/SDCCglue.c (DEFSETFUNC),
3575         * src/SDCCmain.c (linkEdit, assemble),
3576         * support/librarian/sdcclib.c (AddRel),
3577           replaced unlink() by standard C remove()
3578         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3579         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3580           gatherImplicitVariables): new, added to fix bug 608752,
3581           (createFunction): added gatherImplicitVariables()
3582         * src/SDCCast.h: added createRMW prototype
3583         * src/SDCCsymt.h (struct symbol): added infertype
3584         * support/regression/tests/bug608752.c: new, added
3585
3586 2006-06-10 Raphael Neider <rneider AT web.de>
3587
3588         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3589           multibyte dummy reads (fixes #1503234)
3590
3591 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3592
3593         * device/include/mcs51/compiler.h: new, added header file to enable
3594           creating common sfr definition header files for different compilers
3595
3596 2006-06-05 Raphael Neider <rneider AT web.de>
3597
3598         * src/pic16/{pcode.h,genarith.c}:
3599           introduced pCodeOp combining any two pCodeOps (previously only
3600           two register operands could be combined), removed pcop2 from
3601           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3602         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3603         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3604           rewritten to use new PO_TWO_OPS
3605         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3606         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3607           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3608           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3609           (pic16_get_op): embraced return arg to allow #define return(x),
3610             added new case for combined opcodes
3611           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3612           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3613            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3614
3615 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3616
3617         * src/SDCCval.c (checkConstantRange): added
3618         * src/SDCCval.h: added checkConstantRange
3619         * support/Util/SDCCerr.c,
3620         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3621         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3622         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3623         * src/SDCCast.c (decorateType): added checkConstantRange,
3624         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3625         can be emitted with the correct always true/false warning,
3626         added optimization for double '!';
3627         result of decorateType() must be assigned back to the tree, because
3628         decorateType() can change the tree
3629         * src/SDCCicode.c (geniCodeLogic),
3630         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3631         (checkConstantRange): removed, it was only a fragment which never
3632         emitted a warning
3633         * src/SDCCsymt.c (computeType): fixed promotion for
3634         "-1 < (unsigned bit) b"
3635         * src/pic/ralloc.c (packRegsForAssign),
3636         * src/pic16/ralloc.c (packRegsForAssign),
3637         * src/hc08/ralloc.c (packRegsForAssign),
3638         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3639         from mcs51
3640         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3641         * support/regression/tests/constantRange.c: added
3642         * support/valdiag/tests/constantRange.c: added
3643         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3644
3645 2006-06-02 Borut Razem <borut.razem AT siol.net>
3646
3647         * support/regression/ports/pic16/support.c: increase stack size
3648           to 255 bytes
3649         * support/regression/Makefile.in: sort tests by name so that the
3650           resutlts can be compared on different machines / platforms
3651
3652 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3653
3654         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3655         * src/ds390/gen.c (emitLabel): new, added,
3656           (genDjnz): fixed stack overflow bug,
3657           (throughout): cosmetic changes to sync with mcs51/gen.c,
3658           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3659         * src/mcs51/gen.c (genEndFunction): small optimization,
3660           (throughout): cosmetic changes to sync with ds390/gen.c
3661
3662 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3663
3664         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3665           (_print_format): fixed printing pointers
3666         * src/mcs51/gen.c (emitLabel, movb): new, added,
3667           (genAssign): small optimization,
3668           (genDjnz): fixed stack overflow bug,
3669           (throughout): replaced sprintf with SNPRINTF,
3670           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3671           replaced emitcode("mov", "b,...") with MOVB(...),
3672           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3673           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3674         * src/mcs51/peeph.def: added rules 140 and 264
3675         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3676           so they may get optimized into registers
3677
3678 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3679
3680         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3681           immediately when encountered,
3682           (printUsage): always use stderr even on windows
3683
3684 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3685
3686         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3687         (processParms): fixed bug #1247551
3688         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3689         parseCmdLine, main): print '--version' to stdout,
3690         print 'help' to stdout if --help is given,
3691         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3692         arguments are given; fixed --help
3693
3694 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3695
3696         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3697         * support/regression/tests/bug-1493710.c: added
3698
3699 2006-05-27 Borut Razem <borut.razem AT siol.net>
3700
3701         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3702           static instead auto
3703         * support/regression/ports/pic16/support.c: increase stack size
3704           from default 64 bytes to 128 bytes
3705         * support/regression/tests/staticinit.c,
3706           support/regression/tests/float.c: regression tests fully enabled
3707           for pic16 port by putting the initialized data arrays into the code
3708           section
3709         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3710           This was changed by mistake in the previous version.
3711
3712 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3713
3714         * src/pic16/gen.c (genFunction, genEndFunction): some
3715         beautifications, fixed bug with falsely restoring FSR2 in large
3716         stack model, thanks to Beau E. Cox for reporting the bug
3717
3718 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3719
3720         * debugger/mcs51/break.c,
3721         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3722           use %p to print pointers, made address variables unsigned
3723         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3724         * debugger/mcs51/symtab.c (parseSymbol): must return something
3725         * src/mcs51/gen.c (aopForSym): small optimization,
3726            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3727           (freeAsmop): added missing break,
3728           (aopPut): removed parameter bvolatile, determine it inside the function,
3729           (saveRegisters, unsaveRegisters): small optimization,
3730           (genIpush): removed pointless check,
3731           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3732           replaced sprintf with SNPRINTF,
3733           replaced strcpy with strncpyz,
3734           updated aopPut calls,
3735           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3736         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3737
3738 2006-05-24 Borut Razem <borut.razem AT siol.net>
3739
3740         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3741           modification of test for the pic16 port, put the array to the code
3742           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3743
3744 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3745
3746         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3747         * support/Util/pstdint.h: added
3748
3749 2006-05-22 Borut Razem <borut.razem AT siol.net>
3750
3751         * src/regression/Makefile: removed bool2.c test, added -q linker option
3752         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3753           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3754           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3755           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3756           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3757           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3758           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3759           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3760           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3761
3762 2006-05-22 Raphael Neider <rneider AT web.de>
3763
3764         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3765           bug #1492360 (problematic due to generic pointers, see code)
3766
3767 2006-05-22 Borut Razem <borut.razem AT siol.net>
3768
3769         * support/regression/ports/pic16/specs.mk: removed stack size linker
3770           directive
3771         * support/regression/tests/array.c,
3772           support/regression/tests/bitopcse.c,
3773           support/regression/tests/bug-908454.c,
3774           support/regression/tests/malloc.c: modified for pic16 regression test
3775         * support/regression/tests/bitfields.c:
3776           pic16 - excluded bitfileds of size > 8
3777         * support/regression/tests/bp.c: pic16 - reduced data size
3778         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3779         * support/regression/tests/bug-460010.c:
3780           pic16 - used the absolute address the fits in memory
3781         * support/regression/tests/bug-716242.c:
3782           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3783         * support/regression/tests/float.c:
3784           pic16 - excluded - data size too big
3785         * support/regression/tests/onebyte.c:
3786           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3787         * support/regression/tests/shifts.c:
3788           pic16 - function names probably have to differ in first X characters
3789           (gpasm limitation?)
3790         * support/regression/tests/staticinit.c:
3791           pic16 - excluded some tests due error: no target memory available for
3792           section ".idata"
3793
3794 2006-05-22 Borut Razem <borut.razem AT siol.net>
3795
3796         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3797           second try. Thanks Stas Sergeev once more.
3798
3799 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3800
3801         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3802           (genLeftShift, genRightShift): fixed bug 1491627
3803         * src/hc08/peeph.def (rules 7, 8.x): added
3804         * support/regression/tests/shifts.c (ShiftLeftByParam,
3805           ShiftRightByParam, testShiftByParam): added to test variable shifting
3806
3807 2006-05-20 Raphael Neider <rneider AT web.de>
3808
3809         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3810         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3811           (allocReg): add only new registers to dynAllocRegs,
3812           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3813             #1489055, #1445850, and probably #1483693
3814
3815 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3816
3817         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3818         bug in for-loop that didn't emit the last of CONFIG and ID registers
3819
3820 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3821
3822         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3823           with offset
3824         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3825           1489016, 1434401 and 1490124
3826         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3827           1489016, 1434401 and 1490124
3828
3829 2006-05-17 Borut Razem <borut.razem AT siol.net>
3830
3831         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3832           thanks Stas Sergeev
3833
3834 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3835
3836         * device/include/mcs51/P89c51RD2.h,
3837         * device/include/mcs51/P89LPC901.h,
3838         * device/include/mcs51/P89LPC922.h,
3839         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3840
3841 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3842
3843         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3844         to fix missing stack pragma in compiled binary object file,
3845
3846 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3847
3848         * support/packihx/configure.in,
3849         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3850         determine sizeof basic types even while cross compiling
3851
3852 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3853
3854         * src/avr/gen.c (aopop),
3855         * src/ds390/gen.c (aopOp),
3856         * src/hc08/gen.c (aopOp),
3857         * src/mcs51/gen.c (aopop),
3858         * src/pic16/gen.c (pic16_aopOp),
3859         * src/pic/gen.c (aopOp),
3860         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3861         if size of operand is smaller than spill location
3862
3863 2006-05-12 Borut Razem <borut.razem AT siol.net>
3864
3865         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3866           have to have CR/LF line endings even if they are checked out on *nix
3867           or on WIN32 in cygwin binmode
3868
3869 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3870
3871         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3872         * device/include/ds80c390.h: added sfr16 definitions
3873         * src/ds390/gen.c,
3874         * src/ds390/gen.h,
3875         * src/ds390/main.c,
3876         * src/ds390/ralloc.c,
3877         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3878           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3879           bit returning functions
3880         * support/regression/tests/sfr16.c: enabled test on ds390
3881
3882 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3883
3884         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3885         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3886
3887 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3888
3889         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3890         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3891           (cl_address_space constructor): removed expensive initialization,
3892           (cl_address_space::get_cell): extended for late initialization,
3893           (cl_address_space::*): use late initialization,
3894           (cl_address_decoder::activate): removed expensive initialization,
3895           This reduced regression test running time by 25%
3896
3897 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3898
3899         * packihx/,
3900         * configure.in,
3901         * configure,
3902         * sdcc.dsw,
3903         * Makefile.bcc,
3904         * Makefile.in,
3905         * support/packihx/Makefile.in,
3906         * support/packihx/clean.mk,
3907         * support/packihx/Makefile.bcc,
3908         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3909
3910 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3911
3912         * src/SDCCval.c (valNot): fix for regression test failure
3913           of not.c on big endian hosts
3914
3915 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3916
3917         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3918
3919 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3920
3921         * device/lib/mcs51/Makefile.in: changed string comparison operator
3922           to = for POSIX compliance; == is bash extension
3923
3924 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3925
3926         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3927           kosmonaut_pirx
3928
3929 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3930
3931         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3932         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3933         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3934         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3935         bug report #1478657,
3936
3937 2006-05-05 Borut Razem <borut.razem AT siol.net>
3938
3939         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3940           making the html
3941
3942 2006-05-02 Borut Razem <borut.razem AT siol.net>
3943
3944         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3945           create *.ind, which made make to fail if invoked with -j 2
3946
3947 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3948
3949         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3950           Hubert Sack for patch 1479782
3951
3952 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3953
3954         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3955
3956 2006-05-01 Raphael Neider <rneider AT web.de>
3957
3958         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3959           (create_pic): store only prefix-free device name,
3960           (init_pic): check for device names with "16" prefix,
3961           (list_valid_pics),
3962         * src/pic/device.h (struct PIC_device),
3963         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3964             stored device name,
3965         * device/include/pic/pic12f{635,675,629,683}.h,
3966         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3967         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3968         * device/include/pic/pic16f505.h,
3969         * device/lib/pic/libdev/pic16f505.c: removed
3970         * device/include/pic/pic14devices.txt: added support for pic12f
3971             devices, removed unsupported non 16-bit devices
3972             [above changes provided by patch from Zik Saleeba]
3973         * src/pic/*, src/pic16/*, device/include/pic16/*,
3974           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3975
3976 2006-05-01 Borut Razem <borut.razem AT siol.net>
3977
3978         * configure.in, configure, doc/Makefile.in:
3979           sync with nightly build makefile - latex, dvipdf and dvips
3980           not needed any more
3981
3982 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3983
3984         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3985         in the library source
3986
3987 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3988
3989         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3990
3991 2006-04-28 Raphael Neider <rneider AT web.de>
3992
3993         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3994         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3995           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3996         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3997
3998 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3999
4000         * device/lib/pic/libdev/Makefile.in,
4001         * device/lib/hc08/Makefile.in,
4002         * device/lib/gbz80/Makefile.in,
4003         * device/lib/z80/Makefile.in,
4004         * device/lib/ds390/Makefile.in,
4005         * device/lib/ds400/Makefile.in: added srcdir to include search path,
4006         thanks to Borut for the bug report
4007         * configure.in,
4008         * configure: always create doc/Makefile independent from --enable-doc
4009         * Makefile.in: always install from directory doc independent from
4010         --enable-doc
4011         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
4012         removed
4013         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
4014         * doc/Makefile.in: install *.txt if present
4015         * device/include/Makefile.in (install): added installation of pic/*.inc
4016         and pic/*.txt files again, they were erroneously removed
4017
4018 2006-04-28 Raphael Neider <rneider AT web.de>
4019
4020         * src/pic/{gen.c,main.h,pcode.c},
4021         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
4022             concerning signedness with casts
4023
4024 2006-04-28 Raphael Neider <rneider AT web.de>
4025
4026         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
4027             definition of an interrupt handler,
4028         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
4029             interrupt handler stuff from picglue() to separate routine,
4030           (picglue): enabled definition of intr handlers in files w/o main()
4031
4032 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4033
4034         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
4035           compilation with MSVC 2005 Express Edition (VC8)
4036
4037 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
4038
4039         * device/lib/Makefile: fixed build of gbz80 lib
4040
4041 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4042
4043         * support/regression/tests/bug-460010.c,
4044         * support/regression/tests/bug-524691.c,
4045         * support/regression/tests/bug-716242.c: removed conditional defines
4046           that are already in testfwk.h
4047
4048 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4049
4050         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
4051           (AccAXRsh1): added, shift right by 1,
4052           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
4053            AccAXLrl1
4054         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
4055
4056 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
4057
4058         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
4059         remove cast to same type
4060         * src/SDCCast.c (decorateType): fix for RFE 1475742,
4061         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
4062         * as/z80/Makefile,
4063         * link/z80/Makefile: removed, they have moved to
4064         Makefile.in files
4065         * configure,
4066         * configure.in: replaced duplicate message about ucsim by missing sdcpp
4067         * install-sh: fix bug #1204398 by setting umask 0022
4068         * device/lib/Makefile: separate build of z80 and gbz80 lib
4069
4070 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
4071
4072         Enabled VPATH feature: changed nearly all Makefiles (149 files).
4073         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
4074
4075         One basic decision: e.g. src/clean.mk includes further files. In order
4076         to make this work there are two solutions:
4077         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
4078           run configure on them. This way they can use
4079           'include $(srcdir)/port-clean.mk'
4080         - always include clean.mk by the Makefile at the same level. To avoid
4081           that `make clean` tries to include and build Makefile.dep the
4082           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
4083           implemented, because now even `make uninstall` doesn't create
4084           Makefile.in. clean.mk could be eliminated by pasting it in
4085           Makefile.in.
4086
4087         * debugger/mcs51/Makefile.in: build own objects from library sources
4088         (SLIB, SDCC) in current directory
4089
4090         * configure, configure.in: renamed --disable-device-lib-build in
4091         --disable-device-lib; added --enable-doc, the required tools are
4092         searched by configure; added result message; the toolchain for the
4093         belonging ports are now only built, if the port is enabled.
4094
4095         * support/regression/*: all output is written in directory gen, because
4096         the fwk and ports directories don't livet in the build tree using vpath
4097
4098         * doc/sdccman.lyx: renamed --disable-device-lib-build to
4099         --disable-device-lib, added --enable-doc, added section VPATH
4100
4101         * sim/ucsim/configure.in,
4102         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
4103         z80 are enabled by default
4104
4105 2006-04-24 Raphael Neider <rneider AT web.de>
4106
4107         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
4108             to config word, "pic14_"-prefixed some extern functions
4109           (pic14_emitConfigWord): emit __config directive(s) if assignment to
4110             config word has been found
4111         * src/pic/device.h: added prototypes
4112         * src/pic/pcode.c: added "pic14_"-prefix where needed
4113         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
4114             fixup
4115         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
4116             words,
4117           (pic14emitRegularMap): ignore config words,
4118           (pic14createInterruptVect): moved generating __config directives away
4119           (picglue): have __config directives emitted
4120
4121 2006-04-24 Borut Razem <borut.razem AT siol.net>
4122
4123         * doc/Makefile: sync with nightly build makefile
4124
4125 2006-04-24 Raphael Neider <rneider AT web.de>
4126
4127         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
4128             registers that have not been assigned proper liveranges,
4129             fixes #1469504 and #1474602,
4130           (pCodeRegOptimizeRegUsage): fixed typo in comment
4131
4132 2006-04-24 Borut Razem <borut.razem AT siol.net>
4133
4134         * device/examples/main8051.c: deleted - it was removed from CVS
4135           24.mar.2000 and after that modified 18.feb.2001, so it reappered
4136           after the transition to Subversion
4137         * src/SDCCalloc.h: deleted - it was removed  from CVS
4138           3.feb.2001 and after that modified 18.feb.2001, so it reappered
4139           after the transition to Subversion
4140         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
4141           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
4142           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
4143           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
4144
4145 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
4146
4147         * as/asx8051.dsp: added mcs51/strcmpi.h
4148         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
4149         * as/hc08/aslink.h: updated lnksect prototype
4150         * as/hc08/asm.h,
4151         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
4152         * as/hc08/asmain.c,
4153         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
4154           (newdot): handle A_ABS
4155         * as/hc08/asout.c,
4156         * as/mcs51/asout.c (outarea): output address
4157         * as/hc08/lkaomf51.c,
4158         * as/mcs51/lkaomf51.c: disabled unused array UsageType
4159         * as/hc08/m08pst.c,
4160         * as/mcs51/i51pst.c,
4161         * as/z80/z80pst.c: "ABS" is not A_OVR
4162         * as/hc08/lkarea.c (newarea): read a_addr,
4163           (lnkarea): added codemap array, sort absolute areas to the front,
4164            combine all GSINITx/GSFINAL,
4165           (find_empty_space, allocate_space): new functions,
4166           (lnksect): return next address, handle absolute sections
4167         * as/mcs51/lkarea.c (newarea): read a_addr,
4168           lnksect2 prototype changed,
4169           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
4170           (find_empty_space, allocate_space): new, factored out of lnksect2,
4171           (lnksect2): return next address, handle absolute sections
4172         * as/hc08/lkhead.c,
4173         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
4174         * as/hc08/lklibr.c (addfile, fndsym),
4175         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
4176           index out of range and detect both '\' and '/'
4177         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
4178         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
4179           regression tests (ds390 cannot return bool yet)
4180         * doc/sdccman.lyx: changed version number, document changed --no-peep,
4181           document critical interrupts on z80, document changed SDCC define
4182         * src/asm.c (_asxxxx_mapping): fixed .org directive,
4183           (_a390_mapping): added .org directive
4184         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
4185           (genMultOneByte): fixed warnings
4186         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
4187           ones
4188         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
4189         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
4190           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
4191         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
4192         * src/pic16/main.c: removed newReg prototype
4193         * src/pic16/pcode.c,
4194         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
4195           warnings
4196         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
4197           ones
4198         * src/pic16/ralloc.c
4199         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
4200           to fix warnings
4201         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
4202           from short to PIC_OPTYPE
4203         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
4204         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
4205           optype from short to PIC_OPTYPE
4206         * src/port.h: made int_size unsigned to fix warnings
4207         * src/SDCC.y: fixed warning on MSVC
4208         * src/SDCCicode.c (getArraySizePtr): return unsigned int
4209         * src/SDCCopt.c (convertToFcall): fixed warnings
4210         * src/SDCCsymt.h: removed double prototype for genSymName
4211         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
4212           offset int to fix warnings
4213
4214 2006-04-22 Borut Razem <borut.razem AT siol.net>
4215
4216         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4217           references to CVS replaced with Subversion
4218
4219 2006-04-21 Borut Razem <borut.razem AT siol.net>
4220
4221         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4222           references to CVS replaced with Subversion
4223
4224 2006-04-19 Borut Razem <borut.razem AT siol.net>
4225
4226         * src/version.awk: adapted for svn
4227         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
4228           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
4229           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
4230           /binutils-avr/etc/*.vi, *.jin: removed all properties
4231           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
4232
4233 2006-04-19 Borut Razem <borut.razem AT siol.net>
4234
4235         * CVS to Subversion migration completed
4236
4237 2006-04-18 Borut Razem <borut.razem AT siol.net>
4238
4239         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
4240           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
4241
4242 2006-04-17 Borut Razem <borut.razem AT siol.net>
4243
4244         * device/include/Makefile.in: added pic/*.inc to the installation
4245
4246 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
4247
4248         * support/regression/collate-results.py: fixed output in case of
4249         a valdiag error
4250         * support/regression/generate-cases.py: fixed splitting of pathnames
4251         with dots
4252         * as/hc08/lklibr.c (addfile),
4253         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
4254
4255 2006-04-11 Raphael Neider <rneider AT web.de>
4256
4257         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
4258         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
4259         * src/pic16/pcode.c (assignValnums): fixed #1460578
4260
4261 2006-04-11 Raphael Neider <rneider AT web.de>
4262
4263         * device/lib/pic/libdev/*.c,
4264         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
4265           fixes #1468739, enables compilation in --std-c99 mode
4266         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
4267
4268 2006-04-11 Raphael Neider <rneider AT web.de>
4269
4270         * src/pic/device.c (find_device): removed debug output
4271           (list_valid_pics): enabled verbose listing of supported devices
4272         * device/include/stdbool.h: define bool as char for pic14/16 as well
4273
4274 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4275
4276         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
4277
4278 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4279
4280         * .version: bumped version to 2.5.6
4281         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
4282
4283 2006-04-06 Raphael Neider <rneider AT web.de>
4284
4285         * .version: bumped version to 2.5.6 (pic14 ABI changed)
4286         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
4287         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
4288           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
4289             pic14_constructAbsMap
4290           (pic14printPublics): declare absolute global symbols as global
4291           (pic14createInterruptVect),
4292         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
4293           (newReg): assume new registers unused, use correct name in
4294             hashtable (reg->name instead of name), more debugLog output
4295         * src/pic/device.h (PIC_device): added fields for verbose output
4296         * src/pic/device.c: moved device definition to pic14devices.txt,
4297             added routines for runtime parsing of pic14devices.txt,
4298             added support for second config word
4299         * src/pic/main.c (_process_pragma): removed #pragma maxram,
4300           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
4301           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
4302           (_pic14_parseOptions): moved pCodeInitRegisters here
4303           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
4304         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
4305           (pCodeInitRegisters): rewrapped comments, perpared new approach to
4306             handling the pseudo stack
4307         * device/lib/Makefile.in: ignore failures in objects-pic16,
4308         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
4309         * device/lib/pic/NEWS: document new dependency on picXXX.lib
4310         * device/lib/pic/Makefile.subdir,
4311         * device/lib/pic16/Makefile.subdir: improved clean rules
4312         * device/lib/pic/libdev/: NEW, pic14 device libraries
4313         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
4314         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
4315         * device/include/Makefile.in: create subdir and install pic14 headers
4316         * device/include/pic/p16f_common.inc: removed unused declarations
4317         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
4318             PICs from inc2h.pl v1.6,
4319             replaced BIT_AT macros with struct declarations
4320         * device/include/pic/pic14devices.txt: definition of supported devices,
4321             all above improvements contributed by Zik Saleeba, thanks
4322         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
4323         * support/scripts/sdcc.nsi: also install pic14 device libraries and
4324             headers
4325
4326 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4327
4328         * device/include/mcs51/c8051f410.h: added interrupt numbers,
4329         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
4330           thanks to Charles Olds
4331
4332 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4333
4334         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
4335
4336 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4337
4338         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
4339         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
4340         * support/regression/bug1464657.c: added, new test
4341
4342 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4343
4344         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
4345           version number
4346
4347 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4348
4349         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
4350           --no-peep and --peep-file <file> are used don't use default rules but
4351           do use the <file>
4352
4353 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4354
4355         * src/mcs51/gen.c (genCall): fixed bug 1457608
4356
4357 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4358
4359         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
4360         changes seem to cause (trigger?) problems with the build system.
4361
4362 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
4363
4364         * src/SDCCpeeph.c (operandsLiteral): new, added,
4365           (callFuncByName): inserted operandsLiteral
4366         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
4367
4368 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4369
4370         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
4371         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
4372
4373 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4374
4375         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
4376           implemented patch 1120823 Thanks to Willy De la Court (normal
4377           interrupts need an interrupt number now if they are made critical),
4378           and enabled nesting of critical functions though not for gbz80
4379           (genCritical, genEndCritical): added functions
4380           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
4381         * src/z80/mappings.i: added "ei" to all mappings
4382
4383 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4384
4385         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
4386         submitted by the Debian SDCC maintainer Aurelien Jarno:
4387         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
4388         archive with gcc 4.1 on mips and wrote the patch"
4389
4390 2006-03-16 Raphael Neider <rneider AT web.de>
4391
4392         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
4393           the left operand is shorter than the result (c* = lit-c* + int),
4394           fixes bug #1450796
4395         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
4396           OP_SYMBOL
4397
4398 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4399
4400         * src/.version: increased version number to 2.5.5
4401         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
4402         linking is done manually in pic16 port's _linkEdit,
4403         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
4404         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
4405         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
4406         allocate asmop as AOP_ACC,
4407         (aopForRemat): added parameter 'bool result' in function declaration,
4408         (pic16_aopGet): return AOP_ACC when accessing WREG,
4409         (pic16_popGetTempReg): minor modification,
4410         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
4411         'pic16_allocWithIdx',
4412         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
4413         calling function in absolute addresses,
4414         (genAssign): take into account AOP_ACC asmop,
4415         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
4416         * src/pic16/pcoderegs.c: some debug functions and lines added,
4417         * src/pic16/ralloc.c (decodeRegType): added but commented out,
4418         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
4419         register too,
4420         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
4421         call to allocReg, not by manually allocating a new one,
4422         (pic16_assignRegisters): now before going through the register
4423         allocating functions mark all registers as free. This eliminates some
4424         side effects resulting from peephole parser done earlier in the backbone
4425
4426 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
4427
4428         * src/SDCCicode.c (geniCodeLogic),
4429         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
4430
4431 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
4432
4433         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
4434           (genSend): bugfix, do not allocate and free twice,
4435           (shiftRLong): handle partially overlapping aops
4436         * support/regression/tests/bitopcse.c: fixed warning redefined idata
4437
4438 2006-03-08 Borut Razem <borut.razem AT siol.net>
4439
4440         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
4441           for pic16
4442
4443 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
4444
4445         * support/regression/tests/bug1409955.c: new, added
4446         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
4447         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
4448           (aopForSym, aopOp): increment asmop.allocated if reused,
4449           (freeAsmop): decrement asmop.allocated and check for zero instead of
4450           using asmop.freed,
4451           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
4452           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
4453            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
4454            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
4455            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
4456            genSignedRightShift, genRightShift, genDataPointerGet,
4457            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
4458            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
4459             in reverse order from allocation,
4460           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
4461             added swappedLR to keep track
4462         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
4463           pdata & code for GCC, z80, gbz80 & hc08
4464         * support/regression/tests/zeropad.c: moved defines to testfwk.h
4465
4466 2006-03-08 Raphael Neider <rneider AT web.de>
4467
4468         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
4469
4470 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
4471
4472         * device/include/mcs51/c8051f410.h: new SiLabs mcu
4473         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
4474         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
4475
4476 2006-03-06 Borut Razem <borut.razem AT siol.net>
4477
4478         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
4479           made the linker quiet
4480
4481 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4482
4483         * src/pic16/gen.c (genPcall): fixed bug #1443644
4484         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
4485         which dumps before the function entry point a data byte which represents
4486         the number of the local variables used by the specified function, added
4487         'xinst' for initial support for Extended Instruction Support,
4488         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
4489         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
4490         port->fun_prefix anymore (may change later),
4491         (genFunction, genEndFunction): do not store/restore local registers for
4492         _main (this should take care the --main-return command line option in
4493         the future),
4494         (genOr): removed some legacy pic-port instructions,
4495         * src/pic16/genarith.c (genAddLit): re-enabled old code because
4496         performing operations with SFR's causes data to be written more than
4497         once to each SFR. Perhaps SFRs should be handled in special cases...
4498         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
4499         pcode.h
4500         * src/pic16/main.c (_process_pragma): stack bound checking did not take
4501         into account for stack starting position,
4502         (struct OPTIONS pic16_optionsTable): added command line argument
4503         --extended or -y for Extended Instruction Support,
4504         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
4505         (deassignLRs): *** perhaps the most important change, old 'for' code
4506         (commented out for reference), didn't account for some registers which
4507         were left marked 'not free' after a pointer operation. The change
4508         reduces register usage a lot in some cases
4509
4510 2006-03-04 Borut Razem <borut.razem AT siol.net>
4511
4512         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
4513           _clean
4514         * support/regression/tests/bug-524697.c: decreased array size for
4515           mcs51 to fit into the internal RAM
4516         * support/regression/Makefile.in: a little bit more verbose
4517
4518 2006-03-03 Borut Razem <borut.razem AT siol.net>
4519
4520         * support/regression/fwk/lib/testfwk.c,
4521           support/regression/fwk/include/testfwk.h: introduced function
4522           _prints(), nonrecursive _printn(), call _initEmu() from main()
4523         * support/regression/ports/gbz80/support.asm,
4524           support/regression/ports/ucz80/support.asm,
4525           support/regression/ports/z80/support.asm,
4526           support/regression/ports/ds390/support.c,
4527           support/regression/ports/hc08/support.c,
4528           support/regression/ports/host/support.c,
4529           support/regression/ports/mcs51/support.c,
4530           support/regression/ports/xa51/support.c: added empty _initEmu()
4531           function
4532         * support/regression/ports/pic16/gpsim.cmd,
4533           support/regression/ports/pic16/spec.mk,
4534           support/regression/ports/pic16/support.c,
4535           support/regression/Makefile.in: added pic16 regression test
4536
4537 2006-03-01 Raphael Neider <rneider AT web.de>
4538
4539         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4540           genConstPointerGet): use safe way of generating MOVFF to cover
4541             literals as well as registers, fixes bug #1440527
4542         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4543             dereference
4544           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4545             more correctly, fixes bug #1232186
4546           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4547         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4548             gplink guess the correct processor in more cases, applied patch
4549             from Till Riedel attached to and fixing bug #1436552
4550
4551 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4552
4553         * support/regression/tests/array.c: added, contains check for #1434401
4554         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4555
4556 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4557
4558         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4559         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4560         * device/include/mcs51/c8051f326.h,
4561         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4562         * device/include/mcs51/c8051f000.h,
4563         * device/include/mcs51/c8051f018.h,
4564         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4565           PCON_IDLE,PCON_STOP and added sfr16 definitions
4566
4567 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4568
4569         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4570           genGetWord): fixed bug 1409955
4571
4572 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4573
4574         * device/include/hc08/mc68hc908gp32.h,
4575         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4576
4577 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4578
4579         * src/SDCCast.c (constExprValue): return NULL if not a value
4580         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4581         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4582         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4583
4584 2006-02-13 Borut Razem <borut.razem AT siol.net>
4585
4586         * src/regression/ptrarg.c: added, fails due to bug #1430967
4587         * src/regression/Makefile: ptrarg.c added, ...
4588
4589 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4590
4591         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4592         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4593
4594 2006-02-11 Borut Razem <borut.razem AT siol.net>
4595
4596         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4597           print "Processor: xxx" message to stdout only if --verbose
4598
4599 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4600
4601         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4602         * support/regression/tests/bug1426356.c: added
4603         * support/regression/tests/bitfields.c: removed 2 tests
4604
4605 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4606
4607         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4608         * device/include/mcs51/c8051f330.h,
4609         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4610           PCON_IDLE,PCON_STOP and added sfr16 definitions
4611         * device/lib/_divsint.c,
4612         * device/lib/_divuint.c,
4613         * device/lib/_divulong.c,
4614         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4615           register bank bug for small stackauto
4616
4617 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4618
4619         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4620
4621 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4622
4623         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4624         * all.dsp: corrected several bin paths
4625         * device/include/mcs51/c8051f120.h,
4626         * device/include/mcs51/c8051f300.h,
4627         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4628           to PCON_IDLE,PCON_STOP
4629         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4630         * device/lib/printf_large.c (output_float): fixed bug 1388703
4631         * support/regression/tests/bug1057979.c: added test for bug 1388703
4632
4633 2006-02-08 Raphael Neider <rneider AT web.de>
4634
4635         * src/pic/pcode.c (pciTRIS): fixed typo,
4636           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4637           (LinkFlow): fixed handling of flows that end in a call,
4638           (ReuseReg): perform safety check earlier
4639         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4640             to work with flows at the beginning of a pBlock,
4641             fixes #1426557 (Symbol not previously defined),
4642           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4643             usage information
4644           (RemoveUnusedRegisters): update register usage info
4645         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4646             created, reuse existing ones instead
4647         * src/pic/gen.c (genPcall): fixed #1424719
4648
4649 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4650
4651         * link/z80/lkmain.c,
4652         * link/z80/lklex.c,
4653         * link/z80/lkdata.c,
4654         * link/z80/aslink.h: fixed build on current cygwin:
4655         replaced getline() by lk_getline()
4656
4657 2006-02-01 Borut Razem <borut.razem AT siol.net>
4658
4659         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4660           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4661           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4662           src/regression/bool1.c, src/regression/bool2.c,
4663           src/regression/bool3.c, src/regression/call1.c,
4664           src/regression/compare.c, src/regression/compare10.c,
4665           src/regression/compare2.c, src/regression/compare3.c,
4666           src/regression/compare4.c, src/regression/compare5.c,
4667           src/regression/compare6.c, src/regression/compare7.c,
4668           src/regression/compare8.c, src/regression/compare9.c,
4669           src/regression/configword.c, src/regression/for.c,
4670           src/regression/inline.c, src/regression/mult1.c,
4671           src/regression/nestfor.c, src/regression/or1.c,
4672           src/regression/pointer1.c, src/regression/ptrfunc.c,
4673           src/regression/rotate1.c, src/regression/rotate2.c,
4674           src/regression/rotate3.c, src/regression/rotate4.c,
4675           src/regression/rotate5.c, src/regression/rotate6.c,
4676           src/regression/rotate7.c, src/regression/string1.c,
4677           src/regression/struct1.c, src/regression/sub.c,
4678           src/regression/sub2.c, src/regression/switch1.c,
4679           src/regression/while.c, src/regression/xor.c,
4680           src/regression/create_stc, src/regression/simulate,
4681           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4682           regression tests
4683         * src/regression/gpsim_assert.h: added
4684
4685 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4686
4687         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4688         ((void (code *) (void)) 0) ();
4689         * as/hc08/aslex.c,
4690         * as/hc08/aslink.h,
4691         * as/hc08/asm.h,
4692         * as/hc08/asmain.c,
4693         * as/hc08/lkdata.c,
4694         * as/hc08/lklex.c,
4695         * as/hc08/lkmain.c,
4696         * as/mcs51/aslex.c,
4697         * as/mcs51/aslink.h,
4698         * as/mcs51/asm.h,
4699         * as/mcs51/asmain.c,
4700         * as/mcs51/lkdata.c,
4701         * as/mcs51/lklex.c,
4702         * as/mcs51/lkmain.c,
4703         * as/z80/aslex.c,
4704         * as/z80/asm.h,
4705         * as/z80/asmain.c: fixed build on current cygwin:
4706         replaced getline() by as_getline()
4707
4708 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4709
4710         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4711         declarator in the symbol chain
4712         * src/SDCCsymt.h,
4713         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4714         parameter list for function pointers
4715         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4716         * support/regression/tests/bug-716242.c: added
4717
4718 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4719
4720         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4721         offset if possible
4722         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4723
4724 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4725
4726         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4727         inifinitely recurseable, added static
4728         * support/regression/tests/bug-1408066.c: added
4729
4730 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4731
4732         * src/SDCCicode.h,
4733         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4734         renamed, added possibility to create "postLoopLbl"-labels
4735         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4736         newiTempLoopHeaderLabel
4737         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4738         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4739         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4740         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4741         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4742         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4743         (basicInduction): fixed bug #136564, made static,
4744         (loopInduction): changed parameter of basicInduction, made static,
4745         (addPostLoopBlock): added
4746         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4747         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4748         findLoopEndSeq
4749         * support/regression/tests/bug-136564.c: added
4750         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4751         --std-sdcc99 to LIBSDCCFLAGS
4752
4753 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4754
4755         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4756         while loop
4757         * support/regression/tests/bug-1406131.c: added
4758
4759 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4760
4761         * src/SDCCast.c (decorateType): fix promotion of unary minus
4762         * src/SDCCsymt.c (computeType): beautified
4763         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4764         (valUnaryPM, valComplement): fix sign and promotion,
4765         (valNot): ANSI: result type is int (SDCC: unsigned char)
4766         * support/regression/tests/uminus.c: speedup by removing superflous
4767         test case 'int'
4768         * support/regression/tests/onebyte.c: added promotion and signedness
4769         tests for unary minus
4770         * support/regressions/tests/bug-477927.c: disable warning about
4771         uninitialized variables
4772         * support/regression/tests/not.c: added
4773
4774 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4775
4776         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4777         * src/mcs51/gen.c (gen51Code): show final register usage after
4778         fillGaps in asm with --i-code-in-asm
4779         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4780         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4781         incUsed, rliveClear, adjustIChain): made static,
4782         (setFromRange): excluded because it's unused,
4783         (findPrevUseSym, markWholeLoop): added,
4784         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4785         through all branches of predecessors enables sdcc to emit the warning
4786         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4787         (rlivePoint): made static, added parameter emitWarnings which is only
4788         true during the first run out of two,
4789         (findRecursiveSucc, findRecursivePred): removed,
4790         (computeLiveRanges): made static, added parameter emitWarnings,
4791         (dumpIcRlive): added for debugging only
4792         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4793         removed prototype of setFromRange()
4794         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4795         in call of computeLiveRanges()
4796         * support/regression/tests/bug-895992.c: added
4797         * support/regression/tests/bug-971834.c: added
4798         * support/valdiag/tests/bug-895992.c: added
4799         * support/valdiag/tests/bug-971834.c: added
4800
4801 2005-12-18 Raphael Neider <rneider AT web.de>
4802
4803         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4804           (genUnpackBits): improved code for direct operands,
4805           (genPackBits): improved code for literal assignment to bitfields
4806             and for direct destination operands (no FSR indirection),
4807             prevented redundant AND, fixes #1362800,
4808           (AccLsh): added parameter to disable masking of the result
4809         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4810           skip instructions with side-effects (like incfsz),
4811           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4812         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4813         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4814           fixes #1375263
4815
4816 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4817
4818         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4819         volatile variables as spill location
4820
4821 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4822
4823         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4824         replacing literals
4825         * support/regression/tests/bug-1376320.c: added
4826
4827 2005-12-08 Raphael Neider <rneider AT web.de>
4828
4829         * src/pic/device.c: renamed is_shared to pic14_is_shared
4830         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4831         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4832           (is_valid_identifier): added for above workaround
4833
4834 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4835
4836         * device/lib/Makefile.in: fixed to enable port-specific-objects
4837         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4838           char, thanks Hubert Sack
4839         * doc/sdccman.lyx: documented --xstack-loc,
4840           elaborated a bit more on interrupts and pitfalls,
4841           removed "setjmp/longjmp unsupported",
4842           documented some unsupported C99 features
4843         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4844         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4845           if, thanks Hubert Sack
4846         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4847         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4848           make make_library
4849         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4850           regression tests can report resource usage (rfe 700441)
4851         * support/regression/collate-results.py: report resource usage
4852         * support/regression/ports/ds390/spec.mk,
4853         * support/regression/ports/hc08/spec.mk,
4854         * support/regression/ports/mcs51/spec.mk,
4855         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4856         * support/regression/ports/ds390/uCsim.cmd,
4857         * support/regression/ports/hc08/uCsim.cmd,
4858         * support/regression/ports/mcs51/uCsim.cmd,
4859         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4860         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4861           library, use the default one
4862         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4863           building the library
4864
4865 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4866
4867         * config.dsp: added dependency on .version and configure_vc.awk
4868         * device/include/setjmp.h: updated for --stack-auto and --xstack
4869         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4870         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4871         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4872         * device/lib/libsdcc.lib: added _setjmp
4873         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4874           (decorateType): fixed bug 1372851,
4875           (optimizeGetHbit): fixed warning
4876         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4877           array initialisation
4878         * support/regression/tests/bug1057979.c: added test for bug 1358192
4879         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4880
4881 2005-12-03 Borut Razem <borut.razem AT siol.net>
4882
4883         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4884           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4885
4886 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4887
4888         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4889         createIval): implement symbol independant "flexible array member",
4890         (createIvalCharPtr): implemented flexible array initialisation with a
4891         string
4892         * src/SDCCsymt.c (copyStruct): removed,
4893         (getSize): fixed misleading comment,
4894         (getAllocSize): removed, the additional allocation size is now in
4895         sym->flexArrayLength,
4896         (checkStructFlexArray): new, syntax checks for flexible array members,
4897         (compStructSize): added syntax checks for "flexible array members"
4898         (copyStruct): removed,
4899         (copyLinkChain): removed inefficient fix for bug 770487
4900         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4901         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4902         symbol->flexArrayLength
4903         * src/SDCCerr.c,
4904         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4905         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4906         * support/regression/tests/structflexarray.c: added
4907         * support/valdiag/tests/structflexiblearray.c: added
4908
4909 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4910
4911         * src/SDCCast.c (decorateType): fixed bug 1368489
4912         * support/Util/SDCCerr.c,
4913         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4914
4915 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4916
4917         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4918           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4919
4920 2005-11-27 Borut Razem <borut.razem AT siol.net>
4921
4922         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4923           support/cpp2/mkdeps.h: added command line option
4924           -obj-ext=<extension> to SDCPP to define object file externion, used
4925           for generation of make dependencies (-M)
4926         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4927
4928 2005-11-26 Borut Razem <borut.razem AT siol.net>
4929
4930         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4931           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4932           added pic and pic16 libraries
4933
4934 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4935
4936         * device/include/float.h: Corrected typo in prototype of __fsgt
4937
4938 2005-11-25 Borut Razem <borut.razem AT siol.net>
4939
4940         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4941           added creation of model-mcs51-stack-auto libraries
4942
4943 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4944
4945         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4946         and fields-list too
4947         * src/SDCCast.c (createIvalArray): removed obsolete comment
4948
4949 2005-11-24 Borut Razem <borut.razem AT siol.net>
4950
4951         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4952           added missing device/lib/mcs51/crt*.asm sources
4953
4954 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4955
4956         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4957
4958 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4959
4960         * device/lib/_fs2schar.c,
4961         * device/lib/_fs2sint.c,
4962         * device/lib/_fs2slong.c: optimized inline asm
4963
4964 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4965
4966         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4967           Better handling of floats between -1.0 and 0.0.
4968
4969 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4970
4971         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4972           (the missing "if"s prohibited removal of redundant labels)
4973
4974 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4975
4976         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4977           Properly convert floats between -1.0 and 0.0 to long, int, and char
4978           types (max integer value of negative floats tends to zero).
4979         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4980           Removed changes made so to work properly with floats between
4981           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4982           and _fs2char.c
4983
4984 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4985
4986         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4987         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4988         (genCast) cosmetic change
4989         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4990         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4991         from mcs51
4992         * support/regression/tests/bitfields (testSignedBitfields): added
4993
4994 2005-11-18 Borut Razem <borut.razem AT siol.net>
4995
4996         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4997         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4998           introduced SILENT option to make building of pic16 libraries less
4999
5000 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5001
5002         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
5003           Now they work properly with floats between -1.0 and 0.0
5004         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
5005
5006 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5007
5008         * src/SDCCicode.c (printOperand): added missing else
5009
5010 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
5011
5012         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
5013         reformatted for better readability
5014         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
5015         signed bitfields
5016
5017 2005-11-17 Borut Razem <borut.razem AT siol.net>
5018
5019         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
5020           introduced SILENT option to make building of pic16 libraries less
5021           verbose - used for nightly snapshot build
5022         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
5023           available on Win32 platforms.
5024         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
5025           medium, large, pic and pic16
5026
5027 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5028
5029         * device/lib/printf_large.c: Temporary patch for bug 1358192:
5030           printf("%f"...) sets fraction to zero.
5031
5032 2005-11-16 Raphael Neider <rneider AT web.de>
5033
5034         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
5035           fixes #1357221
5036         * src/pic/gen.c (genIfx): implemented for CARRY bit
5037         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
5038           to generic pointers, fixes #1357332,
5039           (pic16_movLit2f): NEW,
5040           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
5041
5042 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5043
5044         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
5045
5046 2005-11-11 Raphael Neider <rneider AT web.de>
5047
5048         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
5049         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
5050           compute pointer's type from operand,
5051           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
5052           improved single bit reads, fixes bug #1353379
5053
5054 2005-11-09 Borut Razem <borut.razem AT siol.net>
5055
5056         * support/scripts/sdcc.nsi: added lib/pic to the package
5057
5058 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
5059
5060         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
5061
5062 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5063
5064         * support/regression/tests/bug1348008.c: added
5065         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
5066         * support/regression/tests/bug1337835.c: updated comment
5067
5068 2005-11-06 Borut Razem <borut.razem AT siol.net>
5069
5070         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
5071           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
5072           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5073           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
5074           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
5075           dynamic construction of cl_error_class and derivates - 2.nd try
5076
5077 2005-11-05 Borut Razem <borut.razem AT siol.net>
5078
5079         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
5080           bug, which caused Bus Errors on sparc solaris
5081
5082 2005-11-04 Borut Razem <borut.razem AT siol.net>
5083
5084         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
5085           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
5086           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5087           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
5088           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
5089           and derivates to resolve the initialization problem on OSX
5090
5091 2005-11-02 Borut Razem <borut.razem AT siol.net>
5092
5093         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
5094           corrected typo - #include <winsock2.h>
5095
5096 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
5097
5098         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
5099           (_asxxxx_mapping): added org directive for future enhancements
5100
5101 2005-11-01 Borut Razem <borut.razem AT siol.net>
5102
5103         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
5104           enabled sockets on WIN32
5105         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
5106
5107 2005-10-31 Borut Razem <borut.razem AT siol.net>
5108
5109         * support/regression/generate-cases.py: escape backslashes in {testcase}:
5110           WIN32 backslash path delimiters should be escaped when used in C strings
5111         * support/regression/tests/bitfields.c: exclude failing assertions for
5112           __CYGWIN32__ and __MINGW32__ hosts
5113
5114 2005-10-30 Borut Razem <borut.razem AT siol.net>
5115
5116         * src/SDCCutil.c: corrected double comparison typo
5117
5118 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
5119
5120         * device/lib/medium/Makefile: added for new memory model medium
5121         * device/include/asm/mcs51/features.h: updated for medium/pdata
5122         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
5123           added Multiply & Accumulate sbit's and MAC0_PAGE define
5124         * device/include/mcs51/c8051f300.h: added sfr16 definitions
5125         * device/include/mcs51/c8051f310.h: added sfr16 definitions
5126         * device/lib/_mullong.c: update for medium model
5127         * device/lib/incl.mk: added medium model
5128         * doc/sdccman.lyx: documented medium model
5129         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
5130         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
5131         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
5132         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
5133           (allocParms): set SCLS and OCLS to pdata for medium model
5134         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
5135           for pdata,
5136           (powof2): return <0 if not power of 2
5137         * src/avr/gen.c (genBitWise): use updated powof2
5138         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
5139           (shiftR2Left2Result): small optimization in setup, save acc when storing,
5140           (shiftLLeftOrResult): use B if necessary
5141         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
5142         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
5143         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
5144         * support/regression/Makefile.in: added test-mcs51-medium
5145         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
5146
5147 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
5148
5149         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
5150         specifier unsigned
5151         * device/lib/time.c (mktime): fixed bug 1334315
5152
5153 2005-10-28 Raphael Neider <rneider AT web.de>
5154
5155         * device/include/pic/p16f_common.inc: added common declarations
5156         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
5157
5158 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5159
5160         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
5161           (aopPutUsesAcc): added to predict accumulator use,
5162           (assignResultValue): save acc if necessary,
5163           (genMinusDec): store result if indirectly addressed,
5164           (genDivOneByte):  save acc if necessary,
5165           (movLeft2Result): bugfix if left already in acc,
5166           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
5167             attention to accumulator use (esp. pdata),
5168           (genReceive): receive pdata correctly
5169         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
5170         * src/SDCCicode.h: added isOperandInPagedSpace prototype
5171
5172 2005-10-27 Raphael Neider <rneider AT web.de>
5173
5174         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
5175
5176 2005-10-27 Raphael Neider <rneider AT web.de>
5177
5178         * .version: changed version to 2.5.4
5179         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
5180         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
5181           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
5182             arithmetics support routines
5183         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
5184         * device/lib/Makefile.in: also create installdir for pic
5185
5186         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
5187           pic14 port as well
5188         * src/pic/device.c (dump_sfr): rewritten to delegate register
5189           placement to the linker (use `extern sym' rather than sym EQU addr),
5190           (validAddress): fixed to check last specified address
5191         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
5192           (popGetLit): truncate literal value to 8 bit,
5193           (popGet): moved assert to more appropriate place
5194           (popGetExternal): create pCode operand from and mark the according
5195             symbol as being `extern'
5196           (popGetAddr): added sanity check on immediate's offset, provide
5197             GPOINTER tag on demand
5198           (aopPut): fixed for immediates,
5199           (mov2w_op): move operand's address or contents to WREG (depending on
5200             operand type), safer variant of mov2w,
5201           (movwf,call_libraryfunc): NEW, handy abbreviations,
5202           (get_argument_pcop,get_return_val_pcop,pass_argument,
5203           get_returnvalue): interface for accessing function parameters and
5204             return values,
5205           (assignResultValuei,genRet): use new parameter/return value interface
5206           (pic14_getDataSize): back to old version handling generic pointers,
5207           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
5208             provided implementation and/or fixed old one,
5209           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
5210             calls, removed legacy 8051 reference code
5211           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
5212           (loadSignToC): NEW, move the operands sign bit to CARRY,
5213           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
5214             genRightShiftSigned, accepts negative shift counts,
5215           (setup_fsr): load FSR and adjust IRP (indirect memory access),
5216           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
5217             generic pointers, __data pointers and __code pointers,
5218           (genUnpackBits,genPackBits): rewritten to work with generic pointers
5219             and signed bitfields, limit bitfields to 8 bit,
5220           (genDataPointerGet): fixed number of bytes read,
5221           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
5222           (genPointerGet,genPointerSet): fixed handling of __code pointers,
5223             pointers to constant data are no longer assumed to point to __code
5224             space, removed invalid pointer types,
5225           (bitpatternFromVal): retrieve the PICs representation of an integer
5226             or float literal,
5227           (genDataPointerSet): fixed assigning to po_immediate operands,
5228           (genGenPointerSet): implemented as library call,
5229           (genIfx): fixed incorrect condition,
5230           (genAddrOf): limit generic pointers' addresses to 2 bytes,
5231             provide GPOINTER tag according to destination's storage class,
5232           (genCast): added code to handle casting to generic pointers, added
5233             sign-/zero extension of the result
5234           (aop_isLitLike,op_isLitLike): fixed handling of immediates
5235         * src/pic/gen.h: added macros to access IRP bit in STATUS register
5236         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
5237           extend the result
5238         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
5239           address/register resides in the shared banks
5240           (emitSymbolToFile): improved to handle global and `pinned' symbols,
5241             put all variables into separate sections (have the linker arrange
5242             them)
5243           (picglue): put init code and interrupt handlers in separate sections
5244         * src/pic/main.c: added port specific options table, modified to PORT
5245           structure to make GPOINTERs 3 byte, added pic14_options
5246           (_pic14_do_link): private linking routine (update paths to libraries,
5247             add libsdcc.lib by default)
5248         * src/pic/main.h: declare pic14_options
5249         * src/pic/pcode.c: fixed instructions i/o relations,
5250           (RegCond): reverted to correct version,
5251           (newpCodeOpLit): truncate literals to 8 bit,
5252           (genericPrint): added debug output,
5253           (getRegFromInstruction): fixed for various operand types, simplified
5254           (BuildFlow): fixed broken handling of isntructions with labels
5255           (LinkFlow): start at last instruction in flow (skip trailing comments),
5256             pass the flow on to the next instruction after CALL
5257           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
5258           (insertPCodeInstruction): fixed inserting after a skip instruction,
5259           (DoBankSelect): fixed for labeled instructions
5260           (OptimizepBlock): honor --nopeep switch
5261           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
5262         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
5263         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
5264           (pCodeOptime2pCodes): allow disabling this optimization via
5265             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
5266             but is still buggy), started implementation of a dataflow based
5267             pCode optimization (CSE + dead code elimination)
5268           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
5269         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
5270           names are independant of the stack location and therefore portable across
5271           devices
5272
5273 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5274
5275         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
5276           (selectSpil): fixed bug 1337835 by not spilling bit variables
5277         * support/regression/tests/bug1337835.c: added test for this bug
5278         * src/mcs51/peeph.def: restart after rule 3.c,
5279           addded rules 263.x to optimize loading constants
5280
5281 2005-10-26 Raphael Neider <rneider AT web.de>
5282
5283         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
5284         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
5285           (genAssign): emit warning when casting literals to generic pointer
5286             type, also applies when taking the address of a fixed variable,
5287           (genCast): improved casting to generic pointers
5288         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
5289           extern variables, added verbose error message
5290         * device/include/pic16/{string.h,errno.h}: added #pragma library c
5291
5292 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
5293
5294         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
5295         carry must be complemented too
5296         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
5297         could be emitted by genMinus
5298         * src/SDCCval.c (constVal): fixed bug 1305065
5299
5300 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
5301
5302         * src/SDCCast.c (addCast): added promotion for bit variables
5303         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
5304         promotion casts + optimisation
5305         (optimizeGetWord): fix warning 'i' might be used uninitialized
5306         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
5307         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
5308
5309 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
5310
5311         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
5312         all chars are promoted to int; promotion should be handled in SDCCast.c
5313
5314 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5315
5316         * device/lib/_strcmp.c: Fixed bug 1326457
5317
5318 2005-10-11 Raphael Neider <rneider AT web.de>
5319
5320         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
5321         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
5322
5323 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5324
5325         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
5326         * support/regression/tests/sfr16.c: added test for the sfr32 bug
5327
5328 2005-10-04 Raphael Neider <rneider AT web.de>
5329
5330         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
5331           device/lib/pic16/pics.all: added pic18f1320
5332         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
5333
5334 2005-09-30 Raphael Neider <rneider AT web.de>
5335
5336         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
5337         * src/pic16/devices.inc: NEW, provides device descriptions
5338         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
5339
5340 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
5341
5342         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
5343           GETHBIT
5344
5345 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
5346
5347         * doc/sdccman.lyx: updated Highest Order Bit documentation,
5348           documented Any Order Bit, Higher Order Byte and Higher Order Word
5349         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
5350         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
5351           (optimizeGetAbit): new, to get any bit, not only the high bit,
5352           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
5353           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
5354           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
5355           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
5356             RIGHT_OP: also try GETBYTE, GETWORD optimization,
5357             GETABIT, GETBYTE, GETWORD: decorate them,
5358           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
5359           (ast_print): added GETABIT, GETBYTE, GETWORD
5360         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
5361         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
5362           (geniCodeBinary): new generic binary icode,
5363           (ast2iCode): added GETABIT, GETBYTE, GETWORD
5364         * src/port.h: updated comment for PORT.hasExtBitOp
5365         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
5366           (genGetByte): new, to get a single byte,
5367           (genGetWord): new, to get a word from a long,
5368           (gen51Code): added GETABIT, GETBYTE, GETWORD
5369         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
5370
5371 2005-09-23 Raphael Neider <rneider AT web.de>
5372
5373         * configure.in, configure: have device/lib/pic configured
5374         * device/lib/Makefile.in: added model-pic14
5375         * device/lib/clean.mk: added pic/ to clean rule
5376         * device/lib/pic: added rudimentary pic14 library providing support
5377           functions for multiplication/division/generic pointer access
5378         * src/SDCCopt.c (convilong): mark support functions as extern
5379           for pic14 port as well
5380         * src/pic/gen.c (genMult): added assertions,
5381           (genpic14Code): emit warning on unhandled iCodes
5382         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
5383         * src/pic/pcode.c (pCodeOpCopy),
5384         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
5385           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
5386           SFR_REGISTER}), made safe for future extensions
5387         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
5388           instructions even if preceeded by SKIP instructions (also remove
5389           them); removed unused code
5390         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
5391           prevents leaving parts of the structure uninitialized after copying
5392
5393 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
5394
5395         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
5396           ago by me
5397         * support/regression/tests/addsub.c: added test for the bug
5398
5399 2005-09-21 Raphael Neider <rneider AT web.de>
5400
5401         * device/include/pic16/pic18f1220.h,
5402           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
5403         * device/lib/pic16/Makefile.rules: added missing opening paren
5404         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
5405           are provided in genutils.c,
5406           (genUminusFloat,genUminus,genCmpEq): added asserts on different
5407           operand/result sizes,
5408           (genCmp): assert on NULL pointers first, then check deref'ed values
5409         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
5410           result size
5411
5412 2005-09-18 Raphael Neider <rneider AT web.de>
5413
5414         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
5415           as these are now unused,
5416           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
5417         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
5418           local, avoids uninitialized pointer dereference on r->name
5419         * src/pic16/ralloc.c (newReg): fixed indentation
5420
5421 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
5422
5423         * src/SDCCval.c (constVal): fixed bug 730366
5424         * support/Util/SDCCerr.c,
5425         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
5426
5427 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5428
5429         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
5430
5431 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
5432
5433         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
5434
5435 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5436
5437         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
5438           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5439         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
5440           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5441         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
5442         * packihx/packihx.c (hexDigit): made c unsigned char
5443         * as/mcs51/lklibr.c (fndsym),
5444         * link/z80/lkgb.c (gb),
5445         * link/z80/lklibr.c (fndsym),
5446         * link/z80/lkrloc.c (relr),
5447         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
5448         * src/SDCC.lex (checkCurrFile, process_pragma),
5449         * src/SDCCglue.c (spacesToUnderscores),
5450         * src/SDCCmain.c (setParseWithComma, processFile),
5451         * src/asm.c (tvsprintf, printCLine),
5452         * src/avr/gen.c (emitcode, aopPut),
5453         * src/ds390/gen.c (emitcode),
5454         * src/hc08/gen.c (emitcode, emitinline),
5455         * src/mcs51/gen.c (emitcode, genInline),
5456         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5457           tokenizeLineNode),
5458         * src/pic/ralloc.c (debugLog),
5459         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5460           tokenizeLineNode),
5461         * src/pic16/ralloc.c (debugLog),
5462         * src/z80/main.c (_process_pragma):
5463            made all ctype.h function calls safe
5464         * src/SDCCopt.c: include math.h for fabs
5465         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
5466           and used them throughout the code to make ctype.h function calls safe
5467         * src/ds390/main.c (asmLineNodeFromLineNode),
5468         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
5469         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
5470            unsigned char*
5471         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
5472           (newpCodeAsmDir): made ctype.h function calls safe
5473         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
5474           pic16_emitcode):  made lbp unsigned char*
5475         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
5476           (pic16_newpCodeAsmDir): made ctype.h function calls safe
5477         * src/xa51/gen.c (emitcode),
5478         * src/z80/gen.c (_emit2): made lbp unsigned char*
5479         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
5480            char*
5481
5482 2005-09-05 Raphael Neider <rneider AT web.de>
5483
5484         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
5485           access bank splitpoint
5486
5487 2005-09-05 Raphael Neider <rneider AT web.de>
5488
5489         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
5490
5491 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
5492
5493         * .version: changed to version 2.5.3
5494         * doc/sdccman.lyx: changed version to 2.5.3,
5495           documented --codeseg and --constseg and pragma codeseg and constseg,
5496           documented bit parameters (reentrant) and bit returning
5497         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
5498            currFunc->recvSize, but is this ok for all ports?
5499           (ast2iCode): result of ~ on unsigned char must be cast to int for
5500            bool to work
5501         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
5502           function pointers in bit space
5503         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
5504           (processFuncArgs): call port.reg_parm() with reentrancy info
5505         * src/port.h,
5506         * src/avr/main.c,
5507         * src/ds390/main.c,
5508         * src/hc08/main.c,
5509         * src/pic/main.c,
5510         * src/pic16/main.c,
5511         * src/xa51/main.c,
5512         * src/z80/main.c: port.reg_parm prototype extended with
5513           "bool reentrant" parameter
5514         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
5515           options.stackAuto for allocating bit register parameters
5516         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
5517           (genSend): set BitBankUsed if it is,
5518           (selectRegBank): factored out of genCall for use in genPcall,
5519           (genCall): removed redundant dtype assignmen, use selectRegBank,
5520           (genPcall): handle returning in Carry properly, save in F0 if needed,
5521           (genReceive): handle bit register parameters
5522         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
5523           (mcs51_assignRegisters): enable bit registers for all reentrant
5524            functions and don't set BitBankUsed unconditionally
5525         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
5526         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
5527         * support/regression/tests/funptrs.c: added tests for BOOL and for return
5528
5529 2005-08-27 Borut Razem <borut.razem AT siol.net>
5530
5531         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
5532         ppc-osx (Darwin) does not support -u option. It seems that it is
5533         supported only on Linux - GNU cp
5534
5535 2005-08-25 Borut Razem <borut.razem AT siol.net>
5536
5537         * sim/ucsim/gui.src/serio.src/Makefile.in,
5538           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5539           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5540           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5541           install and strip, since the strip at /usr/ccs/bin should be used
5542           on solaris
5543
5544 2005-08-24 Borut Razem <borut.razem AT siol.net>
5545
5546         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5547
5548 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5549
5550         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5551         ffffffffu
5552
5553 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5554
5555         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5556         * as/mcs51/lkmain.c (link_main): fixed warning
5557         * device/include/stdbool.h: ds390 has no advanced bit support yet
5558         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5559         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5560         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5561           and updated their macros
5562         * src/SDCCval.c (constVal): updated comment for renamed b_long
5563
5564 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5565
5566         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5567         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5568           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5569           (oprio): set priority for '['
5570         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5571            and adb_24_bit
5572         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5573         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5574         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5575         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5576           added overlayable BIT_BANK area
5577         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5578           (summary2): explain 'T' in legenda
5579         * as/mcs51/lkrloc.c: replaced old K&R style,
5580           (relr): added R_BIT processing,
5581           (errmsg): added "Bit-addressable relocation error",
5582           (adb_bit): added for converting from byte- to bit-addressable space,
5583           (adb_24_bit): added for converting from byte- to bit-addressable space
5584         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5585            used in reentrant functions now even as return value
5586         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5587         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5588           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5589         * src/SDCCglobl.h: added indicator BitBankUsed
5590         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5591            the bit registers b0-b7
5592         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5593           (geniCodeCast): fixed bug 1263853,
5594           (geniCodeLogicAndOr): put result in bool or char,
5595           (geniCodeReceive): added parameter func for accessing the return type,
5596           (geniCodeFunctionBody): pass func to geniCodeReceive
5597         * src/SDCCmain.c: added indicator BitBankUsed
5598         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5599         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5600           (checkSClass): don't put automatic bool/bit on stack,
5601           (checkFunction): removed check on function cannot return bit
5602         * src/SDCCsymt.h: added newBoolLink prototype
5603         * src/mcs51/gen.c (rb1regs): added bit registers,
5604           (movc): created for assigning to carry,
5605           (pushReg, popReg): created for pushing registers,
5606           (sameRegs): check both AOP_REG and AOP_CRY types,
5607           (aopOp): handle bit registers,
5608           (aopPut): optimization no self-assign,
5609           (saveRegisters): push reg->base (bits) only once for bit registers,
5610            and use pushReg,
5611           (unsaveRegisters): pop reg->base only once and use popReg,
5612           (assignResultValue): added parameter func and return in carry for bits,
5613           (genIpush): optimization no reload in A if not changed,
5614           (genSend): bit parameters in reentrant functions are passed in bit
5615            registers by first assigning to bits in B, then save registers and
5616            copy B to bits,
5617           (genCall): handle returning in Carry properly, save it in F0 if needed,
5618           (genPcall): updated assignResultValue call, this is not safe yet for bit
5619            returning function !!!
5620           (genFunction): don't generate equ's for bit registers and use pushReg,
5621           (genEndFunction): take care of bit returning functions and use popReg,
5622           (genRet): return bit in Carry,
5623           (genIfx): optimize bit registers and other directly addressable bits,
5624           (genReceive): updated assignResultValue call
5625         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5626           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5627            registers when using stack-auto
5628         * src/mcs51/ralloc.c (_G): added allBitregs,
5629           (regs8051): added the bit registers,
5630           (createStackSpil): use macro IS_BIT,
5631           (getRegBit): added to allocate a bit register, else spill,
5632           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5633           (updateRegUsage): factored out to ease stepping while debugging,
5634           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5635            also allocate bit registers,
5636           (fillGaps): handle bit registers,
5637           (findAllBitregs): added to create bit vector with all bit registers,
5638           (mcs51_allBitregs): returns this bit vector,
5639           (mcs51_assignRegisters): when using stack-auto use bit registers for
5640            passing parameters and creating local variables
5641         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5642
5643 2005-08-22 Borut Razem <borut.razem AT siol.net>
5644
5645         * device/lib/Makefile.in: replaced find option -or with -o
5646           to make it run on solaris
5647
5648 2005-08-22 Raphael Neider <rneider AT web.de>
5649
5650         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5651           fixes #1265442 (crash on Solaris)
5652
5653 2005-08-20 Borut Razem <borut.razem AT siol.net>
5654
5655         * configure, configure.in: added tests for libsocket and libnsl libraries,
5656           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5657           from support/regression/Makefile.in
5658         * support/regression/Makefile.in: added
5659         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5660         * sim/ucsim/libtool: regenerated on sparc-solaris
5661         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5662           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5663           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5664           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5665           sparc-solaris, which doesn't use GNU ld linker
5666         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5667         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5668
5669 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5670
5671         * src/mcs51/peeph.def: updated comments
5672
5673 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5674
5675         * device/lib/_gptrget.c,
5676         * device/lib/_gptrput.c: slightly shorter
5677         * doc/sdccman.lyx: incremented version
5678         * src/mcs51/peeph.def: moved peephole comments to the line of first
5679           change to better keep line correlation, reanimated 186.e
5680         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5681
5682 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5683
5684         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5685           David Saxton with quotes around file name.
5686
5687 2005-08-15 Borut Razem <borut.razem AT siol.net>
5688
5689         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5690           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5691           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5692           make tests run on x86_64 platform
5693
5694 2005-08-13 Raphael Neider <rneider AT web.de>
5695
5696         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5697           as it might be executed DURING a build (parallel make is wonderful)
5698
5699 2005-08-13 Raphael Neider <rneider AT web.de>
5700
5701         * device/lib/Makefile.in (port-specific-objects-pic16):
5702           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5703         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5704           dependency
5705         * device/lib/pic16/Makefile.rules: build subdirs before creating
5706           the library, removed builddir rule, create $(builddir) early in
5707           recurse rule, use empty recurse rule for leaf directories
5708         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5709           mkdir errors (race condition), removed duplicate suffix "hex"
5710           from clean rules
5711         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5712         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5713           prevents mkdir -p from aborting on Alpha
5714
5715 2005-08-12 Raphael Neider <rneider AT web.de>
5716
5717         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5718           db-statements in order to allow for arrays of pointers in code
5719           sections to be placed without interspersed 0-padding, fixes
5720           bug #1256215
5721         * (emitStatistics): fixed division by zero for pic18f1220
5722         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5723           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5724         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5725         * (pic16_pCodeConstString): keep track of already emitted string
5726           literals to prevent "duplicate definitions of symbol _str_NR"
5727         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5728           debug message
5729         * device/lib/Makefile.in: ignore failing PIC16 library builds
5730         * device/lib/pic16/Makefile: do not build if gputils are missing
5731         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5732
5733 2005-08-10 Raphael Neider <rneider AT web.de>
5734
5735         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5736           my last commit)
5737
5738 2005-08-10 Raphael Neider <rneider AT web.de>
5739
5740         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5741           Rokas' patch to add the new fixed point type "__fixed16x16"
5742         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5743           functions for __fixed16x16 arithmetics
5744         * device/lib/pic16: reimplemented the build system to support
5745           a separate build directory, better handling of libio (create
5746           the library in a separate subdir for each architecture) and
5747           easier configuration (centralized in Makefile.common)
5748
5749 2005-08-07 Raphael Neider <rneider AT web.de>
5750
5751         * src/pic16/gen.c (genrshTwo): fixed sign extension
5752         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5753         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5754           added T0CONbits
5755         * device/include/pic16/pic18f4220.h: NEW, header for
5756           pic18f4220 and pic18f4320
5757         * device/include/pic16/pic18fregs.h: added new devices,
5758           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5759         * device/include/pic16/signal.h: resolved name clashes
5760           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5761           to also allow testing for interrupt enable bits, added
5762           comments on how to use the macros
5763         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5764         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5765           register definitions for the devices
5766         * device/lib/pic16/pics.all: added new devices
5767         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5768           allocated memory
5769         * device/lib/pic16/libc/stdlib/memfree: do not count
5770           the block header as free memory
5771         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5772           simplified and added missing end-of-blocklist-marker
5773           (reported by Peter Onion, fixes #1252814)
5774         * (_mergeHeapBlock): fixed loop condition
5775         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5776           len==0, restructured code
5777         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5778           up a bit, reduced bitfield accesses, prevent endless loops
5779           in case of heap corruption
5780         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5781           "unreferenced arguments/must return a value" warnings
5782         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5783           replaced BAUDREG with SPBRG
5784         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5785           device/lib/pic16/debug/gstack/gstack.c: replaced
5786           _naked, _asm, _endasm with __naked, __asm, __endasm
5787
5788 2005-08-05 Raphael Neider <rneider AT web.de>
5789
5790         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5791           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5792
5793 2005-08-05 Borut Razem <borut.razem AT siol.net>
5794
5795         * device/lib/Makefile.in: added missing ';'
5796         * configure: removed ^M characters
5797
5798 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5799
5800         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5801           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5802           License
5803
5804 2005-08-04 Borut Razem <borut.razem AT siol.net>
5805
5806         * configure.in: pic16 libraries build 2nd try - enable running
5807           configure in device/lib/pic16
5808         * configure: regenerated from configure.in
5809         * device/lib/Makefile.in: create $(PORT)/bin directory
5810
5811 2005-08-03 Raphael Neider <rneider AT web.de>
5812
5813         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5814           to get/set values via pointers
5815         * (genUnpackBits,genPackBits): changed detection of
5816           ptr->bitfield vs. sym.bitfield, fixed access via generic
5817           pointers, removed dead (wrong) code for multibyte bitfields
5818         * (genNearPointerGet, genGenPointerGet): removed useless code,
5819           fixed bitfield detection, fixes #1250594
5820         * (genNearPointerSet): removed useless code
5821         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5822           and introduced macro pic16_emitpcode that conditionally emits
5823           the origin of the following pCode (useful for debugging SDCC)
5824         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5825         * (createDefmap): fixed handling of LFSR for --optimize-df
5826
5827 2005-08-02 Borut Razem <borut.razem AT siol.net>
5828
5829         * device/lib/Makefile.in: pic16 libraries build enabled since
5830           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5831
5832 2005-08-02 Raphael Neider <rneider AT web.de>
5833
5834         * src/pic16/gen.c (genPackBits): removed deprecated warning
5835         * (genGenPointerSet): fixed bitfield detection
5836
5837 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5838
5839         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5840
5841 2005-07-31 Raphael Neider <rneider AT web.de>
5842
5843         * device/lib/pic16/libdev/pic18f458.c,
5844           device/include/pic16/pic18f458.h: added missing T0CONbits
5845
5846 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5847
5848         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5849
5850 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5851
5852         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5853
5854 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5855
5856         * device/include/mcs51/at89c51ed2.h: added.
5857
5858 2005-07-23 Raphael Neider <rneider AT web.de>
5859
5860         * src/pic/gen.h: added emitpcode macro for debugging
5861         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5862           and replace by macro adding debug information on demand
5863         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5864         * (gencjne): tried to fix; replaced with correct (slower) code
5865         * (gen{Unp,P}ackBits): fixed single bit access
5866         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5867         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5868           previous instruction
5869         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5870           register has to be handled with care (forbidding movement
5871           of assignments/uses, removing assignments completely, ...)
5872         * (pCodeOptime2pCodes): make use of regIsSpecial
5873         * added lots of debugging output (commented out)
5874         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5875           from being reused as result UNLESS it is known to work
5876
5877 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5878
5879         * support/Util/dbuf.h: include <stddef.h> for size_t
5880         * .version: changed to version 2.5.2
5881
5882 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5883
5884         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5885
5886 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5887
5888         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5889           (genModOneByte): removed needless psha/pula
5890
5891 2005-07-22 Raphael Neider <rneider AT web.de>
5892
5893         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5894           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5895         * src/pic/gen.c (resolveIfx): do not "invent" labels
5896         * (genSkipc): changed to positive logic
5897         * (genSkipCond): removed as no longer needed
5898         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5899           backport from PIC16
5900         * (genLeftShift): check operands are in different registers
5901         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5902           INCF does not update CARRY...
5903         * src/pic/main.c: fixed _linkCmd
5904         * src/pic/pcode.c (unlinkpCode): added inactive code
5905         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5906           alive (do not assign result and operand overlapping registers)
5907
5908 2005-07-22 Raphael Neider <rneider AT web.de>
5909
5910         * src/pic/device.c (dump_sfr): replaced register declaration with
5911           call to emitSymbolToFile() to avoid duplicate symbols
5912         * (assignRelocatableRegisters): do not declare external symbols
5913         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5914           right (take size of type, not etype)
5915         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5916         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5917         * (packRegsForAccUse): disabled assignment of WREG as
5918           the result reg to prevent occurence of just fixed #1235003,
5919           fixes #1242954
5920         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5921           symbols (avoids duplicate symbols in .asm file)
5922         * (pic14emitRegularMap): use emitSymbolToFile()
5923         * src/pic/gen.c (aopOp): fixed spillLocation handling
5924         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5925         * (genDataPointerSet): removed unneccessary variables/output
5926
5927 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5928
5929         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5930         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5931
5932 2005-07-21 Raphael Neider <rneider AT web.de>
5933
5934         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5935           architecture cannot handle them efficiently, fixes bug #1235003
5936         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5937           check for empty sets before using them (fixes bug #1232190)
5938
5939 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5940
5941         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5942           (lnksect2): generate warnings for memory overlap
5943         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5944           constseg to set the name of these segments so you can instruct the linker
5945           to place them in banks
5946         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5947         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5948           added code_seg and const_seg to options
5949         * src/SDCCglue.c (emitMaps): use options.const_seg,
5950           (createInterruptVect): put interrupt vectors in segment HOME,
5951           (glue): put HOME before static segment and put the main glue in HOME,
5952           (glue): use options.code_seg
5953         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5954         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5955           these segments so you can instruct the linker to place them in banks
5956           (linkEdit): use code_loc for HOME segment which should be the first
5957           segment in code memory now
5958         * src/SDCCmem.c: fixed more stuff like bug 1238386
5959         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5960           (changePointer): don't change function pointers to code pointers for
5961           banked functions,
5962           (compareType): added exceptional check for banked function pointers
5963         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5964         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5965           after static in code memory
5966         * src/mcs51/gen.c: added aopLiteralLong prototype,
5967           (aopForSym): use getSize for functions,
5968           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5969           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5970           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5971           the segment,
5972           (genPcall): use call for literal function pointers and generate banked
5973           calls over the one trampoline so there's only one place for the user to
5974           modify according to his/hers hardware,
5975           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5976           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5977         * src/mcs51/main.c: added keyword banked,
5978           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5979         * support/Util/SDCCerr.c,
5980         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5981           needed for passing the bank and address to the trampoline
5982         * device/lib/mcs51/crtbank.asm: added for bankswitching
5983         * device/lib/mcs51/Makefile: added crtbank
5984
5985 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5986
5987         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5988           for fields at offset 0 of a struct or union as reported
5989           on 2005-07-07 in the developer mailing list.
5990
5991 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5992
5993         * src/SDCCmem.c: fixed bug 1238386
5994
5995 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5996
5997         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5998           (patch #1144962), added peephole 300, enabled 259.x
5999         * doc/sdccman.lyx: removed screenshot and provided link instead
6000
6001 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6002
6003         * doc/sdccman.lyx: added section about debugging with ddd
6004         * doc/figures/ddd_example.eps: screenshot of debugging session
6005
6006 2005-07-04 Raphael Neider <rneider AT web.de>
6007
6008         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
6009           like CODE pointers, fixes #1115683
6010         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
6011           call, fixes bugs #1232211, #1228110,
6012           fixed wrong casts to pCodeFlow from pCodeInstructions
6013
6014 2005-07-04 Raphael Neider <rneider AT web.de>
6015
6016         * src/pic/gen.c (popGet): changed assert to allow for
6017           bit operands
6018         * (popGetAddr): changed signature to provide
6019           an additional index, patched all call sites
6020         * (genCmpEq): handle literal-like operands correctly
6021         * (genAddrOf): added sanity checks on __code/__data pointers
6022         * (genAssign): added handling of symbols from __code section
6023         * (gencjne): do not generate code for comparisons whose result
6024           is neither stored nor used, fixes bug #1171114
6025         * (AccLsh, AccRsh): operate on operand instead of WREG
6026         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
6027           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
6028           by known count
6029         * rewrote complete shift-by-literal logic, commented unused
6030           functions out
6031         * (genConstPointerGet): get multiple bytes (if result size > 1),
6032           fixed handling of non-immediate addresses
6033         * (genPointerGet): handle CODE pointers like CONST pointers
6034         * (genpic14Code): insert C-SRC lines as Cource-pCodes
6035         * ({aop,op}_isLitLike): NEW, single place to decide whether an
6036           operand is to be treated as a literal or not
6037         * (mov2w,genPcall,genCmpEq),
6038           src/pic/genarith.c: use aop_isLitLike() to decide between
6039           literal/register contents
6040         * (addSign): added missing offset
6041         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
6042           only emit comment in debug-mode,
6043           use {aop,op}_isLitLike throughout the file
6044         * src/pic/glue.c: fix initializers for pointers (work in progress)
6045         * src/pic/pcode.c (get_op): honor index on _const symbols
6046         * ({reset,dump}pCodeStatistics): NEW, estimate code size
6047         * (dumppBlock): added pCode size estimation
6048         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
6049           check for IS_SYMOP before OP_SYMBOL'ing
6050         * fixed indentation, compacted switch-statements
6051         * (allocReg): find free register and allocate it instead of
6052           allocating new registers all the time
6053         * (deassignLRs): prevent POINTER_GET's from being assigned the same
6054           registers as its operands (necessary only for multibyte GETs)
6055
6056 2005-07-01 Raphael Neider <rneider AT web.de>
6057
6058         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
6059           debugging .asm-output macros FENTRY + FEXIT
6060         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
6061           way... I wonder...
6062         * (emitpComment): NEW, printf to pCode
6063         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
6064           offset handling
6065         * (popGetAddr): NEW, variant of popGet to access an immediates
6066           high(er) bytes instead of the n'th byte of memory they reference,
6067           replaced popGet with popGetAddr where neccessary
6068         * (genDataPointerGet): reactivated and fixed implementation
6069         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
6070           accesses
6071         * (genDataPointerSet): fixed multibyte assignments
6072         * (genpic14Code): fixed --i-code-in-asm handling
6073         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
6074         * (genPlus): fixed index-out-of-bounds error
6075         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
6076         * src/pic/ralloc.c: added debugging output macro FENTRY2
6077         * (spillThis): fixed indentation, enbraced for-body for clarity
6078         * (rematStr): commented out as now unused
6079         * (regTypeNum): commented out special spill case (overwrites
6080           arbitrary values)
6081         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
6082
6083 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
6084
6085         * doc/sdccman.lyx: documented sfr16/sfr32,
6086           added example for using storage class with function pointers
6087         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
6088
6089 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
6090
6091         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
6092         * device/lib/_itoa.c,
6093         * device/lib/_ltoa.c: optimized codesize
6094         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
6095           but don't know how to suppress the double warning.
6096         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
6097         * support/Util/SDCCerr.c,
6098         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
6099
6100 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
6101
6102         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
6103           fixed old K&R prototypes
6104         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
6105         * device/lib/_gptrget.c,
6106         * device/lib/_gptrgetc.c,
6107         * device/lib/_gptrput.c: changed versions for new memory indicator values,
6108           also new versions for small generic pointers and banked generic pointers
6109         * src/port.h: added const_name
6110         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
6111         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
6112         * src/SDCCcse.c (findPrevIc): check all associative operators
6113         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
6114         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
6115         * src/SDCCmem.c: updated comments,
6116           set far-space to 0 for pdata, results in optimized code
6117         * src/SDCCmem.h: added macro CONST_NAME
6118         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
6119           moving the info into the highest bits, see also gptrget/gptrput
6120         * src/src.dsp: added sdcc.ico to project files
6121         * src/avr/gen.c (genCast): fixed bug 0x%d
6122         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
6123         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
6124           relation between ptr_type and DCL_TYPE,
6125           (genCast): fixed bug 0x%d
6126         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
6127           (CODE)" for const_name
6128         * src/hc08/gen.c (genCast): fixed bug 0x%d
6129         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
6130           (hc08_port): added "CONST (CODE)" for const_name
6131         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
6132           (aopForRemat, adjustArithmeticResult): disconnected direct relation
6133           between ptr_type and DCL_TYPE,
6134           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
6135           operand* and took AOP() inside function so sfr-ness can be checked,
6136           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
6137           new prototype,
6138           (genFunction, genEndFunction): optimized stack setup,
6139           (genMinus): optimized for literals with ending zeroes (in bytes),
6140           (genCast): fixed bug 0x%d
6141         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
6142           (mcs51_port): added "CONST (CODE)" for const_name
6143         * src/mcs51/peeph.def: made rule 226 more generic
6144         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
6145         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
6146         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
6147         * src/z80/main.c (z80_port): added NULL for const_name,
6148           (gbz80_port): added NULL for const_name
6149         * support/regression/tests/bug663539.c,
6150         * support/regression/tests/sfr16.c: new tests
6151
6152 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6153
6154         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
6155
6156 2005-06-24 Raphael Neider <rneider AT web.de>
6157
6158         * device/lib/pic16/libdev/pic18f[68][567]20.c:
6159           corrected typos...
6160         * device/include/pic16/signal.h: added USBIF
6161           and SIG_USB
6162
6163 2005-06-24 Raphael Neider <rneider AT web.de>
6164
6165         * device/lib/pic16/libdev/pic18f2455.c,
6166           device/include/pic16/pic18f2455.h: NEW
6167         * device/include/pic16/pic18fregs.h,
6168           device/lib/pic16/pics.all,
6169           src/pic16/device.c: added 18f2455
6170         * device/lib/pic16/libdev/pic18f[68][567]20.c,
6171           device/include/pic16/{pic18f[68][567].h,usart.h}:
6172           replaced MULTIPLE_USARTS define with more relaible
6173           compatibility sfrs (for USART access)
6174
6175 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
6176
6177         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
6178           and the output asm file line is printed on two lines.
6179
6180 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6181
6182         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
6183           BGT, BLE, BHI, and BLS instructions
6184         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
6185           genCmpEq): removed
6186         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
6187           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
6188           fixes bug #1216342
6189         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
6190
6191 2005-06-15 Raphael Neider <rneider AT web.de>
6192
6193         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
6194         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
6195         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
6196           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
6197           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
6198
6199 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6200
6201         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
6202           Marcel Telka in bug #1215704
6203
6204 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
6205
6206         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
6207           located in shared memory bank.
6208
6209 2005-05-31 Raphael Neider <rneider AT web.de>
6210
6211         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
6212           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
6213           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
6214
6215 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
6216
6217         * device/lib/_strncpy.c: fixed the fix
6218
6219 2005-05-26 Raphael Neider <rneider AT web.de>
6220
6221         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
6222           initializers with \0, bug #1208187
6223         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
6224           intializers with \0, bug #1208187
6225
6226 2005-05-26 Raphael Neider <rneider AT web.de>
6227
6228         * src/pic16/glue.c (pic16_printIvalChar): fixed string
6229           initializers with \0, bug #1208187
6230         * src/pic16/main.c (_process_pragma): added sanity checks
6231           for stack position and size, emit warnings when appropriate
6232
6233 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
6234
6235         * device/lib/_strncpy.c: fixed not filling with \0
6236
6237 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6238
6239         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
6240           createFunction),
6241         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
6242           compound_statement),
6243         * src/SDCCsymt.h,
6244         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
6245
6246 2005-05-24 Raphael Neider <rneider AT web.de>
6247
6248         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
6249
6250 2005-05-24 Raphael Neider <rneider AT web.de>
6251
6252         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
6253           TRISE definitions, closes bug #1162453
6254
6255 2005-05-22 Raphael Neider <rneider AT web.de>
6256
6257         * src/pic16/main.c (_process_pragma): check for missing
6258           arguments to pragmas code and udata
6259         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
6260           consistency fixes to match other headers (thanks to Jim Paris)
6261         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
6262
6263 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
6264
6265         * src/SDCCicode.c (isOperandEqual): fixed missing ;
6266
6267 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
6268
6269         * support/regression/tests/bug1198642.c: new test
6270         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
6271         * src/SDCCcse.c (findPrevIc): added comment, please have a look
6272         * support/scripts/resource.h,
6273         * support/scripts/resource.rc,
6274         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
6275         * support/scripts/sdcc.ico: added 32x32 icon
6276
6277 2005-05-18 Raphael Neider <rneider AT web.de>
6278
6279         * device/lib/pic16/libdev/pic18f*.c,
6280         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
6281           keywords to "__sfr" and "__at (X)"
6282         * device/include/pic16/pic18fregs.h: added pic18f4520
6283         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
6284           #1203088 (MPLAB compatibility)
6285
6286 2005-05-17 Raphael Neider <rneider AT web.de>
6287
6288         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
6289         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
6290         * device/lib/pic16/pics.all: added new devices
6291         * src/pic16/device.c: added support for pic18f4520
6292
6293 2005-05-16 Raphael Neider <rneider AT web.de>
6294         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
6295         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
6296         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
6297           convenience function for bit access
6298
6299 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6300
6301         * device/lib/printf_large.c: fixed bug 1193299
6302         * support/regression/tests/bug1057979.c: added test %3.3s
6303
6304 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6305
6306         * device/include/mcs51/8051.h,
6307         * device/include/mcs51/8052.h: made parseable with lint
6308         * device/include/mcs51/lint.h: added include file for (sp)lint
6309         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
6310         * doc/cdbfileformat.lyx,
6311         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
6312
6313 2005-05-14 Raphael Neider <rneider AT web.de>
6314
6315         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
6316         * device/lib/pic16/libc/stdlib/itoa.c (new)
6317         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
6318         * device/lib/pic16/libio/Makefile: exclude subdir according to
6319           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
6320         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
6321         * src/pic16/gen.c (genFunction): prevent annoying warning
6322         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
6323           nameclashes on BeOS
6324         * support/cpp2/cppmain.c (cpp_output_string): new
6325         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
6326           fixes bug 1116802
6327
6328 2005-05-13 Borut Razem <borut.razem AT siol.net>
6329
6330         * src/SDCCmain.c (linkEdit): fixed bug 1195202
6331
6332 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6333
6334         * .version: changed to version 2.5.1; back to bleeding edge development
6335
6336 2005-05-11 Borut Razem <borut.razem AT siol.net>
6337
6338         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
6339           generate PDF version 1.3 documents
6340
6341 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6342
6343         * .version: changed to version 2.5.0
6344
6345 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6346
6347         * doc/sdccman.lyx: updated weblinks, index and smaller updates
6348
6349 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6350
6351         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
6352         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
6353         well as many smaller updates.
6354         * .version: changed to version 2.5.0-pre1
6355
6356 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6357
6358         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
6359
6360 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6361
6362         * support/regression/tests/bug1185672.c: added
6363         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
6364           bug 1185672
6365         * src/mcs51/gen.c (genCall): added comments, made it look safer
6366         * src/mcs51/gen.c (genEndFunction): simplified
6367
6368 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6369
6370         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
6371
6372 2005-04-14 Borut Razem <borut.razem AT siol.net>
6373
6374         * fixed bug 1045046 - SIGSEGV with really simple code?:
6375           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
6376           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
6377
6378 2005-04-14 Borut Razem <borut.razem AT siol.net>
6379
6380         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
6381           src/pic16/device.h: temporarily disabled experimental #inline pragma
6382           for 2.5.0 release
6383
6384 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
6385
6386         * device/include/z80/stdio.h,
6387         * device/include/z80/string.h: removed these highly incomplete files so
6388           SDCC can use the default ones in device/include/
6389
6390 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6391
6392         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
6393         gcc warning.
6394         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
6395         fix sdcpp warnings.
6396
6397 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6398
6399         * device/include/malloc.h: removed redundant __reentrant prototypes
6400         * device/lib/_mullong.c: added working xstack variant in asm (C version
6401           doesn't pass regression tests)
6402         * device/lib/bpx.c: used __data and made bpx char for mcs51
6403         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
6404           (createFunction): fixed bug with xstackPtr
6405         * src/SDCCcse.c: corrected comments
6406         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
6407           (killDeadCode, eBBlockFromiCode): removed unused code
6408         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
6409           corrected comments
6410         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
6411           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
6412           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
6413           (genModOneByte): fixed warning in MSVC
6414         * src/mcs51/main.c (): added comments
6415         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
6416
6417 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6418
6419         * src/SDCCmain.c (linkEdit): oops, changed one line too many
6420
6421 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
6422
6423         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
6424
6425 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
6426
6427         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
6428         characters arrays of larger size than the declared one.
6429
6430 2005-04-10 Borut Razem <borut.razem AT siol.net>
6431
6432         * src/pic/gen.c (genInline),
6433           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
6434           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
6435           (findNextInstruction), (findPrevInstruction),
6436           (findInstructionUsingLabel),
6437           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
6438         * src/pic/pcode.c (findLabel): added missing '\n'
6439         * src/src.dsp: added SDCCdwarf2.c to the project
6440
6441 2005-04-09 Borut Razem <borut.razem AT siol.net>
6442
6443         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
6444
6445 2005-04-08 Raphael Neider <rneider AT web.de>
6446
6447         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
6448           into the chain after a given one) and mergeDefmapSymbols (combine
6449           defmap entries for each symbol per pcode)
6450         * (createDefmap): have defmap entries merged in the end
6451         * (defmapReplaceSymRef): split defmap entries covering two accesses to
6452           a symbol before replacing one access type's symbol, merge symbols in
6453           the end (replacement symbol might already have an entry)
6454         * (assignValnums): keep reference to written WREG intact
6455
6456 2005-04-08 Raphael Neider <rneider AT web.de>
6457
6458         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
6459           Alpha)
6460
6461 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
6462
6463         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
6464         bytes
6465
6466 2005-04-07 Raphael Neider <rneider AT web.de>
6467
6468         * device/include/pic16/usart.h: added compatibility defines for
6469           devices with more than one USART
6470         * device/include/pic16/pic18f[68][567]20.h: activated above defines
6471
6472 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6473
6474         * device/lib/Makefile.in: updated for port specific include
6475
6476 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6477
6478         * support/regression/ports/mcs51/spec.mk: added mcs51 include
6479
6480 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6481
6482         * device/include/8051.h,
6483         * device/include/8052.h,
6484         * device/include/at89S8252.h,
6485         * device/include/at89c55.h,
6486         * device/include/at89x051.h,
6487         * device/include/at89x51.h,
6488         * device/include/at89x52.h,
6489         * device/include/mcs51reg.h,
6490         * device/include/reg51.h,
6491         * device/include/reg764.h,
6492         * device/include/regc515c.h,
6493         * device/include/sab80515.h: (re)moved these 12 files
6494         * device/include/mcs51/8051.h,
6495         * device/include/mcs51/8052.h,
6496         * device/include/mcs51/at89S8252.h,
6497         * device/include/mcs51/at89c55.h,
6498         * device/include/mcs51/at89x051.h,
6499         * device/include/mcs51/at89x51.h,
6500         * device/include/mcs51/at89x52.h,
6501         * device/include/mcs51/mcs51reg.h,
6502         * device/include/mcs51/reg51.h,
6503         * device/include/mcs51/reg764.h,
6504         * device/include/mcs51/regc515c.h,
6505         * device/include/mcs51/sab80515.h: and added them here
6506
6507 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6508
6509         * device/include/stdarg.h: changed SDCC specific keywords to double
6510           underlined form.
6511         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
6512           mcs51 and ds390.
6513         * device/include/hc08/mc68hc908gp32.h,
6514         * device/include/hc08/mc68hc908jb8.h,
6515         * device/include/hc08/mc68hc908jkjl.h,
6516         * device/include/hc08/mc68hc908qy.h: fixed comments
6517         * device/include/mcs51/README: updated
6518         * device/include/mcs51/c8051f120.h: added PINRSF
6519         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
6520         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
6521           amidst code. Also inline is not supported.
6522
6523 2005-04-06 Raphael Neider <rneider AT web.de>
6524
6525         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
6526         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
6527           callers stack/frame pointers
6528
6529 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6530
6531         * device/include/pic16/usart.h: added, missing in previous commit,
6532         * device/include/pic16/adc.h: fixed typo,
6533         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6534         commit,
6535         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6536         <p18fxxx.inc>
6537         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6538         uninitialized because a bug appears with gplink
6539         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6540         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6541         complains for unrecognised option
6542
6543 2005-04-05 Raphael Neider <rneider AT web.de>
6544
6545         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6546           structs as well (using memcpy)
6547         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6548           on ISRs (GOTO has no label)
6549         * src/pic16/device.h: added OF_OPTIMIZE_DF
6550         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6551           new data flow analysis/optimization
6552         * src/pic16/pcode.c: added (prototypes for and implementation of)
6553           dataflow analysis functions, fixed pCodeInstructions' inCond and
6554           outCond values, made RCALL a branch instruction
6555         * (pic16_unlinkpCode): keep C line if possible
6556         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6557           C line moved if possible
6558         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6559         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6560           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6561         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6562           new flow)
6563         * (pic16_getJumptabpCode): NEW, needed in...
6564         * (LinkFlow): fixed handling of jumptables, calls and conditional
6565           branches
6566         * (pic16_InsertCommentAfter): NEW
6567         * (pic16_pCodeReplace): made verbose and flow preserving
6568         * (AnalyzeFlow): added call to data flow analysis
6569         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6570         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6571         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6572
6573 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6574
6575         * src/SDCCast.c (decorateType): fixed bug #1105626
6576
6577 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6578
6579         * device/include/asm/pic16/features.h,
6580         * pic18f*.h headers,
6581         * device/include/pic16/adc.h,
6582         * device/include/pic16/delay.h,
6583         * device/include/pic16/i2c.h,
6584         * device/include/pic16/malloc.h,
6585         * device/include/pic16/stdio.h,
6586         * device/include/pic16/stdlib.h,
6587         * device/include/pic16/string.h,
6588         * device/lib/pic16/libc/stdio/printf_tiny.c,
6589         * device/lib/pic16/libc/stdio/printf_small.c,
6590         * device/lib/pic16/libc/stdio/strmgpsim.c,
6591         * device/lib/pic16/libc/stdio/strmmssp.c,
6592         * device/lib/pic16/libc/stdio/strmusart.c,
6593         * device/lib/pic16/libc/stdio/vfprintf.c,
6594         * device/lib/pic16/libc/stdlib/ltoa.c,
6595         * device/lib/pic16/libc/stdlib/putchar.c,
6596         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6597         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6598         * device/lib/pic16/libc/stdlib/memchrram.c,
6599         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6600         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6601         * device/lib/pic16/libio/adc/adcbusy.c,
6602         * device/lib/pic16/libio/adc/adcread.c,
6603         * device/lib/pic16/libio/adc/adcsetch.c,
6604         * device/lib/pic16/libio/usart/ubaud.c,
6605         * device/lib/pic16/libio/usart/ubusy.c,
6606         * device/lib/pic16/libio/usart/udrdy.c,
6607         * device/lib/pic16/libio/usart/uopen.c,
6608         * device/lib/pic16/libio/usart/uputc.c,
6609         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6610         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6611         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6612         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6613         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6614         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6615         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6616         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6617         specific keywords to double underlined form,
6618         * device/lib/pic16/libc/Makefile.rules,
6619         * device/lib/pic16/libsdcc/Makefile.rules,
6620         * device/lib/pic16/libm/Makefile,
6621         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6622         to compile with C standard set in Makefile.common
6623         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6624         rand.c and crc.c in compilation process,
6625         * device/lib/pic16/libsdcc/int/divuint.c,
6626         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6627         `c' from signed to unsigned,
6628         * device/lib/pic16/startup/crt0.c,
6629         * device/lib/pic16/startup/crt0i.c,
6630         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6631         keywords to double underlined form, bug fixes in _do_cinit function
6632         which prevented the correct initialization of the .idata segment,
6633         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6634         core to enter a infinite loop
6635         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6636
6637 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6638
6639         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6640
6641 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6642
6643         * device/include/Makefile.in: add support for hc08 subdirectory
6644         * device/include/hc08/: new subdirectory
6645         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6646         Lucas Loizaga, thanks!
6647         * device/include/hc08/mc68hc908qy.h,
6648         * device/include/hc08/mc68hc908gp32.h,
6649         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6650         their own directory. Changed internal macro names to use the compiler
6651         reserved namespace. Changed SDCC specific keywords to double
6652         underlined form.
6653         * device/include/math.h,
6654         * device/include/malloc.h,
6655         * device/include/stdarg.h,
6656         * device/include/stdbool.h
6657         * device/include/string.h,
6658         * device/include/tinibios.h,
6659         * device/include/ds400rom.h,
6660         * device/include/8051.h,
6661         * device/include/8052.h,
6662         * device/include/80c51xa.h,
6663         * device/include/at89c55.h,
6664         * device/include/at89S8252.h,
6665         * device/include/at89x51.h,
6666         * device/include/at89x52.h,
6667         * device/include/ds80c390.h,
6668         * device/include/reg764.h,
6669         * device/include/regc515c.h,
6670         * device/include/sab80515.h,
6671         * device/include/mcs51/c8051f000.h,
6672         * device/include/mcs51/c8051f018.h,
6673         * device/include/mcs51/c8051f020.h,
6674         * device/include/mcs51/c8051f040.h,
6675         * device/include/mcs51/c8051f060.h,
6676         * device/include/mcs51/c8051f120.h,
6677         * device/include/mcs51/c8051f300.h,
6678         * device/include/mcs51/c8051f310.h,
6679         * device/include/mcs51/c8051f320.h,
6680         * device/include/mcs51/c8051f330.h,
6681         * device/include/mcs51/c8051f350.h,
6682         * device/include/z180.h: Changed SDCC specific keywords to double
6683         underlined form.
6684
6685 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6686
6687         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6688         18F4455,
6689         * (pic16_assignConfigWordValue): disable testing of configuration
6690         register value with config mask,
6691         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6692         function with port->fun_prefix,
6693         * (genFunction): when generating a naked interrupt function never
6694         create an absolute segment placed in interrupt vector address, place
6695         the actual interrupt function at IVA instead, when an interrupt
6696         function is generated with unspecified interrupt then do not create
6697         the absolute section,
6698         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6699         code for generating a call to generic pointer get/put function with
6700         a call to function pic16_callGenericPointer(),
6701         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6702         the call to the generic pointer get/put functions with prefixing the
6703         function name with port->fun_prefix,
6704         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6705         * src/pic16/main.c (_process_pragma): prefix function with
6706         port->fun_prefix,
6707         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6708         calling assembler, old 18Fxxxx macro is deprecated,
6709         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6710         PC_ASMDIR in while condition,
6711         * (findInstruction): add PC_ASMDIR in while condition,
6712         * (buildCallTree): prefix main with port->fun_prefix,
6713         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6714         identifier for variable with banked access in instructions BTFSS,
6715         BTFSC, BCF, BSF, BTG
6716         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6717         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6718         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6719         perform optimization when enviroment variable NO_REG_OPT is set,
6720         * (insideLRBlock): NEW, return 1 if register is inside an
6721         INF_LOCALREGS block,
6722         * (RemoveRegFromLRBlock): remove a register that is completely
6723         eliminated by register optimization, but it is still left in local
6724         register store/restore in/from stack block,
6725         * (Remove2pcodes): after removing register, check to see if it
6726         should be removed from local register store/restore in/from stack
6727         block,
6728         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6729         DUMMY_READ_VOLATILE,
6730
6731         * device/include/pic16/adc.h: minor prototype modifications and
6732         update,
6733         * device/include/pic16/malloc.h: added GPL notice various
6734         modifications,
6735         * device/include/pic16/stdint.h: NEW, standard header for ints
6736         * device/include/pic16/delay.h: NEW, header for delay functions,
6737         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6738         delay1mtcy,
6739         * device/include/pic16/signal.h: NEW, header providing helper macros
6740         for implementing signal handlers,
6741         * device/include/pic16/stdio.h: added prototypes for functions,
6742         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6743         prototypes for stdin and stdout, added macro PUTCHAR to
6744         automatically implement putchar function prototype,
6745         * device/include/pic16/usart.h: modified and updated USART library,
6746         * device/lib/pic16/libio/adc/,
6747         * device/lib/pic16/libio/i2c: some modifications to improve library
6748         performance,
6749         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6750         family of functions,
6751         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6752         family of functions and other sources,
6753         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6754         of the PIC18Fxx[28] devices,
6755         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6756         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6757         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6758         _do_cinit function, because the previous failed when local variables
6759         where not placed in the same memory bank,
6760         * device/lib/pic16/libsdcc/char/: various modifications to improve
6761         library performance,
6762         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6763         information on the new functions of the c library and more...
6764
6765 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6766
6767         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6768
6769 2005-03-26 Raphael Neider <rneider AT web.de>
6770
6771         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6772           if condition == CARRY)
6773         * (genCmp): adapted to new genSkipc semantics
6774         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6775           on rIfx (genCmp was broken)
6776
6777 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6778
6779         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6780         * src/z80/main.c (_keywords[]),
6781         * src/SDCCglobal.h (struct options),
6782         * src/SDCC.y,
6783         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6784         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6785         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6786         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6787         always available in leading double underscore form. The C99 support is
6788         mostly missing, but it's a start.
6789         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6790         reserved identifier "__data".
6791
6792 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6793
6794         * src/mcs51/peeph.def: fixed bug 1170013
6795
6796 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6797
6798         * device/include/mcs51reg.h: fixed bug 842007
6799
6800 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6801
6802         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6803         last time.
6804
6805 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6806
6807         * src/port.h (struct PORT),
6808         * src/avr/ralloc.c (avr_assignRegisters),
6809         * src/avr/main.c,
6810         * src/ds390/ralloc.c (ds390_assignRegisters),
6811         * src/ds390/main.c,
6812         * src/hc08/ralloc.c (hc08_assignRegisters),
6813         * src/hc08/main.c,
6814         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6815         * src/mcs51/main.c,
6816         * src/pic/ralloc.c (pic14_assignRegisters),
6817         * src/pic/main.c,
6818         * src/pic16/ralloc.c (pic16_assignRegisters),
6819         * src/pic16/main.c,
6820         * src/xa51/ralloc.c (xa51_assignRegisters),
6821         * src/xa51/main.c,
6822         * src/z80/ralloc.c (z80_assignRegisters),
6823         * src/z80/ralloc.h,
6824         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6825         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6826         * src/SDCCcse.h,
6827         * src/SDCCdflow.c (computeDataFlow),
6828         * src/SDCCdflow.h,
6829         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6830         * src/SDCCloop.h,
6831         * src/SDCCcflow.c (*),
6832         * src/SDCCcflow.h,
6833         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6834         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6835         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6836         immedDom() returning wrong block; probably fixes bug #1160833)
6837
6838 2005-03-20 Borut Razem <borut.razem AT siol.net>
6839
6840         * support/scripts/inc2h.pl: WIN32 port
6841
6842 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6843
6844         * device/lib/makefile.in: added abs.c and labs.c
6845
6846 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6847
6848         * device/include/stdint.h: added
6849         * device/lib/abs.c: added
6850         * device/lib/labs.c: added
6851         * device/include/stdlib.h: added abs() and labs() prototypes
6852         * device/lib/libsdcc.lib: added abs and labs
6853         * device/include/float.h,
6854         * device/lib/_fsmul.c,
6855         * device/lib/printf_fast.c,
6856         * device/lib/printf_tiny.c: updated comments
6857
6858 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6859
6860         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6861         bug #1164313
6862
6863 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6864
6865         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6866         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6867
6868 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6869
6870         * device/lib/printf_large.c: removed inline assembly for portability and
6871           readability. Use printf_fast if speed or size are more important.
6872         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6873         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6874
6875 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6876
6877         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6878         prevent compiler warning
6879
6880 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6881
6882         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6883         moved to level 0 and declared as static. Also they are explicit
6884         placed in access bank. This was necessery because some times they
6885         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6886         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6887         optimizations. Currently only compare to unsigned char is implemented,
6888         * src/pic16/gen.c: added fReturnIdx array,
6889         * (struct resolvedIfx) is moved to gen.h and made public,
6890         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6891         * (aopForSym): added an optimization to directly store in stack of
6892         the operand of a SEND iCode,
6893         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6894         but as registers instead (AOP_REG) using the fReturnIdx array,
6895         * (pic16_freeAsmop): remove the freed register from the
6896         _G.sregsAlloc field,
6897         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6898         a compare of 'WREG',
6899         * (pic16_popGetTempRegCond): changed function prototype, now
6900         function takes also a bitVector argument v which holds the current
6901         set of registers that are allocated for stack access by aopForSym,
6902         registers allocated in aopForSym for accessing stack symbols are not
6903         any more part of the functions usedRegs field,
6904         * (genCall): some times aopOp is called for a stack variable to be
6905         send, aopForSym might perform the push, if this is true make sure
6906         that genCall doesn't push the variable twice by testing _G.resDirect,
6907         * (genFunction): changed testing for unspecified interrupt number
6908         from 256 to INTNO_UNSPEC,
6909         * modified selection scheme of frame pointer generation. Previously
6910         if function did use local registers a frame pointer was generated,
6911         now a frame pointer is generated only if function has arguments
6912         (that need PLUSW2 register access), or has stack arguments, or the
6913         compiler is not instructed to omit the frame pointer,
6914         * (genEndFunction): before restoring local registers that were saved
6915         in the function preamble, also restore the registers that *might*
6916         have been allocated for stack access,
6917         * (genRet): removed some old comments,
6918         * (genCmp, the active (RN's) version): added a call to the
6919         pic16_genCmp_special function to perform the compare with a more
6920         robust and optimized way,
6921         * (genInline): a feature has been added in inline code generation,
6922         which allows a wildcard variable substitution when writing inline
6923         assembly. Code is incomplete and experimental therefore undocumented,
6924         * (genCast): changed order of aopOp for result and right to allow
6925         aopForSym to directly load the result if possible,
6926         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6927         perform an optimized compare on some selected special occasions,
6928         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6929         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6930         generate an IVT any more,
6931         * src/pic16/main.c (pic16_optionsTable): added command line option
6932         --optimize-cmp,
6933         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6934         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6935         macros,
6936         * src/pic16/NOTES: Raphael Neider added in list of active developers
6937         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6938         jumptable_end to prevent bug #,
6939         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6940         inCond and outCond fields,
6941         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6942         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6943         turn off register spilling,
6944         * (packRegsForOneUse): synced with other ports' versions although it
6945         is not used currently,
6946         * (pic16_packRegisters): added an optimization while reading
6947         structure bitfields, some registers may be saved (malloc code is
6948         decreased by 80 bytes)
6949
6950 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6951
6952         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6953         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6954         this can be optimized more?
6955
6956 2005-03-10 Raphael Neider <rneider AT web.de>
6957
6958         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6959           genNearPointerGet): (hopefully) fixed access to bitfields via
6960           pointers (p->bitN = x; and x = p->bitN; failed)
6961
6962 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6963
6964         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6965
6966 2005-03-09 Raphael Neider <rneider AT web.de>
6967
6968         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6969
6970 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6971
6972         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6973         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6974           (regTypeNum): set REG_BIT type if necessary
6975         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6976         * support/regression/tests/critical.c: check bug 1144613
6977
6978 2005-03-02 Raphael Neider <rneider AT web.de>
6979
6980         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6981
6982 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6983
6984         * src/avr/ralloc.c (serialRegAssign),
6985         * src/ds390/ralloc.c (serialRegAssign),
6986         * src/hc08/ralloc.c (serialRegAssign),
6987         * src/mcs51/ralloc.c (serialRegAssign),
6988         * src/pic/ralloc.c (serialRegAssign),
6989         * src/pic16/ralloc.c (serialRegAssign),
6990         * src/xa51/ralloc.c (serialRegAssign),
6991         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6992
6993 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6994
6995         * src/SDCCast.c (decorateType): fixed bug 1124787
6996
6997 2005-02-20 Hubert Sack <sack AT digiplan.de>
6998         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6999
7000         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
7001         patch #1121755
7002
7003 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7004
7005         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
7006         to keep the correct label reference count when adding/removing references
7007         to labels. A peephole file using this is appended to patch #1144962.
7008
7009 2005-02-14 Raphael Neider <rneider AT web.de>
7010
7011         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
7012         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
7013         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
7014           retrievals of result operand's value on assignment
7015
7016 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
7017
7018         * device/include/pic16/string.h: modified prototype for memccpy()
7019         to memccpy(void *, void *, char, size_t)
7020         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
7021         check whether to omit frame pointer or not,
7022         * (genInline): convert all occurences of "\n" to LF in inline
7023         assembler blocks, this helps formatting the inline text,
7024         * (pic16_loadFSR0): modified prototype,
7025         * (genNearPointerGet, genNearPointerSet): reorganization of code,
7026         removed some 8051 legacy code,
7027         * (genPackBits): enabled handling bitfields exceeding one byte in size,
7028         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
7029         before allocating temporary registers in functions,
7030
7031 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
7032
7033         * support/regression/tests/bitvars.c: corrected the "fix"
7034
7035 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
7036
7037         * support/regression/tests/bitvars.c,
7038         * support/regression/tests/bitwise.c,
7039         * support/regression/tests/rotate.c: "fixed" problems on Alpha
7040
7041 2005-02-10 Raphael Neider <rneider AT web.de>
7042
7043         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
7044           different size for Alpha
7045         * src/pic16/gen.c (genCmpEq) : improved compare with 0
7046
7047 2005-02-09 Raphael Neider <rneider AT web.de>
7048
7049         * src/SDCC.lex(doPragma) : save and restore warning options as well
7050           (also added new stack plus clone- and copyAndFreeSDCCERRG())
7051         * have #pragma less_pedantic set the errorlevel to WARNING
7052           (fixes #1117001)
7053         * (cloneOptimize) : fixed wrong malloc's size
7054         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
7055           facilitate correct handling of #pragma (save|restore)
7056
7057 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
7058
7059         * src/mcs51/gen.c: removed non-standard C nameless struct/union
7060
7061 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
7062
7063         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
7064
7065 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
7066
7067         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
7068
7069 2005-02-02 Raphael Neider <rneider AT web.de>
7070
7071         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
7072         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
7073         * (pic16_storeForReturn): fixed to allow returning function pointers
7074         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
7075         * device/include/pic16/{stddef.h,stdbool.h}: added
7076
7077 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
7078
7079         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
7080
7081 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
7082
7083         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
7084         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
7085          appeared to be required
7086
7087 2005-01-31 Borut Razem <borut.razem AT siol.net>
7088
7089         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
7090           include/mcs51 and include/z80 directories to the package
7091
7092 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7093
7094         * src/hc08/gen.c (genFunction): fixed bug #1112752
7095
7096 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7097
7098         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
7099
7100 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7101
7102         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
7103
7104 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
7105
7106         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
7107
7108 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
7109
7110         * device/include/c8051fxxx.h: removed these 6 files
7111         * device/include/mcs51/c8051fxxx.h: added these 11 new files
7112
7113 2005-01-26 Raphael Neider <rneider AT web.de>
7114
7115         * src/pic16/gen.c (genAssign): fixed assignment from longs
7116           in codespace (were cut to three bytes)
7117         * (genDummyRead): implemented (except for CODESPACE...),
7118           fixed bug #1108575
7119         * src/pic16/glue.c (emitStatistics): beautified
7120         * device/lib/pic16/libm/Makefile: added include path
7121
7122 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7123
7124         * src/z80/gen.c (aopPut): fixed bug #1103902
7125
7126 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7127
7128         * device/lib/expf.c: fixed bug #1095792
7129
7130 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
7131
7132         * device/lib/pic16/libm: added Math library sources
7133
7134 2005-01-24 Raphael Neider <rneider AT web.de>
7135
7136         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
7137           to enable upcast to pCodeOpReg2 (there is no type tag to
7138           differenciate the two and pic16_popGet2p cast into PCOR2)
7139         * src/pic16/main.c (_process_pragma): fixed another malloc bug
7140           (sizeof(sectNames) changed to sizeof(sectName))
7141           Both patches fix segfaults under MinGW.
7142
7143 2005-01-23 Raphael Neider <rneider AT web.de>
7144
7145         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
7146           Safe_[mc]?alloc()'ed variables
7147         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
7148           of (byte sized) temporaries (assign them to WREG for now)
7149         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
7150           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
7151           this might fix SIGSEGVs on MinGW...
7152         * src/SDCCopt.c (killDeadCode): restored original behaviour
7153           (volatile operands might get thrown away though)
7154
7155 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
7156
7157         * src/pic16/gen.c: fixed bug #1106975,
7158         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
7159         pointer update, INTCON is saved, global interrupts are disabled and
7160         restored after updateing TOS.
7161         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
7162         * added function attribute 'shadowregs' to take advantage of shadow
7163         registers,
7164         * added function attribute 'wparam' as an alternative to the wparam
7165         pragma,
7166         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
7167         user declares a non-ISR function as 'shadowregs',
7168         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
7169
7170 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
7171
7172         * .version: bumped version number to 2.4.8
7173         * device/lib/pic16/pics.all: list of PIC18F devices supported by
7174         pic16 port,
7175         * device/lib/pic16/libio/i2c/: I2C module support library,
7176         * device/include/pic16/i2c.h: I2C support library header,
7177         * device/lib/pic16/libc/stdio/: standard IO support sources,
7178         * (printf_small.c): printf_small() source, supports float print,
7179         * (printf_tiny.c): printf_tiny() source, does not support floats,
7180         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
7181         enable global optimizations for entire library source, other
7182         Makefiles in the source tree are also modified to reflect this,
7183         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
7184         function,
7185         * doc/sdccman.lyx: updated to reflect new changes,
7186         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
7187         sym->onStack if-case,
7188         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
7189         sbit, idata, _idata, xdata, _xdata,
7190         * added pragma library, to link an external library, (see doc),
7191         * removed command line options, --pomit-config-words, --pomit-ivt,
7192         --pleave-reset-vector,
7193         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
7194         when calling assembler to reflect memory model used, also define
7195         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
7196         reflect stack model used,
7197         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
7198         on stack return NULL,
7199
7200 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7201
7202         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
7203           of the operands is volatile. Fixes #1020220
7204
7205 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7206
7207         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
7208         * (OptimizeRegUsage): make sure that there is really no other flow where
7209           the first pCode is used
7210
7211 2005-01-22 Raphael Neider <rneider AT web.de>
7212
7213         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
7214           to fix #1106967 (pCode->seq are not set up correctly)
7215
7216 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7217
7218         * src/SDCCglue.c (glue): make sure code area is declared before the
7219         static initialization area.
7220
7221 2005-01-21 Raphael Neider <rneider AT web.de>
7222
7223         * device/lib/Makefile.in: fixed test for pic16 install dir
7224         * device/lib/pic16/*/Makefile*: modified compile flags to enable
7225           optimizations
7226         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
7227           added --optimize-goto compiler switch and pragma wparam documentation
7228         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
7229         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
7230           and PRODH closing bug #1071770 (peephole optimizer)
7231
7232 2005-01-19 Raphael Neider <rneider AT web.de>
7233
7234         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
7235           cmdLine buffers (used when calling sdcpp...) are large enough
7236           (MAX_PATH=256 truncates arguments leading to system halts when
7237           used in MinGW...)
7238         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
7239         * (genUminus): rewritten to for efficiency
7240         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
7241           used uninitialized in some cases)
7242         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
7243           copy the third byte from the int -- now assumes 0x80 (data memory)
7244         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
7245           operands (genAddLit expects the iCode's operands to swapped as
7246           well), fixed leftover bytes (crashed for short left operands)
7247         * (pic16_genMinusDec): performance improvements, removed false
7248           PIC14 emitSKPNCs
7249         * (pic16_genMinus): fixed to cope with differently sized operands
7250         * src/pic16/glue.c (pic16_glue): added new banksel optimization
7251           for --obanksel > 1
7252         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
7253         * src/pic16/graph.[ch]: implementation of directed graphs, used by
7254           new banksel optimization
7255         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
7256           analysis for temporary registers (segfaults...)
7257         * src/pic16/peeph.def: added rule
7258
7259 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
7260
7261         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
7262         which converts a float number to its ASCII representation
7263         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
7264         functions to convert the fractional and integer part of a float to ASCII,
7265         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
7266         realloc.c): added _MALLOC_SPEC to explicit place variables in data
7267         ram
7268         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
7269         _STATMEM macros,
7270         * device/include/pic16/adc.h: added GPL info,
7271         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
7272         a pCodeOp as tested operand,
7273         * (genNearPointerGet): optimized bit testing, does not use
7274         intermediate register for bit value, test directly instead with
7275         BTFSS, BTFSC, works only for single bits,
7276         * (genpic16Code): dump the name of the iCode in the asm,
7277         * src/pic16/ralloc.c (decodeOp): removed static declaration and
7278         renamed to pic16_decodeOp,
7279         * (serialRegAssign): do not allocate a temporary register for iCode
7280         sequences that test a single bit for 1/0
7281
7282 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
7283
7284         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
7285         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
7286         access stack and frame pointers. They are initially assigned to
7287         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
7288         accessing SFRs. Updated all occurences of modification of stack or
7289         frame pointer in gen.c and pcode.c,
7290         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
7291         assigning of a literal value to pointers,
7292         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
7293         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
7294         selected
7295
7296 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7297
7298         * doc/sdccman.lyx: update documentation about stack pragma, added
7299         some info for stack memory models
7300
7301 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7302
7303         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
7304
7305 2005-01-08 Raphael Neider <rneider AT web.de>
7306
7307         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
7308           udata sections to fix bug #1097823
7309
7310 2005-01-05 Raphael Neider <rneider AT web.de>
7311
7312         * src/pic16/gen.c (genGenericShift): added handling of differently
7313           sized left operand and result
7314
7315 2005-01-04 Raphael Neider <rneider AT web.de>
7316
7317         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
7318         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
7319           to hold the condition bit)
7320         * added new version of genCmp (old code available via #define)
7321         * added new version of genShiftLeft/genShiftRight in a generic
7322           way, now supports shifting by negative values
7323         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
7324           shiftCount (expected by genGenericShift)
7325         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
7326         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
7327           dump
7328         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
7329           is an invalid literal too...)
7330
7331 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
7332
7333         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
7334         from Raphael Neider,
7335         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
7336         for 8-bit literals. This fixes some literal operands which are sign
7337         extended to 16-bits ints when instruction needs only 8-bits.
7338
7339 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
7340
7341         * device/lib/logf.c: added mcs51 assembly version
7342         * device/lib/expf.c: added mcs51 assembly version
7343         * device/lib/_logexpf.c: new shared asm code for expf and logf
7344         * device/include/math.h: add defines for assembly math library
7345         * device/lib/Makefile.in: build new _logexpf.c
7346         * device/lib/libfloat.lib: use new _logexpf.c
7347
7348 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7349
7350         * src/pic/device.c
7351         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
7352           device types which have less than 0x7f registers.
7353
7354 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7355
7356         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
7357
7358 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7359
7360         * device/lib/printf_fast.c: only build on supported arch.
7361         * device/lib/printf_tiny.c: only build on supported arch.
7362         * device/lib/printf_fast_f.c: only build if asm float lib
7363         * device/lib/_fsget1arg.c: only build if asm float lib
7364         * device/lib/_fsget2args.c: only build if asm float lib
7365         * device/lib/_fsnormalize.c: only build if asm float lib
7366         * device/lib/_fsreturnval.c: only build if asm float lib
7367         * device/lib/_fsrshift.c: only build if asm float lib
7368         * device/lib/_fsswapargs.c: only build if asm float lib
7369         * device/include/stdio.h: don't provide print_fast,
7370           print_fast_f, print_tiny prototypes if --xstack used
7371
7372 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
7373
7374         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
7375         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
7376           to the SOURCES
7377
7378 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7379
7380         * device/lib/printf_fast_f.c: same as printf_fast, but
7381           with floating point enabled
7382         * device/lib/printf_fast.c: minor tweaks
7383         * device/include/stdio.h: add printf_fast_f
7384
7385 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7386
7387         * src/SDCCmain.c: make --float-reent default for mcs51
7388         * device/lib/_fsadd.c: added mcs51 assembly version
7389         * device/lib/_fssub.c: added mcs51 assembly version
7390         * device/lib/_fsmul.c: added mcs51 assembly version
7391         * device/lib/_fsdiv.c: added mcs51 assembly version
7392         * device/lib/_fseq.c: added mcs51 assembly version
7393         * device/lib/_fsneq.c: added mcs51 assembly version
7394         * device/lib/_fsgt.c: added mcs51 assembly version
7395         * device/lib/_fslt.c: added mcs51 assembly version
7396         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
7397         * device/lib/Makefile.in: add _fscmp to build
7398         * device/lib/libfloat.lib: add _fscmp to build
7399
7400 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7401
7402         * device/lib/_fs2slong.c: added mcs51 assembly version
7403         * device/lib/_fs2sint.c: added mcs51 assembly version
7404         * device/lib/_fs2schar.c: added mcs51 assembly version
7405         * device/lib/_fs2ulong.c: added mcs51 assembly version
7406         * device/lib/_fs2uint.c: added mcs51 assembly version
7407         * device/lib/_fs2uchar.c: added mcs51 assembly version
7408         * device/lib/_slong2fs.c: added mcs51 assembly version
7409         * device/lib/_sint2fs.c: added mcs51 assembly version
7410         * device/lib/_schar2fs.c: added mcs51 assembly version
7411         * device/lib/_ulong2fs.c: added mcs51 assembly version
7412         * device/lib/_uint2fs.c: added mcs51 assembly version
7413         * device/lib/_uchar2fs.c: added mcs51 assembly version
7414         * device/include/float.h: added #define to select asm vs c
7415
7416 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
7417
7418         * device/lib/printf_fast.c: improvements to float output
7419         * device/include/float.h: add defines for assembly float library
7420         * device/lib/_fsget1arg.c: receive 1 float arg
7421         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
7422         * device/lib/_fsnormalize.c: normalize a float
7423         * device/lib/_fsreturnval.c: return float, various helper routines
7424         * device/lib/_fsrshift.c: right shift a float's mantissa
7425         * device/lib/_fsswapargs.c: swap 2 floats
7426         * device/lib/Makefile.in: build these 6 new files for mcs51
7427         * device/lib/libfloat.lib: add these 6 files to the library
7428
7429 2004-12-26 Borut Razem <borut.razem AT siol.net>
7430
7431         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
7432           built by gcc 3.4.2
7433
7434 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
7435
7436         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
7437           and fully reentrant and register bank neutral.
7438         * device/lib/printf_fast.c: added float (not enabled by default),
7439           added compact/slower integer (also not enabled by default),
7440           improved size/speed of fast integer code, other minor changes
7441         * device/include/stdio.h, device/lib/Makefile.in,
7442           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
7443
7444 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
7445
7446         * src/pic16/pcode.c: declaring variables other than at the start of a
7447           block is not supported in C by VC6.
7448
7449 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
7450
7451         * applied a previous patch from Raphael Neider that wasn't included
7452         in the previous commits, which fixes infinite loops within jumptable
7453         improvements,
7454         * made some fixes that previous patches introduced
7455
7456 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
7457
7458         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
7459         that fixes an issue with AOP_PCODE asmop's offset,
7460         * (pic16_popCopyReg): update instance field too,
7461         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
7462         function of pic port,
7463         * (genCmp, genAnd, genAssign),
7464         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
7465
7466 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
7467
7468         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
7469         variables initial values to idata section,
7470         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
7471         variables in some functions. This utilizes parmBytes field of iCode
7472         structure to hold the offset of the variable in stack. (might be
7473         able to use the stack field too?)
7474         * applied patch from Raphael Neider # ### , # ###
7475         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
7476         variable initial values in idata section,
7477         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
7478         for static variables with initial value
7479         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
7480         applied fix in while loop from Raphael Neider.
7481
7482 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
7483
7484         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
7485         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
7486         * src/ds390/ralloc.c (serialRegAssign): spill bits
7487         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
7488         * support/Util/SDCCerr.c,
7489         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
7490         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
7491         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
7492
7493 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
7494
7495         * device/include/sdcc-lib.h: inserted LGPL, added includes
7496           asm/ds390/features.h and asm/mcs51/features.h
7497         * device/include/asm/default/features.h,
7498         * device/include/asm/gbz80/features.h,
7499         * device/include/asm/z80/features.h: added empty _AUTOMEM
7500           and _STATMEM
7501         * device/include/asm/ds390/features.h,
7502         * device/include/asm/mcs51/features.h: added files with defines for
7503           _AUTOMEM and _STATMEM indicating automatic and static storage class
7504         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
7505         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
7506         * src/SDCCicode.c (geniCodeCast),
7507         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
7508         * src/SDCCloop.c (loopInduction): removed unused variable lr
7509         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
7510           to convertToFcall to include char modulo (RFE 1065037), added check
7511           if left operand is unsigned and use abs of literal value
7512         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
7513           as it doesn't work after conversion from peephole.def to peephole.rul
7514         * src/mcs51/gen.c (toBoolean): added check for size,
7515           (genModOneByte): optimized code for signed char modulo a literal
7516           power of 2 (thanks to Hubert Sack),
7517           (genRRC): removed unnecessary "clr c",
7518           (genRLC): replaced "add a,acc" with cheaper "rlc a"
7519         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
7520           jump optimization,
7521           swapped rules 256.c and 256.d,
7522           extended 256.d by using new multiple checks (thanks Erik),
7523           added rules 256.e and 256.f,
7524           updated rule 261.a and 261.b to new generated code
7525         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
7526
7527 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7528
7529         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
7530           induction related bugs, including first part of bug #1074377
7531
7532 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
7533
7534         * applied patch from bug-report #1076292,
7535         * applied patches for genAnd and Goto-optimizations for Raphael
7536         Neider,
7537         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7538         dump a less iCode information,
7539         * src/pic16/device.h (pic16_options_t): added field debgen,
7540         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7541         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7542         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7543         puclic,
7544         * (various functions): added macros FENTRY and FENTRY2 to functions,
7545         to emit function prologue,
7546         * (various functions): fixed indentation,
7547         * (genNearPointerGet): fixed loading of FSR0,
7548         * (genPackBits): applied patch from Raphael Neider to fix updating
7549         of FSR0 and touching only the modified bits,
7550         * src/pic16/genarith.c (various functions): added macros FENTRY to
7551         emit function prologue in comments,
7552         * src/pic16/pcode.h: added functions debugf2, debugf3,
7553         * src/pic16/ralloc.c: partial fix for packForPush caused
7554         segmentation fault,
7555
7556 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7557
7558         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7559           <stsp AT users.sourceforge.net> with reversed byte order
7560         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7561
7562 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7563
7564         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7565           bug #1074377
7566         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7567         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7568
7569 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7570
7571         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7572
7573 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7574
7575         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7576           conditions,
7577           (setFromConditionArgs): friendly operand parser for peephole rules,
7578           (operandBaseName, operandsNotRelated): new peephole condition
7579           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7580           architecture specific register naming into account, handles n-way
7581           comparisons, and supports quoted literals
7582         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7583
7584 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7585
7586         * src/mcs51/peeph.def: fixed bug #1076940
7587
7588 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7589
7590         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7591
7592 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7593
7594         Adding support for replacing ljmps with sjmps in jumptables
7595         generated for switch statements. For now you need to set the
7596         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7597         Now 4 algorithms for mcs51 jumptable generation are used:
7598         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7599         addresses loaded pc-relative for up to 112 cases and stack-pushing
7600         target addresses loaded with offset from dptr for up to 256 cases.
7601
7602         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7603         * src/mcs51/main.c: adapted constants for switch table generation
7604         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7605
7606 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7607
7608         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7609         * support/regression/tests/bug1057979.c: added test for bug 1073386
7610
7611 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7612
7613         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7614         compilers
7615
7616 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7617
7618         * src/pic16/device.h,
7619         * src/pic16/genarith.c,
7620         * src/pic16/glue.c,
7621         * src/pic16/main.c,
7622         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7623
7624 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7625
7626         Large cummulative patch for pic16 port.
7627         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7628         to call when a stack overflow occurs,
7629         * (malloc.h): added CVS Id tag,
7630         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7631         variable,
7632         * added libc directory. The current version of LibC contains string
7633         functions, ctype functions and macros and some functions of the
7634         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7635         be extensively tested in the future. Standard disclaimer here.
7636         Library is not automatically build yet. But one can build it by
7637         invoking 'make' inside the libc directory.
7638         * added ADC library under libio. Preliminary version yet.
7639
7640         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7641         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7642         aopForRemat() now and not by pic16_aopOp(),
7643         * (pic16_popGetTempReg): removed warning messgae when allocating
7644         temporary registers, its a buggy feature and will be removed,
7645         * (pic16_popGet): set register instance field in AOP_CRY,
7646         * (pic16_outBitC): fixed for results in size greater than 1,
7647         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7648         * (pic16_storeForReturn): optimized return of 0,
7649         * (genCmp): experimental code for new genCmp which uses PIC18's
7650         special compare&skip instructions. Initial tests fail some times
7651         with variables grater than 1 byte in size, so new code is disabled,
7652         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7653         a single bit,
7654         * (genCast): began a fix to optimize the casting of a bit to another
7655         bit, now assigning a bitfield to another bitfield will fail, sorry,
7656         * src/pic16/main.c: disabled the use of lr-support feature,
7657         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7658         * added some function prototypes, added function _debugf prototype,
7659         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7660         bits with offset (case PO_GPR_BIT),
7661         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7662         command line,
7663         * (isBankInstruction): modified to return 0 for no banking instruction,
7664         and 1 for banking instruction,
7665         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7666         caused stop processing pCodes after a inline assembly block,
7667         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7668         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7669         registers when it shouldn't,
7670         * src/pic16/ralloc.c (allocReg): add preliminary support for
7671         supporting a limited set of temporary registers,
7672
7673 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7674
7675         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7676           genDataPointerSet): ensure assignments always copy in MSB to LSB
7677           order,
7678           (loadRegFromAop): recognize CLRH optimization,
7679           (genFunction): optimize RECEIVE iCodes in reentrant functions
7680
7681 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7682
7683         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7684           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7685           selected.
7686         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7687         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7688           contiguous with data
7689
7690 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7691
7692         * device/lib/_gptrget.c (_gptrget),
7693         * device/lib/_gptrgetc.c (_gptrgetc),
7694         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7695           instead of sjmp to ret
7696         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7697           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7698
7699 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7700
7701         * .version: bumped version to 2.4.7
7702         * device/lib/_gptrget.c (_gptrget): is now _naked
7703         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7704         * device/lib/_gptrput.c (_gptrput): is now _naked
7705         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7706           (createFunction): fixed xstack
7707         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7708         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7709           or bit either,
7710           (geniCodeCritical): store original interrupt state in an iTemp bit
7711           var unless stack-auto
7712         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7713         * src/SDCCmain.c (setIncludePath): added include/target to search path
7714         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7715         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7716           prototype,
7717           (processFuncArgs): put bit vars in bit area
7718         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7719           unsaveRBank): fixed xstack,
7720           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7721           (genFunction, genEndFunction): fixed xstack,
7722           (genAssign): optimization don't walk backwards through mem
7723         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7724         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7725         * support/regression/Makefile: also make library (for stack-auto) when
7726           making "all" and added "test-mcs51-xstack-auto"
7727         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7728         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7729         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7730         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7731         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7732           make-library by MAKE_LIBRARY
7733         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7734           regression tests for xstack
7735         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7736         * support/regression/tests/critical.c: test for critical on mcs51
7737
7738 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7739
7740         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7741           built version of sdcc instead of installed version
7742
7743 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7744
7745         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7746         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7747           vprintf.c now
7748         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7749         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7750           WARNING: remove device/lib/build/z80/printf.o by hand when
7751           updating from previous build!
7752         * device/lib/z80/printf.c: updated comment
7753         * support/regression/tests/bug1057979.c: test all ports now
7754         * support/regression/tests/bug1065458.c: file added
7755
7756 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7757
7758         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7759           *_start and *_end symbols for static functions
7760
7761 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7762
7763         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7764           and search crt0.o in all library paths,
7765           (setIncludePath): proper handling of --nostdinc,
7766           (setLibPath): proper handling of --nostdlib
7767         * support/regression/Makefile,
7768         * support/regression/ports/ds390/spec.mk,
7769         * support/regression/ports/gbz80/spec.mk,
7770         * support/regression/ports/hc08/spec.mk,
7771         * support/regression/ports/mcs51/spec.mk,
7772         * support/regression/ports/mcs51-large/spec.mk,
7773         * support/regression/ports/mcs51-stack-auto/spec.mk,
7774         * support/regression/ports/z80/spec.mk: use include and lib files from
7775           built version of sdcc instead of installed version
7776         * doc/sdccman.lyx: fixed typo in --nostdinc
7777
7778 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7779
7780         * src/pic/pcode.c,
7781         * src/pic/device.c,
7782         * src/pic/ralloc.c,
7783         * src/pic/gen.c : added support to generate code for struct bit fields.
7784
7785 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7786
7787         * as/xa51/xa_version.h,
7788         * device/include/errno.h,
7789         * device/include/regc515c.h,
7790         * device/lib/_itoa.c,
7791         * device/lib/_ltoa.c,
7792         * device/lib/ser_ir_cts_rts.c,
7793         * sim/ucsim/xa.src/glob.cc,
7794         * sim/ucsim/xa.src/inst_gen.cc,
7795         * sim/ucsim/xa.src/xa_bit.cc,
7796         * sim/ucsim/xa.src/xa_sfr.cc,
7797         * sim/ucsim/z80.src/inst_dd.cc,
7798         * sim/ucsim/z80.src/inst_fdcb.cc,
7799         * support/scripts/keil2sdcc.pl,
7800         * src/pic16/pic16.dsp,
7801         * src/pic16/pic16a.dsp: corrected cvs line endings
7802         * device/lib/printf_large.c: fixed bug 1057979
7803         * src/pic16/gen.c: fixed non-C standard code
7804         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7805         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7806         * support/regression/ports/mcs51/support.c: reload T1 asap
7807         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7808           pdata use and clear idata startup behaviour
7809         * support/regression/tests/bug1057979.c: added
7810
7811 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7812
7813         * device/examples/ds390/ow390/ad26.h,
7814         * device/examples/ds390/ow390/cnt1d.h,
7815         * device/examples/ds390/ow390/crcutil.c,
7816         * device/examples/ds390/ow390/ownet.h,
7817         * device/examples/ds390/ow390/owsesu.c,
7818         * device/examples/ds390/ow390/swt12.h,
7819         * device/examples/ds390/ow390/swtoper.c,
7820         * device/examples/ds390/ow390/temp10.h,
7821         * device/examples/ds390/ow390/thermodl.c,
7822         * device/examples/ds390/tinitalk/tinitalk.dsp,
7823         * device/examples/ds390/tinitalk/tinitalk.dsw,
7824         * device/examples/mcs51/clock/hw.h,
7825         * device/examples/mcs51/simple2/go.bat,
7826         * device/examples/serialcomm/windows/serial.h,
7827         * device/examples/xa51/dummy.c,
7828         * device/examples/xa51/hello.c,
7829         * device/include/80c51xa.h,
7830         * device/include/at89x051.h: corrected cvs line endings
7831
7832 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7833
7834         * src/pic16/main.c (options): added command line --gstack, to trace
7835         stack over/under flows,
7836         * added pragma 'wparam' to allow passing first byte of function
7837         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7838         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7839         call to __gstack_test function and sets up the symbol as extern,
7840         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7841         * popaop): added call to pic16_testStackOverflow,
7842         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7843         wparamList list,
7844         * (genCall, genPcall): now all parameters are passed via stack
7845         except in functions that are pass to wparam pragma in which WREG is
7846         used too,
7847         * (genPcall): REENTRANT flag is checked to see if variable prototype
7848         contains reentrant keyword, don't call a non-reentrant function, via
7849         a reentrant function pointer or vice versa, functions are never
7850         passed via WREG,
7851         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7852         D.Winkler,
7853         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7854         SIGSEGV when accessing a NULL register stucture,
7855         * (pic16_printGPointerType): modified to handle UPPER modifier for
7856         function initializers, changed prototype of function to simpler one,
7857         * (pic16_printIvalFuncPtr): check to see if function is already
7858         added in externs list,
7859         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7860         optimized a move from W to SFR with a move to the same register
7861         later after a CALL,
7862         * device/lib/pic16/debug: NEW directory, contains debug features
7863         which are enabled when linking with libdebug.lib, currently command
7864         line option --gstack enables stack pointer tracing for over/under
7865         flow, corresponding sources are in debug/gstack
7866
7867 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7868
7869         * doc/sdccman.lyx: updated SDCC version,
7870         * (PIC16 port): update list of command line options,
7871         * src/pic16/device.h (structure pic16_options_t): added field gstack
7872         to enable stack overflow tracing on push/pops,
7873         * src/pic16/device.c (statistics structure): added statistics
7874         structure,
7875         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7876         pic16_dump_int_registers): increase statistics counters for each
7877         * variable which is encountered
7878         * (pic16_dump_usection): emit each .udata variable to its own udata
7879         section,
7880         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7881         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7882         parameters via stack, otherwise use old scheme,
7883         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7884         assembler output file,
7885         * src/pic16/main.c: added command line options --gstack to enable
7886         push/pop tracing for stack overflow,
7887         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7888         instructions): added size of each instruction,
7889         * (pic16_countInstruction): estimate size of instructions in
7890         the_pFile list, inline assembly blocks are not counted,
7891         * (pic16_FixRegisterBanking): trace previous register usage, when
7892         banksel optimizations is greater than 0, don't emit a redudant
7893         banksel directive,
7894
7895 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7896
7897         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7898         * src/pic16/ralloc.c : applied same fix for pic16.
7899         * src/pic/gen.c : tidied it up a little.
7900
7901 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7902
7903         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7904         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7905
7906 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7907
7908         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7909
7910 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7911
7912         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7913         non-reentrant function __modsint in the interrupt function (thus
7914         corrupting math operations during serial I/O)
7915         * device/lib/ser_ir.c: as above, changed buffersize
7916         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7917         256.c,d for zeroing
7918         * doc/Makefile: added option -t for rsync
7919
7920 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7921
7922         * src/SDCCast.h (struct ast),
7923         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7924
7925 2004-10-20 Borut Razem <borut.razem AT siol.net>
7926
7927         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7928         package
7929
7930 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7931
7932         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7933         makefile targets,
7934         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7935         support functions to replace long sequences of MOVFF's from access
7936         bank registers to stack and vice versa,
7937         * src/pic16/device.h: added new field opt_flags, where optimization
7938         flags can be set to enable certain features,
7939         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7940         * pBlock, (genFunction, genEndFunction): surroung loop for
7941         saving/loading used registers in stack with PC_INFO pCodes,
7942         INF_LREGS. Code in between can then be optimized by pCode optimizer
7943         to support function calls,
7944         * (genDataPointerSet): fixed bug which loaded float fields in
7945         structures with corrupt data,
7946         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7947         in a standard way debug info on stderr. Feature used for developing
7948         and debugging only,
7949         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7950         obsolete chunks of code,
7951         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7952         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7953         * pic16/src/pcode.c (pic16_newpCodeInfo,
7954         * (pic16_newpCodeOpLocalRegs),
7955         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7956         feature,
7957         * (pic16_pCodeConstString): printing of the initial value of a
7958         symbol as a comment is inhibited since parsing was already done by
7959         copyStr and output is corrupt,
7960         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7961
7962 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7963
7964         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7965
7966 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7967
7968         * as/mcs51/lkarea.c: removed old K&R style,
7969           (lnksect): changed check on boundary error,
7970           (lnksect2): changed check on boundary error,
7971           (lnksect2): extend XSTK to end of page if size = 1
7972         * as/mcs51/lkmain.c: removed old K&R style,
7973           (Areas51): create l_IRAM symbol
7974         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7975         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7976           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7977         * device/lib/_mullong.c: added version to be compiled with xstack
7978         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7979         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7980         * device/lib/mcs51/crtxstack.asm: fixed comment
7981         * src/SDCCglue.c: maxInterrupts defaults to 0,
7982           (emitMaps): added pdata,
7983           (createInterruptVect): (re)moved default,
7984           (glue): added pdata,
7985           (glue): moved __start__xstack to XSTK with default size 1
7986         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7987           and options.float_rent when options.stackAuto is set,
7988           (linkEdit): only write XDATA_NAME if provided on command line
7989         * src/SDCCmem.h,
7990         * src/SDCCmem.c: added pdata
7991         * src/port.h: added pdata_name to PORT
7992         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7993           (saveRegisters, unsaveRegisters): removed usage of B,
7994           (genMinus): fixed accumulator clash,
7995           (genJumpTab): added comment, this needs another look
7996         * src/mcs51/gen.c: added check for "B in use" paranoia,
7997           added pushB() and popB()
7998         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7999           chance
8000         * src/avr/main.c,
8001         * src/ds390/main.c,
8002         * src/hc08/main.c,
8003         * src/mcs51/main.c,
8004         * src/pic/main.c,
8005         * src/pic16/main.c,
8006         * src/xa51/main.c,
8007         * src/z80/main.c: (reset_regparms) made void parameter explicit and
8008           added PSEG (PAG,XDATA) or NULL to port specifier
8009         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
8010         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
8011           (_mcs51_genInitStartup): removed __start__xstack equ,
8012           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
8013         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
8014         * src/z80/gen.c (_rleAppend): fixed warnings
8015         * support/regression/tests/zeropad.c: added pdata test
8016         * .version: bumped to 2.4.6
8017
8018 2004-10-17 Borut Razem <borut.razem AT siol.net>
8019
8020         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
8021         as a part of nightly build
8022
8023 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
8024
8025         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
8026         WREG holds the first byte function parameters,
8027         * (aopForSym): take special case for symbols which are in FARSPACE
8028         but in CODESPACE too,
8029         * (assignResultValue): modified to take into account _G.useWreg,
8030         * (genCall): don't use wreg for parameter passing when function is
8031         declared as reentrant, too, added optimization INCF to stack
8032         pointer when stack parameter count is 1,
8033         * (genFunction, genEndFunction): refurnished and fixed to not using
8034         wreg for passing parameters when function has varargs or is
8035         reentrant, fixed bug with symbol name compare for generating
8036         functions in absolute address,
8037         * (pic16_storeForReturn): refurnished,
8038         * (genCmp): began writing a new version of the function, not ready
8039         yet, therefore it is disabled,
8040         * (genAssign): do not read code memory when assigning a function to
8041         a pointer function,
8042         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
8043         array of characters, not pointer,
8044         * (pic16initialComments): in debug mode emit an .ident directive for
8045         the assembler,
8046         * (_process_pragma): emit a new warning type (internal to pic16)
8047         when setting stack to default length, emit a similar warning when
8048         placing a function at absolute address and address is not word aligned
8049         * (_pic16_parseOptions): added 'return TRUE' statement,
8050         * (_pic16_linkEdit): if compiling a source, then add the source's
8051         file object, first in the list of objects to link,
8052
8053 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
8054
8055         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
8056         * src/pic/main.c : removed VC warning.
8057         * src/pic/gen.c : changed comment.
8058
8059 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
8060
8061         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
8062         reference to a deprecated symbol _GPTRREG was causing failure to
8063         link. Thanks G. M. Gallant for the info.
8064
8065 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
8066
8067         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
8068         comments for Bugs item #954788.
8069
8070 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
8071
8072         * src/pic16/device.c (pic16_dump_gsection,
8073         * pic16_groupRegistersInSection): handle symbols declared to be in
8074         access bank differently,
8075         * src/pic16/gen.c (struct _G): added field resDirect,
8076         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
8077         send values read from stack directly to result and don't allocate
8078         temporary values,
8079         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
8080         same registers,
8081         * (pic16_sameRegsOfs): NEW,
8082         * (freeAsmop): if _G.resDirect is set then do not mark registers as
8083         free because they were not allocated from temporary pool,
8084         * pic16_popRegFromString): workaround to fix a problem with
8085         allocating variables twice or never,
8086         * (genGenPointerGet): using PRODL instead of FSR0H,
8087         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
8088         instead of FSR0H,
8089         * (genAssign): take advantage of the _G.resDirect flag,
8090         * (genCast): around line 11844, use mov2f instead of directly
8091         MOVFF'ing between operands to account for literal values,
8092         * src/pic16/genutils.c: some new debug functions for gpsim have been
8093         added,
8094         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
8095         float with integer part only,
8096         * src/pic16/main.c (_process_pragma): handle pragma udata access to
8097         place variables in access bank
8098         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
8099         updated sources to reflect recent changes in gen.c
8100
8101 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
8102
8103         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
8104         sources that searched for headers in installation path, now the
8105         device/include/pic16 is used,
8106         * src/pic16/glue.c (pic16glue),
8107         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
8108         .line directives if not in debug mode, this suppresses assembler's
8109         warnings for ignored directives
8110
8111 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
8112
8113         * src/port.h: made reset_regparms prototype void parameter explicit.
8114         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
8115         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
8116         * doc/sdccman.lyx: documented warning disabling and how to use
8117           printf_large to make it print floats.
8118         * device/include/stdbool.h: NEW
8119         * device/lib/_atof.c,
8120         * device/lib/_divuint.c,
8121         * device/lib/_divulong.c,
8122         * device/lib/expf.c,
8123         * device/lib/printf_large.c,
8124         * device/lib/sincosf.c,
8125         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
8126         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
8127           a completely reentrant lib.
8128
8129 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
8130
8131         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
8132         * device/include/pic16/stdio.h: fixed bug with colon
8133
8134 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
8135
8136         * device/include/pic16/stdio.h,
8137         * device/include/pic16/stdlib.h,
8138         * device/include/pic16/math.h: NEW
8139         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
8140         declared as _naked to reduce overhead
8141         * device/lib/Makefile.in (target port-specific-objects-pic16):
8142         changed * to *.* so to ignore the CVS directory,
8143         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
8144         stacked variables back in stack,
8145         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
8146         corruption
8147
8148 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
8149
8150         * .version: bumped version number to 2.4.5
8151         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
8152         * support/Util/SDCCerr.c (messages structure): added entry for
8153         W_POSSBUG2
8154
8155         Large cumulative patch for pic16 port and libraries.
8156         * device/include/pic16/sdcc-lib.h,
8157         * device/include/pic16/stdarg.h,
8158         * device/include/asm/pic16/features.h,
8159         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
8160         * device/include/pic16/float.h: changes reentrant keyword with
8161         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
8162         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
8163         updated target build-libraries to include objects from gptr,
8164         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
8165         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
8166         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
8167         all function headings,
8168         * src/SDCCmain.c: added global parameter userIncDirsSet,
8169         * (parseCmdLine): when option -I is encountered add directory to
8170         userIncDirsSet too,
8171         * src/version.awk: added space between control and long,
8172         * src/pic16/NOTES: added some notes for the port,
8173         * src/pic16/gen.c: added prototype for mov2fp function,
8174         * (fReturnpic16[]): properly named return value registers,
8175         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
8176         * (aopForSym): added code to handle symbols with onStack flag set,
8177         symbols onStack are allocated PTRSIZE bytes,
8178         * (aopFreeAsmop): handles special case where asmops are stack objects,
8179         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
8180         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
8181         added argument lock to trace flaws in allocating temporary registers
8182         when developing port,
8183         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
8184         * (pic16_popRegFromString): reenabled allocating a direct register
8185         from string,
8186         * (assignResultValue): various beautifications,
8187         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
8188         referenced function argument,
8189         * (genIpush): reenabled to allow stacked arguments, handles only
8190         ic->parmPush iCodes,
8191         * (genCall, genPcall): major changes to allow for variable argument
8192         functions, fixed a bug with falsely restoring stack pointer after
8193         returning from call,
8194         * (genFunction): pending code for critical function,
8195         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
8196         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
8197         * (genNearPointerGet): fixed bug with indirect reading, was always
8198         reading from INDF0
8199         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
8200         pointers,
8201         * (genAddrOf): rewrote code to take address of a stacked function parameter
8202         * (genCast): fixed casting to generic pointer type,
8203         * src/pic16/gen.h: added AOP_STA,
8204         * (struct asmop): added field stk,
8205         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
8206         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
8207         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
8208         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
8209         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
8210         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
8211         generic pointers,
8212         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
8213         and library paths,
8214         * (pic16_port structure): generic pointer size is set to 3,
8215         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
8216         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
8217         compiler warning,
8218         * src/pic16/ralloc.c (allocReg): prevent allocating register when
8219         operand is an iTemp,
8220
8221 2004-09-24 Martin Helmling <mh AT octo-soft.de>
8222
8223         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
8224         * debugger/mcs51/simi.c: addapt new syntax of s51
8225
8226 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
8227
8228         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
8229         * src/pic16/pcode.c: commented out some calls to free() in order to
8230         fix bug #989576,
8231
8232 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8233
8234         * src/SDCCicode.h,
8235         * src/SDCCicode.c (isiCodeInFunctionCall),
8236         * src/avr/ralloc.c (selectSpil),
8237         * src/pic/ralloc.c (selectSpil),
8238         * src/pic16/ralloc.c (selectSpil),
8239         * src/ds390/ralloc.c (selectSpil),
8240         * src/hc08/ralloc.c (selectSpil),
8241         * src/xa51/ralloc.c (selectSpil),
8242         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
8243         stack in the middle of a function call sequence (fixes bug #1020268)
8244         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
8245         costs associated with the minimum switch case.
8246
8247 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8248
8249         * src/SDCC.lex: fixed bug #1030549
8250
8251 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8252
8253         * src/SDCCcse.h (struct cseDef),
8254         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
8255         over a function call if the CSE is derived from a symbol whose
8256         address has been taken (fixes bug #1029883)
8257         * support/regression/tests/bug-1029883: a new regression test for
8258         this bug
8259
8260 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8261
8262         * src/hc08/gen.c (emitinline): fixed bug #1029778
8263         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
8264         to a cast object is no longer a syntax error ("fixes" bug #1030006,
8265         and starts toward RFE #905167)
8266
8267 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
8268
8269         * src/pic16/gen.c (mov2f): New function to move an operand to
8270         another without considering if it is a literal or a register,
8271         * (pic16_sameRegs): don't check if they are both AOP_REG,
8272         * (AccRsh): removed andmask=0 lines,
8273         * (genLeftShift): duplicated to be improved in future versions,
8274         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
8275         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
8276         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
8277         * (pic16initMnemonics): added initialization for POC_INFSNZW,
8278         * (insertBankSwitch): fixed inserting banksel directives algorithm
8279         for instructions that follow a skip instruction, this fixes a report
8280         for broken subtraction code generation,
8281         * src/pic16/ralloc.c (deassignLRs): do not free register if current
8282         iCode is a left op, just in case result and right share the same
8283         registers
8284
8285 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8286
8287         * src/hc08/main.c,
8288         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
8289         preservation of HX
8290         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
8291         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
8292         on 2004-09-12; it was buggy
8293
8294 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
8295
8296         * src/SDCCsymt.h: removed RESULT_CHECK
8297         * src/SDCCast.c,
8298         * src/SDCCglue.c,
8299         * src/SDCCval.c,
8300         * src/pic/glue.c,
8301         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
8302
8303 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
8304
8305         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
8306         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
8307         configuration values no more rejected by compiler, they are assigned
8308         to configuration registers with a warning message instead,
8309         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
8310         the for-loop so last conf register is emitted too,
8311         * (_pic16_initPaths): link library libsdcc.lib by default,
8312         * (_hasNativeMulFor): modified test for multiplication according to
8313         Raphael Neider's remarks. Integer multiplication is also done with
8314         support functions,
8315         * device/include/pic16/pic18fregs.h: corrected type error in while
8316         testing and including 18f6720 header file
8317
8318 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
8319
8320         * src/pic16/device.h (pic16_options): removed field use_crt,
8321         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
8322         until an optimization to handle single bits is added,
8323         * (pic16_loadFSR0): moved before genUnpackBits,
8324         * (genAnd): some white lines removed,
8325         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
8326         leave_reset flags in pic16_options when using crt modules,
8327
8328 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
8329
8330         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
8331           for bugs 898889 & 979599. Also used some safer print instructions.
8332
8333 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
8334
8335         * src/pic16/device.h (pic16_options_t): added field use_crt,
8336         crt_name, no_crt,
8337         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
8338         catch a probable future bug,
8339         * src/pic16/gen.c: aopIdx function commented out,
8340         * (genAssign): commented out old code which used aopIdx,
8341         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
8342         code, added if conditionals to take into account the --use-crt
8343         command line options,
8344         * src/pic16/main.c (pic16_optionsTable): added new command line
8345         options, --use-crt= and --no-crt,
8346         * (_pic16_linkEdit): now the proper crt object is added in the
8347         linker command line except than when --no-crt is specified,
8348         * src/pic16/pcode.c,
8349         * src/pic16/pcode.h: added some structures and functions for a new
8350         optimization scheme to compansate for instruction overhead between
8351         same iCodes, this scheme is currently under development and is not
8352         working in any way,
8353         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
8354         to && operator,
8355         * device/lib/pic16/startup/crt0i.c,
8356         * device/lib/pic16/startup/crt0iz.c: added global char variable
8357         __uflags to force the generation of an idata section
8358
8359 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
8360
8361         * doc/Makefile,
8362         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
8363         * doc/sdccman.lyx: updated sdcc version to 2.4.4
8364
8365 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8366
8367         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
8368         Frieder) and clarified the default code optimization mode
8369
8370 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8371
8372         * src/SDCC.lex (doPragma, process_pragma),
8373         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
8374         "opt_code_size", and "opt_code_balanced"
8375         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
8376         regrouped options by category, added support for category headers
8377         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
8378         and "--opt-code-size"
8379         * doc/sdccman.lyx: documented these new options and pragmas
8380         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
8381         preference into account
8382
8383 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8384
8385         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
8386           geniCodePreDec): Fixed bug 904237 by generating a warning
8387         * src/SDCCerr.h,
8388         * src/SDCCerr.c: added warning W_SIZEOF_VOID
8389
8390 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
8391
8392         * src/pic/device.c : When no max ram set validate full memory range.
8393         * src/pic/pcode.c,
8394         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
8395
8396 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8397
8398         * device/lib/_gptrget.c,
8399         * device/lib/_gptrput.c: updated comment
8400         * device/lib/calloc.c,
8401         * device/lib/free.c,
8402         * device/lib/malloc.c,
8403         * device/lib/realloc.c: added LGPL, made them reentrant-safe
8404         * src/SDCCcse.c (cseBBlock),
8405         * src/SDCCicode.c (printOperand, geniCodeArray),
8406         * src/SDCCicode.h (struct operand): fixed bug 868103
8407         * support/regression/tests/bug-868103.c: added
8408         * src/SDCCast.c (searchLitOp),
8409         * src/SDCCcse.h (struct cseDef),
8410         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
8411         * src/SDCCicode.h (struct operand),
8412         * src/SDCCsymt.h (struct sym_link),
8413         * src/avr/gen.c (hasInc),
8414         * src/ds390/gen.c (hasInc),
8415         * src/hc08/gen.c (genPlusIncr, hasInc),
8416         * src/mcs51/gen.c (hasInc),
8417         * src/pic16/glue.c (pic16_printIvalChar),
8418         * src/pic16/ralloc.c (regWithIdx),
8419         * src/xa51/gen.c (hasInc) : removed warnings
8420         * src/SDCCast.c (createBlock): added comment ???
8421         * src/hc08/ralloc.c: updated comments
8422
8423 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8424
8425         * doc/sdccman.lyx: updated section on switch statements, added
8426         section about semaphore locking
8427         * doc/Makefile: added option -info for latex2html
8428         * device/lib/_gptrget.c,
8429         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
8430
8431 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8432
8433         * src/pic/device.h,
8434         * src/pic/device.c,
8435         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
8436          maxram is less than 0x100.
8437
8438 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8439
8440         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
8441
8442 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8443
8444         * src/port.h,
8445         * src/mcs51/main.c,
8446         * src/ds390/main.c,
8447         * src/z80/main.c,
8448         * src/hc08/main.c,
8449         * src/pic/main.c,
8450         * src/pic16/main.c,
8451         * src/avr/main.c,
8452         * src/xa51/main.c
8453         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
8454         a jump table is the best form for a switch statement, including
8455         automatic insertion of missing cases to make the case range
8456         continuous. Developed in collaboration with Frieder Ferlemann.
8457
8458 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8459
8460         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
8461         accumulator result if it needs sign extension
8462
8463 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8464
8465         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
8466
8467 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8468
8469         * device/lib/gbz80/printf.c,
8470         * device/lib/z80/printf.c: removed define for NULL
8471
8472 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8473
8474         * as/xa51/xa_link.c,
8475         * device/examples/ds390/ow390/ad26.c,
8476         * device/examples/ds390/ow390/cnt1d.c,
8477         * device/examples/ds390/ow390/counter.c,
8478         * device/examples/ds390/ow390/ds2480.h,
8479         * device/examples/ds390/ow390/ds2480ut.c,
8480         * device/examples/ds390/ow390/findtype.c,
8481         * device/examples/ds390/ow390/gethumd.c,
8482         * device/examples/ds390/ow390/owllu.c,
8483         * device/examples/ds390/ow390/ownetu.c,
8484         * device/examples/ds390/ow390/swt12.c,
8485         * device/examples/ds390/ow390/swtloop.c,
8486         * device/examples/ds390/ow390/temp.c,
8487         * device/examples/ds390/ow390/temp10.c,
8488         * device/examples/ds390/ow390/thermo21.c,
8489         * device/examples/ds390/ow390/tinilnk.c,
8490         * device/examples/ds390/ow390/tstfind.c,
8491         * device/examples/serialcomm/windows/serial.cpp,
8492         * device/examples/serialcomm/windows/test_serialcomm.cpp,
8493         * device/include/reg51.h: fixed line endings for cvs
8494
8495 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8496
8497         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
8498         packRegsForAccUse, packRegisters): new accumulator register
8499         packing algorithm
8500         * support/regression/ports/hc08/support.c (_putchar): suppress
8501         warning of unused variable
8502         * src/SDCCicode.c: added SWAP entry to codeTable
8503
8504 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
8505
8506         * device/lib/sprintf.c: forgot to add this file before previous commit
8507
8508 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
8509
8510         * src/pic16/gen.c (genPackBits): added operand right in function
8511         parameters, load result directly if p_type is POINTER (that is
8512         called by genNearPointerSet)
8513         * (genUnPackBits): added operand left in function parameters,
8514         * (genNearPointerGet, genNearPointerSet): prevent the loading of
8515         FSR0 if accessing bitfields,
8516
8517 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
8518
8519         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
8520           _print_format; updated printf, sprintf, vsprintf
8521         * device/include/asm/default/features.h: corrected comment/define
8522         * device/lib/Makefile.in: added sprintf.c
8523         * device/lib/libsdcc.lib: added sprintf module
8524         * device/lib/printf_large.c,
8525         * device/lib/vprintf.c,
8526         * device/lib/sprintf.c: totally refactored printf_large and vprintf
8527           into these 3 files
8528         * support/regression/Makefile: changed ALL_PORTS into a usefull default
8529         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
8530         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
8531           hc08 test
8532         * support/regression/tests/zeropad.c: define idata as data for hc08
8533
8534 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8535
8536         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8537         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8538         labels are referenced at least once (even if a reference is not found)
8539         * src/hc08/gen.c (emitcode): set isComment flag for comments
8540         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8541         loads), rules 6a..6b (optimize jumps to return)
8542
8543 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8544
8545         * device/lib/acosf.c (acosf),
8546         * device/lib/asinf.c (asinf),
8547         * device/lib/atanf.c (atanf),
8548         * device/lib/ceilf.c (ceilf),
8549         * device/lib/cosf.c (cosf),
8550         * device/lib/coshf.c (coshf),
8551         * device/lib/cotf.c (cotf),
8552         * device/lib/fabsf.c (fabsf),
8553         * device/lib/floorf.c (floorf),
8554         * device/lib/log10f.c (log10f),
8555         * device/lib/logf.c (logf),
8556         * device/lib/sinf.c (sinf),
8557         * device/lib/sinhf.c (sinhf),
8558         * device/lib/sqrtf.c (sqrtf),
8559         * device/lib/tanf.c (tanf),
8560         * device/lib/tanhf.c (tanhf),
8561         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8562         replaced all instances of "reentrant" in the library functions
8563         defined in math.h with this macro.
8564         * support/regression/tests/float_trans.c: reenabled test for hc08
8565
8566 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8567
8568         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8569         erroneously deleted
8570
8571 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8572
8573         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8574         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8575         multi-byte volatile operands are used
8576         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8577         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8578         initialization to area GSINIT0 so that it would always precede
8579         any static initializers in GSINIT
8580         * support/regression/tests/zeropad.c: fixed idata define for hc08
8581         * support/regression/tests/bug-927659.c,
8582         * support/regression/tests/float_trans.c: disabled tests for hc08
8583         pending missing library routines
8584         * .version: increased version number to 2.4.4 - hc08 port now passes
8585         regression tests
8586
8587
8588 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8589
8590         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8591         * Makefile.common.in,
8592         * as/Makefile,
8593         * as/hc08/Makefile.in,
8594         * as/mcs51/Makefile.in,
8595         * as/z80/Makefile.in,
8596         * debugger/mcs51/Makefile.in,
8597         * device/include/Makefile.in,
8598         * device/lib/Makefile.in,
8599         * doc/Makefile,
8600         * link/Makefile,
8601         * link/z80/Makefile.in,
8602         * packihx/Makefile.in,
8603         * sim/ucsim/main_in.mk,
8604         * sim/ucsim/avr.src/Makefile.in,
8605         * sim/ucsim/doc/Makefile.in,
8606         * sim/ucsim/gui.src/serio.src/Makefile.in,
8607         * sim/ucsim/hc08.src/Makefile.in,
8608         * sim/ucsim/s51.src/Makefile.in,
8609         * sim/ucsim/xa.src/Makefile.in,
8610         * sim/ucsim/z80.src/Makefile.in,
8611         * src/Makefile.in,
8612         * support/cpp2/Makefile.in,
8613         * support/librarian/Makefile,
8614         * support/makebin/Makefile: added DESTDIR to the install path proposed
8615         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8616         * doc/sdccman.lyx: added DESTDIR documentation
8617
8618 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8619
8620         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8621         instruction for interrupt handlers, use fast returns when returning
8622         from high priority interrupts
8623
8624 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8625
8626         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8627         code generation
8628         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8629         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8630         bugs, ported much of Bernhard's code from mcs51
8631         * src/mcs51/gen.c (genSend),
8632         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8633         than one when calling a reentrant function
8634         * device/lib/_mullong.c: defined an alternate struct layout for big
8635         endian ports (hc08)
8636
8637 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8638
8639         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8640         test
8641
8642 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8643
8644         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8645         are sane and complete before asking the port its prefered parameter
8646         passing method (fixes bug #1017633)
8647         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8648         and _ret3
8649
8650 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8651
8652         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8653         problem in bitfields >= 8 bits.
8654
8655 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8656
8657         * src/SDCCsymt.c: undid changes that were not meant to be committed
8658
8659 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8660
8661         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8662
8663 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8664
8665         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8666           copied and wrong bit got inverted
8667
8668 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8669
8670         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8671         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8672         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8673         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8674         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8675         assignments to bitfields at known addresses
8676         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8677         reads from bitfields at known addresses
8678         * src/hc08/ralloc.c (packRegisters),
8679         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8680         genhc08Code): optimize pointer get values used as conditionals
8681         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8682         and branch
8683
8684 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8685
8686         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8687         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8688         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8689         as conditionals
8690
8691 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8692
8693         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8694
8695 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8696
8697         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8698         related problems
8699
8700 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8701
8702         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8703
8704 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8705
8706         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8707         mcs51 port
8708
8709 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8710
8711         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8712
8713 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8714
8715         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8716         cases use more compact code.
8717
8718 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8719
8720         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8721
8722 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8723
8724         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8725
8726 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8727
8728         * src/SDCCsymt.h,
8729         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8730         parameter of changePointer() from symbol* to sym_link*
8731         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8732         * src/SDCCsymt.c (compareType): void* type is castable to other
8733         pointers, but not necesarily an exact match.
8734         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8735         is no longer blindly treated as an exact match.
8736         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8737
8738 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8739
8740         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8741
8742 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8743
8744         * src/pic/gen.c,
8745         * src/pic/pcode.c,
8746         * src/pic/ralloc.h,
8747         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8748
8749 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8750
8751         * src/pic/device.c,
8752         * src/pic/device.h,
8753         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8754
8755 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8756
8757         * src/mcs51/gen.c (emitcode): fixed bug #992819
8758
8759 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8760
8761         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8762           there's no need to make it worse
8763
8764 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8765
8766         * src/mcs51/ralloc.c (deassignLR),
8767         * src/ds390/ralloc.c (deassignLR),
8768         * src/hc08/ralloc.c (deassignLR),
8769         * src/z80/ralloc.c (deassignLR),
8770         * src/pic/ralloc.c (deassignLR),
8771         * src/pic16/ralloc.c (deassignLR),
8772         * src/avr/ralloc.c (deassignLR),
8773         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8774         rlivePoint): fixed another part of bug #971834
8775
8776 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8777
8778         * src/z80/main.c: enabled "critical" keyword
8779         * src/z80/mappings.i,
8780         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8781         functions (fixes bug #979646)
8782         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8783
8784 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8785
8786         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8787           such as c:\mydir.
8788
8789 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8790
8791         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8792           doesn't disable too much optimizations
8793
8794 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8795
8796         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8797
8798 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8799
8800         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8801
8802 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8803
8804         * src/pic/gen.c tidied up tabs
8805         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8806         * src/pic/main.c tidied up tabs
8807         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8808         * src/pic/pcoderegs.c tidied up tabs
8809         * src/pic/ralloc.c tidied up tabs
8810
8811 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8812
8813         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8814         to S_FIXED for pic16 port and when symbol is not in level 0,
8815         allocate for S_REGISTER storage class and pic16 port, too,
8816         * src/pic16/device.h: prototype for checkSym,
8817         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8818         * (pic16_assignConfigWordValue): test the value and the mask to
8819         validate that the value is suitable for the configuration word,
8820         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8821         collect extern declared symbols, don't emit symbol twice, check
8822         first if symbol is in publics set first,
8823         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8824         * added command line '--fstack' which enables an experimental
8825         feature for stack access, too buggy to be used yet...
8826         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8827         * (pic16_allocDirReg): when register has storage class S_REGISTER
8828         allocate in pic16_dynAccessRegs,
8829         * device/include/pic16/pic18f????.h: modified configuration word
8830         naming convention, words started as CONFIG0H but should be CONFIG1H
8831
8832 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8833
8834         * device/include/mcs51reg.h: fixed bug 970993
8835
8836 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8837
8838         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8839         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8840         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8841         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8842         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8843         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8844           error/warning numbers,
8845           added function setWarningDisabled()
8846         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8847         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8848           _memcmp.c _memmove.c calloc.c realloc.c free.c
8849         * support/regression/tests/malloc.c: added tests for new functionality
8850         * support/regression/tests/zeropad.c: added tests for truncated initializers
8851           and initialized char arrays starting with '\x0'
8852         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8853
8854 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8855
8856         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8857
8858 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8859
8860         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8861         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8862         peephole 177.e. Thanks to anonymous
8863
8864 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8865
8866         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8867         function isn't used in the source but referenced as a
8868         variable initializer then declare it as extern in .asm file
8869
8870 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8871
8872         * .version: increased version number to 2.4.3
8873
8874         Adding version extension according to ChangeLog CVS revision
8875         * src/Makefile.in (target all): added dependency 'version.h'
8876         * (rule version.h): added rule to create version.h from ChangeLog,
8877         * (rule dep): added dependency version.h,
8878         * src/version.awk: AWK script to create version.h
8879         * src/SDCCdwarf2.c (dwWriteModule),
8880         * src/SDCCglue.c (initialComments),
8881         * src/SDCCmain.c (printVersionInfo): modified to write after
8882         version string the version extension number,
8883         * src/SDCCutil.c: included "version.h"
8884         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8885         number,
8886         * src/SDCCutil.h: added prototype for getBuildNumber
8887
8888         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8889         includeDirsSet, too,
8890         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8891         const char [] is found in function prototype...
8892
8893         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8894         moving to WREG with source is already in WREG,
8895         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8896         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8897         * (aopForSym): stack'ed symbols are partially supported, added
8898         if-clause to support symbols in FARSPACE,
8899         * (sameRegs): added test for AOP_ACC to see if registers are same,
8900         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8901         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8902         * (pic16_popRegFromString): will not allocate a new register if it
8903         doesn't find one by name, bug may have introduced...
8904         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8905         * (genIpush): revived to use pic16 port's stack,
8906         * (genAddrOf): added incomplete case for stack'ed operand,
8907         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8908         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8909         can handle multibyte operands,
8910         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8911         * (pic16initialComments): added message for MPLAB compatibility
8912         mode enabled,
8913         * src/pic16/main.h: prototype for pic16_mplab_comp,
8914         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8915         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8916         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8917         because of increased complexity of procedure,
8918         * (_process_pragma): stack pragma changed to format 'stack pos len',
8919         emit symbol '_stack_end' to conform with gplink,
8920         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8921         to search for register,
8922         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8923         PO_GPR_REGISTER,
8924         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8925         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8926         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8927         case for PO_GPR_REGISTER,
8928         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8929         dies, the new era is ahead !...
8930         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8931         pic16_dynInternalRegs,
8932         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8933         * (pic16_allocDirReg): minor optimizations and bug fixes,
8934         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8935
8936         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8937         load stack and frame pointer with address of 'stack_end' symbol
8938
8939 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8940
8941         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8942         without source code but only variable initializers
8943
8944 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8945
8946         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8947         external are not declared as extern to reduce overhead while linking
8948
8949 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8950
8951         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8952
8953 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8954
8955         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8956           Yee Keat for the patch
8957         * src/SDCCast.c (decorateType): fixed bug #979599
8958         * src/ds390/gen.h: removed local fReturnSizeDS390
8959         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8960         * src/ds390/gen.c (genAnd, genOr, genXor),
8961         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8962
8963 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8964
8965         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8966         add relFilesSet to $3, manipulate $2 to handle linking of object
8967         files without source files in command line,
8968         * device/include/pic16 (all headers): added ID location macros,
8969         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8970         entries for ID location bytes,
8971         * (pic16_assignIdByteValue): NEW,
8972         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8973         added field dumpcalltree to pic16_options_t,
8974         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8975         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8976         emitting rFalseIfx label after check_carry label,
8977         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8978         pic16_emitDIRegs), NEW
8979         * (pic16glue): dump .calltree file when option --calltree found,
8980         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8981         * (_pic16_genAssemblerPreamble): emit ID locations after
8982         configuration registers,
8983         * (pic16_linkCmd): modifications of the link command,
8984         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8985         * (pic16_pCodeInitRegisters): don't init stack registers,
8986         * (pic16_findPrevInstruction): fixed bug,
8987         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8988         bug with immediate registers,
8989         * (buildCallTree): traces stack push and pop,
8990         * (pct2): dump also stack usage for each function,
8991         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8992         * (pic16_allocDirReg): various modifications,
8993         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8994         fixed to 1,
8995
8996 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8997
8998         * src/pic16/pcode.c: removed buggy double colon
8999
9000 2004-07-01 Borut Razem <borut.razem AT siol.net>
9001
9002         * support/scripts/sdcc.nsi: added include/pic16 to setup
9003
9004 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
9005
9006         * device/lib/Makefile.in: fixed bug in target objects-pic16,
9007         * device/lib/pic16/Makefile: prefixed with dash (-) command under
9008         target 'clean',
9009         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
9010         specific command line arguments. Also added sample lkr script
9011         for placing a variable at a specific memory bank.
9012         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
9013         at a specific memory bank,
9014         * (pic16_dump_isection): fixed bug which caused string literals to
9015         be omitted when dumping idata section,
9016         * (pic16_groupRegistersInSection): added code to handle registers
9017         in specific memory banks,
9018         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
9019         public, all references are renamed too,
9020         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
9021         AOP_DPTR2,
9022         * (pic16_storeForReturn): added case to handle when dest is WREG,
9023         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
9024         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
9025         pic16_rel_udata, check to see if that register is marked as being
9026         a member of a specific memory bank,
9027         * (pic16_printIvalCharPtr): added code to add string literals either
9028         to code or the idata sections,
9029         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
9030         also accept the 'udata' pragma,
9031         * src/pic16/main.h: new structure types sectName and sectSym
9032         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
9033         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
9034         * (pic16_findPrevInstruction): fixed, it returned nothing,
9035         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
9036         instruction combinations,
9037         * (pic16_FixRegisterBanking): heavily reorganised,
9038         * (pic16_AnalyzeBanking): if generating banksel directives is
9039         disabled, then don't call FixRegisterBanking at all,
9040         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
9041         completely removed,
9042         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
9043
9044 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
9045
9046         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
9047         Phuah Yee Keat <yk.phuah AT nestac.com>
9048
9049 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
9050
9051         * src/pic16/glue.c (pic16createInterruptVect): function now emits
9052         correctly the IVT even if it is relocated to some other location
9053
9054 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
9055
9056         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
9057         * device/include/pic16/pic18f2220.h: NEW,
9058         * device/lib/pic16/libdev/pic18f2220.c: NEW,
9059         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
9060         * src/pic16/device.c (struct Pics16): added info for 18f2220,
9061         * src/pic16/device.h (struct pic16_options): added ivt_loc and
9062         nodefaultlibs, ivt_loc is the location of the interrupt vector
9063         table, and nodefaultlibs signs that default libraries should not be
9064         linked in link stage,
9065         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
9066         according to --ivt-loc argument,
9067         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
9068         when pragma stack is found,
9069
9070 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9071
9072         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
9073         256 (range check), 257 (do while), 258.a-f (bit banging
9074         f.e. on 3-wire SPI bus)
9075
9076 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9077
9078         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
9079         variables used exclusively within a loop
9080
9081 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
9082
9083         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
9084
9085 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9086
9087         * src/SDCClrange.c (computeClash): fixed bug #971834
9088
9089 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9090
9091         * src/mcs51/gen.c (genCmp): fixed bug #975903
9092         * src/hc08/gen.c (operandsEqu),
9093         * src/ds390/gen.c (operandsEqu),
9094         * src/z80/gen.c (operandsEqu),
9095         * src/pic/gen.c (operandsEqu),
9096         * src/pic16/gen.c (operandsEqu),
9097         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
9098         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
9099
9100 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9101
9102         * src/SDCCcse.c (cseBBlock): fixed bug #966963
9103
9104 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
9105
9106         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
9107         default case in switch statement,
9108         * glue.c (pic16_initPointer): expr is initialised via decoarteType
9109         to eliminate problem with initialisation of pointers, but problem
9110         still exists,
9111         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
9112         * (emitStaticSegment): removed various lines emitting debug info,
9113         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
9114         added processor registers for utilizing EEPROM,
9115         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
9116         configurable and set 8
9117
9118 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
9119
9120         * .version: increased version number to 2.4.2,
9121
9122         Cumulative patch for pic16 port
9123         * src/pic16/device.c: changed scheme to dump initial values for
9124         variables in idata segment, all print_idata* functions were removed,
9125         now the pic16_printIval* will be called,
9126         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
9127         * _pic16_printPointerType, pic16_printPointerType,
9128         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
9129         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
9130         NEW, similar to the respective functions in SDCCglue.c,
9131         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
9132         way, emitting hex bytes,
9133         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
9134
9135 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9136
9137         * src/avr/ralloc.c (serialRegAssign),
9138         * src/xa51/ralloc.c (serialRegAssign),
9139         * src/pic/ralloc.c (serialRegAssign),
9140         * src/pic16/ralloc.c (serialRegAssign),
9141         * src/hc08/ralloc.c (serialRegAssign),
9142         * src/z80/ralloc.c (serialRegAssign),
9143         * src/ds390/ralloc.c (serialRegAssign),
9144         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
9145
9146 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9147
9148         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
9149         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
9150
9151 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
9152
9153         Cumulative patch for pic16 port:
9154         * src/pic16/device.h (typedef PIC16_device) modified fields for
9155         defining microcontrollers,
9156         * src/pic16/device.c: added new info for all devices in Pics16 array,
9157         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
9158         to be optimised out by the pCode optimiser,
9159         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
9160         specially, bug reported by G.M. Gallant,
9161         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
9162         as force'd so that cannot be optimised out by pCode optimiser,
9163         * src/pic16/pcode.c,
9164         * src/pic16/pcodepeeph.c,
9165         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
9166         they are disabled by default, but can be enabled explicit with
9167         command argument --denable-peeps, for testing,
9168         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
9169         --pomit-ivt in COMPILE_FLAGS
9170
9171 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9172
9173         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
9174           compilation on MSVC
9175
9176 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9177
9178         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
9179
9180 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9181
9182         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
9183         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
9184
9185 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
9186
9187         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
9188         would only assign 0x300001 register.
9189
9190 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
9191
9192         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
9193         in COMPILE_FLAGS. Thanks to G. Gallant for report.
9194
9195 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9196
9197         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
9198         for ds80c400
9199         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
9200         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
9201         added peephole 254 (left shift), 255 (jump table)
9202
9203 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
9204
9205         * device/lib/Makefile.in: removed comment line with model-pic16,
9206         * (target port-specific-objects-pic16): the libraries and objects
9207         are copied to the build directory form the device/lib/pic16/bin
9208         directory
9209
9210         Cumulative patch concerning pic16 port:
9211         * library directory has been re-organized,
9212         * added support for PIC18F1220,
9213         * added headers and library sources for chips 18f1220,18f6520,
9214         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
9215
9216         * configuration registers setting has changed, now each supported
9217         device has a complete description of the registers it uses,
9218         * all initialisations are moved to idata sections, these section
9219         can be absolute or relocatable,
9220         * fixed initialisation of codespace variables,
9221         * fixed warning about PCLATU and gpsim,
9222         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
9223         * (genAssign): use table reads when assigning from variables in codespace,
9224         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
9225         char/int variables placed in codespace,
9226         * (pic16_emitConfigRegs): NEW, emits a list with configuration
9227         registers set in .asm file, no need for --pomit-config-words anymore,
9228         * (pic16glue): some 8051 legacy segments are commented out
9229         (to be removed completely),
9230         * added support for alternative assembler and linker with --asm=
9231         and --link= command line arguments,
9232         * peepholes are disabled automatically in the port, no need to
9233         specify on command line,
9234         * port supports natively char/int/long multiplication, but converts
9235         all divisions to support functions,
9236         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
9237         to the file set in variable $2,
9238         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
9239         strings in ASCII format and not in hex,
9240         * ralloc.c (serialRegAssign): added a triplet of conditional calls
9241         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
9242         allocate proper register if iCodes aren't temporary,
9243
9244 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
9245
9246         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
9247
9248 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
9249
9250         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
9251         is commented out
9252
9253 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9254
9255         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
9256         computed address is reused
9257         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
9258         multi-byte bitfields
9259
9260 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9261
9262         * src/z80/gen.c: (genArrayInit): must check for pointers too
9263
9264 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9265
9266         * support/regression/tests/zeropad.c: never meant to commit the
9267           nestedstruct test: removed, added check for GCC version
9268
9269 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
9270
9271         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
9272         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
9273         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
9274           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
9275           bugs 928906 and 954082 half-empty initializers
9276         * src/SDCCsymt.h,
9277         * src/SDCCsymt.c (getAllocSize): added for above fix
9278         * src/z80/gen.c (genArrayInit): fixed bug 741044
9279         * support/regression/tests/zeropad.c: added tests
9280
9281 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
9282
9283         * src/pic16/device.c (pic16_dump_section): corrected bug which
9284         caused some symbols of the libraries to be misplaced
9285
9286 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9287
9288         * src/pic16/glue.c,
9289         * src/pic16/ralloc.h,
9290         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
9291         to fix conflict with pic port
9292
9293 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9294
9295         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
9296         externs configuration variables,
9297         * src/pic16/ralloc.h,
9298         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
9299         prototype in header, commented out some debug messages
9300
9301 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
9302
9303         * src/pic16/glue.c,
9304         * src/pic16/main.c,
9305         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
9306         for gpasm COFF object generation. Thanks to D. Hawkins for
9307         his patch info
9308
9309 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9310
9311         * src/ds390/main.c,
9312         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
9313         Brock for spotting this)
9314         * src/ds390/gen.c (genEndFunction),
9315         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
9316         interrupt handler and critical. Disable push/pop optimizations when
9317         peephole optimizations disabled.
9318
9319 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9320
9321         Updated pic16 library sources and headers.
9322         * device/lib/pic16/pic18f*/ ,
9323         * device/include/pic16/*.h: modified to handle structured SFR
9324         definitions
9325
9326 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9327
9328         * src/port.h (PORT structure): added hook initPaths, now each
9329         port can declare its own default search paths,
9330         which can been seen with the --print-search-dirs option,
9331         see pic16 port for example,
9332         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
9333         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
9334         * (doPrintSearchDirs): NEW, replaces in a central manner the
9335         printing of search dirs which was split in set*Paths functions,
9336         * (main): added call to port->initPaths and doPrintSearchDirs,
9337         * src/avr/main.c,
9338         * src/ds390/main.c,
9339         * src/hc08/main.c,
9340         * src/izt/i186.c,
9341         * src/izt/tlcs900h.c,
9342         * src/mcs51/main.c,
9343         * src/pic/main.c,
9344         * src/pic16/main.c: modified port structures to reflect addition of
9345         initPaths hook,
9346
9347         * src/pic16/device.c (regCompare): registers are finally sorted by name,
9348         * (pic16_dump_section): for registers in same address reserve memory once,
9349         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
9350         to no_banksel,
9351         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
9352         result is greater in size than right or left,
9353         * (pic16_genUMult8X8_8): there are some cases where the result can
9354         be 16 bits size, so handle these,
9355         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
9356         * (pic16_outBitC): modified to emit pcodes,
9357         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
9358         or not,
9359         * (genDivOneByte): implemented algorithm to divide 8-bits,
9360         * (genCmp): uncommented goto, but issues still exist,
9361         * (genAnd): fixed a bug with variables >8bits,
9362         * (genPackBits): optimization added that uses BCF/BSF to change a
9363         single bit,
9364         * (genAssign): fixed bug when assigning floating point literals,
9365         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
9366         __sdcc_gsinit_startup label,
9367         * src/pic16/main.c (_pic16_init): removed search directory
9368         initialisations,
9369         * (_pic16_initPaths): NEW, used to initialise search directories,
9370         * (_hasNativeMulFor): support functions for all except char/int
9371         multiplication, and char division,
9372         * (PIC16_port struct): modified entry for native mul support,
9373         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
9374         no_banksel option,
9375         * (buildCallTree): call to register_usage is ifdef'ed out,
9376
9377 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9378
9379         * device/include/string.h: applied Stas Sergeev's patch to make this
9380         header file compatible with the preprocessor -Wundef option
9381         * src/SDCCmain.c (main): abort compilation if preprocessor reports
9382         failure (fixes bug #941458)
9383
9384 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9385
9386         * src/SDCCopt.c (killDeadCode): fixed bug #907733
9387         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
9388         that the variable, not the function, should be static
9389         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
9390         to be consistent with non-literal case
9391
9392 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9393
9394         * src/SDCCast.c (isConformingBody): fixed bug #949967
9395         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
9396         convilong): fixed bug #952086
9397
9398 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9399
9400         * src/SDCCmem.c (allocVariables): fixed bug #955321
9401
9402 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9403
9404         * src/hc08/main.c (_hc08_genAssemblerEnd),
9405         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
9406         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
9407         completely eliminated the use of a temporary file
9408         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
9409         when more than one file linked
9410         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
9411
9412 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9413
9414         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
9415         which fixes bug #543481
9416         * support/regression/tests/bug-751703.c: fixed comments left from a
9417         cut and paste error
9418         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
9419         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
9420         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
9421         scopes
9422         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
9423         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
9424         are now changed to underscores in moduleName
9425
9426 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9427
9428         * as/mcs51/lkmem.c: better fix for bug #954173
9429
9430 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
9431         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9432
9433         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
9434         * device/include/c8051f000.h,
9435         * device/include/c8051f120.h,
9436         * device/include/c8051f300.h,
9437         * device/include/c8051f310.h,
9438         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
9439         PWM16) and detab'ed
9440
9441 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9442
9443         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
9444         and mailing lists, doc'ed --no-peep-comments, removed reference
9445         to knoppix (newest version has no LyX/LaTeX), other minor changes
9446         * src/SDCCglue.c (glue): save 2 bytes stack space with
9447         option --main-return. The ljmp could probably be avoided too
9448
9449 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9450
9451         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
9452
9453 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9454
9455         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
9456         * src/SDCCopt.c (isLocalWithoutDef),
9457         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
9458         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
9459         (credit to Maarten Brock for patch #949363, on which this is based)
9460         * support/regression/tests/bug-751703.c: some test cases of extern used
9461         within inner scopes.
9462
9463 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9464
9465         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
9466         SPEC_STRUCT
9467         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
9468         struct definitions
9469         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
9470         dwWriteLabel): fix to create valid debugger symbols even when
9471         the module name has non-alphanumeric symbols in it
9472         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
9473         when a variable's allocation has been optimized away
9474
9475
9476 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9477
9478         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
9479         * src/hc08/main.c,
9480         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
9481         * src/mcs51/main.c,
9482         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
9483         * src/ds390/main.c,
9484         * src/z80/gen.c (z80_emitDebuggerSymbol),
9485         * src/z80/main.c,
9486         * src/pic/gen.c (pic14_emitDebuggerSymbol),
9487         * src/pic/main.c,
9488         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
9489         * src/pic16/main.c,
9490         * src/avr/gen.c (avr_emitDebuggerSymbol),
9491         * src/avr/main.c,
9492         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
9493         * src/xa51/main.c,
9494         * src/SDCCdebug.c (emitDebuggerSymbol),
9495         * src/SDCCdebug.h,
9496         * src/port.h: added a debugger struct to the port struct. Added a
9497         callback for defining debugger symbols
9498
9499         * src/SDCCast.c (createLabel),
9500         * src/SDCC.y (labeled_statement): mark all compiler generated labels
9501         with isitmp = 1
9502         * src/SDCCicode.h,
9503         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
9504         iCode back to the ast for the function
9505
9506         * src/hc08/ralloc.c (hc08_assignRegisters),
9507         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
9508         unneeded fields from the regs struct.
9509         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
9510         pushReg() & pullReg() functions instead of emitcode()
9511
9512         * src/hc08/gen.c (genLabel, genhc08Code),
9513         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
9514
9515         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
9516         debugger hooks
9517
9518         * src/hc08/gen.c (genEndFunction, genhc08Code),
9519         * src/hc08/gen.h,
9520         * src/mcs51/gen.c (genEndFunction, gen51Code),
9521         * src/mcs51/gen.h,
9522         * src/ds390/gen.c (genEndFunction, gen390Code),
9523         * src/ds390/gen.h,
9524         * src/z80/gen.c (genEndFunction, genZ80Code),
9525         * src/z80/gen.h,
9526         * src/z80/z80.h,
9527         * src/pic/gen.c (genEndFunction, genpic14Code),
9528         * src/pic/gen.h,
9529         * src/pic16/gen.c (genEndFunction, genpic16Code),
9530         * src/pic16/gen.h,
9531         * src/avr/gen.c (genEndFunction, genAVRCode),
9532         * src/avr/gen.h,
9533         * src/xa51/gen.c (genEndFunction, genXA51Code),
9534         * src/xa51/gen.h,
9535         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9536         specific code to cdbFile.c and out of the backend code generators
9537
9538         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9539         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9540         starting address is now 0
9541
9542         * as/hc08/asm.h,
9543         * as/hc08/m08pst.c,
9544         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9545         assembler directive for DWARF support
9546         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9547
9548         * src/src.dsp,
9549         * src/Makefile.in,
9550         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9551
9552 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9553
9554         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9555         and inappropriate peephole optimization in jump tables
9556
9557 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9558
9559         * as/hc08/m08pst.c,
9560         * src/SDCCglue.c: sdccopt works for the hc08 port now
9561
9562 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9563
9564         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9565
9566 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9567
9568         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9569
9570 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9571
9572         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9573         rules
9574         * src/SDCCmain.c,
9575         * src/SDCCglobl.h,
9576         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9577         comments from the peephole optimizer replacement rules
9578         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9579         symbols
9580         * src/SDCCcse.c (updateSpillLocation),
9581         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9582         equivalents
9583         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9584         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9585         objects far pointers
9586
9587 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9588
9589         * src/SDCCsymt.h: a missing part of my last change
9590         * src/pic/ralloc.c (regTypeNum),
9591         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9592
9593 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9594
9595         * src/SDCCicode.h,
9596         * src/SDCCicode.c (aggrToPtrDclType),
9597         * src/SDCCptropt.h,
9598         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9599         ptrPseudoSymConvert),
9600         * src/pic/ralloc.c (regTypeNum),
9601         * src/pic16/ralloc.c (regTypeNum),
9602         * src/hc08/ralloc.c (regTypeNum),
9603         * src/ds390/ralloc.c (regTypeNum),
9604         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9605         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9606
9607 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9608
9609         * link/z80/lkmain.c (afile),
9610         * as/hc08/lkmain.c (afile),
9611         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9612         prevent a pointer problem when a filename has no directory and
9613         no extension specified.
9614
9615 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9616
9617         * link/z80/lkmain.c (afile): allow periods in directory names
9618         * link/z80/lkmain.c (afile),
9619         * as/mcs51/lkmain.c (afile),
9620         * as/hc08/lkmain.c (afile): allow linker script file to have an
9621         extension other than ".lnk"
9622         * link/z80/lklex.c (getfid),
9623         * link/z80/lkmain.c (parse),
9624         * as/mcs51/lklex.c (getfid),
9625         * as/mcs51/lkmain.c (parse),
9626         * as/hc08/lklex.c (getfid),
9627         * as/hc08/lkmain.c (parse): Support comments in the linker script
9628         file on lines by themselves and after filenames
9629
9630 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9631
9632         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9633
9634 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9635
9636         * src/z80/peeph-z80.def: removed some peephole rules that don't
9637         work with multibyte arithmetic (fixed bug #937126)
9638         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9639         to registers and not global variables
9640         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9641         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9642         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9643         checking for assignments not internally generated (fixed bug #931895)
9644         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9645         structure member (fixed bug #930072)
9646
9647 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9648
9649         * src/SDCCmain.c (linkEdit),
9650         * src/hc08/main.c (_hc08_parseOptions),
9651         * as/hc08/Makefile.in,
9652         * as/hc08/aslink.h,
9653         * as/hc08/asm.h,
9654         * as/hc08/m08pst.c,
9655         * as/hc08/lkrloc.c (relr, rele),
9656         * as/hc08/lkarea.c (lnkarea)
9657         * as/hc08/lkmain.c (afile, parse),
9658         * as/hc08/lkelf.c: support for ELF output
9659         * as/hc08/lks19.c (s19),
9660         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9661
9662 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9663
9664         * as/mcs51/lkihx.c: Fixed bug #899105.
9665
9666 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9667
9668         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9669         .dsp files from Unix to DOS.
9670
9671 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9672
9673         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9674         function pointers; we have been compliant for several months now.
9675         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9676         change that was accidently commented out
9677         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9678         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9679         bug #922319
9680
9681 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9682
9683         * src/hc08/gen.c: output of all of the internal debugging information
9684         is now controlled by the D() macro; it is disabled by default
9685
9686 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9687
9688         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9689         harder to keep the same registers during a CAST iCode
9690         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9691         long via int can be done in a single cast, if the signedness is
9692         correct.
9693         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9694         putchar() in tinibios.c in ds390's library
9695
9696 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9697
9698         * src/SDCCast.c (decorateType): fixed bug #898889,
9699         cast result of a literal complement too
9700         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9701         fixed check for bitfields
9702
9703 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9704
9705         * src/SDCCicode.c (geniCodeLogic): made it static,
9706         (geniCodeLogicAndOr): added in order to fix bug #905492,
9707         (ast2iCode): fixed bug #905492
9708         * support/regression/tests/bug-905492.c: added
9709         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9710         (processParms): fixed bug #927659: don't copy parms, this will clear
9711         decorated flag
9712         * support/regression/tests/bug-927659.c: added
9713
9714 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9715
9716         * src/SDCCast.c (addCast): don't cast float to char
9717         * device/lib/libsdcc.lib: added _memmove
9718
9719 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9720
9721         * device/lib/large/Makefile: fixed parallel execution by
9722         replacing `make` by `$(MAKE)`
9723
9724 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9725
9726         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9727         offsets (fixes bug #923936)
9728
9729 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9730
9731         * device/lib/small/Makefile: fixed parallel execution by
9732         replacing `make` by `$(MAKE)`
9733
9734 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9735
9736         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9737
9738 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9739
9740         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9741         * src/regression/Makefile: Regression test was not running.
9742
9743 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9744
9745         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9746         complement if possible
9747         * src/SDCCval.c (valComplement),
9748         * src/SDCCicode.c (operandOperation): fixed complement of literal
9749         * support/regression/tests/onebyte.c (testComplement): added
9750
9751 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9752
9753         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9754         return an optimized tree; actually replace actParm with the new tree
9755         * src/SDCCast.h: added some parantheses to remove side effects
9756         * support/regression/tests/bug-920866.c
9757
9758 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9759         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9760         Bit operands were not being handled properly in the pic14 port.
9761         (now src/regression/add.c passes again).
9762
9763 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9764
9765         * src/SDCC.y (labeled_statement): case and default no longer require
9766         a following statement (RFE #893037)
9767
9768 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9769
9770         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9771         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9772         disabled (fixes bug #916294)
9773         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9774         "mov a,acc"; patch provided by Lenny Story
9775         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9776
9777 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9778
9779         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9780         functions
9781         * src/ds390/gen.c (genFunction, genEndFunction),
9782         * src/ds390/ralloc.c (ds390_assignRegisters),
9783         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9784         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9785         pushed if there are parameters passed on the stack. Also, a cleaner
9786         way to decide if r0/r1 should be pushed/popped. (Together they fix
9787         bug #918693)
9788
9789 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9790
9791         * doc/sdccman.lyx,
9792         * device/lib/mcs51/crtpagesfr.asm,
9793         * device/lib/mcs51/crtxinit.asm,
9794         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9795         to avoid confusion with Si Lab's SFRPAGE register.
9796
9797 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9798
9799         * src/SDCCglue.c (emitMaps): allow public sfr variables
9800         * src/SDCCglue.c (initialComments): include compiler build date
9801         with compiler version and put the timestamp of the generated
9802         assembly file on a serperate line to be less confusing.
9803         * src/port.h: added genInitStartup hook
9804         * src/avr/main.c,
9805         * src/ds390/main.c,
9806         * src/hc08/main.c,
9807         * src/pic/main.c,
9808         * src/pic16/main.c,
9809         * src/xa51/main.c,
9810         * src/z80/main.c: genInitStartup initialize as NULL (default to
9811         historical behaviour)
9812         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9813         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9814         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9815         library instead of hard coding it into the compiler.
9816         * support/regression/ports/mcs51-stack-auto/spec.mk,
9817         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9818         * device/lib/mcs51/Makefile,
9819         * device/lib/small/Makefile,
9820         * device/lib/large/Makefile,
9821         * device/lib/mcs51/crtpagesfr.asm,
9822         * device/lib/mcs51/crtstart.asm,
9823         * device/lib/mcs51/crtxclear.asm,
9824         * device/lib/mcs51/crtxinit.asm,
9825         * device/lib/mcs51/crtclear.asm,
9826         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9827         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9828         and into user configurable files.
9829         * device/lib/clean.mk: clean mcs51 directory too
9830         * support/regression/tests/longlit.c: added static to T1 declaration
9831         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9832         accesses in the initialization code
9833
9834 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9835
9836         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9837         OSCTRIMVAL as noted in bug #916008
9838
9839 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9840
9841         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9842         in loops with multiple exits (reported as incorrect registers
9843         used by Martin Helmling in Sdcc-user list)
9844
9845 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9846
9847         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9848         made ds390 register extensions look less like error messages
9849
9850 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9851
9852         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9853         reported by Adam Wozniak in Sdcc-user list
9854
9855 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9856
9857         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9858         arithmetic optimizations, added debug output
9859
9860 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9861
9862         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9863         * sdcc.spec: updated and split sdcc into 3 rpms
9864         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9865         needed for literals of LEFT_OP and '+'
9866         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9867         introduced RESULT_TYPE_NOPROM
9868         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9869         left shift
9870         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9871         limited promotion to int only for '*'
9872         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9873
9874 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9875
9876         * src/pic16/gen.c (genSkip),
9877         (genc16bit2lit), (gencjneshort): commented out
9878         (is_LitOp): new helper function, checks operand type
9879         (genCmpEq): rewritten
9880
9881 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9882
9883         * support/regression/tests/bug-908454.c: added
9884
9885 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9886
9887         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9888         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9889         (geniCodeCast): cosmetic, don't preserve bit storage class
9890         (geniCodeLeftShift): added promotion
9891         (geniCodeLogic): fixed regression
9892         * src/SDCCsymt.c (computeTypeOr): accept bits too
9893         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9894
9895 2004-03-07  Borut Razem <borut.razem AT siol.net>
9896
9897         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9898
9899 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9900
9901         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9902         version of pic16_genPackRegisters which does not check if ic is a
9903         CAST operator,
9904         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9905         function cause string1.c regression test fails
9906
9907 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9908
9909         * sim/ucsim/configure.in,
9910         * sim/ucsim/configure,
9911         * sim/ucsim/doc/Makefile.in: use docdir
9912         * src/SDCC.y: fixed sbit atrributes
9913         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9914         * src/SDCCast.c (decorateType): |^& need special promotion handling
9915         * src/SDCCast.h,
9916         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9917         * src/SDCCsymt.h (computeType),
9918         * src/SDCCicode.c: computeType() needs op
9919         * src/SDCCsymt.c (checkTypeSanity),
9920         * doc/sddman.lyx: "plain" bitfields are unsigned
9921         * src/SDCCsymt.c (computeTypeOr): added
9922         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9923         |^& ops
9924         * src/SDCCval.c (val*): computeType() needs op
9925         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9926         * support/regression/tests/onebyte.c: added tests for |^&
9927
9928 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9929
9930         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9931         for writing icode into asm output.
9932
9933 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9934
9935         * src/pic16/device.c: added some debug lines enabled
9936         with macro DEBUG_CHECK,
9937         * src/pic16/genarith.c: more debug in genPlus,
9938         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9939         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9940         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9941         * (aopForSym): onStack symbols are re-placed in data memspace,
9942         and onStack flag is cleared,
9943         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9944         copy temporary pcodeop,
9945         * (genPcall): added warning for not updating PCLATU,
9946         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9947         always true for pic16 port,
9948         * (genMultOneWord): NEW, supports integer multiplication,
9949         * (genMult): modified to call genMultOneWord,
9950         * (ifxForOp): added warning when return NULL,
9951         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9952         flag is set before call to operandFromSymbol for implicit
9953         added structures,
9954         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9955         options.intlong_rent are set by default,
9956         * (_hasNativeMulFor): modified to allow port generation of integer
9957         multiplication,
9958         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9959         set regtype to REG_SFR for all registers, restricting seting the
9960         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9961
9962 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9963
9964         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9965         more than 500 times in the regression tests
9966
9967 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9968
9969         * support/Util/SDCCerr.h,
9970         * support/Util/SDCCerr.c,
9971         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9972         enumerator_list),
9973         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9974         for symbol conflicts.
9975         * support/valdiags/tests/enum.c,
9976         * support/valdiags/tests/tentdecl.c,
9977         * support/valdiags/tests/struct.c: expect possible error messages
9978         referring to original symbol definitions.
9979         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9980         * src/SDCCsymt.h,
9981         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9982
9983 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9984
9985         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9986
9987 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9988
9989         * src/pic16/ralloc.c (newReg): fixed bug #908929
9990
9991 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9992
9993         * src/ds390/gen.c: added missing #include "main.h"
9994
9995 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9996
9997         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9998         checking if symbol is already in set,
9999         * src/pic16/device.h: prototype for checkAddSym,
10000         * src/pic16/gen.c: (_G): added entry interruptvector,
10001         * (assignResultValue): removed some commented out lines,
10002         * (genFunction): check for ISR via sym->type, absolute section for
10003         interrupt code is created via a new pBlock, the goto instruction is
10004         placed now correctly at the interrupt vector position, changed all
10005         references from ivec to _G.interruptvector,
10006         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
10007         is the interrupt is a high priority one, same for return from ISR,
10008         * src/pic16/glue.c: changed all calls of addSetHead for publics and
10009         externs to calls of checkAddSym,
10010         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
10011         pic16_pcode_verbose flag is set,
10012         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
10013         * src/pic16/pcoderegs.c: message about how many registers are saved
10014         will only be emitted if pic16_pcode_verbose flag is set,
10015
10016 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10017
10018         * src/ds390/ralloc.h,
10019         * src/ds390/ralloc.c (ds390_regWithIdx),
10020         * src/ds390/gen.c (emitcode),
10021         * src/ds390/main.h,
10022         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
10023         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10024         ds390operandCompare, getRegsRead, getRegsWritten,
10025         initializeAsmLineNode): customized instruction size calculation for
10026         ds390, started basis for some register optimizations
10027         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
10028         corresponding assembly output
10029         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
10030         missing push/pop of r0/r1. Optimized push/pops
10031
10032 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10033
10034         * src/mcs51/main.c (instructionSize): fixed ACALL size
10035         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
10036
10037 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
10038
10039         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
10040         the sorting of rlist with NULL elements
10041         * (print_idataType, print_idata): NEW to create idata sections
10042         * src/pic16/device.h: idataSymSet new variable
10043         * src/pic16/gen.c (genFunction): fixed some bugs in string
10044         comparing, improved the absolute section creation for ISRs,
10045         added FSR0L/FSR0H in registers that are saved in an ISR,
10046         * (genInline): fixed the processing of inline snippets,
10047         now they undergo no process by the peephole optimizer
10048         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
10049         are placed in idataSymSet,
10050         * (pic16emitStaticSeg): extern symbols are added in externs,
10051         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
10052         switching when aboslute variables are placed in access bank memory
10053         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
10054         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
10055         commented out with #if,
10056         * (pic16_packRegisters): reintroduce the check for CAST because some
10057         symbols are not correctly handled,
10058         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
10059         pCodeInstruction instead of pCode,
10060         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
10061         pCodeAsmDir definition,
10062         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
10063         directive, then the argument directive is emitted without the leading
10064         tab, hack for inline labels which must be in the first column,
10065         * (compareLabel,pic16_findNextInstruction),
10066         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
10067         * (insertBankSwitch): modified for the new pCodeAsmDir,
10068
10069 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10070         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
10071
10072         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
10073         instance,
10074         * (pushSide): commented out with #if,
10075         * (assignResultValue): fixed some typos in saving
10076         registers,
10077         * (genPcall): FIXED and sync'ed with genCall,
10078         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
10079         * (genNearPointerGet): fixed to handle some more cases,
10080         implementation scheme via table reads,
10081         * (genConstPointerGet): modified to access code memory correct,
10082         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
10083         and improved to handle some cases
10084         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
10085         instead of "RETLW" for init data
10086         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
10087         not IN_DIRSPACE, work around to reduce bank switching when aboslute
10088         variables are placed in access bank memory (<0x80 and >=0xf80),
10089         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
10090         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
10091         TBLWT_POSTDEC,TBLWT_PREINC
10092         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
10093         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
10094         directives
10095         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
10096         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
10097         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
10098         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
10099
10100 2004-02-29  Borut Razem <borut.razem AT siol.net>
10101
10102         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
10103         support/Util/findme.h, support/Util/system.h: enhance binary relative
10104         search for lib and include by using findProgramPath()
10105
10106 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10107
10108         * src/SDCCpeeph.h,
10109         * src/SDCCpeeph.c (pcDistance),
10110         * src/port.h,
10111         * src/mcs51/ralloc.h,
10112         * src/mcs51/ralloc.c (mcs51_regWithIdx),
10113         * src/mcs51/main.h,
10114         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
10115         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10116         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
10117         size calculation port specific, started basis for some register
10118         optimizations
10119         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
10120         missing push/pop of r0/r1. Optimized push/pops
10121         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
10122         * device/lib/_modsint.c (_modsint),
10123         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
10124         and stack version so regression tests pass
10125
10126 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
10127
10128         * src/Makefile.in (dep): include SLIBOBJS in dependency check
10129         * src/SDCCast.c (decorateType): catch another small optimization
10130         with '?' operator
10131         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
10132         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
10133         modified to finally use computeType() all over SDCC,
10134         see Feature Request #877103
10135         * src/SDCCval.h: cosmetic
10136         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
10137         valCompare(); regression tested in muldiv.c
10138         * support/regression/tests/muldiv.c (testMod): mod sign follows
10139         dividend only
10140
10141 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
10142
10143         * src/SDCCast.c (decorateType): fixed bug #902362
10144         * doc/INSTALL.txt: fixed install instructions for win32
10145
10146 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
10147
10148         * device/include/Makefile.in (install): fixed by replacing spaces
10149         by tabs
10150         * doc/README.txt,
10151         * doc/INSTALL.txt: updated for release
10152         * doc/sdccman.lyx: added warning for --xstack being buggy
10153
10154 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
10155
10156         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
10157         to eliminate build warnings.
10158         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
10159
10160 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
10161            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10162
10163         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
10164         removed -penable-stack, added comment for stack pragma, added
10165         warning for not initializing the stack/frame registers, removed
10166         comment at interrupts section
10167
10168         Stack is made permanent, there is no ability to disable stack usage.
10169         * src/pic16/device.h,
10170         * src/pic16/device.c: removed all references to USE_STACK macro,
10171         * src/pic16/device.c (pic16_dump_section): when no elements in
10172         rlist, free rlist before return,
10173         * (pic16_dump_int_registers): NEW, internal registers are a new set
10174         of general purpose registers reused by each function,
10175         * (checkAddReg): returns 1 if registers is added to set,
10176         * (pic16_groupRegistersInSection): when a registers is of type
10177         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
10178         * src/pic16/device.h: memRange and Assigned Memory are deleted,
10179         SRCASECMP macro is moved here from device.c
10180         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
10181         PO_PCLATU, PO_PRODL, PO_PRODH,
10182         * (pic16_pCodeOpType, genMinus,
10183         changed compares to "a" register, with AOP_ACC,
10184         * (pic16_genPlus): fixed some bugs and indented properly,
10185         * (pic16_addSign): changed size to size+offset in the MOVWF
10186         instruction,
10187         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
10188         multiply 8-bit operand by literal, result is 8-bit,
10189         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
10190         multiply 2 8-bit operand, result is 8-bit,
10191         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
10192         genUMult8X*_16,
10193         * src/pic16/gen.c: changed accUse to contain WREG only,
10194         * (pic16_emitcomment): renamed to pic16_emitpcomment,
10195         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
10196         true, do not use immediate addressing any more unless sym is a
10197         pointer in codespace,
10198         * (aopForRemat): do not use immediate addressing when symbol not in
10199         codespace and when symbol's address is requested,
10200         * (aopOp): for-loop in if(sym->accUse) is modified for the new
10201         accUse size (= 1),
10202         * (aopGet): added case for AOP_ACC and don't return "accumulator
10203         bug" but WREG instead,
10204         * (popGetTempReg): pushes contents of temporary register in stack,
10205         * (popReleaseTempReg): pops contents of temporary register from
10206         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
10207         * (pic16_popGet): separated case AOP_ACC to return register WREG
10208         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
10209         or PO_IMMEDIATE and initializes their instance/offset appropriately,
10210         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
10211         the use of immediate pointers to certain cases only.
10212
10213         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
10214         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
10215         * (assignResultValue, genCall, genRet): modified to use the new
10216         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
10217         genPcall is still broken,
10218         * (genFunction): added code to create 'A' type pBlocks when
10219         interrupt functions are generated, code not extensively tested yet,
10220         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
10221         * (genEndFunction): modified so ISRs pop stored registers from stack,
10222         * (genMultOneByte): cleanup,
10223         * (AccRsh): added flag andmask, to and result with appropriate mask,
10224         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
10225         * (genDataPointerGet): fixed and reenabled its use,
10226         * (genNearDataPointerGet): bugs fixed,
10227         * (genDataPointerSet): bugs fixed,
10228         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
10229         pic16_DumpSymbol, pic16_DumpOp,
10230         * src/pic16/genutils.h: function prototypes for the above functions,
10231         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
10232         pointers,
10233         * (pic16emitRegularMap): many many many improvements, but needs a
10234         major cleanup,
10235         * src/pic16/main.c: enable_stack in pic16_options is removed,
10236         * (_pic16_parseOptions): removed command line options -penable-stack,
10237         * (_process_pragma): emit stack symbol only when stack pragma is
10238         processed,
10239         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
10240         redirected to FSR0L/FSR0H pair,
10241         * (pic16_get_op, pic16_get_op2): modifications and improvements,
10242         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10243         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
10244         for immediates,
10245         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
10246         * (dumpPicOptype): NEW,
10247         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
10248         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
10249         with movff instruction,
10250         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
10251         added pic16_int_regs, some packRegsFor* functions are commented out,
10252         because produce errors,
10253         * src/pic16/NOTES: minor modifications
10254
10255 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10256
10257         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
10258         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
10259         --pack-iram.
10260         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
10261         * as/mcs51/lkaomf51.c: fixed bug #895763
10262
10263 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
10264
10265         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
10266
10267 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10268
10269         * doc/sdccman.lyx: added details about the HC08 storage classes and
10270         interrupts, fixed the register usage info for z80 & gbz80
10271
10272 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
10273
10274         * doc/sdccman.lyx: added more pic16 port documentation
10275         * device/include/pic16/: added header pic18fregs.h
10276
10277 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
10278
10279         * doc/sdccman.lyx: added Vangelis' contribution
10280
10281 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10282
10283         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
10284         extend to the next CALL or PCALL, not just to the next CALL.
10285
10286 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
10287
10288         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
10289
10290 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10291
10292         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
10293         bug #895752 and a better fix for bug #716790
10294
10295 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10296
10297         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
10298
10299 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10300
10301         * doc/sdccman.lyx: minor changes, minor changed
10302
10303 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
10304
10305         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
10306         which can't handle SDCC_NEWONEBYTEOPS,
10307         (geniCodeMultiply): removed conversion from mult to shift for pic14
10308         and pic16
10309
10310 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10311
10312         * src/hc08/gen.h,
10313         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
10314         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
10315         thus fixing bug #895406
10316
10317 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
10318
10319         * device/lib/_modsint.c,
10320         * device/lib/_modslong.c: sign follows divisor only
10321         * src/hc08/gen.c (genMultOneByte): if result size is 1,
10322         signs or signedness can be ignored
10323         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
10324         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
10325         added optimization for IFX,
10326         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
10327         arguments;
10328         reenabled optimization for IFX, which was removed on 2004-01-11
10329         * src/SDCCast.h: added return type IFX
10330         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
10331         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
10332         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
10333         SDCC_OLDONEBYTEOPS selects the old behaviour
10334         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
10335         changed again and commented promotion rule
10336         * src/SDCCval.c (valDiv): promotion no longer necessary
10337         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
10338         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
10339         rewritten
10340         * support/regression/tests/onebyte.c: added
10341
10342 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
10343
10344         * gen.c (genInline): reverted to old code for assemnling inline
10345         code because of bug reported James Chadd
10346
10347 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
10348
10349         * ralloc.h: missing declarations from previous patch,
10350         seems that patch for ralloc.h was never applied, fixed
10351
10352 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10353            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10354
10355         * pcode.c,
10356         * pcode.h,
10357         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
10358         indirect addressing. Marked FSR0 as deprecated
10359         * gen.c (pointerCode): commented out, not needed now
10360         (pic16_popGet2p): new MOVFF helper function
10361         (genGenPointerGet),
10362         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
10363         (shiftRLong): removed duplicate debugging info
10364
10365 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10366
10367         * src/ds390/gen.c (genNearPointerGet),
10368         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
10369         optimization with bits, but not bitfields.
10370         * src/ds390/ralloc.c (packRegisters),
10371         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
10372
10373 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
10374
10375         * src/SDCCcse.c (algebraicOpts): copy operands before modification
10376
10377 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10378
10379         * src/SDCCsymt.h,
10380         * src/SDCCicode.c (operandFromSymbol),
10381         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
10382         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
10383         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
10384         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
10385         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
10386         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
10387         bug #892038
10388         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
10389         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
10390         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
10391         * src/SDCCsymt.c (newSymbol),
10392         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10393         enumerator_list),
10394         * src/SDCCval.h,
10395         * src/SDCCval.c (newiList): fixed bug #885705
10396
10397 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10398
10399         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
10400         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
10401
10402 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10403
10404         * device/include/c8051f120.h,
10405         * device/include/c8051f300.h,
10406         * device/include/c8051f310.h: added/updated header files for Silicon
10407         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10408         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
10409         in new section Submitting patches
10410
10411 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10412
10413         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
10414         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10415         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10416         genGenPointerSet),
10417         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
10418         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10419         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10420         genGenPointerSet),
10421         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
10422         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10423         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10424         genGenPointerSet),
10425         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
10426         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10427         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10428         genGenPointerSet): fixed bug #892400
10429         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
10430         to eliminate build warnings.
10431         * src/SDCCast.c (processParms),
10432         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
10433         fixed bug 751859
10434         * support/valdiag/valdiag.py: added GCC to the list of defines active
10435         when compiling with gcc
10436
10437 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10438
10439         * support/Util/SDCCerr.h,
10440         * support/Util/SDCCerr.c,
10441         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
10442         with an incomplete type (fixed bug #883734)
10443         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
10444
10445 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10446
10447         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
10448
10449 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10450
10451         * src/SDCCast.c (decorateType),
10452         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
10453         function pointer implementation
10454         * support/regression/tests/funptrs.c: added tests to verify both forms
10455         of function pointers work correctly. Added tests to verify parameters
10456         are passed in the correct order.
10457
10458 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
10459
10460         * device.c (regCompare): registers are sorted by ascending
10461         address and increasing size,
10462         * main.c (_pic16_finaliseOptions): removed the declaration
10463         of compiler macro MCU. Now a macro of the format pic18fxxxx
10464         will be defined from the command line
10465
10466 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10467             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10468
10469         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
10470         PCOP_RLCF was overwritten!
10471         * gen.c (genSkip): commented out calls to pic16_emitcode,
10472         * (genCmpEQ): fixed "long" compares, only high word did get compared,
10473         * (genlshTwo),
10474         * (genRRC): added debugging info,
10475         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
10476         overwritten while shifting,
10477         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
10478         overwritten while shifting,
10479         * (AccLsh),
10480         * (AccRsh),
10481         * (shiftLLeftOrResult),
10482         * (shiftRLeftOrResult),
10483         * (shiftRLong),
10484         * (shiftLLong): Implemented with pic16_emitpcode
10485         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
10486         * (genLeftShift): Fixed bug, operand for shift by variable always
10487         was "and"ed with 0x0f,
10488         * (genLeftShiftLiteral),
10489         * (genrshTwo),
10490         * (genRightShiftLiteral): added debugging info,
10491         * (genrshFour): added comment,
10492         * (genRightShift): determined signedness from operand "left"
10493         instead of "result"
10494
10495 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10496
10497         * src/SDCCicode.c (geniCodeParms),
10498         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
10499         function pointers, fixed function pointer bugs #861242 and #861896
10500
10501 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10502
10503         * device/include/c8051f000.h,
10504         * device/include/c8051f120.h,
10505         * device/include/c8051f300.h: added header files for Silicon
10506         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10507
10508 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
10509
10510         * src/SDCCast.c (processParams): added new type flow and restructured
10511         (gatherAutoInit): added new type flow
10512         (addCast): cosmetic changes
10513         (getLeftResultType): added new type flow for array indices, patch
10514         provided by Stas, see FR #877103
10515         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
10516         array index patch by Stas
10517         * src/SDCCast.h: added prototype getResultTypeFromType()
10518         * src/SDCCval.h,
10519         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
10520         * src/pic/glue.c (pic14emitStaticSeg),
10521         * src/pic16/glue.c (pic16emitStaticSeg),
10522         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
10523         for initialization of symbols
10524         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
10525         * support/Util/SDCCerr.h:
10526         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
10527         * .version: bumped version number to 2.3.8
10528         * device/include/Makefile.in (install),
10529         * doc/Makefile (install): changed to 'rm `find ...`' construct to
10530         avoid warnings
10531
10532 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
10533
10534         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10535         Slade Rich fixed an optimization bug
10536         * src/pic/pcodepeep.c,
10537         * src/pic/pcoderegs.c
10538         * doc/Makefile (install): added test for directory
10539
10540 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10541
10542         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10543         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10544         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10545         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10546         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10547         * as/mcs51/asexpr.c (term),
10548         * as/hc08/asexpr.c (term): fixed bug #887146
10549
10550 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10551
10552         * src/z80/gen.c (genMult): handle single byte result product
10553         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10554         DUMMY_READ_VOLATILE (fixed bug #886367)
10555
10556 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10557
10558         * support/regression/tests/libmullong.c: fixed logic, on little endian
10559         hosts we ended without a mullong_wrapper()
10560
10561 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10562
10563         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10564         virus/worm forged address usage.
10565
10566 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10567
10568         Fixed promotion, it should be done on AST level:
10569         * src/SDCCast.c (addCast): added promotion to int
10570         (decorateType): updated call to upCast()
10571         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10572         usualUnaryConversions()
10573
10574 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10575
10576         * support/regression/tests/literalop.c (mulWrapper): Added a
10577         wrapper to remove integer overflow warnings.
10578
10579         * support/regression/tests/float_trans.c: Made work on host.
10580
10581         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10582         location of sz80.
10583
10584         * support/regression/generate-cases.py (main): Changed from inline
10585         to a main method.
10586
10587         * doc/Makefile (install): Changed to depth first to get rid of
10588         missing directory install warning.
10589
10590         * as/Makefile (install-doc): Made work on Mac.
10591
10592 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10593
10594         * src/SDCCast.c: added an additional type flow in decorateType() of
10595         opposite direction, see feature request #860006; it's enabled at runtime
10596         by setting the environment variable SDCC_NEWTYPEFLOW
10597         * src/SDCCast.h: changed prototype of decorateType()
10598         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10599         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10600         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10601         see feature request #877103
10602         * src/SDCCval.c: updated call of decorateType()
10603         (valBitwise): fixed bug #882876
10604         (valMinus): added promotion
10605         (valLogicAndOr): result is unsigned
10606         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10607         * src/SDCCsymt.c (computeType),
10608         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10609         must not cause an unsigned operation
10610         * src/pic/glue (pic14emitRegularMap),
10611         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10612
10613 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10614
10615         * src/pic/pcode.c (PCodeID): commented out left over debug code
10616
10617 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10618
10619         * support/valdiag/tests/overflow.c: added shift tests
10620         * src/pic/device.c,
10621         * src/pic/gen.c,
10622         * src/pic/gen.h,
10623         * src/pic/glue.c,
10624         * src/pic/main.c,
10625         * src/pic/pcode.c,
10626         * src/pic/pcode.h,
10627         * src/pic/pcodepeep.c,
10628         * src/pic/pcoderegs.c,
10629         * src/pic/ralloc.c,
10630         * src/pic/ralloc.h: applied patch from Slade Rich;
10631         added support for multiple code pages and multiple RAM banks on the
10632         PIC 14 port. The ASM files now no longer simply assume all the
10633         code / RAM are in the same page / bank. This means the linker can
10634         safely allocate code/RAM of separate ASM files to different pages/banks.
10635         * doc/sdccman.lyx: added Slade's tips
10636         * src/mcs51/peeph.def: fixed bug #880768
10637
10638 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10639
10640         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10641         * src/SDCCast.c (decorateType): fixed bug #880197
10642
10643 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10644
10645         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10646         getopt.h.
10647
10648         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10649         strtof is not part of C89 and isn't included with Mac OS X.
10650
10651 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10652
10653         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10654         shiftL2Left2Result): fixed bug #879326
10655         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10656         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10657         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10658         address fetch for clr instruction
10659         * device/lib/hc08/_mulint.c: created optimized assembly version
10660         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10661
10662 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10663
10664         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10665         proposed in FR #877103
10666
10667 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10668
10669         * src/SDCCval.c (cheapestVal): added missing checks
10670         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10671         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10672
10673 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10674
10675         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10676         equal operands
10677
10678 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10679
10680         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10681         loaded with the linker search paths (-L arguments) and the libraries
10682         to be linked with the current source (-l arguments). Changes
10683         currently will affect only the pic16 port.
10684         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10685         include path the port specific paths and port specific libraries,
10686         * gplink command now contains the $3 argument,
10687         * src/pic16/device.h,
10688         * src/pic16/device.c,: structure PIC_device is made public and
10689         renamed to PIC16_device, the same for variable Pics which is renamed
10690         to Pics16. Updated all references to them.
10691         * src/pic16/glue.c (pic16glue): corrected bug with code
10692         initialization which bypassed the variable initializations block.
10693
10694         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10695         COMPILE_FLAGS and added the --nostdinc option
10696
10697 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10698
10699         * device/include/mc68hc908jb8.h: Register defs for another member
10700         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10701
10702 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10703
10704         Documenting changes from previous commits.
10705         * configure.in (version 1.56),
10706         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10707         when generating output files to configure the pic16 library,
10708         but now I've commented it out, since gputils aren't installed in the
10709         SF compile farm, so library won't compile
10710
10711         * device/lib/Makefile.in (version 1.56): initially I've added in
10712         target 'all' the prerequestive 'model-pic16' so it compiled the
10713         pic16 library, but now I've commented it out for the same reasons
10714         above,
10715         * added targets 'model-pic16' and 'objects-pic16' to compile the
10716         library
10717         * added target 'port-specific-objects-pic16' to handle the
10718         generated libraries and copy them into the build/ directory
10719         * added target 'clean-intermediate-pic16' to clean intermediate
10720         files into pic16 directory
10721         * in target 'installdirs' added line to create directory pic16 in
10722         the installation path
10723
10724         * device/include/Makefile.in (version 1.11): in target 'install'
10725         added lines to copy all header files to installation path,
10726         * in target 'installdirs' added line create directory for pic16
10727         headers in the installation path
10728
10729 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10730
10731         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10732          a function call
10733
10734 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10735
10736         * configure,
10737         * device/lib/configure.in,
10738         * device/lib/configure: fixed for autoconf 2.57
10739
10740 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10741
10742         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10743         option so that it actually works. Made it specific to the z80, since
10744         the gbz80 doesn't have these kinds of I/O ports.
10745
10746 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10747
10748         * device/include/z180.h,
10749         * device/lib/_memcpy.c,
10750         * device/lib/_memmove.c,
10751         * device/lib/_mulint.c,
10752         * device/lib/ser_ir.c,
10753         * device/lib/ser_ir_cts_rts.c,
10754         * device/lib/_strcmp.c,
10755         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10756         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10757         portmode; added deprecation warning for bank= and protmode= forms.
10758         Also, guard against buffer overflow.
10759         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10760
10761 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10762
10763         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10764         changed interrupt vector table generation to only emit declared vectors.
10765         * device/include/Makefile.in: added missing backslash
10766         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10767
10768 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10769
10770         Mainly changes to support compilation of the device libraries
10771         * src/pic16/device.c: stack is allocated via symbol and not
10772         via literal number. The symbol is placed in the corresponding
10773         position of the data ram
10774         * (pic16_dump_section): relocatable and absolute uninitialized
10775         data are now emitted in sorted order to reduce section naming,
10776         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10777         weren't marked as being in the access bank,
10778
10779 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10780
10781         Added portion of GNU PIC Library under the directory
10782         device/include/pic16 and device/lib/pic16. These files
10783         contain the declarations of SFRs for the PIC18Fxx2 devices.
10784         The directory is initialized via configure from toplevel.
10785
10786 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10787
10788         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10789         the spilllocations to be compared correctly
10790
10791 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10792
10793         * src/SDCCast.c (decorateType): fixed bug introduced today
10794
10795 2004-01-12  Borut Razem <borut.razem AT siol.net>
10796
10797         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10798         doc/sdccman.lyx: upper case pragmas are deprecated
10799
10800 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10801
10802         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10803         in simpler and even better code
10804
10805 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10806
10807         * src/SDCCicode.c (operandOperation): fixed bug #874819
10808         * src/SDCCast.c (decorateType): fixed
10809         char foo (unsigned long ul) { return ul > 0; }
10810
10811 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10812
10813         * doc/sdccman.lyx: Moved and added some sections, small changes
10814         all over. Telling LaTeX to be less strict with word spacing
10815         to better keep the right margin. Changed some notes about
10816         maintainance of the ports in section 3.2.1 - is it OK like this?
10817
10818 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10819
10820         SDCC source changes:
10821         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10822         convilong): modified to inform the pic16 port that builtin functions
10823         are external
10824
10825         PIC16 PORT specific changes:
10826         * src/pic16/device.c pic16_dump_equates() added,
10827         processor registers declared internally by the port are emitted in
10828         the translation as equates,
10829         * src/pic16/gen.c: inline code is passed unprocessed to the
10830         translation,
10831         * (pic16_popGetLit2): fnuction modified to take second operand as
10832         pCodeOp pointer and not as literal,
10833         * (popRegFromIdx): prefixed with pic16_,
10834         * (pic16_popCombine2): modified to receive already allocated pCode
10835         operands,
10836         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10837         * (genFunction): initializes local stack frame and pushes on stack
10838         all the registers used by this function,
10839         * (genEndFunction): restores all registers from stack and restores
10840         stack frame,
10841         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10842         improvements,
10843         * (pic16glue): changed the program startup sequence,
10844         * added new dbName code 'A' for functions placed in absolute section
10845         * src/pic16/main.c: added function attribute _naked,
10846         * added pragma 'code' to place a fnuction at an absolute address,
10847         * added command line arguments --debug-ralloc and --pcode-verbose,
10848         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10849         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10850         * (pic16_newpCodeOpLit2): modified to take the second operand as
10851         pCodeOp pointer,
10852         * (pic16_printpBlock): modified to emit each function in a separate
10853         section,
10854         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10855         UPPER for immediate operands,
10856         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10857         instruction,
10858         * src/pic16/peeph.def: all peepholes with movff are commented out,
10859         because there is a problem in the pcode peep optimizer,
10860         * src/pic16/ralloc.c: the register allocator can now reuse local
10861         function symbols for another function. This saves register usage.
10862         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10863
10864         Added file src/pic16/NOTES with information about program writing on
10865         the current port version.
10866
10867 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10868
10869         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10870         and peephole 252 (array access)
10871
10872 2004-01-09  Borut Razem <borut.razem AT siol.net>
10873
10874         * src/SDCCmain.c : fixed #872250: -l command line defined library
10875           files are scanned before standard library files
10876
10877 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10878
10879         * src/SDCCast.c (decorateType): fixed bug #874046
10880
10881 2004-01-09  Borut Razem <borut.razem AT siol.net>
10882
10883         * support/scripts/sdcc.nsi: remove previous installation
10884
10885 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10886
10887         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10888         bytes for last interrupt vector (mcs51)
10889         * sdcc.spec: fixed typo
10890
10891 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10892
10893         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10894         gen51Code): more efficient parameter receive for --model-large
10895         ("bug" #845294)
10896
10897 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10898
10899         * src/ds390/main.c,
10900         * src/z80/main.c: added missed needLinkerScript flags (more than
10901         one port structure defined in these file)
10902         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10903         bug #795325
10904
10905 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10906
10907         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10908         * src/port.h: added flag needLinkerScript in port->linker
10909         structure to inform whether to create a .lnk file or not,
10910         * src/avr/main.c,
10911         * src/ds390/main.c,
10912         * src/hc08/main.c,
10913         * src/mcs51/main.c,
10914         * src/pic/main.c,
10915         * src/pic16/main.c,
10916         * src/xa51/main.c,
10917         * src/z80/main.c: changed appropriately to configure
10918         needLinkerScript flag
10919         * src/pic/gen.c,
10920         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10921         * src/pic/glue.c: added variable udata_section_name to
10922         override default uninitialized data segment definition for
10923         devices only with SHAREBANK memory (reported from Erik Epetrich)
10924         * (pic14emitOverlay): modified to emit a commented overlay segment
10925         directive when no overlay data exist
10926         * (picglue): modified to emit uninitialized data segment
10927         according to udata_section_name
10928         * src/pic/main.c (_pic14_parseOptions): added command line
10929         options --udata-section-name=[name] to override default
10930         udata definition name
10931         * modified _linkCmd and _asmCmd to include compiler passed
10932         arguments via -W option
10933         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10934         object file from '.rel' to '.o' in port->linker structure,
10935         changed size of fptr from 2 to 3 in port structure
10936
10937 2004-01-07  Borut Razem <borut.razem AT siol.net>
10938
10939         * support/scripts/sdcc.nsi: update PATH
10940         * support/scripts/sdcc.ico: craeted
10941
10942 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10943
10944         * device/include/Makefile.in: fix install
10945         * doc/Makefile: fix install
10946
10947 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10948
10949         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10950         in bug #860505
10951         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10952         how the function variable allocation summary is displayed; also
10953         include information about variables allocated to the overlay
10954         segment
10955
10956 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10957
10958         * as/mcs51/lkmain.c: Help about -Y option
10959         * as/mcs51/lkarea.c: Fixed gcc warnings
10960
10961 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10962
10963         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10964         fixed warning
10965         * support/valdiag/tests/overflow.c: added
10966         * src/SDCCast.c (decorateType),
10967         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10968         LEFT_OP (left shift)
10969
10970 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10971
10972         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10973         (default behaviour).
10974
10975 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10976
10977         A python script to validate compiler diagnostic messages. It can be
10978         used to verify that sdcc complains about bad c source code and
10979         gives a good location of the error.
10980         * support/valdiag/Makefile,
10981         * support/valdiag/valdiag.py,
10982         * support/valdiag/tests/*
10983
10984 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10985
10986         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10987         * src/SDCCsymt.c (newEnumType),
10988         * src/SDCCsymt.h
10989         * support/Util/SDCCerr.c,
10990         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10991         enum related bugs.
10992         * support/regression/tests/enum.c: added test for enum values that
10993         require at least 2 bytes of storage.
10994
10995 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10996
10997         * src/common.h: added ifndef/define/endif macros
10998         around the header file.
10999         Bug reported from Jesus Calvino-Fraga
11000
11001 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
11002
11003         * sdcc.spec: updated
11004         * device/include/Makefile.in: don't install CVS directories
11005         * device/lib/Makefile.in: added removal of CVS directories after install
11006         * doc/Makefile: fixed install, added local_icons
11007         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
11008         * src/mcs51/gen.c (genRightShift): fixed bug #870788
11009         * src/ds390/gen.c (genRightShift): fixed bug #870788
11010         * src/SDCCast.c (decorateType): fixed bug #870781
11011
11012 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
11013
11014         PIC16 port related changes:
11015         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
11016         added variable stackPos,
11017
11018         * gen.c: genCall, assignResultValue: added support for
11019         pushing/retrieving function parameters to/from stack,
11020         genFunction,genEndFunction: setup stack frame for the
11021         generated function,
11022         genAddrOf: will be changed according to bug 863624
11023
11024         * added files genutils.c and genutils.h which contain gen*
11025         debugged and optimised functions extracted from gen.c
11026
11027         * glue.c: added variable 'externs' which holds extern symbols,
11028         pic16emitRegularMap: is modified to properly handle relocatable
11029          symbols under the new scheme,
11030         pic16createInterruptVect: is modified
11031         pic16printPublics: is modified to emit 'global' assembler directives,
11032         added pic16_printExterns to print extern symbols,
11033         pic16glue: initializes stack/frame pointer in the beginning of
11034         the assembly output. Temporary hack, will be corrected later,
11035         because gplink yet does not support stack and SDCC does not
11036         yet support a type of crt0.o object to create the final binary.
11037
11038         * Removed many lines that contain 8051 legacy code.
11039         * The code is finally placed under a 'code' directive.
11040         * Added port specific options.
11041
11042         * _process_pragma: simplified since now we do not need *special*
11043         include file to define SFR registers. But a separate header
11044         will be needed. This will be developed later.
11045         * _pic16_parseOptions: added, parses port specific options:
11046         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
11047         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
11048         --preplace-udata-with=
11049
11050         * _pic16_setDefaultOptions: modified to initialize section names,
11051         but hack is temporarly out of order since it needs improvement.
11052         * _pic16_genAssemblerPreamble: configuration words are emitted by
11053         their address instead of their name. This part is incomplete and
11054         supports only the 18Fxx2 devices. Other devices will emit an error
11055         during assembly since they do not contain the same set of config
11056         registers
11057         * _pic16_genIVT: is modified,
11058
11059         * pcode.c: added definitions for some hardware registers that are needed
11060         for stack support
11061         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
11062         All PCI entries are updated. Now LFSR is supported.
11063         * Removed pic16_pciTRIS is mentioned by mdubuc in source
11064         * added pic16_newpCodeOpLit2 to support instructions with
11065         two literal arguments
11066         * pic16_pCode2str: corrected code that emits assembler instructions
11067         with two literal operands and those that have an access bit modifier
11068         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
11069         this fixes a bug which caused some labels to be lost, when an
11070         assembler directive was added, i.e. banksel,
11071         * pic16_FixRegisterBanking: improved logic that causes the insertion
11072         of bank switching,
11073         * InlineFunction: functions that are called once, are not any more
11074         inlined. This can be a port option in the future,
11075
11076         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
11077
11078         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
11079         hold the corresponding uninitialized symbols,
11080         * pic16_allocProcessorRegister: registers have explicit marked the
11081         accessBank field,
11082         * pic16_allocInternalRegister: registers are explicit marked as
11083         not used,
11084         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
11085         processing list, so bit registers were lost,
11086         *
11087
11088         * ralloc.h: added field 'accessBank' and original symbol operand
11089         in register definition,
11090         * removed the field isMapped from register definition,
11091
11092         ** Several functions have been removed from various sources:
11093         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
11094         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
11095         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
11096         pic16_assignRelocatableRegisters
11097
11098         ** others have been introduced:
11099         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
11100         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
11101
11102 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
11103
11104         * support/scripts/inc2h.pl: changed definition of BIT_AT
11105         to emit 'sbit at' instead of 'bit at'. This was a request.
11106
11107         PIC16 port related preliminary changes:
11108         * gen.c: prefixed function popRegFromString with
11109         pic16_ and all references to it corrected
11110         * pcode.c: all pic16_pc_* hardware registers prefixed
11111         with underscore (_),
11112         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
11113         * ralloc.c: newReg(): when register is REG_SFR then
11114         set address to rIdx,
11115         pic16_allocProcessorRegister(): marks register wasUsed=0
11116         pic16_writeUsedRegs(): added a call to assign processor
11117         registers via pic16_assignFixedRegisters
11118
11119 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11120
11121         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
11122         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
11123         variables in unused register banks.  Also the SSEG is placed
11124         wherever there is enough space for it, and IDATA can be anywhere
11125         in internal RAM.  For now compile using -Wl-Y[stack_size].
11126         The mem file is different for this option as well, since it
11127         makes no sense of talking about DSEG lenght.
11128
11129 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
11130
11131         * src/SDCClrange.c: fixed bug 869095 that caused segfault
11132         in certain cases, e.g. when ROM assignment, patch provided
11133         from Albert den Haan.
11134
11135 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
11136
11137         Many signedness and type propagation fixes:
11138         * src/SDCCicode.c: made geniCodeCast() static
11139         replaced SPEC_ by IS_ (cosmetic)
11140         (operandOperation): fixed div and mod operation
11141         (usualBinaryConversions): added support for promotion of char
11142         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
11143         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
11144         (geniCodeAdd): an array index will stay unsigned, even if promoted
11145         from char to int
11146         (geniCodeArray): ditto
11147         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
11148         * src/SDCCsymt.c (computeType): added more support for char;
11149         promotion of char is selectable by promoteCharToInt, fixed signedness
11150         for all cases
11151         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11152         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11153         * src/SDCCval (val*): replaced signedness calculation by
11154         computeType()
11155         rearranged if-branches (cosmetic)
11156         (valShift): added warning W_SHIFT_CHANGED
11157         (valCompare): fixed problem with different types
11158         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
11159         * support/regression/tests/literalop.c: added many cases
11160         * support/regression/tests/ast_constant_folding.c: changed finally to
11161         'unsigned int'
11162         * .version: new year, new version: 2.3.7
11163         * src/SDCCmain.c (main): applied patch #866468
11164         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
11165         provided by Scott Bronson
11166         * doc/sdccman.lyx: updated documentation for sdcdb
11167         updated and added chapter tips
11168
11169 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11170
11171         * src/SDCCsymt.h: missing from yesterday's commits
11172
11173 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11174
11175         * src/SDCC.y (struct_or_union_specifier),
11176         * support/Util/SDCCerr.c,
11177         * support/Util/SDCCerr.h: verify that struct & union tags are used
11178         as declared.
11179
11180 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11181
11182         * src/SDCCglobl.h: missing from yesterday's commits
11183
11184 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11185
11186         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
11187         sft_attributes, struct_declaration, parameter_declaration,
11188         type_name, start_block, declaration_list),
11189         * src/SDCC.lex (check_type): support redefinition of typedef names
11190
11191 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11192
11193         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
11194         aligned xdata arrays. Erik helped me with the if clause.
11195
11196 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11197
11198         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
11199         warning
11200
11201 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11202
11203         * src/SDCCast.h,
11204         * src/SDCCast.c (newAst_),
11205         * src/SDCCicode.h,
11206         * src/SDCCicode.c (ast2iCode, newiCode),
11207         * src/SDCCglobl.h,
11208         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
11209         expr, statement, expression_statement, selection_statement,
11210         iteration_statement, expr_opt, jump_statement): foundation for tracking
11211         sequence points
11212         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
11213         point code too)
11214
11215 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11216
11217         * support/Util/SDCCerr.c,
11218         * src/SDCCast.h,
11219         * src/SDCCast.c (createCase, createDefault, decorateType),
11220         * src/SDCClabel.c (labelUnreach),
11221         * src/SDCC.y (labeled_statement, jump_statement): More improvements
11222         to error messages.
11223         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
11224         (with thanks to Stas Sergeev)
11225         * device/include/time.h,
11226         * device/lib/time.c (CheckTime): suppress unreachable code warning
11227
11228 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11229
11230         * src/SDCCast.c (createIvalCharPtr),
11231         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
11232         bug #753752)
11233         * support/regression/tests/nullstring.c: tests for these two bugs
11234
11235 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11236
11237         * support/Util/SDCCerr.h,
11238         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
11239         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
11240         about storage class and 'at' used inside struct or union
11241         * src/SDCCBBlock.c (iCodeFromeBBlock),
11242         * src/SDCCcse.c (ifxOptimize),
11243         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
11244         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
11245         printIval, emitStaticSeg, emitOverlay),
11246         * src/SDCClabel.c (deleteIfx),
11247         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
11248         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
11249         gatherAutoInit, processParms),
11250         * support/Util/SDCCerr.h,
11251         * support/Util/SDCCerr.c (werrorfl): Support for better error location
11252         reporting for post-parse errors.
11253
11254 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11255
11256         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
11257         implicit casts via union; they don't work on big endian systems
11258         (possible fix for bug #861138)
11259
11260 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11261
11262         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
11263         * src/mcs51/main.c: fixed the fix for bug #737001
11264
11265 2003-12-15  Borut Razem <borut.razem AT siol.net>
11266
11267         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
11268
11269 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11270
11271         * support/makebin/makebin.c: put output in binary mode
11272
11273 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11274
11275         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
11276         xdata and data memory on startup. Set the environment variable
11277         SDCC_NOGENRAMCLEAR to disable this.
11278         * src/mcs51/peephole.def,
11279         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
11280         (allows non-interrupt and interrupt code to safely compete for a resource
11281         without the non-interrupt code having to disable interrupts)
11282
11283 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11284
11285         * src/SDCCicode.c (geniCodeAdd),
11286         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
11287         with valFromType if type might be a pointer and host is big endian).
11288         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
11289         types, not just integer types.
11290         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
11291         multiply defined with mismatching "at" address.
11292
11293 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11294
11295         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
11296         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
11297         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
11298         with embedded nulls (fixed bug #753752)
11299
11300 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11301
11302         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
11303         Apparently this did not see much testing (endless loop)
11304
11305 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11306
11307         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
11308
11309 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11310
11311         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
11312         gracefully handle NULL memmap pointers
11313
11314 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11315
11316         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
11317         instead of deleting the iCode when an operand is volatile
11318         * src/z80/gen.c (genDummyRead),
11319         * src/mcs51/gen.c (genDummyRead),
11320         * src/ds390/gen.c (genDummyRead),
11321         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
11322         not just IC_RIGHT
11323         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
11324         * src/SDCC.y: fixed bug #850420
11325
11326 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11327
11328         Applied z80 i/o port patch from Peter Townson and fixed some operators
11329         to better handle operands in A register.
11330         * device/include/z180.h
11331         * src/SDCC.y
11332         * src/SDCCglue.c
11333         * src/z80/gen.c
11334         * src/z80/gen.h
11335         * src/z80/main.c
11336         * src/z80/peeph-z80.def
11337         * src/z80/peeph.def
11338         * src/z80/z80.h
11339
11340 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11341
11342         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
11343
11344 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11345
11346         * device/lib/hc08/_mullong.c: Removed extra #endif
11347
11348 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11349
11350         * sim/ucsim/hc08.src/inst.cc,
11351         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
11352         carries from x to h
11353         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
11354         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
11355         * device/include/stdarg.h: fixed varargs for hc08
11356         * device/lib/Makefile.in,
11357         * device/lib/hc08/Makefile,
11358         * device/lib/hc08/_mulint.c,
11359         * device/lib/hc08/_mullong.c: fixed some endian problems
11360
11361 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11362
11363         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
11364         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
11365         * device/lib/_gptrget.c,
11366         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
11367
11368 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11369
11370         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
11371         * src/SDCCast.c (astErrors): fixed bug #846007
11372         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
11373
11374 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11375
11376         * src/SDCCast.c (decorateType): disabled a transformation I added in
11377         revision 1.188 (access to fields of a structure at an absolute address);
11378         it breaks with bitfields, extern declarations, and gcse analysis.
11379         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
11380         could be assigned through a pointer, so don't complain.
11381         * src/SDCCast.c (astErrors),
11382         * src/SDCCast.h,
11383         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
11384
11385 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
11386
11387         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
11388         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
11389         output of __config directives, since gpasm now supports them
11390         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
11391         pre-processor macro, i.e. -DMCU=p18f452
11392         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
11393         and modified to handle 'cast' icode similarly to '=' icode
11394         * src/pic16/device.h (typedef struct PIC_device): added field
11395         'extMIface' to indicate that chip has external memory interface
11396         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
11397         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
11398         18F8720
11399
11400 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11401
11402         * src/SDCC.y (pointer): fixed bug #846006
11403         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
11404         * src/SDCCast.c (decorateType): fixed bug #846009
11405         * src/ds390/peeph.def,
11406         * src/ds390/gen.c (genAnd, genOr),
11407         * src/mcs51/peeph.def,
11408         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
11409
11410 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11411
11412         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
11413         * src/SDCCdflow.c
11414         * src/SDCCcse.c
11415         * src/SDCCcse.h
11416         * src/SDCCBBlock.h
11417         * src/SDCCBBlock.c
11418
11419 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
11420
11421         fixed bug #845089
11422         * src/SDCCbitv.h,
11423         * src/SDCCbitv.c: added function to free a bitvector
11424         * src/SDCClrange.h,
11425         * src/SDCClrange.c: added function to recompute the liveranges
11426         * src/avr/ralloc.c,
11427         * src/ds390/ralloc.c,
11428         * src/hc08/ralloc.c,
11429         * src/mcs51/ralloc.c,
11430         * src/pic/ralloc.c,
11431         * src/pic16/ralloc.c,
11432         * src/xa51/ralloc.c,
11433         * src/z80/ralloc.c: recompute the liveranges after register packing
11434
11435 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
11436
11437         * src/SDCCloop.c (newInduction): fixed bug #845630
11438
11439 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11440
11441         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
11442         inadvertantly left behind from my 2003-11-12 change
11443
11444 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11445
11446         Updated headers I neglected to commit yesterday.
11447         * src/SDCClrange.h,
11448         * src/SDCCicode.h
11449
11450 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11451
11452         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
11453         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
11454         * src/SDCCopt.c (eBBlockFromiCode),
11455         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
11456         the creation of the key hash table from the sequencing so it can be used
11457         earlier (for some GCSE bug fixes still pending)
11458
11459 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11460
11461         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
11462         * support/regression/tests/addsub.c: testing genPlus shortcut
11463
11464 2003-11-15  Borut Razem <borut.razem AT siol.net>
11465
11466         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
11467
11468 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11469
11470         * src/SDCCcse.c (cseBBlock): fixed bug #527779
11471         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
11472         ordering is immaterial.
11473         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
11474
11475 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11476
11477         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
11478         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
11479         (SIGSEV) of bug #840381
11480         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
11481         unlink new file before rename if new and old filenames are the same)
11482
11483 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11484
11485         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
11486         uninitialized variables) for the mcs51. Set environment variable
11487         SDCC_GENRAMCLEAR to test.
11488         xdata initialization slightly shorter
11489
11490 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11491
11492         * src/SDCCsymt.h,
11493         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
11494         #838241 & 780691 (basicly the same bug)
11495         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
11496         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
11497
11498 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
11499
11500         * src/SDCCmain.c (linkEdit): "fix" #834252
11501
11502 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11503
11504         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
11505         * src/SDCCast.h,
11506         * src/SDCC.y: fixed bug #819403
11507
11508 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11509
11510         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
11511         the reentrant attribute.
11512         * src/hc08/gen.c (genPackBits): added missing stack readjustment
11513         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
11514         simulation
11515         * src/SDCCast.c (decorateType): fixed bug with storage class not being
11516         updated during pointer dereference; f.e. ~(((char *)1)*) was being
11517         erroneously reduced to a literal.
11518         * src/hc08/ralloc.c (packRegisters, rematStr),
11519         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
11520         some cases
11521
11522 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11523
11524         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
11525         * doc/sdccman.lyx: changed from 'article' to 'book'
11526         * doc/Makefile: readded test_suite_spec and cdbfileformat
11527
11528 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
11529
11530         * device/include/stdlib.h: include malloc.h to comply with ANSI
11531         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
11532
11533 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11534
11535         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11536         * doc/clean.mk: also remove *.out files
11537         * doc/sdccman.lyx: some additions, larger top/bottom margins
11538
11539 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11540
11541         * src/SDCC.y: fixed bug #837365
11542         * support/regression/tests/bitopcse.c
11543         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11544         a symbol (might be valop instead)
11545         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11546         * device/lib/clean.mk: added hc08 to the cleaning list
11547
11548 2003-11-04  Borut Razem <borut.razem AT siol.net>
11549
11550         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11551           made 2003-11-04
11552         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11553           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11554           malloc is declared in standard stdlib.h
11555
11556 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11557
11558         * device/lib/hc08/Makefile: need to clean .rel not .o files
11559         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11560
11561 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11562
11563         * src/port.h,
11564         * src/hc08/main.c,
11565         * src/mcs51/main.c,
11566         * src/ds390/main.c,
11567         * src/z80/main.c,
11568         * src/avr/main.c,
11569         * src/pic/main.c,
11570         * src/pic16/main.c,
11571         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11572         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11573         tests (which uses the port's oclsExpense function)
11574         * src/SDCC.y,
11575         * src/SDCCast.c,
11576         * src/SDCCicode.c,
11577         * src/hc08/gen.c,
11578         * src/ds390/gen.c,
11579         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11580
11581 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11582
11583         * src/SDCCcse.c (ifxOptimize),
11584         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11585         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11586         deleting the IFX iCode.
11587         * src/hc08/ralloc.c: reduced unneeded slocs
11588         * src/hc08/gen.c: fixed bug in asmopToBoolean
11589
11590 2003-11-04  Borut Razem <borut.razem AT siol.net>
11591
11592         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11593           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11594           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11595           transferred to configure
11596
11597 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11598
11599         Use headers defined in the C[++] standards:
11600         * sim/ucsim/gui.src/serio.src/fileio.cc
11601         * sim/ucsim/gui.src/serio.src/frontend.cc
11602         * sim/ucsim/gui.src/serio.src/main.cc
11603         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11604         * support/Util/NewAlloc.c
11605         * as/hc08/lklibr.c
11606         * as/mcs51/lklibr.c
11607         * as/z80/aslist.c
11608         * as/z80/assym.c
11609
11610 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11611
11612         * Added MSVC projects for hc08 assembler and linker:
11613         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11614         /as/hc08/link_hc08.dsp
11615
11616 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11617
11618         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11619
11620 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11621
11622         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11623
11624 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11625
11626         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11627
11628 2003-10-31  Borut Razem <borut.razem AT siol.net>
11629
11630         * support/cpp2/cpplib.h,
11631           support/cpp2/cpplib.c,
11632           support/cpp2/cpplex.c,
11633           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11634           to switch _asm block preprocessing on / off. Default is
11635           #pragma preproc_asm +
11636
11637 2003-10-31  Borut Razem <borut.razem AT siol.net>
11638
11639         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11640           when outputting comment blocks (when executed with -C option) and
11641           _asm (SDCPP specific) blocks
11642
11643 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11644
11645         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11646
11647 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11648
11649         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11650
11651 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11652
11653         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11654         * src/SDCCast.c (decorateType): fixed bug #832664
11655
11656 2003-10-31  Borut Razem <borut.razem AT siol.net>
11657
11658         * support/cpp2/cpplex.c: fixed for SDCPP:
11659           comments(when executed with -C option) and _asm blocks
11660           were included even if they where in skipped #if block.
11661           Applied solution from GCC cpp 3.3.2
11662
11663 2003-10-31  Borut Razem <borut.razem AT siol.net>
11664
11665         * src/SDCC.lex: sdcc now understands both formats:
11666           '# <line_number> <file_name>' and
11667           '#line <line_number> <file_name>'
11668         * support/cpp2/cppmain.c: sdcpp now generates the standard
11669           '# <line_number> <file_name>' instead of former
11670           '#line <line_number> <file_name>'
11671
11672 2003-10-30  Borut Razem <borut.razem AT siol.net>
11673
11674         * support/cpp2/cpphash.h,
11675         * support/cpp2/cpplib.h
11676         * support/cpp2/cpplex.c,
11677         * support/cpp2/cppmain.c,
11678         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11679
11680 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11681
11682         Fixed a number of problems revealed by bug #827883.
11683         * src/SDCCloop.c (loopInvariants): Spill location of the
11684         result operand should be recomputed if extracted from
11685         a loop. Also, don't extract assignments of an iTemp
11686         from a literal.
11687         * src/SDCCast.c (isConformingBody): loop reversal should
11688         not occur if the control variable is involved with a
11689         relational operator.
11690
11691 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11692
11693         * .version: bumped to 2.3.6 to reflect the big improvements
11694         made by Erik and Klaus. Thanks!
11695
11696 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11697
11698         Replaced the livrange code.
11699         * src/SDCClrange.c: added new LR code
11700         * src/SDCCloop.c,
11701         * src/SDCCBBlock.h: removed remainig parts from old LR code
11702         * src/ds390/ralloc.c,
11703         * src/ds390/gen.c: minor fixes to make it work with new code
11704
11705 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11706
11707         * as/hc08/asm.h,
11708         * as/hc08/lkrloc.c,
11709         * src/hc08/gen.c,
11710         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11711         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11712         (tweaked fix for bug #818696)
11713
11714 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11715
11716         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11717
11718 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11719
11720         * src/SDCCmain.c,
11721         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11722         * src/mcs51/gen.c (gencjneshort),
11723         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11724         more efficient (per Scott Bronson's suggestion)
11725
11726 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11727
11728         Extended the semantics of the critical keyword to include
11729         individual statements. See RFE #827755 and #799831
11730         * src/SDCC.y
11731         * src/SDCCicode.c
11732         * src/SDCCopt.c
11733         * src/SDCCast.c
11734         * support/Util/SDCCerr.c
11735         * support/Util/SDCCerr.h
11736         * src/mcs51/gen.c
11737         * src/ds390/gen.c
11738         * src/hc08/gen.c
11739
11740 2003-10-19  Borut Razem <borut.razem AT siol.net>
11741
11742         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11743
11744 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11745
11746         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11747         Fixed bug #818696
11748         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11749         and predecrement operand is displayed
11750
11751 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11752
11753         * src/SDCCval.c (valMinus): fixed bug #826041
11754
11755 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11756
11757         Some hc08 related updates that I missed earlier
11758         * sim/ucsim/stypes.h
11759         * support/regression/ports/hc08/spec.mk
11760
11761 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11762
11763         New target "hc08" for the Motorola 68hc08 family of micros
11764
11765         * configure
11766         * configure.in
11767         * Makefile
11768         * src/hc08/*
11769         * src/SDCCmain.c
11770         * src/port.h
11771         * sim/ucsim/hc08.src/*
11772         * sim/ucsim/configure.in
11773         * src/ucsim/configure
11774         * sim/ucsim/packages_in.mk
11775         * as/hc08/*
11776         * as/Makefile
11777         * device/include/mc68hc908qy.h
11778         * device/lib/hc08/*
11779         * device/lib/Makefile.in
11780         * support/regression/ports/hc08/*
11781         * support/regression/Makefile
11782
11783 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11784
11785         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11786         regression test
11787         * src/ds390/gen.c (genCast): fixed bug #821957
11788
11789 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11790
11791         * device/lib/logf.c: "fixed" overlay bug
11792         * support/regression/ports/host/spec.mk: added m library
11793         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11794         * support/regression/tests/float_trans: added (for Eric)
11795
11796 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11797
11798         * src/mcs51/gen.c (genCpl): fixed bug
11799         http://sf.net/mailarchive/message.php?msg_id=6263915
11800
11801 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11802
11803         * src/SDCCast.c (decorateType): added extended constant folding
11804         * src/SDCCsymt.c (computeType): cleanup
11805         * src/SDCCval.c (valShift): minor optimization
11806         * support/regression/tests/ast_constant_folding.c: added
11807
11808 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11809
11810         * src/SDCCmain.c: removed some unintended changes
11811
11812 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11813
11814         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11815         * src/z80/gen.c: fixed part of bug #817589
11816         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11817
11818 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11819
11820         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11821         * src/SDCCcflow.c
11822         * src/SDCCcse.c
11823         * src/SDCCdflow.c
11824         * src/SDCClabel.c
11825         * src/SDCClrange.c
11826         * src/SDCCmem.c
11827         * src/SDCCopt.c
11828         * src/SDCCpeeph.c
11829         * src/SDCCset.c
11830         * src/avr/ralloc.c
11831         * src/ds390/ralloc.c
11832         * src/izt/ralloc.c
11833         * src/mcs51/ralloc.c
11834         * src/pic/ralloc.c
11835         * src/pic16/ralloc.c
11836         * src/xa51/ralloc.c
11837         * src/z80/ralloc.c
11838         * src/z80/gen.c: removed unused label "release:"
11839
11840 2003-10-06  Borut Razem <borut.razem AT siol.net>
11841
11842         * src/SDCC.lex: removed definition of unused variables
11843           save_optimize and save_options
11844
11845 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11846
11847         * clean.mk: removed '=' in "-maxdepth=1"
11848         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11849         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11850
11851 2003-10-06  Borut Razem <borut.razem AT siol.net>
11852
11853         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11854           my_unput() replaced by unput()
11855
11856 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11857
11858         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11859         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11860         type-punned pointer will break strict-aliasing rules"
11861         Old LR behaviour is again default; Klaus' LR can be choosen by
11862         defining the environment variable LRKLAUS
11863         * src/SDCCBBlock.h
11864         * src/SDCCloop.c
11865         * src/SDCClrange.c
11866         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11867         * clean.mk: fixed removal of files in bin/CVS/
11868         * device/lib/clean.mk: fixed removal of directories small and large
11869         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11870         * src/SDCCicode.c,
11871         * src/SDCCval.c: removed superflous test for pedantic
11872
11873 2003-10-05  Borut Razem <borut.razem AT siol.net>
11874
11875         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11876           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11877           message "unmatched #pragma SAVE and #pragma RESTORE"
11878
11879 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11880
11881         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11882           assembly, critical functions, atomic, nojtbound)
11883
11884 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11885
11886         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11887         * src/SDCCBBlock.h
11888         * src/SDCCloop.c
11889         * src/SDCCloop.h
11890         * src/SDCClrange.c
11891
11892 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11893
11894         * src/z80/gen.h,
11895         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11896         * src/mcs51/gen.h
11897         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11898         * src/ds390/gen.h
11899         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11900         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11901         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11902
11903 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11904
11905         * src/z80/gen.c (genRet): fixed bug #524753
11906         * src/z80/gen.c (genCast): fixed internal error on cast from
11907         pointer to long
11908         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11909         fix for bug #477835 to the z80
11910         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11911         for tracking iCodes in the peephole optimizer for z80
11912
11913 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11914
11915         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11916         the other part of bug #814548
11917         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11918
11919 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11920
11921         * src/SDCCcse.c: fixed part of bug #814548
11922
11923 2003-09-28  Borut Razem <borut.razem AT siol.net>
11924
11925         * src/asm.c: rewrite of printILine() to use temporary file instead
11926           a pipe
11927         * src/xa51/main.c: commented out declaration of int rewinds
11928
11929 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11930
11931         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11932
11933 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11934
11935         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11936         * src/asm.c (printILine): Fixed bug #811015
11937
11938 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11939
11940         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11941         freeing.
11942
11943 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11944
11945         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11946         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11947         to correctly handle general case of AOP_PAIRPTR
11948         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11949
11950 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11951
11952         * src/mcs51/ralloc.c (fillGaps),
11953         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11954         register positioning bug)
11955
11956 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11957
11958         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11959
11960 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11961
11962         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11963         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11964         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11965         (ralloc doesn't intentionally do this now, but perhaps later)
11966         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11967         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11968         register positioning bugs (Fixed bug #762602 and #795325)
11969         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11970         (Fixed bug #808779)
11971         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11972         lines that --i-code-in-asm generates
11973
11974 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11975
11976         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11977         trying to fclose a FILE* that was already closed.
11978
11979 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11980
11981         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11982         of const struct should be treated as if const themselves)
11983
11984 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11985
11986         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11987
11988 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11989
11990         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11991         Unix (/n) and DOS (/r/n) line terminations.
11992
11993 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11994
11995         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11996         bug #613775
11997
11998 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11999
12000         * src/mcs51/gen.c (genFunction, genEndFunction),
12001         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
12002         and restore of EA so that stack offsets to parameters are
12003         correct when using both critical and reentrant/stack-auto.
12004         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
12005         size (can be triggered in error if sloc is shared between
12006         different sized objects)
12007         * device/include/float.h: fixed macros to explicitly use
12008         unsigned long where needed
12009
12010 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
12011
12012         Feature req. 799831: added code to allow nesting of critical functions
12013         * src/mcs51/gen.c (genFunction, genEndFunction)
12014         * src/ds390/gen.c (genFunction, genEndFunction)
12015
12016 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12017
12018         * src/SDCCsymt.c (sclsFromPtr),
12019         * src/SDCCsymt.h,
12020         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
12021         support for standard C idiom of memory mapped variables; for
12022         example, *((xdata int*)0x1234) = 1 is now internally equivalent
12023         to xdata int at 0x1234 tempvar = 1.
12024         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
12025         provided by Akiya ISHIDA
12026
12027 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
12028
12029         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
12030         * src/SDCCval.c (constVal): added reduction from int to char
12031         * src/SDCCval.c (valMult, valDiv): fixed sign handling
12032         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
12033         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
12034         to ignore the sign
12035         * support/regression/tests/shifts.c: fixed
12036
12037 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12038
12039         * src/z80/gen.c (genXor): Fixed bug #805445
12040
12041 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12042
12043         Fixed bug #621531 (const & volatile confusion in the type chain).
12044         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
12045         refer to the const or volatile state of the pointer itself.
12046
12047         * src/SDCCast.c
12048         * src/SDCCglue.c
12049         * src/SDCCicode.c
12050         * src/SDCCsymt.c
12051         * src/SDCCval.c
12052         * src/SDCC.y
12053         * src/SDCCsymt.h
12054         * src/pic/gen.c
12055         * src/pic/ralloc.c
12056         * src/pic16/gen.c
12057         * src/pic16/ralloc.c
12058         * support/regression/tests/const.c
12059
12060 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12061
12062         When checking for duplicated modules, use absolute paths
12063         instead of relative paths.  Files changed:
12064
12065         * as/mcs51/lklib.c
12066         * link/z80/lklib.c
12067
12068 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12069
12070         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
12071
12072 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12073
12074         * device/include/string.h: added size_t typedef, changed
12075         prototypes to use size_t, eliminated separate reentrant and
12076         non-reentrant declarations, added _memmove declaration
12077         * device/lib/_memcpy.c: changed to use size_t instead of int,
12078         changed /4 to >>2 to avoid division library call
12079         * device/lib/_memcmp.c,
12080         * device/lib/_memset.c,
12081         * device/lib/_strncat.c,
12082         * device/lib/_strncpy.c,
12083         * device/lib/_strncmp.c: changed to use size_t instead of int
12084         * device/lib/_memmove.c: new file (fixed bug #772294)
12085         * device/lib/Makefile.in: added _memmove.c
12086         * device/lib/z80/asm_strings.s: fixed bug #772290
12087         * support/regression/tests/bitfields.c: attempt to fix host assertion
12088         failure on amd64-unknown-linux2.2
12089
12090 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12091
12092         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
12093         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
12094         * as/z80/asmain.c (main): fixed bug #801766
12095
12096 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
12097
12098         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
12099         compilers
12100
12101 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12102
12103         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
12104         reported in bug #800609
12105
12106 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
12107
12108         * Top header beautifications in src/pic16 directory:
12109           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
12110           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
12111           pcoderegs.h, ralloc.c, ralloc.h
12112         * main.c: added top header and GPL license notice
12113         * pcode.c: fixed the if-conditional warning
12114
12115 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
12116
12117         * device/lib/_mullong.c: replaced int by short for gcc
12118
12119 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12120
12121         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
12122         and JUMPTABLE iCodes properly now (worked by accident before)
12123         * src/mcs51/gen.c (leftRightUseAcc),
12124         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
12125         iCode properly now. Use getSize instead of nRegs since a & b
12126         aren't part of the nRegs tally.
12127
12128 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
12129
12130         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
12131         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
12132           before instructions that use the _STATUS register
12133
12134 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
12135
12136         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
12137         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
12138         fetching of the pointer
12139         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
12140         copied from genNearPointerSet()
12141         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
12142         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
12143         If they pop r0/r1 they must be called in the opposite order than aopOp().
12144         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
12145         (resp. --stack-auto), prepared for --xstack
12146
12147 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12148
12149         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
12150
12151 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12152
12153         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
12154         these ports have their own __sdcc_external_start()
12155
12156 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
12157
12158         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12159         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
12160         type for bits was changed. It resulted in bit variables becoming
12161         global, which is not permitted in PIC 14 assembly output.
12162
12163 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12164
12165         * doc/sdccman.lyx: various additions and updates. Rearranged sections
12166
12167 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12168
12169         Z80 and MCS51 linkers complaint if a public symbol is defined
12170         in more than one library module:
12171
12172         * as/mcs51/lklib.c
12173         * link/z80/lklib.c
12174         * as/mcs51/Makefile.in
12175
12176 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12177
12178         A few small changes that speed up the peephole optimizer.
12179
12180         * src/SDCCpeeph.c
12181
12182 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12183
12184         Try to make the peephole optimizer smarter by maintaining
12185         an association between the assembly source code and the
12186         iCodes that originated them. Put this information to use
12187         with a new peephole rule condition "notVolatile" so that
12188         the rules can be aggressive yet still safe.
12189
12190         * src/SDCCpeeph.c
12191         * src/SDCCpeeph.h
12192         * src/mcs51/gen.c
12193         * src/mcs51/peeph.def
12194
12195 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12196
12197         Fixed bug #741761
12198
12199         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
12200         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
12201         if the left or right operand symbols have the accuse flag set.
12202
12203 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12204
12205         Changed the type of the result of the ! (NOT) operator to char;
12206         previously it returned the same type as the source. This allows
12207         us to eliminate all the genFloatNot functions (all of its target
12208         implementations were very buggy) since !float can use the same
12209         code as !long now.
12210
12211         * src/SDCCicode.c (ast2iCode): ! returns char
12212         * src/mcs51/gen.c (genNot, genNotFloat),
12213         * src/ds390/gen.c (genNot, genNotFloat),
12214         * src/z80/gen.c (genNot, genNotFloat),
12215         * src/pic/gen.c (genNot, genNotFloat),
12216         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
12217
12218 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
12219
12220         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12221         1. Interrupt would not compile properly. Ensure PCLATH register is saved
12222            during interrupts. Ensure WSAVE is located at a shared bank address.
12223         2. Fixed page selection in some places
12224         3. Fixed BTFSS/C to where necessary use registers directly and not simply
12225            the registers name strings.
12226         4. Fixed "signed / unsigned compare" compiler warnings.
12227         5. The PIC port manages its own allocation of the general purpose
12228            registers, but makes no attempt to reuse them. As a result when
12229            compiling it soon runs out of general purpose registers. Some
12230            additional code was added to the files pcode.c and device.c to walk
12231            through the function call tree and rename the registers so that they
12232            get reused.
12233
12234         * src/pic/device.c
12235         * src/pic/gen.c
12236         * src/pic/glue.c
12237         * src/pic/pcode.c
12238         * src/pic/pcode.h
12239         * src/pic/ralloc.c
12240         * src/pic/ralloc.h
12241         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
12242         genPlus() & genMinus() when the result is the same as left or right
12243
12244 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12245
12246         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
12247
12248 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12249
12250         Made bitfield a distinct type from bit so that bitfields
12251         convert as per ANSI C and bits retain their traditional
12252         boolean style behaviour. Implemented bitfield support in
12253         the z80 port.
12254
12255         * src/SDCCsymt.h,
12256         * src/SDCCsymt.c,
12257         * src/SDCCast.c,
12258         * src/cdbFile.c,
12259         * src/mcs51/gen.c,
12260         * src/ds390/gen.c: bit v bitfield split
12261         * src/z80/gen.c: New support for bitfields
12262         * support/regression/tests/bitfields.c: reenabled z80,
12263         added more tests
12264
12265 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12266
12267         Rules 246.x, 247.x relate to bitfields, the others speed up
12268         access to xdata mapped I/O devices.
12269
12270         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
12271
12272 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12273
12274         Cleaned up genPackBits and genUnpackBits and added two helper
12275         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
12276         for literal assignments in genPackBits (thanks to Frieder for
12277         reminding me).
12278
12279         * src/mcs51/gen.c
12280         * src/ds390/gen.c
12281
12282 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12283
12284         Fixed bug #748310 (pointer to function type mishandled when the
12285         function name is omitted). Also fixed a SIGSEGV when a function
12286         attribute (reentrant, etc) is used on a non-function or on a
12287         function but misplaced before the parameter list.
12288
12289         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
12290         bug #748310
12291         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
12292         * support/Util/SDCCerr.h,
12293         * support/Util/SDCCerr.c: Added func attr misuse error msg
12294
12295 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12296
12297         Fixed bug #787649 by anonymous
12298         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
12299         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
12300
12301 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12302
12303         Fixed numerous bitfield problems.
12304
12305         * src/SDCC.y: More bitfield related error checking
12306         * src/SDCCsymt.h,
12307         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
12308         * support/Util/SDCCerr.h,
12309         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
12310         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12311         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12312         * support/regression/tests/bitfields.c: tests added
12313
12314 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12315
12316         Made the constant following the "interrupt" keyword optional. If
12317         omitted, the function will not automatically be given an entry
12318         in the interrupt vector table (similar to #pragma NOIV, but
12319         less syntacticly kludgy). The interrupt number is also now
12320         range checked. Also fixed a bug in the high order bit example
12321         in the manual.
12322
12323         * src/SDCC.y
12324         * src/SDCCmem.c
12325         * src/SDCCglue.c
12326         * src/SDCCsymt.h
12327         * support/Util/SDCCerr.c
12328         * support/Util/SDCCerr.h
12329         * doc/sdccman.lyx
12330
12331 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12332
12333         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
12334         * src/SDCCicode.c (operandOperation): rewritten some ops
12335         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
12336         * src/SDCCsymt.c (computeType): literals are handled the same way as any
12337         other type
12338         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
12339         be re-activated by defining REDUCE_LITERALS)
12340         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
12341         unsigned, but are signed by default
12342         * src/SDCCval.c (constVal): rearranged
12343         * src/SDCCval.c (valMod): preliminary fix
12344         * src/SDCCval.c (valCastLiteral): use TYPE_* types
12345         * support/regression/literalop.c: added, work in progress
12346
12347 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12348
12349         Generate warnings for useless declarations like "char data;"
12350         that don't do what new users expect.
12351
12352         * src/SDCC.y
12353         * support/Util/SDCCerr.h
12354         * support/Util/SDCCerr.c
12355
12356 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
12357
12358         * src/SDCCval.c (valMult): fix overflow detection of negative int
12359
12360 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12361
12362         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
12363
12364         Changes to support big endian targets:
12365
12366         * src/ports.h
12367         * src/SDCCglue.c
12368         * src/avr/main.c
12369         * src/ds390/main.c
12370         * src/izt/i186.c
12371         * src/mcs51/main.c
12372         * src/pic/main.c
12373         * src/pic16/main.c
12374         * src/xa51/main.c
12375         * src/z80/main.c
12376
12377 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
12378
12379         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
12380         * device/lib/time.c: fixed warning "integer overflow in expression"
12381
12382 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
12383
12384         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
12385         * src/SDCCval.c (constVal): changed default to signed; hex and octal
12386         constants are unsigned; added recognition of "u" flag for unsigned
12387         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
12388         * src/SDCCval.c (valDiv, valMod): fixed signdness
12389         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
12390         signedness of modulo, left and right shift
12391         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
12392         * support/Util/SDCCerr.h: added warning W_INT_OVL
12393         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
12394         * src/SDCCast.c (ast_print): improved output of constants
12395
12396 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12397
12398         Fixed some warnings when building with MSVC:
12399
12400         * as/mcs51/asdata.c
12401         * as/z80/asdata.c
12402         * as/mcs51/asm.h
12403         * as/z80/asm.h
12404         * link/z80/aslink.h
12405         * link/z80/lkdata.c
12406         * link/z80/lkeval.c
12407         * link/z80/lkgb.c
12408         * link/z80/lkihx.c
12409         * link/z80/lks19.c
12410         * link/z80/lksym.c
12411         * support/cpp2/cpplib.c
12412         * src/ds390/gen.c
12413         * src/mcs51/gen.c
12414
12415 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
12416
12417         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
12418
12419 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12420
12421         * support/librarian/clean.mk: Do not remove Makefile.
12422         * support/librarian/Makefile: added.
12423
12424 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12425
12426         Added librarian to MSVC build:
12427         * all.dsp
12428         * sdcc.dsw
12429         * support/librarian/librarian.dsp
12430
12431         'configure' not needed for librarian, removed:
12432         * support/librarian/configure
12433         * support/librarian/configure.in
12434         * support/librarian/config_in.h
12435         * support/librarian/Makefile.in
12436
12437         Hopefully these ones built the librarian and the rest of sdcc properly:
12438         * Makefile
12439         * Makefile.common.in
12440
12441         Messed up 'configure', so revert to previous version:
12442         * configure
12443         * configure.in
12444
12445 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
12446
12447         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
12448         there, while the mantissa of a double is "only" 53 bits wide.
12449
12450 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12451
12452         Adding sdcclib to the build.  MSVC project coming soon.
12453         Files added/changed:
12454
12455         * support/librarian/clean.mk
12456         * support/librarian/configure
12457         * support/librarian/configure.in
12458         * support/librarian/config_in.h
12459         * support/librarian/Makefile.bcc
12460         * support/librarian/Makefile.in
12461         * support/librarian/sdcclib.c
12462         * Makefile.bcc
12463         * Makefile
12464         * Makefile.common.in
12465         * configure
12466         * configure.in
12467
12468 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12469
12470         Linker now complaints if linked modules have conflicting options, for
12471         example, one compiled using --model-large and another one compiled with
12472         --model-small.  The following files were modified:
12473
12474         * as/mcs51/asdata.c
12475         * as/mcs51/aslink.h
12476         * as/mcs51/asm.h
12477         * as/mcs51/asmain.c
12478         * as/mcs51/asout.c
12479         * as/mcs51/i51pst.c
12480         * as/mcs51/lkdata.c
12481         * as/mcs51/lklibr.c
12482         * as/mcs51/lkmain.c
12483         * as/z80/asdata.c
12484         * as/z80/asm.h
12485         * as/z80/asmain.c
12486         * as/z80/asout.c
12487         * as/z80/z80pst.c
12488         * link/z80/aslink.h
12489         * link/z80/lkdata.c
12490         * link/z80/lklibr.c
12491         * link/z80/lkmain.c
12492         * src/SDCCglue.c
12493
12494 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12495
12496         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
12497         as/mcs51/lklibr.c: Generate a warning when a library is not found.
12498
12499 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
12500
12501         * src/z80/mappings.i: fix _mul[us][int,long] entries
12502
12503 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12504
12505         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
12506
12507 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12508
12509         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
12510         * support/regression/tests/bitopcse.c: added
12511         fixed warning:
12512         * src/avr/gen.c:
12513         * src/pic/gen.c:
12514         * src/pic16/gen.c:
12515         * src/z80/gen.c:
12516         * src/xa51/gen.c:
12517
12518 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12519
12520         added support for new library format to z80, gbz80 linkers:
12521         *link/z80/aslink.h
12522         *link/z80/lklex.c
12523         *link/z80/lklib.c
12524         *link/z80/lklist.c
12525
12526 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12527
12528         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
12529         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
12530
12531 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
12532
12533         added DUMMY_READ_VOLATILE:
12534         * src/SDCC.y:
12535         * src/avr/gen.c:
12536         * src/xa51/gen.c:
12537         * src/z80/gen.c:
12538         * src/pic/gen.c:
12539         * src/pic16/gen.c:
12540         * src/mcs51/gen.c:
12541         * src/ds390/gen.c:
12542         * src/SDCCcse.c (algebraicOpts): many improvements
12543         * src/SDCCcse.h: removed algebraicOpts()
12544         * src/SDCCicode.c (picDummyRead): added
12545
12546 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12547
12548         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12549         "Insufficient space in data memory".
12550
12551 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12552
12553         * src/mcs51/gen.c: fixed bug #771358
12554         * src/z80/gen.c: fixed bug #759087
12555
12556 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12557
12558         * src/pic16/glue.c: minor cleanup by Vangelis
12559
12560 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12561
12562         * device/include/regc515c.h: fixed #758477
12563         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12564         * device/lib/_gptrput.c: saved a few bytes
12565         * my tab spacing is 8, yours too?)
12566         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12567         * device/lib/serial.c: process RX bytes earlier than TX bytes
12568         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12569
12570 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12571
12572         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12573
12574 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12575
12576     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12577
12578 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12579
12580         * device/lib/Makefile.in: bad fix, reverted to 1.43
12581
12582 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12583
12584         * device/lib/Makefile.in: added missing z80 object files
12585
12586 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12587
12588         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12589         pic16 progress by Vangelis:
12590         * src/SDCCglobl.h:
12591         * src/SDCCmain.c:
12592         * src/pic/Makefile:
12593         * src/pic:
12594         * pic/Makefile:
12595         * pic16/device.c:
12596         * pic16/device.h:
12597         * pic16/gen.c:
12598         * pic16/gen.h:
12599         * pic16/genarith.c:
12600         * pic16/glue.c:
12601         * pic16/main.c:
12602         * pic16/pcode.c:
12603         * pic16/pcode.h:
12604         * pic16/pcodepeep.c:
12605         * pic16/peeph.def:
12606
12607 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12608
12609     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12610
12611 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12612
12613     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12614     added gbz80 build to MSVC project.
12615     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12616     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12617     from 8051 stuff and setup so it links using a .lnk file.
12618
12619 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12620
12621     * support/librarian/sdcclib.c: sdcc librarian.
12622     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12623     with sdcclib.
12624
12625 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12626
12627     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12628
12629 2003-07-02  Borut Razem <borut.razem AT siol.net>
12630
12631         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12632         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12633         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12634         src/xa51/main.c, src/z80/main.c:
12635         virtualization of glue() function: each port has it's own glue function,
12636         which is accessed by do_glue function pointer in PORT.general structure
12637
12638 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12639
12640         * DS800C400 fun, improved ROM interface and tinibios.
12641
12642 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12643
12644         * More support for DS80C400. Now includes beginning of interface to ROM.
12645
12646 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12647
12648         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12649
12650 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12651
12652         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12653
12654 2003-06-19  Borut Razem <borut.razem AT siol.net>
12655
12656         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12657
12658 2003-06-19  Borut Razem <borut.razem AT siol.net>
12659
12660         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12661         fixed Z80 port - crt0.o: cannot open.
12662
12663 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12664
12665         * support/Util/MySystem.c (merge_command): revert bad fix
12666
12667 2003-06-18  Borut Razem <borut.razem AT siol.net>
12668
12669         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12670
12671 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12672
12673         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12674         option --use-stdout sends errors to stdout instead of stderr.
12675
12676 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12677
12678         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12679
12680 2003-06-15  Borut Razem <borut.razem AT siol.net>
12681
12682         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12683         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12684         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12685         fixed width array of pointers replaced with sets;
12686         multiple include and lib paths ared transferred to preprocessor and linker
12687         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12688         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12689         fixed width array of pointers
12690         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12691         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12692         fixupPath(), getPathDifference()
12693         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12694         fixed width array of pointers
12695
12696 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12697
12698         * src/pic16/ralloc.c: fix warnings
12699         * src/pic16/pcode.c: fix warning
12700
12701 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12702
12703          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12704         know all the details, but essentially this set of changes enable
12705         the pic16 port to generate movff instructions and generate assembler
12706         directives,
12707         * src/SDCCmain.c:
12708         * src/pic16/gen.c:
12709         * src/pic16/glue.c:
12710         * src/pic16/pcode.c:
12711         * src/pic16/device.c:
12712         * src/pic16/main.c:
12713         * src/pic16/pcode.h:
12714         * src/pic16/pcoderegs.c:
12715         * src/pic16/ralloc.c:
12716         * src/pic16/ralloc.h:
12717
12718 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12719
12720         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12721         added option --vc, so sdcc errors and warnings are compatible with
12722         Microsoft Visual Studio.
12723
12724 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12725
12726         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12727           device/lib/libfloat.lib: added atof function.
12728
12729 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12730
12731         * doc/sdccman.lyx: updated to Lyx 1.3
12732         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12733         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12734         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12735
12736 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12737
12738         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12739
12740 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12741
12742         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12743           additions to the "related tools/documentation" section
12744
12745 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12746
12747         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12748
12749 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12750
12751         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12752         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12753
12754 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12755
12756         * doc/sdccman.lyx: fix double dash and other minor things
12757         * doc/Makefile: fix double dash
12758
12759 2003-05-28  Karl Bongers(patches from Martin Helmling)
12760         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12761           condition and ignore commands.
12762
12763 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12764
12765         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12766           is in parts still quite out of date, I did changes as far as I felt makes sense
12767           for a non-native english speaker.
12768           Please feel free to add to the manual or to correct my changes.
12769         * doc/Makefile: undid touching the date of intermediate tex files.
12770
12771 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12772
12773         * doc/sdccman.lyx: Manual has an index now
12774
12775 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12776
12777         Finalize muluint/mulsint and mululong/mulslong merging:
12778         * device/lib/_mulint.c
12779         * device/lib/_mullong.c
12780         * device/lib/gbz80/mul.s
12781         * device/lib/gbz80/stubs.s
12782         * device/lib/z80/mul.s
12783         * device/lib/z80/stubs.s
12784         * src/SDCCsymt.c (initCSupport)
12785
12786 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12787
12788         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12789         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12790           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12791           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12792           instead of /Zm500.
12793
12794 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12795
12796         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12797           the regression tests I'm not brave enough to enable 245.b, 245.c
12798         * doc/sdccman.lyx: added latex preamble for hyperref package.
12799           Using pdflatex this will give you a hyperlinked pdf file with
12800           bookmarks. (prepend '%' before /usepackage if this breaks something)
12801
12802 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12803
12804          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12805
12806 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12807
12808         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12809
12810 2003-05-21    <johan AT balder>
12811
12812         * src/SDCCglue.c (printIval): fixed bug #739934
12813
12814 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12815
12816         Applied patch from bug 737905 (renamed yylineo to mylineno):
12817         * src/altlex.c
12818         * src/SDCCast.c
12819         * src/SDCglobl.h
12820         * src/SDCC.lex
12821         * src/SDCCsymt.c
12822         * src/SDCCval.c
12823         * src/pic16/pcode.c: Cleaned warnings
12824         * src/pic16/pcodeflow.c: Cleaned warnings
12825         * src/pic16/pcoderegs.c: Cleaned warnings
12826
12827 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12828
12829         * src/pic16/pcode.c: Cleaned warnings
12830         * src/pic16/pcodepeep.c: Cleaned warnings
12831         * src/pic16/ralloc.c: Cleaned warnings
12832
12833 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12834
12835         * doc/sdccman.lyx: fixed bug 739745
12836         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12837
12838 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12839
12840         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12841         it can be defined with CFLAGS when running configure
12842         * src/SDCCmain.c: fixed compiling + linking with object files
12843
12844 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12845
12846         * configure.in: configure for pic16 port,
12847             added --disable-pic16-port
12848         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12849         * src/SDCCmain.c: linkOptions is changed to set *,
12850             added if/endif conditional macros to remove options help
12851             messages from optionsTable when a port is not configured, added
12852             support for the PIc16 port in the ports table, when executing
12853             the compiler with no port specified on command line, a default
12854             port is selected with the new macro DEFAULT_PORT which is
12855             defined in port.h, in setDefaultOptions() linkOptions is removed
12856             from initialization assignment, since now it is a set,
12857             parseCmdLine uses setParseWithComma for linkOptions, in
12858             linkEdit() linkOptions are accessed with new function indexSet()
12859             which returns the i'th item of a set variable. See SDCCset.c, in
12860             linkEdit() when calling buildCmdLine(), added linkOptions as
12861             last argument. Now users can pass arguments to gplink via the
12862             -Wl option, main() uses pic16glue() to glue up pic16 programs
12863         * src/SDCCpeeph.c: various changes to support pic16
12864         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12865             return the i'th item of the set
12866         * src/SDCCset.h: added function prototype for indexSet()
12867         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12868         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12869         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12870             added macro DEFAULT_PORT
12871         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12872         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12873             generated
12874         * src/pic16/glue.c: commented out some error producing lines
12875         * src/pic16/main.c: __config directives are commented out to stop
12876             gpasm complaining and test the linkage with gplink, _linkCmd and
12877             _asmCmd changed to be more gplink and gpasm friendly
12878         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12879             produced an error when parsed, peep rule 12 is added to utilize
12880             movff, but it is commented out since the pCode does not support
12881             yet a command with 2 address arguments
12882
12883 2003-05-18    <johan AT balder>
12884
12885         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12886         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12887 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12888
12889         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12890   Added feature to script commands from file.
12891
12892 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12893
12894         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12895         * src/SDCCutil.c: include ctype.h for win32
12896
12897 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12898
12899         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12900
12901 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12902
12903         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12904   Fixed so you can set breakpoints prior to run, run does not stop
12905   on entry now.  Add tbreak.  Other enhancements and fixes for use
12906   with ddd.
12907
12908 2003-05-12  Borut Razem <borut.razem AT siol.net>
12909
12910         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12911
12912 2003-05-11  Borut Razem <borut.razem AT siol.net>
12913
12914         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12915         the path of bin directory, so that PATH is the only env. variable, which has to be set
12916         in case of standard installation.
12917         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12918         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12919         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12920
12921 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12922
12923         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12924         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12925         temp files are in the port dir; clean the gen/test directory when
12926         generating new test.c
12927         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12928         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12929         * support/regression/tests/zeropad.c: added
12930
12931 2003-05-09    <johan AT balder>
12932
12933         * src/SDCCglue.c: fixed bug #597940
12934
12935 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12936
12937         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12938   cache sfr, optimize next,step, fix off by one sourceline,
12939   support ddd list function.
12940         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12941
12942 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12943
12944         * support/regression/HTMLgen.py: added compare_s2f()
12945         * support/regression/Makefile: redo 1.27
12946         * support/regression/generate-cases.py: redo 1.5
12947
12948 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12949
12950         * support/regression/tests/float.c: workaround 33 bit hex constant
12951         * support/regression/tests/simplefloat.c: fix division for host
12952
12953 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12954
12955         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12956         that tame's the PIC's over-aggressive optimizer.
12957
12958 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12959
12960          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12961          support for MSVC.
12962
12963 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12964
12965         Initial support for DS80C400. "Hello world" runs on TINIm400
12966         (with polled I/O).
12967
12968 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12969
12970          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12971          * Some notes on ddd usage added in debugger/README
12972          Martin Helmling adding more features and fixes for ddd GUI debugger.
12973          Code added for nexti, stepi, up, down, and other adjustments.
12974
12975 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12976
12977         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12978         * src/pic/peeph.def Added two rules to optimize carry manipulation
12979         * src/pic/* removed debug printfs
12980
12981 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12982
12983         * debugger/mcs51/cmd.c: added header newalloc.h
12984
12985 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12986
12987         * as/Makefile: new EXEEXT
12988         * as/z80/Makefile: remove trailing slash of BUILDIR
12989         * as/z80/clean.mk: new EXEEXT
12990         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12991         * support/cpp2/Makefile.in: new EXEEXT
12992         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12993
12994 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12995
12996         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12997         EXEEXT was introduced to fix all related problems with targets
12998         "clean", "install" and "uninstall"; a couple of further flaws
12999         especially with "clean" have been fixed too
13000         * as/mcs51/Makefile.in
13001         * as/mcs51/clean.mk
13002         * as/z80/Makefile
13003         * Makefile
13004         * clean.mk
13005         * debugger/mcs51/Makefile.in
13006         * debugger/mcs51/clean.mk
13007         * link/z80/Makefile
13008         * link/z80/Makefile.in
13009         * link/z80/clean.mk
13010         * link/Makefile
13011         * packihx/Makefile.in
13012         * packihx/clean.mk
13013         * sim/ucsim/Makefile
13014         * sim/ucsim/clean.mk
13015         * sim/ucsim/avr.src/Makefile.in
13016         * sim/ucsim/avr.src/clean.mk
13017         * sim/ucsim/s51.src/Makefile.in
13018         * sim/ucsim/s51.src/clean.mk
13019         * sim/ucsim/xa.src/Makefile.in
13020         * sim/ucsim/xa.src/clean.mk
13021         * sim/ucsim/z80.src/Makefile.in
13022         * sim/ucsim/z80.src/clean.mk
13023         * sim/ucsim/main_in.mk
13024         * sim/ucsim/packages_in.mk
13025         * sim/ucsim/gui.src/Makefile.in
13026         * sim/ucsim/gui.src/serio.src/Makefile.in
13027         * sim/ucsim/gui.src/serio.src/clean.mk
13028         * src/Makefile.in
13029         * src/clean.mk
13030         * support/cpp2/Makefile.in
13031         * support/cpp2/clean.mk
13032         * support/makebin/Makefile
13033         * support/makebin/clean.mk
13034         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
13035         * doc/sdccman.lyx: --program-suffix no longer needed
13036
13037 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
13038
13039          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
13040          Martin Helmling added support for ddd GUI debugger.
13041          Code added to display assembly, set variables, and other commands
13042          to interface to ddd.
13043
13044 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
13045
13046         * as/Makefile: fix target clean
13047         * as/clean.mk: fix target clean
13048         * as/z80/clean.mk: fix target clean
13049
13050 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
13051
13052         * Makefile.common.in: added  AT EXEEXT AT
13053         * configure.in: removed all mingw32 stuff
13054         * configure: rebuilt from configure.in
13055         * doc/sdccman.lyx: updated section "installation"
13056         * support/scripts/sdcc_mingw32: adapted to configure
13057         * support/scripts/sdcc_cygwin_mingw32: added
13058
13059 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
13060
13061         * src/pic Added object file support for the PIC port
13062         * src/pic Applied patch from Craig Franklin (this started the object file support)
13063         * src/regression Updated the PIC regression tests for object files
13064
13065 2003-04-20  Borut Razem <borut.razem AT siol.net>
13066
13067         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
13068           lklex.c: In function `getfid':
13069           lklex.c:203: warning: array subscript has type `char'
13070         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
13071           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
13072         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
13073           stack handling macros
13074
13075 2003-04-19  Borut Razem <borut.razem AT siol.net>
13076
13077         * "handling space characters in file path" task:
13078         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
13079         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
13080         * support/Util/MySystem.h: make it self-sufficient
13081         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
13082           src/z80/main.c, sdcc/as/mcs51/lklex.c:
13083           handling space characters in file path
13084         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
13085           (it will be used by assemblers, which have their own includes, e.g. gpasm)
13086         * support/Util/MySystem.c: handling space characters in executable's path
13087
13088 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
13089
13090         * as/z80/Makefile: fix permanent rebuild of z80
13091         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
13092         * support/regression/tests/bitfields.c: added Johan's bitfields.c
13093
13094 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
13095
13096         * src/SDCCopt.c: add special case optimization to replace modulo by
13097           a power of two with a bitwise AND.
13098
13099 2003-04-18    <johan AT balder>
13100
13101         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
13102
13103 2003-04-17    <johan AT balder>
13104
13105         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
13106         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
13107
13108 2003-04-13  Borut Razem <borut.razem AT siol.net>
13109
13110         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
13111         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
13112           fixed mingw problem in adl_NORMALIZE_PATH
13113
13114 2003-04-12  Borut Razem <borut.razem AT siol.net>
13115
13116         * fixed "#pragma SAVE/RESTORE can not be nested":
13117         * src/SDCC.lex: reworked pragma handling functions
13118         * sdcc/src/SDCCglobl.h: reworked stack handling macros
13119         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
13120
13121 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13122
13123         * src/SDCCutil.c (pathEquivalent): defined but not used
13124         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
13125         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
13126         * configure: rebuilt from configure.in
13127         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13128         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13129         * device/include/Makefile.in: replace sdcc_datadir
13130         * device/lib/Makefile.in: replace sdcc_datadir
13131         * Makefile.common.in: add LDFLAGS from configure
13132         * packihx/Makefile.in: use LDFLAGS
13133         * src/Makefile.in: use LDFLAGS
13134         * support/cpp2/Makefile.in: add LDFLAGS from configure
13135         * support/makebin/Makefile: use LDFLAGS
13136         * .version: bumped version number to 2.3.5
13137
13138 2003-04-12  Borut Razem <borut.razem AT siol.net>
13139
13140         * completed "different paths" task:
13141         * src/SDCCmacro.c: fixed bug in handling quotes
13142         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
13143         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
13144
13145 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13146
13147         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
13148
13149 2003-04-11 kevin Vigor <kevin AT vigor.nu>
13150
13151         * ds390/gen.c ds390/peeph.def: fix bug 706781
13152
13153 2003-04-11  Borut Razem <borut.razem AT siol.net>
13154
13155         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
13156
13157 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
13158
13159         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
13160         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
13161          set - this bit used to not be set...).
13162         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
13163           bad code in PIC Port
13164         * src/regression/and2.c added to test bug 609268
13165         * src/regression/Makefile added and2.c to regression test
13166
13167
13168 2003-04-08    <johan AT CP255758-A>
13169
13170         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
13171         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
13172         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
13173
13174 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
13175
13176         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
13177         fix bug #487815
13178         * support/cpp2/Makefile.in: fix bug #487815
13179         * configure: rebuilt from configure.in
13180         * Makefile.common.in: docdir changed, new path suffixes
13181         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13182         * sdcc_vc_in.h: reflect changes from sdccconf.h
13183         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
13184         * src/SDCCutil.h: remove BINDIR hack
13185         * doc/sdccman.lyx: update new path hierarchy
13186
13187 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13188
13189         * src/SDCCpeeph.c: added okToRemoveSLOC test
13190
13191 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13192
13193         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
13194
13195 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13196
13197         * src/SDCCpeeph.c: added labelIsReturnOnly test
13198         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
13199
13200 2003-04-05    <johan AT balder>
13201
13202         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
13203         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
13204         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
13205         * src/SDCCast.c: fixed a warning
13206         * src/SDCCast.h: fixed a warning
13207         * src/SDCCicode.c (operandFromAst): fixed a warning
13208
13209 2003-04-04    <johan AT balder>
13210
13211         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
13212         * src/SDCCast.c (decorateType): fixed bug #715076
13213         * src/SDCC.y: fixed bug #702907
13214
13215 2003-04-03    <johan AT balder>
13216
13217         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
13218         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
13219         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
13220         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
13221         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
13222
13223 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
13224
13225         * _decdptr.c: fix return values
13226         * _gptrget.c: fix return values
13227         * _gptrgetc.c: fix return values
13228         * _gptrput.c: fix return values
13229         * _mulint.c: fix return values
13230         * as/z80/Makefile: fix 'make -j' problem
13231
13232 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
13233
13234         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
13235         * configure.in: big cleanup, updated to autoconf 2.5x
13236         * configure: rebuilt from configure.in
13237         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13238         * sdcc_vc_in.h: reflect changes from sdccconf.h
13239         * doc/Makefile: fixed a flaw in "make install"
13240
13241 2003-04-02    <johan AT balder>
13242
13243         * src/ds390/gen.c (genCmp): no comments
13244         * src/mcs51/gen.c (genCmp): no comments
13245         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
13246         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
13247
13248 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
13249
13250         * support/regression/generate-cases.py: place generated file in given sub directory
13251         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
13252         * support/regression/Makefile: improvements for 'make -j';
13253         side effect: it's simpler and faster now
13254
13255 2003-03-31  Borut Razem <borut.razem AT siol.net>
13256
13257         * src/z80/main.c: link-{port} and as-{port} defined without path
13258         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
13259
13260 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
13261
13262         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
13263
13264 2003-03-30  Borut Razem <borut.razem AT siol.net>
13265
13266         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
13267           changed type of list parameter to set
13268         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
13269         * src/port.h: changed type of do_assemble() parameter to set
13270         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
13271           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
13272           definition of "cppoutfilename" macro with NULL value in preProcess()
13273         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
13274         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
13275         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
13276           replaced with set *binPathSet
13277         * shash_add() deallocates the item, if allready exsists, before adding the new one
13278         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
13279
13280 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
13281
13282         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
13283           a nested for loop bug in the PIC port
13284         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
13285           for loops
13286
13287 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
13288
13289         * support/Util/dbuf.h: remove C++ stuff to make it portable
13290
13291 2003-03-28  Borut Razem <borut.razem AT siol.net>
13292
13293         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
13294           literal strings in stringLiteral()
13295         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
13296         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
13297           to the project
13298
13299 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
13300
13301         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
13302
13303 2003-03-26    <johan AT balder>
13304
13305         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
13306         * src/ds390/gen.c (saveRegisters): catched symbol abuse
13307         * src/SDCCast.c (decorateType): fixed " -v < 3"
13308
13309 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
13310
13311         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
13312         Added Lenny Story's debug infrastructure changes:
13313         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
13314         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
13315         * src/cdbFile.c: added
13316         * src/SDCCdebug.c: added
13317         * src/SDCCdebug.h: added
13318         * src/SDCCast.c (createFunction)
13319         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
13320         * src/SDCCmain.c (parseCmdLine, main)
13321         * src/SDCCmem.c (redoStackOffsets)
13322         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
13323         * src/SDCCsymt.h
13324         * src/common.h
13325         * src/avr/gen.c (genAVRCode)
13326         * src/ds390/gen.c (gen390Code)
13327         * src/mcs51/gen.c (gen51Code)
13328         * src/pic/gen.c (genpic14Code)
13329         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
13330         * src/xa51/gen.c (genXA51Code)
13331         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
13332
13333 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13334
13335         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
13336         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
13337
13338 2003-03-22    <johan AT balder>
13339
13340         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
13341
13342 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
13343
13344         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
13345         * doc/cdbfileformat.lyx: added, written by Lenny Story
13346         * doc/Makefile: added cdbfileformat.lyx
13347         * doc/clean.mk: added cdbfileformat.lyx
13348
13349 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
13350
13351         * src/mcs51/peeph.def: fix bug #705773
13352
13353 2003-03-20    <johan AT balder>
13354
13355         An sfr/sbit can have an "at #" AND an initializer
13356         * src/SDCCsymt.c (checkSClass):
13357         * src/SDCCmem.c (allocGlobal):
13358         * src/SDCCmem.c (allocLocal):
13359         * src/SDCCast.c (createBlock):
13360
13361 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
13362
13363         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
13364
13365 2003-03-16    <johan AT balder>
13366
13367         Undid the hackup of const and volatile, the problem is much bigger
13368         * src/SDCC.y:1.65
13369         * src/SDCCast.c:1.171
13370         * src/SDCCglue.c:1.138
13371         * src/SDCCicode.c:1.146
13372         * src/SDCCsymt.c:1.150
13373         * src/SDCCval.c:1.65
13374
13375 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
13376
13377         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
13378         * src/ds390/gen.c (genAddrOf): fixed bug #704087
13379
13380 2003-03-13    <johan AT balder>
13381
13382         Hackup const and volatile modifiers in type chains a bit:
13383         * src/SDCC.y:1.63
13384         * src/SDCCast.c:1.169
13385         * src/SDCCglue.c:1.136
13386         * src/SDCCicode.c:1.143
13387         * src/SDCCsymt.c1.146
13388         * src/SDCCsymt.h1.59
13389         * src/SDCCval.c:1.63
13390
13391 2003-03-12    <johan AT balder>
13392
13393         * src/SDCCBBlock.h: more LRH debugging junk
13394         * src/SDCCcflow.h: more LRH debugging junk
13395         * src/SDCCloop.c: more LRH debugging junk
13396         * src/SDCC.y (struct_declaration): fixed bug #697590
13397         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
13398         * src/ds390/gen.c (aopForRemat): fixed bug #700031
13399         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
13400
13401 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13402         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
13403         test function names must now match exactly).
13404         * src/SDCCcse.c: added special case in findCheaperOp to allow
13405         extending a short integer. Makes less awful code for bug 700121 test case.
13406
13407 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13408
13409         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
13410         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
13411
13412 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13413
13414         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
13415         actually called (operandsNotEqual() was called for all
13416         operandsNotEqualX tests).
13417
13418 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13419
13420         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
13421         with shorter literals. Fixes bug 700121.
13422
13423 2003-03-11    <johan AT balder>
13424
13425         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
13426
13427 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
13428
13429         * src/SDCCloop.c (mergeRegions): an evil beast is dead
13430         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
13431
13432 2003-03-10  Borut Razem <borut.razem AT siol.net>
13433
13434         * src/SDCCmain.c: pipe preprocessor's output
13435         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13436         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13437         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13438         which closes all pipes in pipeSet set
13439         * src/SDCCset.c: free deleted item in function deleteSetItem()
13440         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13441         moved from z80 to src subproject
13442         * .version: increased version number to 2.3.4
13443
13444 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
13445
13446         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
13447         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
13448         * support/regression/ports/xa51/spec.mk: fix typo
13449
13450 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
13451
13452         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
13453
13454 2003-03-09  Borut Razem <borut.razem AT siol.net>
13455
13456         * src/SDCCmain.c: pipe preprocessor's output
13457         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13458         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13459         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13460         which closes all pipes in pipeSet set
13461         * src/SDCCset.c: free deleted item in function deleteSetItem()
13462         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13463         moved from z80 to src subproject
13464
13465 2003-03-09  Borut Razem <borut.razem AT siol.net>
13466
13467         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
13468         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
13469         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
13470         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
13471         * src/SDCCglobl.h: unification of WIN32 native definitions
13472
13473 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13474
13475         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
13476
13477 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13478
13479         * src/configure.in:   check for endianess (even while cross-compiling)
13480         * src/configure:      check for endianess (even while cross-compiling)
13481         * src/configure_in.h: check for endianess (even while cross-compiling)
13482         * src/avr/gen.c:        remove old endianess stuff
13483         * src/mcs51/gen.c:      remove old endianess stuff
13484         * src/ds390/gen.c:      remove old endianess stuff
13485         * src/pic/gen.c:        remove old endianess stuff
13486         * src/pic/genarith.c:   remove old endianess stuff
13487         * src/pic/glue.c:       fix endianess check
13488         * src/pic16/gen.c:      remove old endianess stuff
13489         * src/pic16/genarith.c: remove old endianess stuff
13490         * src/pic16/glue.c:     fix endianess check
13491         * src/xa51/gen.c:       remove old endianess stuff
13492         * src/z80/gen.c:        fix endianess check
13493         * src/SDCCglue.c:       fix endianess check
13494         * src/ds390/peeph.def: fix bug 700036
13495
13496 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13497
13498         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
13499         * src/configure: find appropriate data-types on host for SDCC's int and long
13500         * src/configure.in: find appropriate data-types on host for SDCC's int and long
13501         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
13502         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
13503
13504 2003-03-07    <johan AT balder>
13505
13506         Just a big NOOP:
13507                 some minor cleanups before the big shot
13508                 OP_DEFS and OP_USES now use Kevin's protection
13509                 new option --nolabelopt
13510
13511         * src/SDCCBBlock.c:
13512         * src/SDCCast.c,:
13513         * src/SDCCcflow.c:
13514         * src/SDCCcse.c:
13515         * src/SDCCicode.c:
13516         * src/SDCCicode.h:
13517         * src/SDCClabel.c:
13518         * src/SDCCloop.c:
13519         * src/SDCCmain.c:
13520         * src/ds390/ralloc.c:
13521         * src/mcs51/ralloc.c:
13522         * src/pic/ralloc.c:
13523         * src/xa51/ralloc.c:
13524         * src/z80/ralloc.c:
13525
13526 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
13527
13528         * src/pic/pcode.c (get_op): fix 64 bit warnings
13529         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
13530         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
13531         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
13532         * support/regression/tests/malloc.c: fix 64 bit warnings
13533
13534 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
13535
13536         * src/mcs51/gen.c (genMinus): fixed bug 696436
13537
13538 2003-03-02  Borut Razem <borut.razem AT siol.net>
13539
13540         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13541
13542 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13543
13544         * configure.in: test for mkstemp
13545         * sdccconf_in.h: add HAVE_MKSTEMP
13546
13547 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13548
13549         * device/include/ctype.h: removed warning while using --stack-auto
13550         * device/include/malloc.h: removed warning while using --stack-auto
13551         * device/include/string.h: removed warning while using --stack-auto
13552
13553 2003-02-23  Borut Razem <borut.razem AT siol.net>
13554
13555         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13556         because NDEBUG is defined (see man assert)
13557         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13558
13559 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13560
13561         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13562         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13563
13564 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13565
13566         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13567         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13568
13569 2003-02-18    <johan AT balder>
13570
13571         * as/mcs51/asmain.c (asmbl): module can start with a digit
13572         * as/z80/asmain.c (asmbl): module can start with a digit
13573
13574 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13575
13576         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13577         * src/asm.c: fix pipe() for Mingw32
13578
13579 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13580
13581         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13582         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13583         make -V work again; --c1mode reads now from stdin
13584         * doc/sdccman.lyx: added --c1mode
13585         * support/Util/SDCCerr.c: new messages for c1 mode
13586         * support/Util/SDCCerr.h: new messages for c1 mode
13587         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13588
13589 2003-02-15    <johan AT balder>
13590
13591         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13592
13593 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13594
13595         * doc/sdccman.lyx: Environment variables, -o and other minor things
13596
13597 2003-02-14    <johan AT balder>
13598
13599         * src/xa51/main.c: before anyone really tries to use it :)
13600
13601         * Install doc's in share/sdcc/doc
13602         * removed some obsolete files
13603         * Do a proper make distclean and uninstall
13604         M Makefile.common.in
13605         R sdccbuild.sh
13606         M as/Makefile
13607         M device/include/Makefile.in
13608         M device/lib/Makefile.in
13609         M doc/sdccman.lyx
13610         M link/Makefile
13611         M sim/ucsim/doc/Makefile.in
13612         M src/clean.mk
13613         R src/avr/peeph.rul
13614         R src/xa51/peeph.rul
13615         M support/cpp2/Makefile.in
13616         M support/makebin/Makefile
13617
13618
13619 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13620
13621         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13622
13623 2003-02-10  Borut Razem <borut.razem AT siol.net>
13624
13625         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13626         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13627         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13628         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13629         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13630         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13631         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13632         src/z80/Makefile.bcc: Borland Makefile cleanup
13633         * as/z80/Makefile.bcc: Added Borland Makefile
13634         * support/cpp2/borland.h: Removed
13635
13636 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13637
13638         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13639         * src/SDCC.lex: new pragma NOIV
13640         * src/SDCCglobl.h: new pragma NOIV
13641         * src/SDCCmem.c: new pragma NOIV
13642
13643 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13644
13645         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13646
13647 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13648
13649         * src/SDCCmain.c: signal handling is switched off by --debug
13650         * doc/Makefile: small fix for install; use clean.mk again
13651         * doc/clean.mk: clean *.pdf and *.html too
13652
13653 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13654
13655         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13656         * device/lib/printfl.c: fix a ds390 bug by making it portable
13657         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13658         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13659         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13660         * debugger/mcs51/cmd.c: converted multi-line string literals
13661         * sim/ucsim/globals.cc: converted multi-line string literals
13662         * src/SDCCmain.c: introduced signal handler to remove temp files
13663         * doc/Makefile: small tweaks, implement clean
13664         * doc: removed generated files
13665
13666 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13667
13668         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13669         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13670         Address Record is not correctly generated for DS390."
13671
13672 2003-02-02  Borut Razem <borut.razem AT siol.net>
13673
13674         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13675         * as/mcs51/asm.h: fixed compilation with Borland C
13676         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13677         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13678         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13679         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13680         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13681         src/z80/Makefile.bcc: delete $(LIB) only if exist
13682         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13683
13684 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13685
13686         * device/include/malloc.h: introduced NULL
13687         * device/include/string.h: introduced NULL
13688         * device/include/stdlib.h: introduced NULL
13689         * device/lib/_memcpy.c: removed NULL
13690         * device/lib/_strcat.c: removed NULL
13691         * device/lib/_strchr.c: removed NULL
13692         * device/lib/_strcmp.c: removed NULL
13693         * device/lib/_strcpy.c: removed NULL
13694         * device/lib/_strcspn.c: removed NULL
13695         * device/lib/_strlen.c: removed NULL
13696         * device/lib/_strncat.c: removed NULL
13697         * device/lib/_strncmp.c: removed NULL
13698         * device/lib/_strncpy.c: removed NULL
13699         * device/lib/_strpbrk.c: removed NULL
13700         * device/lib/_strrchr.c: removed NULL
13701         * device/lib/_strspn.c: removed NULL
13702         * device/lib/_strstr.c: removed NULL
13703         * device/lib/_strtok.c: removed NULL
13704         * device/lib/malloc.c: removed NULL, include own header
13705
13706 2003-02-02    <johan AT balder>
13707
13708         * 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
13709         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13710         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13711         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13712         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13713         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13714
13715 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13716
13717         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13718         area 'DATA'"
13719
13720 2003-02-01    <johan AT balder>
13721
13722         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13723
13724 2003-01-31    <johan AT CP255758-A>
13725
13726         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13727
13728 2003-01-30    <johan AT balder>
13729
13730         * src/SDCCBBlock.c: automatic bug detection
13731         * src/SDCCicode.c: automatic bug detection
13732
13733 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13734
13735         * src/SDCCglobl.h:   now --xram-size 0 works
13736         * src/SDCCmain.c:    now --xram-size 0 works
13737
13738 2003-01-29    <johan AT balder>
13739
13740         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13741
13742 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13743
13744         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13745         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13746         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13747         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13748         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13749         * src/SDCCmain.c:    Added options --xram-size and --code-size
13750
13751 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13752
13753         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13754         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13755
13756 2003-01-27    <johan AT balder>
13757
13758         * src/SDCC.y: fixed bug #613764
13759
13760 2003-01-26    <johan AT balder>
13761
13762         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13763         * src/SDCCsymt.h: fixed bug #673374
13764         * src/SDCCglue.c: fixed bug #661910
13765         * src/SDCCast.c: fixed bug #458099 and 673374
13766
13767 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13768
13769         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13770         * as/mcs51/strcmpi.h: added
13771         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13772         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13773         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13774         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13775         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13776         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13777         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13778         * as/mcs51/Makefile.aslink: new module strcmpi
13779         * as/mcs51/Makefile.asx8051: new module strcmpi
13780         * as/mcs51/Makefil.bcc: new module strcmpi
13781         * as/mcs51/Makefile.in: new module strcmpi
13782         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13783
13784 2003-01-26    <johan AT balder>
13785
13786         * src/SDCCglue.c: reverted back to 1.124
13787         * src/SDCCast.c: reverted back to 1.156
13788         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13789
13790 2003-01-25    <johan AT balder>
13791
13792         * src/SDCCglue.c: A better fix for bug #661910
13793         * src/SDCCast.c: A better fix for bug #661910
13794         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13795
13796 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13797
13798         * src/Makefile.in: remove spawn.o
13799         * src/SDCCmain.c: remove spawn.h
13800         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13801         * src/spawn.c: removed
13802         * src/spawn.h: removed
13803         * support/regression/ports/ds390/spec.mk: link with -r
13804
13805 2003-01-24    <johan AT CP255758-A>
13806
13807         * src/ds390/gen.c (aopOp): fixed bug #667458
13808         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13809         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13810         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13811
13812 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13813
13814         * src/mcs51/peeph.def: better assembler identation by Frieder
13815         * src/mcs51/gen.c: better assembler identation by Frieder
13816
13817 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13818
13819         * as/z80/string.h: removed for gcc 3.2
13820         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13821         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13822
13823 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13824
13825         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13826         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13827         * support/regression/Makefile: separate temp files for ports
13828         * support/regression/generate-cases.py: separate temp files for ports
13829         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13830         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13831
13832 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13833
13834         * moved tinitalk to device/examples/ds390
13835
13836 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13837
13838         * as/mcs51/lkmem.c: rflag is for DS390
13839         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13840         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13841                          (linkEdit): move mem- and map-files the same way as ihx-files
13842         * src/z80/main.c (_setDefaultOptions): removed --generic
13843         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13844         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13845         * src/pic/glue.c (picglue): --c1mode works again
13846         * src/pic16/glue.c (pic16glue): --c1mode works again
13847         * src/asm.c (printCLine): fix #660034
13848
13849 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13850
13851         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13852         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13853         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13854         * as/mcs51/lkmem (summary): better fix for sp problem
13855         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13856         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13857         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13858                                               remove --stack-after-data
13859
13860 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13861
13862         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13863         * src/SDCCutil.c (join): ugly bug: missing '\0'
13864         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13865
13866 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13867
13868         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13869         * src/port.h: typo
13870         * src/pic/main.c (_asmCmd): gpasm supports -o
13871         * src/z80/main.c: more general macros
13872         * device/lib/Makefile.in: remove intermediate files
13873
13874 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13875
13876         * .version: Bumped version number to 2.3.3
13877         * src/SDCCBBlock.c: new option -o
13878         * src/SDCCglobl.h: new option -o
13879         * src/SDCCglue.c: new option -o
13880         * src/SDCCmain.c: new option -o
13881         * src/asm.c: new option -o
13882         * src/ds390/main.c: new option -o
13883         * src/pic/glue.c: new option -o
13884         * src/pic/pcode.c: new option -o
13885         * src/pic/ralloc.c: new option -o
13886         * src/pic16/glue.c: new option -o
13887         * src/pic16/pcode.c: new option -o
13888         * src/pic16/ralloc.c: new option -o
13889         * src/z80/main.c: new option -o
13890         * device/lib/Makefile.in: use -o
13891         * support/regression/ports/ds390/spec.mk: use -o
13892         * support/regression/ports/gbz80/spec.mk: use -o
13893         * support/regression/ports/mcs51/spec.mk: use -o
13894         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13895         * support/regression/ports/z80/spec.mk: use -o
13896         * support/regression/ports/ucz80/spec.mk: use -o
13897         * support/regression/ports/xa51/spec.mk: use -o
13898         * support/regression/fwk/lib/timeout.c: fix usage string
13899
13900 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13901         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13902
13903 2003-01-07    <johan AT balder>
13904
13905         * src/SDCCast.c (decorateType): fixed bug #600035
13906
13907 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13908         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13909         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13910         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13911         * src/pic/pcode.c: outcommented unused variable to remove warnings
13912         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13913
13914 2003-01-06    <karl AT turbobit.com>
13915         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13916    regression tests.
13917
13918 2003-01-06    <johan AT balder>
13919
13920         * src/SDCCicode.c: fixed array add
13921
13922 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13923         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13924         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13925
13926 2003-01-04    <johan AT balder>
13927
13928         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13929
13930 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13931         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13932
13933 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13934         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13935         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13936
13937 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13938         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13939
13940 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13941         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13942
13943 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13944         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13945
13946 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13947
13948     * in /sdcc/as/mcs51/ changed these files in order to create an
13949     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13950     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13951     following files to include the previous two files: aslink.dsp,
13952     Makefile.aslink, Makefile.bcc, and Makefile.in.
13953
13954     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13955     .adb instead of .cdb
13956
13957 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13958
13959         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13960         value from option --iram-size.
13961
13962 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13963
13964         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13965         dram[] array.
13966
13967 2002-09-18    <wiml AT hhhh.org>
13968
13969         * SDCClrange.h: exposed setFromRange() and setToRange()
13970         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13971           packRegsForAccUse() (bug 542397)
13972         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13973           multiple times and emitting the fetch operations more than once
13974           added aopGetUsesAcc() function to allow binary operators to
13975           fetch their operands in the correct order; made genMinus() emit
13976           compact code for X = LITERAL - Y
13977
13978 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13979         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13980         sprintf() in line 1267.
13981
13982 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13983         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13984         like ports.
13985
13986 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13987         Changes to aslink (All the changes are marked with 'JCF'):
13988
13989         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13990         summary().
13991
13992         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13993         area BSEG.  Also moves, if possible, the DATA area down into the internal
13994         ram so more space is available.
13995
13996         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13997         sflag.
13998
13999         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
14000         not bytes.  Function summary() which creates a memory usage summary
14001         file with extension .mem.  Reports of overlaping stack and small stack
14002         size.  If the space for the stack is less than 16 bytes aslink trows a
14003         warning.
14004
14005         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
14006         the 8051.  Option 'y' for memory summary output file.
14007
14008         Changes to sdcc (All the changes are marked with 'JCF'):
14009
14010         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
14011
14012         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
14013         overlaying area for it (uses RegBankUsed[4]).
14014
14015         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
14016         bank zero as used by default.  By default aslink locates the stack
14017         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
14018         the creation of the .mem file.  Delegates the allocation of data area
14019         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
14020         the begining of the stack area to aslink.
14021
14022         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
14023         glue() in SDCCglue.c creates an area for it.
14024
14025 2002-09-03  Borut Razem <borut.razem AT siol.net>
14026         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
14027         sdcc/src/pic/glue.c:
14028         introduced atexit() handler for teporay files removal in case of
14029         errors, assertions, ...
14030
14031 2002-08-29  Borut Razem <borut.razem AT siol.net>
14032         * sdcc/support/cpp2/auto-host_vc_in.h:
14033         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
14034         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
14035         Maybe there is a similar problem with BORLANDC? It should be checked!
14036
14037         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
14038         corrected improper use of assert: the assignment to clr variable was done inside the assert.
14039         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
14040         was not executed, and the compiler (cl) launched a warning:
14041         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
14042
14043 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
14044         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
14045
14046 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
14047         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
14048
14049         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
14050           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
14051           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
14052           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
14053           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
14054           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
14055           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
14056         - added Release configuration in VS projects
14057         - review of compiler an linker options
14058         - VC .exe files are generated in bin_vc directory, not to interfere
14059           with binaries generated from other projects (cygwin, mingw, bcc ...)
14060
14061         * sdcc/src/yacc.dsp: added
14062
14063         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
14064         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
14065         and insert the version number definitions from .version
14066
14067         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
14068
14069         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
14070         added - genarate auto-host.h using auto-host_vc_in.h as template
14071
14072         * sdcc/sdcc_vc.h,
14073         removed from CVS, generated automatically
14074
14075 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
14076         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
14077
14078 2002-08-11  Borut Razem <borut.razem AT siol.net>
14079         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
14080
14081 2002-08-10  Borut Razem <borut.razem AT siol.net>
14082         * src/SDCCmain.c (main):
14083         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
14084         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
14085         The consequence was that some temporary files were not removed.
14086
14087         * src/SDCCglue.c:
14088         unification of code in functions tempfilename() and tempfile():
14089         function tempnam() is defined in Visual Studio 6.0 and .NET
14090
14091         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
14092
14093         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
14094           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
14095         - removed compiler command line option /WX: Treats all warnings as errors
14096         - update a list of source files, included into the project
14097
14098         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
14099           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
14100         changed project type to Generic Project so that can be correcly converted to VS.NET project
14101
14102         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
14103
14104         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
14105
14106         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
14107
14108         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
14109         added return 0 statements after assert() to make compiler happy
14110
14111         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
14112         added newline in the def file to keep MSC compiler satisfied
14113
14114         * sdcc/src/z80/gen.c:
14115         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
14116           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
14117         - solved MSC error in function aopDump()
14118
14119         * sdcc_vc.h: define PREFIX as "\\sdcc"
14120
14121 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
14122         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
14123
14124 2002-06-22  Scott Dattalo <scott AT dattalo.com>
14125         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
14126         - Rewrote the register banking algorithm.
14127         - Added pCode live-range analysis to registers (for now, only non-used and
14128         singly-used registers optimized away)
14129
14130         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
14131
14132         * 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.
14133
14134 2002-05-10  Scott Dattalo <scott AT dattalo.com>
14135         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
14136
14137 2002-04-22  Michael Hope  <michaelh AT vroom>
14138
14139         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
14140
14141         * configure.in (DD_COPT): Added include support required for gbdk.
14142
14143         * .version: Bumped version number just to increase it.
14144
14145         * src/SDCCmain.c: Added -nostdinc to the default options.
14146
14147 2002-04-15  Michael Hope  <michaelh AT vroom>
14148
14149         * device/lib/z80/printf.c (sprintf): Added.
14150
14151         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
14152
14153         * src/z80/peeph.def: Added transpose redundent load rule.
14154
14155         * src/z80/main.c: Added force callee saves for jaune.
14156
14157         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
14158
14159         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
14160
14161 2002-03-28  Johan Knol  <johan AT balder>
14162
14163         * src/SDCCval.c: fixed bug #532436
14164
14165 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14166         * /src/port.h:
14167         Added "char *Processor" field to the port structure.
14168
14169         * /src/SDCCmain.c:
14170         Added -p option. Allows port dependent processor to be specified.
14171
14172         * all ports:
14173         Initialized the new field char *Processor field to NULL in all ports
14174
14175         * /src/pic/*:
14176         Compiler generated registers for interrupt context saving
14177         were not getting allocated.
14178
14179 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
14180
14181         * /src/SDCCast.c:
14182         Fixed left shift. Will promote the left side of a left shift
14183         if a) left shifting more than size of operand or b) when assigned
14184         to something size > size of left side
14185
14186 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14187         * src/pic/*
14188         tons of changes. Register allocation has been
14189         rewritten. Added customization for the various PICs. Flow
14190         analysis is restructured. ...
14191
14192         * src/pic/device.h:
14193         Added
14194
14195         * src/pic/device.c:
14196         Added. device.c is a PIC port hack to accomodate variations
14197         in PIC devices.
14198
14199 2002-03-13  Michael Hope  <michaelh AT vroom>
14200
14201         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
14202
14203 2002-03-04  johanknol  <johanknol AT manik>
14204
14205         * /src/SDCCval.c: fixed
14206
14207         const unsigned char arr[][2] = { { 0, 1 } };
14208         t18.c:1: error: Initializer element is not constant
14209
14210 2002-03-04  bela  <bela AT manik>
14211
14212         * /device/include/mcs51reg.h:
14213         ds89c420 register definition update
14214
14215 2002-03-03    <johan AT FRIJA>
14216
14217         * support/Util/SDCCerr.c: did something, but don't no why anymore
14218
14219         * support/regression/tests/bug-524691.c: made it a little less shy
14220
14221         * src/SDCCast.c (decorateType): fixed bug #524697
14222
14223         * src/SDCCast.c: made some lineno improvements
14224
14225         * src/SDCCval.c (getNelements): changed warning to error
14226
14227         * src/SDCCglue.c (printIvalArray): changed warning to error
14228
14229         * src/SDCCicode.c: fixed a warning for mingw
14230
14231         * src/SDCCast.c (decorateType): fixed the << promotion for ops
14232
14233         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
14234
14235 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
14236
14237         * src/ds390/peeph.def:
14238         Added some more peephole rules
14239
14240         * src/ds390/gen.c: Various fixes & enhancements
14241
14242         * src/SDCClrange.c, src/SDCClrange.h:
14243         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
14244
14245         * src/ds390/ralloc.c:
14246         various fixes & enhancements (ds390) specific
14247
14248         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
14249         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
14250         from rallocs.
14251
14252         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
14253
14254 2002-03-02    <johan AT FRIJA>
14255
14256         * src/SDCCast.c (decorateType): fixed bug #524708
14257
14258         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
14259
14260         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
14261
14262 2002-03-01  Michael Hope  <michaelh AT vroom>
14263
14264         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
14265
14266         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
14267
14268 2002-03-01    <johan AT FRIJA>
14269
14270         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
14271
14272         * src/SDCCast.c (decorateType): fixed bug #524209
14273
14274         * src/SDCCval.c (valNot): fixed bug #524195
14275
14276 2002-02-26    <johan AT balder>
14277
14278         * src/xa51/gen.c: fixed a warning
14279
14280         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
14281
14282         * src/SDCCast.c (decorateType): fixed bug #522534
14283
14284 2002-02-23    <johan AT balder>
14285
14286         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
14287
14288 2002-02-22    <johan AT balder>
14289
14290         * src/SDCCast.c: fixed bug #514865
14291
14292         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
14293
14294 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
14295
14296         * sdcc/src/SDCCloop.c:
14297         Previous fix was not good. basic blocks that have "break" or "return" are
14298         not really partof a loop , but live ranges used in these blocks should
14299         be live thru the entire loop, so set partOfLoop but don't add them to
14300         loop region
14301
14302 2002-02-21    <johan AT FRIJA>
14303
14304         * src/SDCCcse.c: fixed bug #514308
14305
14306 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
14307
14308         * src/SDCCloop.c:
14309         Fixed BUG #519583. If a conditional block ended in a return/break
14310         statement inside a loop, it was not being considered part of the loop.
14311
14312         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
14313
14314 2002-02-10  Karl Bongers <karl AT turbobit.com>
14315
14316         * debugger/*:
14317         Fixed up SDCDB debugger somewhat.  Updated debugger/README
14318         with lots of comments and notes.
14319
14320         * device/examples/test2.c:
14321         Fix bug, "red" variable not being initialized(compiler complained).
14322
14323         * device/examples/Makefile, examples/test3.c:
14324         Add Makefile in device/examples folder, compiles test3.c
14325         for use as a multiple module SDCDB test case.
14326
14327         * sim/ucsim/cmd.src/cmdset.cc:
14328         Took out debug printfs in ucsim "next" command.
14329
14330         * sim/ucsim/xa.src:
14331         Karl and Johan start ucsim XA support.  Most dissassembly working,
14332         about 75% emulation done(plenty of work remaining).
14333
14334         * sim/ucsim/z80.src:
14335         Add Z80 support to ucsim, add test-ucz80 regression test,
14336         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
14337         Notice z80 compiler fails on examples/test3.c/crc code.
14338
14339 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
14340
14341         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
14342         Added support for --parms-in-bank1
14343
14344         * src/ds390/peeph.def:
14345         added a few more peephole optimzations
14346
14347         * src/ds390/main.c:
14348         1) added __builtin_inp & __builtin_outp used to read in data of given length
14349            from a memory mapped port
14350         2) added __builtin_memcmp
14351         3) added __builtin_swapw swap bytes of a short
14352
14353         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
14354         1) handle multiple send & receives from register bank1
14355         2) ralloc can now allocate DPTR1 to some liveRanges
14356
14357         * src/SDCCsymt.c, src/SDCCsymt.h:
14358         changes to handle multiple sends & receives
14359
14360         * src/SDCCptropt.h:
14361         added some pointer arithmetic optimization
14362
14363         * src/SDCCptropt.c:
14364         added some pointer arithmetic optimizations but not stable yet so not
14365         called from anywhere (will get this working shortly)
14366
14367         * src/SDCCopt.c: fixed for multiple sends & receives
14368
14369         * src/SDCCmain.c:
14370         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
14371         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
14372            set preprocessor defines (depending on options)
14373
14374         * src/SDCCicode.c, src/SDCCicode.h:
14375         changes made to handle multiple sends & receives
14376
14377         * src/SDCCglobl.h:
14378         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
14379
14380         * src/SDCCcse.c, src/SDCCcse.h:
14381         added function findbackward def (to be used in upcoming optimization)
14382
14383         * src/SDCCcflow.c, src/SDCCcflow.h:
14384         added function returnAtEnd - to determine if a basic block terminates with
14385         a RETURN iCode
14386
14387         * src/SDCCast.c, src/SDCCast.h:
14388         added option parms-in-bank1
14389
14390         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
14391         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
14392         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
14393         adjusted for --parms-in-bank1 option
14394
14395         * device/include/string.h:
14396         donot redefine "reentrant" keyword
14397
14398         * device/include/ds80c390.h: Added some more SFRs
14399
14400 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
14401
14402         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
14403
14404 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
14405
14406         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
14407
14408 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
14409
14410         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
14411
14412 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
14413
14414         * Added --xram-movc option
14415
14416 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
14417
14418         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
14419
14420 2002-01-11  Johan Knol
14421
14422         * Added math lib of Jesus Calvino-Fraga
14423
14424 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
14425
14426         * src/SDCCmain.c (processFile): fix processing of ../../src.c
14427         * support/regression/Makefile: new target test-mcs51-stack-auto
14428         * support/regression/ports/mcs51-stack-auto/spec.mk: added
14429
14430 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14431
14432         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
14433
14434 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14435
14436         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
14437
14438 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
14439
14440         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
14441
14442         * src/SDCCglue.h: add definition for printIvalChar()
14443
14444 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14445
14446         * src/SDCCast.c: fix #498138 by Johan
14447
14448         * src/SDCCglue.c: fix #498138 by Johan
14449
14450 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14451
14452         * support/regression/Makefile: fix clean
14453
14454         * support/regression/ports/ds390/support.c: fix transmission of last character
14455
14456 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
14457
14458         * /sdcc/src/ds390/gen.c:
14459         a) improved computing address of stack variable
14460         b) took out some #if 0 code
14461         c) improved parmBytes adjustment
14462         d) improved genPlusIncr & genMinusIncr
14463         e) genCmp could generate bad code (when left assigned to DPTR)
14464         f) Fixed bug in hasInc
14465
14466         * /sdcc/src/ds390/ralloc.c:
14467         a) packRegsForSupport could mess up live information (Fixed)
14468         b) packRegsDPTRuse could be incorrect for left & right shift
14469
14470         * /sdcc/src/mcs51/ralloc.c:
14471         packRegsForSupport could mess up the live information (Fixed)
14472
14473         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
14474
14475         * /sdcc/src/SDCCast.c:
14476         can reverse a loop even if function call is present as long
14477         as the loop control variable is local & is not passed as parameter
14478
14479 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14480
14481         * /sdcc/ChangeLog: *** empty log message ***
14482
14483         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
14484         More builtin function additions for TININative
14485
14486         * /sdcc/src/ds390/ralloc.c:
14487         Had broken the regression testsuite
14488
14489         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
14490
14491         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
14492         Added funcattr hasStackParms will be set for reentrant functions when there
14493         are paramteres on the stack, this helps in minimizing frame pointer generation
14494         typeFromStr can handle function pointers now
14495
14496         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
14497         *** empty log message ***
14498
14499 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14500
14501         * /src/ds390/gen.c, /src/ds390/main.c:
14502         More builtin function additions for TININative
14503
14504         * /src/ds390/ralloc.c:
14505         Had broken the regression testsuite
14506
14507         * /src/SDCCast.c: Fixed a bug in dumptree
14508
14509         * /src/SDCCsymt.c, /src/SDCCsymt.h:
14510         Added funcattr hasStackParms will be set for reentrant functions when there
14511         are paramteres on the stack, this helps in minimizing frame pointer generation
14512         typeFromStr can handle function pointers now
14513
14514         * /doc/builtins.txt, /doc/TININative.txt:
14515         *** empty log message ***
14516
14517
14518 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14519
14520         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
14521         ALPHA version for -mTININative
14522
14523         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
14524         updated to reflect changes in the port structure
14525
14526         * /src/port.h:
14527         added function do_assemble (similar to do_link) if non-null this function
14528         will be called to do assembly (-mTININative) requires a multi command
14529         assembly
14530         added function genAssemblerEnd will be called to generate assembler Epilogue
14531
14532         * /src/SDCCsymt.c:
14533         added _JavaNative to debug info printing
14534
14535         * /src/SDCCmain.c: added option --tini-libid
14536         added port->do_assemble function (-mTININative) has a multi command assemble
14537
14538         * /src/SDCCglue.c: Disabled "constExpr" check
14539         added port->genAssemblerEnd function
14540
14541         * /src/SDCCglobl.h: Added option --tini-libid value
14542
14543         * /src/SDCCast.h:
14544         tookout optimizeCompare from the header (has no external references)
14545
14546         * /src/SDCCast.c: made one more function "static"
14547
14548 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14549
14550         * src/z80/mappings.i: Added z80asm support.
14551
14552         * src/z80/main.c: Added z80asm support on --asm=z80asm
14553
14554         * src/z80/gen.c: Fixed asm portability issues.
14555
14556         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14557
14558         * src/SDCCglue.c (printExterns): Added global/extern split.
14559
14560 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14561
14562         * support/regression/Makefile: added test for mcs51 model large
14563
14564         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14565
14566         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14567
14568 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14569
14570         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14571
14572 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14573
14574         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14575
14576         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14577
14578 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14579
14580         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14581
14582         * support/regression/tests/simplefloat.c: Port to mcs51.
14583
14584 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14585         * support/regression/tests/bug-485362.c: Added.
14586
14587         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14588
14589         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14590
14591         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14592
14593         * src/z80/gen.c (aopDump): Added a dump function.
14594
14595 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14596         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14597
14598         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14599
14600         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14601
14602         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14603
14604         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14605
14606         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14607
14608         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14609
14610         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14611
14612         * support/regression/ports/ds390/support.c: Use tinibios.
14613
14614         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14615
14616 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14617
14618         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14619         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14620
14621         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14622
14623         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14624
14625 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14626
14627         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14628
14629         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14630         (packRegsForIYUse): Created and optimised.
14631
14632 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14633
14634         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14635 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14636
14637         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14638
14639         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14640
14641         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14642
14643 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14644
14645         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14646
14647         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14648
14649 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14650
14651         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14652
14653         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14654
14655         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14656
14657 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14658
14659         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14660         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14661         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14662
14663         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14664
14665         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14666         (genNotFloat): Added.
14667         (genUminusFloat): Added.
14668
14669         * device/lib/z80/Makefile: Added floating pt stubs.
14670
14671         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14672
14673         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14674
14675         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14676
14677 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14678
14679         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14680
14681         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14682
14683         * sdcc/support/regression/Makefile: Add port ds390.
14684
14685         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14686
14687         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14688
14689         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14690
14691         * sdcc/support/regression/ports/ds390/support.c: Added.
14692
14693         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14694
14695         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14696
14697         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14698
14699 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14700
14701         * device/include/malloc.h: Added z80 and gbz80 support.
14702
14703         * device/lib/gbz80/heap.s: Added.
14704
14705         * device/lib/z80/heap.s: Added.
14706
14707         * device/lib/malloc.c: Added z80 and gbz80 support.
14708
14709         * support/regression/tests/malloc.c (testMalloc): Added.
14710
14711         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14712
14713         * support/regression/tests/bug-478094.c: Added.
14714
14715         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14716
14717 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14718
14719         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14720
14721         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14722
14723         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14724
14725         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14726
14727         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14728
14729 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14730
14731         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14732
14733 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14734
14735         * support/regression/tests/bug-477927.c: Added.
14736
14737         * src/z80/peeph.def: Added minor rules.
14738
14739         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14740
14741         * src/z80/peeph.def: Added jump optimisation modification.
14742
14743 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14744
14745         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14746
14747 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14748
14749         * support/regression/tests/funptrs.c: Added.
14750
14751 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14752
14753         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14754
14755 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14756
14757         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14758
14759         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14760
14761         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14762         (movLeft2ResultLong): Created.
14763
14764         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14765         (joinPushes): Added.  Joins two char pushes into a word push.
14766
14767 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14768
14769         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14770
14771         * support/makebin/Makefile (install): Added creation of dest dir.
14772
14773 2001-10-24 Karl Bongers <karl AT turbobit.com>
14774
14775         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14776
14777 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14778
14779         * src/z80/ralloc.c: Turned off faulty pack for one use.
14780
14781         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14782
14783         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14784
14785 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14786
14787         * support/regression/Makefile: Improved clean
14788
14789         * support/regression/ports/gbz80/spec.mk: Added clean
14790
14791         * support/regression/ports/host/spec.mk: Added clean
14792
14793         * support/regression/ports/z80/spec.mk: Added clean
14794
14795         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14796
14797         * support/regression/ports/mcs51/timeout.c: little improvements
14798
14799 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14800
14801         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14802
14803         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14804
14805         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14806
14807 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14808
14809         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14810
14811         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14812
14813 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14814         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14815
14816         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14817
14818         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14819
14820         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14821
14822         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14823
14824         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14825
14826         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14827
14828         * support/regression/tests/longor.c: Added.
14829
14830 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14831
14832         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14833
14834         * as/mcs51/aslink.h: define PATH_MAX
14835
14836         * as/mcs51/asm.h: define PATH_MAX
14837
14838         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14839
14840         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14841
14842         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14843
14844         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14845
14846         * src/SDCCglobl.h: define PATH_MAX
14847
14848         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14849
14850         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14851
14852 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14853
14854         * src/z80/gen.c (gencjneshort): Fixed
14855
14856         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14857
14858 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14859
14860         * support/regression/tests/bug-469671.c: Added.
14861
14862         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14863
14864 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14865
14866         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14867
14868         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14869
14870 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14871
14872         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14873
14874         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14875
14876         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14877
14878         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14879
14880         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14881
14882         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14883
14884         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14885
14886 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14887
14888         * 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.
14889
14890         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14891
14892         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14893
14894 2001-10-07    <johan AT FRIJA>
14895
14896         * device/lib/gets.c (gets): fixed the return value.
14897
14898 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14899         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14900
14901         * 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.
14902
14903         * 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.
14904
14905         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14906
14907         * src/pic/gen.c: Removed Safe_strdup.
14908
14909         * configure.in: Added option to enable libgc support.
14910
14911         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14912         (bitVectUnion): Optimised.
14913         (bitVectIntersect): Optimised.
14914         (bitVectBitsInCommon): Optimised.
14915         (bitVectCplAnd): Optimised.
14916
14917         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14918
14919 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14920
14921         * src/SDCCmain.c: distinguish between assembler debug and plain options
14922
14923         * src/avr/main.c:   remove standard assembler options
14924
14925         * src/ds390/main.c: remove standard assembler options
14926
14927         * src/mcs51/main.c: remove standard assembler options
14928
14929         * src/port.h: removed "PENDING" comment
14930
14931 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14932
14933         * src/device/lib/_mulint.c  : new, with assember functions
14934
14935         * src/device/lib/_mullong.c : new, with assember functions
14936
14937         * src/device/lib/_divuint.c : with assember functions
14938
14939         * src/device/lib/_divsint.c : with assember functions
14940
14941         * src/device/lib/_divulong.c: with assember functions
14942
14943         * src/device/lib/_divslong.c: with assember functions
14944
14945         * src/device/lib/_moduint.c : with assember functions
14946
14947         * src/device/lib/_modsint.c : with assember functions
14948
14949         * src/device/lib/_modulong.c: with assember functions
14950
14951         * src/device/lib/_modslong.c: with assember functions
14952
14953         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14954
14955         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14956
14957         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14958                                       replaced _mululong.c and _mulslong.c by _mullong.c
14959
14960 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14961
14962         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14963
14964 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14965
14966         * src/SDCCglue.c: test, if win32api is available for MINGW
14967
14968 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14969
14970         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14971         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14972         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14973         * support/regression/ports/host/spec.mk: removed GENERIC
14974         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14975         * support/regression/ports/z80/spec.mk: removed GENERIC
14976
14977 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14978
14979         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14980
14981         * support/regression/tests/bug-467035.c: Created.
14982
14983 2001-10-01    <johan AT FRIJA>
14984
14985         * src/SDCC.y: fixed bug #466586 part 1
14986
14987 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14988
14989         * SDCCicode.c: z80 has no generic pointers
14990         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14991
14992 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14993
14994         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14995
14996 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14997
14998         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14999
15000         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
15001
15002 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
15003
15004         * configure.in: Fixed up so that ucsim is only configured once.
15005
15006         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
15007
15008         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
15009         (getPathDifference): As above.
15010
15011         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
15012
15013         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
15014
15015 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
15016         * .version: Updated to 2.3.1
15017
15018         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
15019         Added copyright header.
15020
15021         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
15022         (assemble): Added support for macro based assembler commands.
15023         (linkEdit): Added support for macro based linker commands.
15024         (preProcess): Changed the pre-processor to use macros.
15025         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
15026         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
15027
15028         * device/lib/z80/crt0.s: Added module name for debugging.
15029
15030 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
15031
15032         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
15033
15034         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
15035
15036         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
15037
15038         * src/Makefile.in: Added SDCCmacro and SDCCutil
15039
15040 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
15041
15042         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
15043
15044 2001-09-16    <johan AT FRIJA>
15045
15046         * 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.
15047
15048 2001-09-15    <johan AT FRIJA>
15049
15050         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
15051         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
15052
15053 2001-09-11    <johan AT FRIJA>
15054
15055         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
15056
15057 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
15058
15059         * support/regression/tests/bug-460444.c: Added test case.
15060
15061         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
15062         (genCast): Added justification for all of the asserts.
15063
15064 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
15065
15066         * support/regression/support.c: _xdata replaced by xdata
15067
15068         * support/regression/spec.mk: removed _generic
15069
15070 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
15071
15072         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
15073
15074         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
15075         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
15076
15077         * src/z80/peeph.def: Added a rule to optimise shift then compare.
15078
15079         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
15080
15081         * support/regression/tests/bug-460010.c: Added test case.
15082
15083         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
15084
15085 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
15086
15087         * support/regression/Makefile: inter-port-clean adjusted for mcs51
15088
15089         * support/regression/testfwk.c: removed workaround for bug #436344
15090
15091         * support/regression/tests/bp.c: use less memory with mcs51
15092
15093         * support/regression/tests/bug-441448.c: use less memory
15094
15095         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
15096
15097         * support/regression/collate-results.py: typo
15098
15099 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
15100
15101         * support/regression/tests/fetchoverlap.c: Added new test case.
15102
15103         * support/regression/tests/bp.c: Added new test case.
15104
15105         * support/regression/tests/bug-448984.c: Added new test case.
15106
15107         * support/regression/tests/pow2shifts.c: Added new test case.
15108
15109         * src/z80/gen.c: Turned off the noise it normally generates for the release.
15110         (genlshTwo): Fixed right shift for count > 8.
15111
15112         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
15113
15114 2001-09-08    <johan AT FRIJA>
15115
15116         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
15117
15118 2001-09-07    <johan AT FRIJA>
15119
15120         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
15121
15122         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
15123
15124 2001-09-06    <johan AT FRIJA>
15125
15126         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
15127         * bernhard noted me at this: "() equals to (void)" (1.38)
15128
15129 2001-09-05    <johan AT FRIJA>
15130
15131         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
15132
15133 2001-09-04    <johan AT FRIJA>
15134
15135         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
15136
15137
15138 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
15139
15140         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
15141
15142 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
15143
15144         * link/z80/aslink.h: Fixed path for PATH_MAX
15145
15146 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
15147
15148         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
15149
15150         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
15151
15152         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
15153
15154         * 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.
15155
15156 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
15157
15158         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
15159         (genCmp): Fixed up genCmp for the GB with longs.
15160
15161         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
15162
15163         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
15164
15165         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
15166
15167         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
15168
15169 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
15170
15171         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
15172
15173 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
15174
15175         * 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.
15176
15177         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
15178
15179 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
15180
15181         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
15182
15183         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
15184
15185 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
15186
15187   * sim/ucsim/configure:    little improvement of Cygwin-detection
15188   * sim/ucsim/configure.in: little improvement of Cygwin-detection
15189   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
15190   * support/regression/tests/bug-221100.c: small changes for mcs51
15191   * support/regression/tests/bug-221168.c: small changes for mcs51
15192   * support/regression/tests/bug-227710.c: small changes for mcs51
15193   * support/regression/tests/staticinit.c: small changes for mcs51
15194   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
15195   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15196   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15197
15198 $Revision$